OSDN Git Service

09e8deec6480058c72febd0642f8275f57788c02
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-07-05  Richard Guenther  <rguenther@suse.de>
2
3         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
4         RESULT_DECLs properly.
5
6 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
7
8         PR rtl-optimization/44695
9         * config/i386/i386.md (extract_code): Removed.
10         (<u>divmodqi4): Likewise.
11         (divmodqi4): New.
12         (udivmodqi4): Likewise.
13         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to
14         HImode.
15         (udivmodhiqi3): Likewise.
16
17 2010-07-04  Jan Hubicka  <jh@suse.cz>
18
19         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20
21 2010-07-04  Jan Hubicka  <jh@suse.cz>
22
23         * cgraphunit.c (init_cgraph): Only initialize dump file if it is not
24         already initialized.
25
26 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
27
28         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
29         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
30         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
31         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
32         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
33         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
34         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
35         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
36         (sync_new_nand_optab): Redefine as macros.
37         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
38         Delete.
39         (direct_optab_index): New enum.
40         (direct_optab_d): New structure.
41         (direct_optab): New typedef.
42         (direct_optab_table): Declare.
43         (direct_optab_handler, set_direct_optab_handler): New functions.
44         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
45         (sync_lock_release_optab): New macros.
46         * optabs.c (direct_optab_table): New variable.
47         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
48         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
49         cmpstr_optab and cmpstrn_optab.
50         (emit_conditional_move): Likewise for movcc_optab.
51         (can_conditionally_move_p): Likewise for movcc_gen_code.
52         (init_insn_codes): Clear direct_optab_table.
53         (init_optabs): Don't initialize the new "direct optabs" here.
54         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
55         vcond_gen_code.
56         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
57         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
58         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
59         (expand_sync_operation): Likewise other sync_*_optabs.
60         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
61         to sync_compare_and_swap_optab.
62         (expand_sync_lock_test_and_set): Use direct_optab_handler for
63         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
64         to the names of both.
65         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
66         cmpstr_optab and cmpstrn_optab.
67         (expand_builtin_lock_release): Likewise sync_lock_release.
68         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
69         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
70         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
71         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
72         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
73         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
74         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
75         (sync_lock_test_and_set, sync_lock_release): Delete.
76         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
77         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
78         * genopinit.c (optabs): Use set_direct_optab_handler for the new
79         macro optabs.
80         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
81         the "optab" local variable.  Use direct_optab_handler for optab and
82         sync_compare_and_swap_optab.
83         * reload1.c (reload_in_optab, reload_out_optab): Delete.
84         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
85         reload_in_optab and reload_out_optab.
86         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
87         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
88         * config/pa/pa.c (pa_secondary_reload): Likewise.
89         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
90         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
91         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
92         (VMSupportsCS8_builtin): Likewise.
93
94 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
95
96         * optabs.h (optab_handlers): Change type of insn_code to int.
97         (optab_handler, set_optab_handler, convert_optab_handler)
98         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
99         CODE_FOR_nothing".
100         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
101         (init_insn_codes): Zero both the above arrays.
102         (init_optabs): Never call init_insn_codes first time around.
103
104 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
105
106         * optabs.h (optab_handler, convert_optab_handler): Turn into
107         inline functions that return an insn code.
108         (set_optab_handler, set_convert_optab_handler): New functions.
109         * builtins.c: Replace optab_handler(X)->insn_code with
110         optab_handler or set_optab_handler thoughout.  Likewise
111         convert_optab_handler(X)->insn_code with convert_optab_handler
112         and set_convert_optab_handler.
113         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
114         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
115         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
116         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
117         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
118         config/spu/spu.c: Likewise.
119
120 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
121
122         PR target/44531
123         * config.gcc (sh*-*-*): Use regular expressions instead of
124         the 'i' modifier for sed substitutions.
125
126 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
127
128         * gimple.c (gimple_body): Comments added.
129
130 2010-07-04  Richard Guenther  <rguenther@suse.de>
131
132         PR middle-end/44809
133         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
134         of an INDIRECT_REF.
135
136 2010-07-04  Richard Guenther  <rguenther@suse.de>
137
138         PR tree-optimization/44479
139         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
140         extra SSA name copy statements which preserves points-to
141         information.
142         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
143         Copy points-to information for all pointers.  Properly handle
144         MEM_REFs.
145         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
146         copy statements.
147         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
148         dependency.
149
150 2010-07-04  Richard Guenther  <rguenther@suse.de>
151
152         PR middle-end/44785
153         * tree-inline.c (initialize_inlined_parameters): Do not
154         re-use pointer-map slot over remap_type call.
155
156 2010-07-04  Richard Guenther  <rguenther@suse.de>
157
158         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
159
160 2010-07-04  Richard Guenther  <rguenther@suse.de>
161
162         PR tree-optimization/44656
163         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
164         again after value-replacing in the defintions lhs.
165
166 2010-07-04  Ira Rosen  <irar@il.ibm.com>
167             Revital Eres  <eres@il.ibm.com>
168
169         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): 
170         Document new arguments.
171         * doc/tm.texi: Regenerate.
172         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
173         Handle unaligned store.
174         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
175         * target.def (builtin_vectorization_cost): Add new arguments.
176         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
177         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
178         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
179         (vect_vfa_segment_size): Fix indentation.
180         * tree-vectorizer.h (struct _vect_peel_info): New.
181         (struct _vect_peel_extended_info): New.
182         (struct _loop_vec_info): Add new field for peeling hash table and a
183         macro for its access.
184         (VECT_MAX_COST): Define.
185         (vect_get_load_cost): Declare.
186         (vect_get_store_cost, vect_get_known_peeling_cost, 
187         vect_get_single_scalar_iteraion_cost): Likewise.
188         (vect_supportable_dr_alignment): Add new argument.
189         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
190         field.
191         (destroy_loop_vec_info): Free peeling hash table.
192         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
193         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
194         vect_analyze_slp. Fix indentation.
195         (vect_get_single_scalar_iteraion_cost): New function.
196         (vect_get_known_peeling_cost): Likewise.
197         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel. 
198         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per 
199         statement. Move outside cost calculation inside unknown peeling case.
200         Call vect_get_known_peeling_cost for known amount of peeling.
201         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
202         reference to the print message of forced alignment.
203         (vect_verify_datarefs_alignment): Update call to 
204         vect_supportable_dr_alignment.
205         (vect_get_data_access_cost): New function.
206         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
207         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
208         vect_peeling_hash_choose_best_peeling): Likewise.
209         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
210         to store all the accesses in the loop and find best possible access to
211         align using peeling for known alignment case. For unknown alignment
212         check if stores are preferred or if peeling is worthy.
213         (vect_find_same_alignment_drs): Analyze pairs of loads too.
214         (vect_supportable_dr_alignment): Add new argument and check aligned
215         accesses according to it. 
216         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
217         (cost_for_stmt): Call vect_get_stmt_cost. 
218         (vect_model_simple_cost): Likewise.
219         (vect_model_store_cost): Call vect_get_stmt_cost. Call 
220         vect_get_store_cost to calculate the cost of the statement.
221         (vect_get_store_cost): New function.
222         (vect_model_load_cost): Call vect_get_stmt_cost. Call 
223         vect_get_load_cost to calculate the cost of the statement.
224         (vect_get_load_cost): New function.
225         (vectorizable_store): Update call to vect_supportable_dr_alignment.
226         (vectorizable_load): Likewise.
227         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new
228         arguments. 
229         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
230         arguments. Handle unaligned store.
231         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
232         (rs6000_builtin_support_vector_misalignment): Return true for word and
233         double word alignments for VSX.
234         * tree-vect-slp.c (vect_build_slp_tree): Update calls to 
235         vect_supportable_dr_alignment and builtin_vectorization_cost.
236
237 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
238
239         PR target/44597
240         * config/pa/predicates.md (prefetch_cc_operand): Remove.
241         (prefetch_nocc_operand): Likewise.
242         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
243         (prefetch_20): New insn.
244         (prefetch_cc): Remove.
245         (prefetch_nocc): Likewise.
246
247 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
248
249         * expr.c (vector_mode_valid_p): Move to c-common.c.
250         * expr.h (vector_mode_valid_p): Do not declare here.
251         * system.h: Poison GCC_EXPR_H in front-ends.
252         * Makefile.in: Update dependencies.
253
254 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
255
256         PR target/44705
257         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
258
259 2010-07-03  Jan Hubicka  <jh@suse.cz>
260
261         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
262         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
263         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
264         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
265         Likewise.
266
267         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
268         Update timevars.V
269         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
270         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
271         TV_IPA_LTO_DECL_OUT): New.
272         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
273
274 2010-07-03  Jan Hubicka  <jh@suse.cz>
275
276         * ipa-inline.c (update_edge_key): Break out from ...
277         update_callers_keys): ... here;
278         (update_callee_keys): Update only the edges from caller to callee.
279         (update_all_calle_keys): Do what update_calle_keys did.
280         (decide_inlining_of_small_functions): Avoid recomputing of all
281         callees when badness increase.
282
283 2010-07-03  Jie Zhang  <jie@codesourcery.com>
284
285         * config/arm/arm.c (arm_attr_length_move_neon): New.
286         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
287         * config/arm/neon.md (define_mode_attr V_slen): Remove.
288         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
289         to compute length attribute.
290
291 2010-07-03  Jie Zhang  <jie@codesourcery.com>
292
293         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
294         as predicate for operand 1 and remove its constraint.
295         * config/arm/predicates.md (vfp_register_operand): New.
296         * config/arm/arm.md (*push_multi): Remove the constraint of
297         operand 1.
298         (*push_fp_multi): Likewise.
299
300 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
301
302         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
303
304 2010-07-03  Jan Hubicka  <jh@suse.cz>
305
306         * config/i386/i386.c (override_options): Revert accidental commit.
307
308 2010-07-02  Le-Chun Wu  <lcwu@google.com>
309
310         PR c++/44128
311         * doc/invoke.texi: Update documentation of -Wshadow.
312
313 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
314             Julian Brown  <julian@codesourcery.com>
315             Sandra Loosemore <sandra@codesourcery.com>
316
317         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
318         comparisons.  Adjust to take both operands.
319         (arm_select_cc_mode): Handle DImode comparisons.
320         (arm_gen_compare_reg): Generate a scratch register for DImode
321         comparisons which require one.  Use xor for Thumb equality checks.
322         (arm_const_double_by_immediates): New.
323         (arm_print_operand): Allow 'Q' and 'R' for constants.
324         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
325         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
326         arm_canonicalize_comparison.
327         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
328         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
329         prototype.
330         (arm_const_double_by_immediates): Declare.
331         * config/arm/constraints.md (Di): New constraint.
332         * config/arm/predicates.md (arm_immediate_di_operand)
333         (arm_di_operand, cmpdi_operand): New.
334         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
335         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
336         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
337         (cstoredi4): Handle non-Cirrus also.
338
339 2010-07-02  Julian Brown  <julian@codesourcery.com>
340             Sandra Loosemore <sandra@codesourcery.com>
341
342         PR target/43703
343         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
344         (smax<mode>3): Disable for NEON float modes when
345         flag_unsafe_math_optimizations is false.
346         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
347         (*mul<mode>3_neon)
348         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
349         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
350         for NEON float modes when flag_unsafe_math_optimizations is false.
351         (quad_halves_<code>v4sf): Only enable if flag_unsafe_math_optimizations
352         is true.
353         * doc/invoke.texi (ARM Options): Add note about floating point
354         vectorization requiring -funsafe-math-optimizations.
355
356 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
357             Julian Brown  <julian@codesourcery.com>
358
359         * config/arm/neon.md (UNSPEC_VABA): Delete.
360         (UNSPEC_VABAL): Delete.
361         (UNSPEC_VABS): Delete.
362         (UNSPEC_VMUL_N): Delete.
363         (adddi3_neon): New.
364         (subdi3_neon): New.
365         (mul<mode>3add<mode>_neon): Make the pattern named.
366         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
367         (neon_vadd<mode>): Replace with define_expand, and move the remaining
368         unspec parts...
369         (neon_vadd<mode>_unspec): ...to this.
370         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
371         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
372         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
373         (neon_vaba<mode>): Rewrite in terms of vabd.
374         (neon_vabal<mode>): Rewrite in terms of vabdl.
375         (neon_vabs<mode>): Rewrite without unspec.
376         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
377         (*arm_subdi3): Likewise.
378         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
379         No_op attribute to disable assembly output checks.
380         * config/arm/arm_neon.h: Regenerated.
381         * doc/arm-neon-intrinsics.texi: Regenerated.
382
383 2010-07-02  Jan Hubicka  <jh@suse.cz>
384
385         * ipa-split.c (split_function): For aggregate values, set the return
386         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
387         *<retval> = fncall.part ()
388         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
389
390 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
391
392         * config/arm/neon.md (UNSPEC_VAND): Delete.
393         (UNSPEC_VBIC): Delete.
394         (UNSPEC_VCLZ): Delete.
395         (UNSPEC_VCNT): Delete.
396         (UNSPEC_VEOR): Delete.
397         (UNSPEC_VORN): Delete.
398         (UNSPEC_VORR): Delete.
399         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
400         core registers too.
401         (anddi3_neon): Likewise.
402         (orndi3_neon): Likewise.
403         (bicdi3_neon): Likewise.
404         (xordi3_neon): Likewise.
405         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
406         rid of unspec and handle unused operand.
407         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
408         * config/arm/predicates.md (imm_for_neon_logic_operand):
409         Require TARGET_NEON.
410         (imm_for_neon_inv_logic_operand): Likewise.
411         * config/arm/arm.md (define_split for logical_binary_operator): 
412         Disable for NEON registers.
413         (anddi3): Add new define_expand, and rename the insn.  Disable
414         this insn for NEON, where anddi3_neon now applies.
415         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
416         (iordi3): As for anddi3.
417         (xordi3): Likewise.
418         * config/arm/neon.ml (Vand): Split DImode variants and mark them
419         as No_op to disable testing for exact instruction match.
420         (Vorr): Likewise.
421         (Veor): Likewise.
422         (Vbic): Likewise.
423         (Vorn): Likewise.
424         * config/arm/arm_neon.h: Regenerated.
425         * doc/arm-neon-intrinsics.texi: Regenerated.
426
427 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
428
429         * expr.h (emit_stack_probe): Declare.
430         * explow.c (emit_stack_probe): Make global.
431         (anti_adjust_stack_and_probe): Fix comments.
432         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
433         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
434         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
435         * config/sparc/sparc.c: Include except.h.
436         (sparc_emit_probe_stack_range): New function.
437         (output_probe_stack_range): Likewise.
438         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
439         built-in stack checking is enabled.
440         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
441         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
442         (probe_stack_range): New insn.
443
444 2010-07-02  Richard Guenther  <rguenther@suse.de>
445
446         PR target/43958
447         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
448         for argument alignment.
449
450 2010-07-02  Jan Hubicka  <jh@suse.cz>
451
452         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
453         walk backwards from entry_bb to check only those basic block of header
454         that might lead to execution of split part.
455         (consider_split) ... here.
456         (find_return_bb): Allow assignment in return BB.
457         (find_retval): New.
458         (split_function): Fix name of cloned function; take care of updating
459         return value in return_bb containing move.
460
461 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
462
463         PR target/44771
464         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
465         used variable insn.
466
467 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
468
469         * implicit-zee.c (combine_reaching_defs): Fix long lines.
470         (is_set_with_extension_DI): Delete.
471         (struct zero_extend_info): New structure.
472         (add_removable_zero_extend): New function.
473         (find_removable_zero_extends): Use note_stores to find SETs.
474         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
475
476 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
477
478         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
479         is_miss_rate_acceptable. Pull total_positions computation
480         out of the loops.  Early return if miss_positions exceeds
481         the acceptable threshold.
482         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
483         is_miss_rate_acceptable after renaming of compute_miss_rate.
484
485 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
486
487         PR middle-end/44576
488         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
489         of 1000) for miss rate if the address diference is greater than or
490         equal to the cache line size (the two reference will never hit the
491         same cache line).
492
493 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
494
495         PR target/42835
496         * config/arm/arm-modes.def (CC_NOTB): New mode.
497         * config/arm/arm.c (get_arm_condition_code): Handle it.
498         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
499         * config/arm/arm.md (subsi3_compare0_c): New pattern.
500         (compare_scc): Now a define_and_split.  Add a number of extra
501         splitters before it.
502
503         PR target/42172
504         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
505         and ZERO_EXTEND.
506         (arm_rtx_costs_1): Likewise.
507         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
508         * config/arm/arm.md (is_arch6): New attribute.
509         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
510         extendqisi2): Tighten the code somewhat, avoiding invalid
511         RTL to occur in the expander patterns.
512         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
513         (thumb1_zero_extendhisi2_v6): Delete.
514         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
515         (thumb1_extendhisi2_v6): Delete.
516         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
517         (thumb1_extendqisi2_v6): Delete.
518         (zero_extendhisi2 for register input splitter): New.
519         (zero_extendqisi2 for register input splitter): New.
520         (thumb1_extendhisi2 for register input splitter): New.
521         (extendhisi2 for register input splitter): New.
522         (extendqisi2 for register input splitter): New.
523         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
524         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
525         and add support for a register alternative requiring a split.
526         (thumb1_zero_extendqisi2): Likewise.
527         (arm_zero_extendqisi2): Likewise.
528         (arm_extendhisi2): Likewise.
529         (arm_extendqisi2): Likewise.
530
531 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
532
533         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
534         instead of an unspec.
535         (neon_expand_vector_init): Likewise.
536         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
537         (UNSPEC_VDUP_LANE): Delete.
538         (UNSPEC VDUP_N): Delete.
539         (UNSPEC_VGET_HIGH): Delete.
540         (UNSPEC_VGET_LANE): Delete.
541         (UNSPEC_VGET_LOW): Delete.
542         (UNSPEC_VMVN): Delete.
543         (UNSPEC_VSET_LANE): Delete.
544         (V_double_vector_mode): New.
545         (vec_set<mode>_internal): Make code emitted match that for the
546         corresponding intrinsics.
547         (vec_setv2di_internal): Likewise.
548         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
549         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
550         (neon_vset_lane<mode>): Combine double and quad patterns and
551         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
552         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
553         (neon_vdup_n<mode>): Rewrite RTL without unspec.
554         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
555         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
556         with neon_vdup_lanev2di, adjusting the pattern from the latter
557         to be predicable for consistency.
558         (neon_vdup_lane<mode>_internal): New.
559         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
560         to avoid using an unspec.
561         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
562         (neon_vdup_lanev2di): Turn into a define_expand.
563         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
564         (neon_vget_high<mode>): Replace with....
565         (neon_vget_highv16qi): New pattern using canonical RTL.
566         (neon_vget_highv8hi): Likewise.
567         (neon_vget_highv4si): Likewise.
568         (neon_vget_highv4sf): Likewise.
569         (neon_vget_highv2di): Likewise.
570         (neon_vget_low<mode>): Replace with....
571         (neon_vget_lowv16qi): New pattern using canonical RTL.
572         (neon_vget_lowv8hi): Likewise.
573         (neon_vget_lowv4si): Likewise.
574         (neon_vget_lowv4sf): Likewise.
575         (neon_vget_lowv2di): Likewise.
576
577         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
578         test for this emitting vmov.
579         (Vset_lane): Likewise.
580         (Vdup_n): Likewise.
581         (Vmov_n): Likewise.
582
583         * doc/arm-neon-intrinsics.texi: Regenerated.
584
585 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
586
587         * config/arm/neon.md (vec_extractv2di): Correct error in register
588         numbering to reconcile with neon_vget_lanev2di.
589
590 2010-07-02  Richard Guenther  <rguenther@suse.de>
591
592         * tree-ssa-structalias.c (pt_solution_set_var): New function.
593         * tree-ssa-alias.h (pt_solution_set_var): Declare.
594         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
595         points-to information.
596
597 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
598
599         * config/s390/s390.c (override_options): Adopt prefetching
600         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
601
602 2010-07-02  Jan Hubicka  <jh@suse.cz>
603
604         * df-problems.c (df_kill_notes): Do not collect dead  notes.
605         (df_set_note): Just call add_reg_note.
606         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
607         df_create_unused_note): Do not deal with lists of old notes.
608         (df_note_bb_compute): Likewise.
609
610 2010-07-02  Richard Guenther  <rguenther@suse.de>
611
612         * tree-ssa-structalias.c (find_func_aliases): Handle
613         pointer alignment via BIT_AND_EXPR.
614         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
615
616 2010-07-02  Richard Guenther  <rguenther@suse.de>
617
618         * tree-data-ref.c (initialize_data_dependence_relation): Handle
619         mismatching number of dimensions properly.
620
621 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
622
623         PR target/44707
624         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
625         (lo_sum (high ...) ...) patterns generated by earlier passes.
626
627 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
628
629         * doc/install.texi (Prerequisites): Document Perl requirement on
630         Solaris 2.
631         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
632
633 2010-07-02  Richard Guenther  <rguenther@suse.de>
634
635         PR middle-end/44777
636         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
637
638 2010-07-02  Jan Hubicka  <jh@suse.cz>
639
640         PR middle-end/44706
641         * predict.c (predict_paths_for_bb): Handle case when control dependence
642         BB has only abnormal edges.
643
644 2010-07-02  Richard Guenther  <rguenther@suse.de>
645
646         PR tree-optimization/44748
647         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
648         the embedded conversion in MEM_REFs.
649
650 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
651
652         * reload.c: Include toplev.h.
653         * recog.c:  Likewise.
654         * Makefile.in: Adjust dependencies.
655
656 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
657
658         PR debug/44694
659         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
660         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
661
662 2010-07-01  Richard Guenther  <rguenther@suse.de>
663
664         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
665         types for offsets.
666
667 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
668
669         PR target/44732
670         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
671
672         * config/ia64/ia64.c (ia64_register_move_cost): Fix argument types.
673
674 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
675
676         PR target/44727
677         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
678         Make sure operand 0 dies.
679
680 2010-07-01  Richard Guenther  <rguenther@suse.de>
681
682         PR middle-end/42834
683         PR middle-end/44468
684         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
685         * doc/generic.texi (References to storage): Document MEM_REF.
686         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
687         (print_call_name): Likewise.
688         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
689         (build_simple_mem_ref_loc): New function.
690         (mem_ref_offset): Likewise.
691         * tree.h (build_simple_mem_ref_loc): Declare.
692         (build_simple_mem_ref): Define.
693         (mem_ref_offset): Declare.
694         * fold-const.c: Include tree-flow.h.
695         (operand_equal_p): Handle MEM_REF.
696         (build_fold_addr_expr_with_type_loc): Likewise.
697         (fold_comparison): Likewise.
698         (fold_unary_loc): Fold
699         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
700         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
701         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
702         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
703         (ptr_deref_may_alias_ref_p_1): Likewise.
704         (ao_ref_base_alias_set): Properly differentiate base object for
705         offset and TBAA.
706         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
707         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
708         (indirect_refs_may_alias_p): Likewise.
709         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
710         chasing code.
711         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
712         (call_may_clobber_ref_p_1): Likewise.
713         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
714         * expr.c (expand_assignment): Handle MEM_REF.
715         (store_expr): Handle MEM_REFs from STRING_CSTs.
716         (store_field): If expanding a MEM_REF of a non-addressable
717         decl use bitfield operations.
718         (get_inner_reference): Handle MEM_REF.
719         (expand_expr_addr_expr_1): Likewise.
720         (expand_expr_real_1): Likewise.
721         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
722         * alias.c (ao_ref_from_mem): Handle MEM_REF.
723         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
724         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
725         (dr_analyze_indices): Likewise.
726         (dr_analyze_alias): Likewise.
727         (object_address_invariant_in_loop_p): Likewise.
728         * gimplify.c (mark_addressable): Handle MEM_REF.
729         (gimplify_cond_expr): Build MEM_REFs.
730         (gimplify_modify_expr_to_memcpy): Likewise.
731         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
732         (gimple_fold_indirect_ref): Adjust.
733         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
734         * tree.def (MEM_REF): New tree code.
735         * tree-dfa.c: Include toplev.h.
736         (get_ref_base_and_extent): Handle MEM_REF.
737         (get_addr_base_and_unit_offset): New function.
738         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
739         * gimple-fold.c (may_propagate_address_into_dereference): Handle
740         MEM_REF.
741         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
742         accesses if the array has just one dimension.  Remove always true
743         parameter.  Do not require type compatibility here.
744         (maybe_fold_offset_to_component_ref): Remove.
745         (maybe_fold_stmt_indirect): Remove.
746         (maybe_fold_reference): Remove INDIRECT_REF handling.
747         Fold back to non-MEM_REF.
748         (maybe_fold_offset_to_address): Simplify.  Deal with type
749         mismatches here.
750         (maybe_fold_reference): Likewise.
751         (maybe_fold_stmt_addition): Likewise.  Also handle
752         &ARRAY + I in addition to &ARRAY[0] + I.
753         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
754         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
755         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
756         * tree-ssa.c (useless_type_conversion_p): Make most pointer
757         conversions useless.
758         (warn_uninitialized_var): Handle MEM_REF.
759         (maybe_rewrite_mem_ref_base): New function.
760         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
761         to SSA form.
762         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
763         INDIRECT_REF handling.
764         (copy_tree_body_r): Handle MEM_REF.
765         * gimple.c (is_gimple_addressable): Adjust.
766         (is_gimple_address): Likewise.
767         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
768         invariant base are invariant.
769         (is_gimple_min_lval): Adjust.
770         (is_gimple_mem_ref_addr): New function.
771         (get_base_address): Handle MEM_REF.
772         (count_ptr_derefs): Likewise.
773         (get_base_loadstore): Likewise.
774         * gimple.h (is_gimple_mem_ref_addr): Declare.
775         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
776         * tree-cfg.c (verify_address): New function, split out from ...
777         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
778         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
779         INDIRECT_REFs.
780         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
781         INDIRECT_REF.  Allow conversions.
782         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
783         a register does not change its size.
784         (verify_types_in_gimple_reference): Verify MEM_REF.
785         (verify_gimple_assign_single): Disallow INDIRECT_REF.
786         Handle MEM_REF.
787         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
788         New.
789         (mark_address_taken): Handle MEM_REF.
790         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
791         (get_asm_expr_operands): Pass opf_not_non_addressable.
792         (get_expr_operands): Handle opf_[not_]non_addressable.
793         Handle MEM_REF.  Remove INDIRECT_REF handling.
794         * tree-vrp.c: (check_array_ref): Handle MEM_REF.
795         (search_for_addr_array): Likewise.
796         (check_array_bounds): Likewise.
797         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
798         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
799         (ref_always_accessed_p): Likewise.
800         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
801         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
802         Handle MEM_REF.
803         * cgraphbuild.c (mark_load): Properly check for NULL result
804         from get_base_address.
805         (mark_store): Likewise.
806         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
807         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
808         handling for MEM_REF.
809         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
810         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
811         * builtins.c (stabilize_va_list_loc): Use the function ABI
812         valist type if we couldn't canonicalize the argument type.
813         Always dereference with the canonical va-list type.
814         (maybe_emit_free_warning): Handle MEM_REF.
815         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
816         memmove to memcpy.
817         * builtins.c (fold_builtin_memory_op): Use ref-all types
818         for all memcpy foldings.
819         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
820         (build_outer_var_ref): Likewise.
821         (scan_omp_1_op): Likewise.
822         (lower_rec_input_clauses): Likewise.
823         (lower_lastprivate_clauses): Likewise.
824         (lower_reduction_clauses): Likewise.
825         (lower_copyprivate_clauses): Likewise.
826         (expand_omp_atomic_pipeline): Likewise.
827         (expand_omp_atomic_mutex): Likewise.
828         (create_task_copyfn): Likewise.
829         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
830         Remove old union trick.  Initialize constant offsets.
831         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
832         INDIRECT_REF.  Init base_alias_set properly.
833         (vn_reference_lookup_3): Replace INDIRECT_REF handling with
834         MEM_REF.
835         (vn_reference_fold_indirect): Adjust for MEM_REFs.
836         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
837         for ARRAY_REFs.
838         (may_insert): Remove.
839         (visit_reference_op_load): Do not test may_insert.
840         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
841         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
842         a field to store the constant offset this op applies.
843         (run_scc_vn): Adjust prototype.
844         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
845         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
846         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
847         bother about volatile qualifiers on pointers.
848         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
849         * tree-ssa-loop-ivopts.c
850         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust
851         for MEM_REF.
852         (strip_offset_1): Likewise.
853         (find_interesting_uses_address): Replace INDIRECT_REF handling with
854         MEM_REF handling.
855         (get_computation_cost_at): Likewise.
856         * ipa-pure-const.c (check_op): Handle MEM_REF.
857         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
858         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
859         and constants.
860         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
861         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
862         (eliminate_local_variables_1): Likewise.
863         (create_call_for_reduction_1): Likewise.
864         (create_loads_for_reductions): Likewise.
865         (create_loads_and_stores_for_name): Likewise.
866         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
867         (ssa_accessed_in_tree): Handle MEM_REF.
868         (ssa_accessed_in_assign_rhs): Likewise.
869         (update_type_size): Likewise.
870         (analyze_accesses_for_call_stmt): Likewise.
871         (analyze_accesses_for_assign_stmt): Likewise.
872         (transform_access_sites): Likewise.
873         (transform_allocation_sites): Likewise.
874         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
875         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
876         not handle INDIRECT_REF.
877         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
878         (cond_store_replacement): Likewise.
879         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
880         MEM_REF, no not handle INDIRECT_REFs.
881         (insert_into_preds_of_block): Properly initialize avail.
882         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
883         for ARRAY_REFs.  Properly handle reference lookups that
884         require a bit re-interpretation.
885         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
886         * tree-sra.c
887         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
888         (build_ref_for_offset_1): Remove.
889         (build_ref_for_offset): Build MEM_REFs.
890         (gate_intra_sra): Disable for now.
891         (sra_ipa_modify_expr): Handle MEM_REF.
892         (ipa_early_sra_gate): Disable for now.
893         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
894         MEM_REF handling.
895         (disqualify_base_of_expr): Likewise.
896         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
897         MEM_REF handling.
898         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
899         Use mem_ref_offset.  Remove bogus folding.
900         (build_access_from_expr_1): Properly handle MEM_REF for
901         non IPA-SRA.
902         (make_fancy_name_1): Add support for MEM_REF.
903         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
904         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
905         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
906         (compute_complex_ancestor_jump_func): Likewise.
907         (ipa_analyze_virtual_call_uses): Likewise.
908         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
909         INDIRECT_REF folding with more generalized MEM_REF folding.
910         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
911         (forward_propagate_addr_into_variable_array_index): Also handle
912         &ARRAY + I in addition to &ARRAY[0] + I.
913         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
914         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
915         creates assignments with overlap.
916         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
917         (get_frame_field): Likewise.
918         (get_nonlocal_debug_decl): Likewise.
919         (convert_nonlocal_reference_op): Likewise.
920         (struct nesting_info): Add mem_refs pointer-set.
921         (create_nesting_tree): Allocate it.
922         (convert_local_reference_op): Insert to be folded mem-refs.
923         (fold_mem_refs): New function.
924         (finalize_nesting_tree_1): Perform defered folding of mem-refs 
925         (free_nesting_tree): Free the pointer-set.
926         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
927         (vectorizable_load): Likewise.
928         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
929         (propagate_with_phi): Likewise.
930         * tree-object-size.c (addr_object_size): Handle MEM_REFs
931         instead of INDIRECT_REFs.
932         (compute_object_offset): Handle MEM_REF.
933         (plus_stmt_object_size): Handle MEM_REF.
934         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
935         for &MEM_REF.
936         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
937         (symbol_marked_for_renaming): Likewise.
938         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
939         (fold-const.o): Add $(TREE_FLOW_H).
940         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
941         (find_func_clobbers): Likewise.
942         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
943         (decompose_access): Likewise.
944         (replace_field_acc): Likewise.
945         (replace_field_access_stmt): Likewise.
946         (insert_new_var_in_stmt): Likewise.
947         (get_stmt_accesses): Likewise.
948         (reorg_structs_drive): Disable.
949         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
950         (ix86_canonical_va_list_type): Likewise.
951
952 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
953
954         PR other/44566
955         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
956         * target.def (struct gcc_target): Replace enum reg_class with
957         reg_class_t in hook argument / return types.
958         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
959         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
960         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
961         * targhooks.h (default_branch_target_register_class): Likewise.
962         (default_ira_cover_classes, default_secondary_reload): Likewise.
963         (default_memory_move_cost, default_register_move_cost): Likewise.
964         * targhooks.c (default_branch_target_register_class): Likewise.
965         (default_ira_cover_classes, default_secondary_reload): Likewise.
966         (default_memory_move_cost, default_register_move_cost): Likewise.
967         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
968         * bt-load.c (branch_target_load_optimize): Likewise.
969         * ira.c (setup_cover_and_important_classes): Likewise.
970         * ira-costs.c (copy_cost): Likewise.
971         * reload1.c (emit_input_reload_insns): Likewise.
972         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
973         * config/frv/frv.c (frv_secondary_reload): Likewise.
974         * config/s390/s390.c (s390_secondary_reload): Likewise.
975         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
976         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
977         (ix86_register_move_cost): Likewise.
978         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
979         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
980         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
981         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
982         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
983         (rs6000_ira_cover_classes): Likewise.
984         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
985         * config/picochip/picochip-protos.h (picochip_secondary_reload):
986         Likewise.
987         * config/pa/pa.c (pa_secondary_reload): Likewise.
988         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
989         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
990         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
991         * doc/tm.texi: Regenerate.
992
993 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
994
995         PR bootstrrap/44726
996         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
997         use.
998         (build_alias_set_optimal_p): Likewise.
999         (build_base_obj_set_for_drs): Likewise.
1000
1001 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
1002
1003         * target.def: Remove comment about licensing problems of function
1004         declarations.
1005
1006         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
1007         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
1008         * doc/tm.texi: Regenerate.
1009
1010         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
1011         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
1012
1013         * target.def (enum_va_list_p): Use DEFHOOK.
1014         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
1015         Rename ptype to ptree.
1016         * doc/tm.texi: Regenerate.
1017
1018         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
1019         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
1020         * doc/tm.texi: Regenerate.
1021
1022         * target.def (memory_move_cost): Use DEFHOOK.
1023         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
1024         Rename regclass AKA class to rclass.
1025         * doc/tm.texi: Regenerate.
1026
1027         * target.def (pragma_parse): Use DEFHOOK.
1028         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
1029         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
1030         * doc/tm.texi: Regenerate.
1031
1032         * target.def (pass_by_reference): Use DEFHOOK.
1033         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
1034         * doc/tm.texi: Regenerate.
1035
1036         * target.def (resolve_overloaded_builtin): Rename params to arglist.
1037         Use DEFHOOK.
1038         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
1039         * doc/tm.texi: Regenerate.
1040
1041         * target.def (return_pops_args): Use DEFHOOK.
1042         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
1043         Rename stack-size to size.
1044         * doc/tm.texi: Regenerate.
1045
1046         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
1047         last-sched_cycle to last_clock, cur_cycle to clock.
1048         * doc/tm.texi.in: Use @hook.
1049         * doc/tm.texi: Regenerate.
1050
1051         * target.def (print_operand, print_operand_address): Update comment.
1052         (print_operand_punct_valid_p): Likewise.
1053
1054 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1055
1056         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
1057         to rtl.h.
1058         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
1059         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
1060         here.
1061         * rtl-error.h: New.
1062         * regrename.c: Do not include toplev.h. Include rtl-error.h.
1063         * rtl-error.c: Likewise.
1064         * reload.c: Likewise.
1065         * recog.c:  Likewise.
1066         * sel-sched.c: Likewise.
1067         * function.c: Likewise.
1068         * reg-stack.c: Likewise.
1069         * cfgrtl.c: Likewise.
1070         * reload1.c: Likewise.
1071         * final.c: Include rtl-error.
1072         * Makefile.in: Adjust dependencies.
1073
1074 2010-06-30  Jan Hubicka  <jh@suse.cz>
1075
1076         PR middle-end/PR44706
1077         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
1078         to return the value.
1079
1080 2010-06-30  Michael Matz  <matz@suse.de>
1081
1082         PR bootstrap/44699
1083         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
1084         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
1085         a gimple reg, attach the original VDEF to the last store in the
1086         sequence.
1087
1088 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
1089
1090         PR other/44034
1091         * config/darwin.c (darwin_override_options): Use renamed
1092         targetm.asm_out.emit_unwind_label.
1093
1094 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
1095
1096         PR tree-optimization/39799
1097         * tree-inline.c (remap_ssa_name): Initialize variable only if
1098         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1099
1100 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
1101
1102         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
1103
1104 2010-06-30  Richard Guenther  <rguenther@suse.de>
1105
1106         PR target/44722
1107         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
1108         against oscillation with reverse peephole2.
1109
1110 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
1111
1112         PR target/44721
1113         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
1114         Fix last commit.
1115
1116 2010-06-30  Nick Clifton  <nickc@redhat.com>
1117
1118         * config/rx/rx-modes.def: New file.
1119         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
1120         (CC_REGNUM): Define.
1121         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
1122         register.
1123         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
1124         (SELECT_CC_MODE): Define.
1125         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
1126         (reg:CC CC_REG) instead of (cc0).
1127         (attr "cc"): Delete.
1128         (cbranchsi4): Do not split compare and branch here. Instead move
1129         it to...
1130         (cbranchsi4_<code>): ... here.  New patterns.
1131         (cmpsi): Call rx-compare_redundant to find out if it is necessary
1132         to emit the compare instruction.
1133         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
1134         cc_status flags.
1135         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
1136         FIRST_PSEUDO_REGNUM.
1137         (rx_expand_prologue, rx_expand_epilogue): Likewise.
1138         (rx_notice_update_cc): Delete.
1139         (rx_cc_modes_compatible): New function.
1140         (flags_needed_for_conditional): New function.
1141         (flags_from_mode): New function.
1142         (rx_compare_redundant): New function - scans backwards through
1143         insn list to find out if condition flags are already set
1144         correctly.
1145         (TARGET_CC_MODES_COMPATIBLE): Define.
1146         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
1147
1148         * config/rx/rx.h (BRANCH_COST): Define.
1149         (REGISTER_MOVE_COST): Define.
1150         * config/rx/predicates (rx_source_operand): Allow all constant
1151         types.
1152         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
1153         (tstsi4): New pattern.
1154         * config/rx/rx.c (rx_memory_move_cost): Define.
1155         (TARGET_MEMORY_MOVE_COST): Define.
1156
1157 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1158
1159         * tree.h (block_may_fallthru): Declare here.
1160         * tree-flow.h (block_may_fallthru): Do not declare here.
1161         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
1162         bitmap.h
1163         * Makefile.in (c-typeck.o): Update dependencies.
1164
1165 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
1166
1167         PR debug/44694
1168         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
1169         * cselib.c (cfa_base_preserved_regno): New static variable.
1170         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
1171         of REGNO (cfa_base_preserved_val->locs->loc).
1172         (cselib_preserve_cfa_base_value): Add regno argument, set
1173         cfa_base_preserved_regno to it.
1174         (cselib_invalidate_regno): Allow removal of registers other than
1175         cfa_base_preserved_regno from cfa_base_preserved_val.
1176         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
1177         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
1178         of MEM addresses, if not on LHS.
1179         (reverse_op): Don't add reverse ops for cfa_base_rtx.
1180         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
1181
1182 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
1183
1184         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
1185         static variables.
1186         (peep2_buf_position): New static function.
1187         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
1188         peephole2_optimize): Use it.
1189         (peep2_attempt, peep2_update_life): New static functions, broken out
1190         of peephole2_optimize.
1191         (peep2_fill_buffer): New static function.
1192         (peephole2_optimize): Change the main loop to try to fill the buffer
1193         with the maximum number of insns before matching them against
1194         peepholes.  Use a forward scan.  Remove special case for targets with
1195         conditional execution.
1196         * genrecog.c (change_state): Delete dead code.
1197         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
1198         Rewrite so as not to expect the second insn to have had a peephole
1199         applied yet.
1200
1201 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1202
1203         * genhooks.c (emit_findices): Cast field precision to int.
1204         (emit_documentation): Likewise.
1205
1206 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR tree-optimization/43801
1209         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
1210         if old_decl was DECL_ONE_ONLY.
1211
1212         PR debug/44668
1213         * dwarf2out.c (add_accessibility_attribute): New function.
1214         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
1215         instead of adding DW_AT_accessibility manually.
1216         (gen_enumeration_type_die, gen_struct_or_union_type_die,
1217         gen_typedef_die): Use it.
1218
1219 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
1220
1221         * vmsdbgout.c (full_name): Just output the file name if not native.
1222
1223 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
1224
1225         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
1226         (funcnam_table): New static table.
1227         (funcnum_table): New static table.
1228         (write_rtnbeg): Write value saved in funcnum_table.
1229         (write_rtnend): Write value saved in funcnum_table.
1230         (vmsdbgout_begin_function): Save current function info in
1231         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
1232         (vmsdbgout_finish): Iterate over funcnum_table.
1233
1234 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
1235
1236         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
1237         (vmsdbgout_type_decl): Declare
1238         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
1239         (FUNC_EPILOGUE_LABEL): New macro
1240         (vmsdbgout_begin_epilogue): New function.
1241         (vmsdbgout_type_decl): New function.
1242
1243 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
1244
1245         * vmsdbg.h: Update copyright.
1246
1247 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
1248
1249         * vmsdbg.h (DST_K_TBG): New DST constant.
1250         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
1251         (write_modbeg): Cast module_language to avoid warning.
1252         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
1253
1254 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
1255
1256         PR other/44034
1257         * target.def, doc/tm.texi.in, genhooks.c: New files.
1258         * target.h: Instead of defining individual hook members,
1259         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
1260         include target.def.
1261         * target-def.h: Instead of defining individual hook initializers,
1262         include target-hooks-def.h.
1263         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
1264         targetm.live_on_entry -> targetm.extra_live_on_entry
1265         targetm.sched.md_finish ->targetm.sched.finish
1266         targetm.sched.md_init -> targetm.sched.init
1267         targetm.sched.md_init_global -> targetm.sched.init_global
1268         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
1269         targetm.asm_out.except_table_label ->
1270           targetm.asm_out.emit_except_table_label
1271         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
1272         targetm.target_help -> targetm.help
1273         targetm.vectorize.builtin_support_vector_misalignment ->
1274           targetm.vectorize.support_vector_misalignment
1275         targetm.file_start_app_off -> targetm.asm_file_start_app_off
1276         targetm.file_start_file_directive ->
1277          targetm.asm_file_start_file_directive
1278         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
1279         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
1280         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
1281         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
1282           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
1283         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
1284           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
1285         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
1286         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
1287         * Makefile.in (TARGET_H): Depend on target.def.
1288         (TARGET_DEF_H): Depend on target-hooks-def.h.
1289         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
1290         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
1291         * doc/tm.texi: Regenerate.
1292
1293         * Makefile.in (s-tm-texi): Remove stray tab / rule.
1294
1295         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
1296         (targetm.sched.init): Likewise.
1297
1298 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1299
1300         PR bootstrap/44713
1301         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
1302         (function_arg_advance_32): Const-ify TYPE parameter.
1303         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
1304         (ix86_function_arg_advance): Change type of NAMED to bool.
1305         (function_arg_32): Const-ify CUM and TYPE parameters.
1306         (function_arg_64): Likewise.  Change type of NAMED to bool.
1307         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
1308         to bool.
1309         (ix86_function_arg): Change type of NAMED to bool.
1310         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
1311         last argument as a bool.
1312
1313 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
1314
1315         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
1316         (OVERRIDE_OPTIONS): Add note of obsolescence.
1317         Replace references with references to TARGET_OPTION_OVERRIDE.
1318         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
1319          the macro).
1320         * targhooks.c (default_target_option_override): New function.
1321         * targhooks.h (default_target_option_override): Declare.
1322         * target.h (struct gcc_target): Add override member to
1323         target_option member.
1324         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
1325         targetm.target_option.override call.
1326         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
1327         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
1328
1329 2010-06-29  Jan Hubicka  <jh@suse.cz>
1330
1331         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
1332
1333 2010-06-29  Jan Hubicka  <jh@suse.cz>
1334
1335         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
1336         unreachable.
1337         (rebuild_frequencies): New function.
1338         * predict.h (rebuild_frequencies): Declare.
1339         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
1340         entry block and edge reaching new_entry.
1341         (tree_function_versioning): When doing partial cloning, rebuild frequencies
1342         when done.
1343         * passes.c (execute_function_todo): Use rebild_frequencies.
1344
1345 2010-06-29  Richard Guenther  <rguenther@suse.de>
1346
1347         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
1348         * tree-flow.h (enum noalias_state): Remove.
1349         (struct var_ann_d): Remove noalias_state member.
1350
1351 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
1352
1353         PR target/43902
1354         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
1355         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
1356         (maddhidi4): Likewise.
1357
1358         Revert parts of the change for PR25130.
1359         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1360         MEM_ALIAS_SET.
1361
1362 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1363
1364         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
1365         targetm.calls.function_incoming_arg, and
1366         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
1367         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
1368         * target.h (struct gcc_target): Add function_arg_advance,
1369         function_arg, and function_incoming_arg fields.
1370         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
1371         (TARGET_FUNCTION_INCOMING_ARG): Define.
1372         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
1373         and TARGET_FUNCTION_INCOMING_ARG.
1374         * targhooks.h (default_function_arg_advance): Declare.
1375         (default_function_arg, default_function_incoming_arg): Declare.
1376         * targhooks.c (default_function_arg_advance): New function.
1377         (default_function_arg, default_function_incoming_arg): New function.
1378         * config/i386/i386.c (function_arg_advance): Rename to...
1379         (ix86_function_arg_advance): ...this.  Make static.
1380         (function_arg): Rename to...
1381         (ix86_function_arg): ...this.  Make static.
1382         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1383         (TARGET_FUNCTION_ARG): Define.
1384         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
1385         (FUNCTION_ARG): Delete.
1386         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
1387         (function_arg): Delete prototype.
1388
1389 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1390
1391         * reginfo.c (init_reg_sets_1): Adjust comments.
1392         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
1393         * calls.c (prepare_call_address): Likewise.
1394         (emit_call_1): Use targetm.calls.return_pops_args.
1395         (expand_call): Likewise.
1396         * function.c (assign_parms): Likewise.
1397         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
1398         * target.h (struct gcc_target) [struct calls]: Add
1399         return_pops_args field.
1400         * targhooks.h (default_return_pops_args): Declare.
1401         * targhooks.c (default_return_pops_args): Define.
1402         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
1403         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
1404         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
1405         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
1406         documentation.
1407         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
1408         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
1409         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
1410         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
1411         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
1412         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
1413         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
1414         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
1415         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
1416         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
1417         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
1418         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
1419         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
1420         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
1421         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
1422         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
1423         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
1424         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
1425         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
1426         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
1427         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
1428         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
1429         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
1430         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
1431         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
1432         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
1433         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
1434         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
1435         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
1436         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
1437         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
1438         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
1439         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
1440         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
1441         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
1442         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
1443         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
1444         * config/i386/i386.c (ix86_return_pops_args): Make static.
1445         Constify arguments.
1446         (TARGET_RETURN_POPS_ARGS): Define.
1447         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
1448         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
1449         (TARGET_RETURN_POPS_ARGS): Define.
1450         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
1451         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
1452         (TARGET_RETURN_POPS_ARGS): Define.
1453
1454 2010-06-29  Richard Guenther  <rguenther@suse.de>
1455
1456         PR middle-end/44667
1457         * tree-inline.c (initialize_inlined_parameters): Make sure
1458         to remap the inlined parameter variable substitutions types.
1459
1460 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1461
1462         PR rtl-optimization/44659
1463         * combine.c (make_compound_operation) <SUBREG>: Do not return the
1464         result of force_to_mode if it partially re-expanded the compound.
1465
1466 2010-06-28  Jan Hubicka  <jh@suse.cz>
1467
1468         PR middle-end/44671
1469         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
1470         RESULT_DECL.
1471
1472 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
1473
1474         * double-int.h (force_fit_type_double): Remove declaration.
1475         * double-int.c (force_fit_type_double): Move to tree.c.
1476         * tree.h (force_fit_type_double): Declare.
1477         * tree.h (force_fit_type_double): Moved from double-int.c. Use
1478         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
1479         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
1480         * convert.c (convert_to_pointer): Adjust call to
1481         force_fit_type_double.
1482         * tree-vrp.c (extract_range_from_assert,
1483         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
1484         * fold-const.c: Update comment.
1485         (int_const_binop, fold_convert_const_int_from_int,
1486         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
1487         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
1488         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
1489         round_up_loc): Adjust call to force_fit_type_double.
1490
1491 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1492
1493         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
1494
1495 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1496
1497         * tree-sra.c (convert_callers): New parameter, change fndecls of
1498         recursive calls.
1499         (modify_function): Pass the old decl to convert_callers.
1500
1501 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1502
1503         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
1504         ipa_check_create_node_params and ipa_initialize_node_params with
1505         checking asserts they are not necessary.
1506
1507 2010-06-28  Jan Hubicka  <jh@suse.cz>
1508
1509         PR tree-optimization/44687
1510         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
1511
1512 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1513
1514         PR c++/44535
1515         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
1516         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
1517         instead of BINFO_BASE_BINFO.
1518
1519 2010-06-28  Michael Matz  <matz@suse.de>
1520
1521         PR middle-end/44592
1522         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
1523         proper VDEF chain for intermediate stores in the sequence.
1524
1525 2010-06-28  Jan Hubicka  <jh@suse.cz>
1526
1527         PR tree-optimization/44357
1528         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
1529         functions.
1530
1531 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1532
1533         * config.gcc (powerpc*-*-*): Handle titan.
1534         * config/rs6000/rs6000.c (titan_cost): New costs.
1535         (rs6000_override_options): Add "titan" to processor_target_table.
1536         Add Titan to branch alignment logic.
1537         Correctly set rs6000_cost for titan.
1538         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
1539         * config/rs6000/titan.md: New file.
1540         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
1541         
1542 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1543
1544         * tree-browser.c (TB_history_stack): Convert to a VEC.
1545         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
1546         (TB_history_prev): Likewise.
1547
1548 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1549
1550         * vec.h (vec_heap_free): Add parentheses around free.
1551
1552 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1553
1554         * system.h: Poison GCC_EXCEPT_H for front-end files.
1555
1556         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
1557         langhook.
1558         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
1559         Define to NULL by default.
1560         * except.h: Define GCC_EXCEPT_H.
1561         (doing_eh): Remove prototype.
1562         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
1563         (lang_protect_cleanup_actions): Remove.
1564         * except.c (lang_protect_cleanup_actions): Remove.
1565         (doing_eh): Remove.
1566         (gen_eh_region): Don't check doing_eh here.
1567         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
1568         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
1569         instead of lang_protect_cleanup_actions.
1570         * omp-low.c (maybe_catch_exception): Likewise.
1571         * Makefile.in: Update dependencies.
1572
1573 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
1574
1575         * cgraph.h (struct varpool_node): new used_from_object_file flag.
1576         (struct cgraph_local_info): new used_from_object_file flag.
1577         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
1578         (cgraph_clone_node): initialize used_from_object_file.
1579         (cgraph_create_virtual_clone): initialize used_from_object_file.
1580         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
1581         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
1582         when compiling with -fwhole-program.
1583         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
1584         internal resolver.
1585         * ipa.c (function_and_variable_visibility): Set externally_visible
1586         flag of varpool_node if used_from_object_file flag is set.
1587         (cgraph_externally_visible_p): check used_from_object_file flag.
1588         * doc/invoke.texi (-fwhole-program option): Change description of
1589         externally_visible attribute accordingly.
1590         * doc/extend.texi (externally_visible): Ditto.
1591
1592 2010-06-27  Jan Hubicka  <jh@suse.cz>
1593
1594         * params.def (max-inline-insns-auto): Default to 40.
1595         * doc/invoke.texi (max-inline-insns-auto): Document the change.
1596
1597 2010-06-27  Jan Hubicka  <jh@suse.cz>
1598
1599         PR middle-end/44671
1600         PR middle-end/44686
1601         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
1602         signature change.
1603         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
1604         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
1605
1606 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
1607
1608         * target.h (struct gcc_target): Add register_move_cost field.
1609         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
1610         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
1611         * targhooks.c (default_register_move_cost): New function.
1612         * targhooks.h (default_register_move_cost): Declare function.
1613         * defaults.h (REGISTER_MOVE_COST): Delete.
1614         * ira-int.h (ira_register_move_cost): Update comment.
1615         * ira.c: (ira_register_move_cost): Update comment.
1616         * reload.h (register_move_cost): Declare.
1617         * reginfo.c (register_move_cost): New function.
1618         (move_cost): Update comment.
1619         (init_move_cost, memory_move_secondary_cost): Replace
1620         REGISTER_MOVE_COST with register_move_cost.
1621         * postreload.c (reload_cse_simplify_set): (Ditto.).
1622         * reload.c (find_valid_class, find_reloads): (Ditto.).
1623         * reload1.c (choose_reload_regs): (Ditto.).
1624         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
1625         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
1626         * doc/md.texi (can_create_pseudo_p): Update documentation.
1627
1628         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1629         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1630         * config/i386/i386.h (ix86_memory_move_cost): Make static.
1631         (TARGET_MEMORY_MOVE_COST): Define.
1632
1633         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
1634         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
1635         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
1636         (TARGET_MEMORY_MOVE_COST): Define.
1637
1638 2010-06-27  Richard Guenther  <rguenther@suse.de>
1639
1640         PR tree-optimization/44683
1641         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
1642         false edge from the inverted condition.
1643
1644 2010-06-27  Richard Guenther  <rguenther@suse.de>
1645
1646         PR middle-end/44684
1647         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
1648         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
1649         for register LHS.  Or non-store assignments.
1650
1651 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
1652
1653         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
1654         (sparc_emit_set_const64): Likewise.  Remove disabled code.
1655         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
1656         (sparc_emit_set_const64): Likewise.
1657
1658 2010-06-26  Catherine Moore  <clm@codesourcery.com>
1659
1660         * config/mips/mips.md (alu_type): New attribute.
1661         (type): Infer type from alu_type.
1662         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
1663         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
1664         *subsi3_extended, negsi2, negdi2, *low<mode>,
1665         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
1666         xor<mode>3, *nor<mode>3,
1667         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
1668         *zero_extendhi_truncqi):  Set alu_type instead of type.
1669
1670 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
1671
1672         * config/alpha/alpha.c (alpha_need_linkage): Adjust
1673         splay_tree_new_ggc call.
1674         (alpha_use_linkage): Likewise.
1675
1676 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
1677
1678         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
1679         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
1680         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
1681         (static_specs): Remove switches_need_spaces.
1682         (process_command, do_self_spec): Hardcode handling "-o" instead of
1683         checking switches_need_spaces.
1684         * system.h (SWITCHES_NEED_SPACES): Poison.
1685
1686 2010-06-26  Richard Guenther  <rguenther@suse.de>
1687
1688         PR tree-optimization/44393
1689         * tree-loop-distribution.c (generate_loops_for_partition): Fix
1690         stmt removal and VOP renaming.
1691         (generate_memset_zero): Remove redundant stmt updating.
1692         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
1693         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
1694
1695 2010-06-26  Jan Hubicka  <jh@suse.cz>
1696
1697         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
1698         edges comming from header are equivalent.
1699         (visit_bb): Handle PHIs correctly.
1700         * tree-inline.c (copy_phis_for_bb): Be able to copy
1701         PHI from entry edge.
1702         (copy_cfg_body): Produce edge from entry BB before copying
1703         PHIs.
1704
1705 2010-06-26  Richard Guenther  <rguenther@suse.de>
1706
1707         PR middle-end/44674
1708         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
1709         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
1710
1711 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
1712
1713         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
1714         add_infile, alloc_switch): New.
1715         (process_command): Remove variable lang_n_infiles.  Process
1716         options in a single pass.  Use new functions for allocating
1717         infiles and switches arrays.  Properly skip operands of
1718         -Xpreprocessor and -Xassembler.
1719
1720 2010-06-26  Jan Hubicka  <jh@suse.cz>
1721
1722         PR middle-end/44671
1723         * cgraphunit.c (cgraph_function_versioning): Remove wrong
1724         cgraph_make_decl_local call; fix typo copying RTL data.
1725
1726 2010-06-25  DJ Delorie  <dj@redhat.com>
1727
1728         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
1729         (m32c_output_aligned_common): Likewise.
1730         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1731         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1732         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
1733         (m32c_register_pragmas): Register it.
1734         * config/m32c/m32c.c (m32c_get_pragma_address): New.
1735         (m32c_insert_attributes): Set #pragma address decls volatile.
1736         (pragma_entry_eq): New.
1737         (pragma_entry_hash): New.
1738         (m32c_note_pragma_address): New.
1739         (m32c_get_pragma_address): New.
1740         (m32c_output_aligned_common): New.
1741         * doc/extend.texi: Document the new pragma.
1742
1743         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
1744         also.
1745         * config/m32c/predicates.md (m32c_any_operand): Check the code
1746         instead of memory_operand so as to allow matching volatile MEMs.
1747         (m32c_nonimmediate_operand): Likewise.
1748         (mra_operand): Allow volatiles.
1749
1750 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
1751
1752         PR debug/44610
1753         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
1754         address if the offset is unknown.
1755
1756 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
1757
1758         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
1759         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
1760         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
1761         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
1762         to ia64_start_function. Invoke it.
1763         * config/ia64/ia64.c (ia64_start_function): Call new function
1764         dwarf2out_vms_debug_main_pointer.
1765
1766 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1767
1768         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
1769         statements computing the true predicate.
1770
1771 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1772
1773         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
1774         to boolean_true_node.
1775         (reset_bb_predicate): New.
1776         (predicate_bbs): Call reset_bb_predicate.
1777
1778 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1779
1780         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
1781         (tree_if_conversion): Returns true when something has been changed.
1782         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
1783         changed something.
1784
1785 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1786
1787         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
1788         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
1789         * tree-if-conv.c: Include dbgcnt.h.
1790         (tree_if_conversion): Use if_conversion_tree to count the number of
1791         if-convertible loops.
1792
1793 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
1794
1795         * common.opt (fprefetch-loop-arrays): Re-define
1796         -fprefetch-loop-arrays as a tri-state option with the initial
1797         value of -1.
1798         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
1799         pass only when flag_prefetch_loop_arrays > 0.
1800         * toplev.c (process_options): Note that, with tri-states,
1801         flag_prefetch_loop_arrays>0 means prefetching is enabled.
1802         * config/i386/i386.c (override_options): Enable prefetching at -O3
1803         for a set of CPUs that sw prefetching is helpful.
1804         (software_prefetching_beneficial_p): New.  Return TRUE if software
1805         prefetching is beneficial for the given CPU.
1806
1807 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
1808
1809         PR rtl-optimization/44326
1810         * implicit-zee.c (find_removable_zero_extends): Replace
1811         INSN_P with NONDEBUG_INSN_P.
1812
1813 2010-06-25  Martin Jambor  <mjambor@suse.cz>
1814
1815         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
1816         (struct ipa_node_params): Removed the modification_analysis_done flag.
1817         (ipa_is_param_modified): Removed.
1818         (ipa_analyze_node): Declare.
1819         (ipa_compute_jump_functions): Remove declaration.
1820         (ipa_count_arguments): Likewise.
1821         (ipa_detect_param_modifications): Likewise.
1822         (ipa_analyze_params_uses): Likewise.
1823         * ipa-prop.c (struct param_analysis_info): New type.
1824         (visit_store_addr_for_mod_analysis): Removed.
1825         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
1826         moved down in the file.
1827         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
1828         (ipa_count_arguments): Made static.
1829         (mark_modified): New function.
1830         (is_parm_modified_before_call): New function.
1831         (compute_pass_through_member_ptrs): New parameter parms_info, call
1832         is_parm_modified_before_call instead of ipa_is_param_modified.
1833         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
1834         it to compute_pass_through_member_ptrs.
1835         (ipa_compute_jump_functions): New parameter parms_info, pass it to
1836         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
1837         on the callee if it is analyzed.  Made static.
1838         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
1839         is_parm_modified_before_call instead of ipa_is_param_modified.
1840         (ipa_analyze_call_uses): New parameter parms_info, pass it to
1841         ipa_analyze_indirect_call_uses.
1842         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
1843         ipa_analyze_call_uses.
1844         (ipa_analyze_params_uses): New parameter parms_info, pass it to
1845         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
1846         (ipa_analyze_node): New function.
1847         (ipa_print_node_params): Do not dump the modified flag.
1848         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
1849         it.  Do not stream the modified parameter flag.
1850         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
1851         it.  Do not stream the modified parameter flag.
1852         * ipa-cp.c (ipcp_analyze_node): Removed.
1853         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
1854         with only a call to ipa_analyze_node.
1855         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
1856         node with only a call to ipa_analyze_node.
1857
1858 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1859
1860         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
1861
1862 2010-06-25  Jan Hubicka  <jh@suse.cz>
1863
1864         * tree-pass.h (pass_split_functions): Declare.
1865         * opts.c (decode_options): Enable function splitting at -O2
1866         * timevar.def (TV_IPA_FNSPLIT): New macro.
1867         * ipa-split.c: New file.
1868         * common.opt (-fpartial-inlining): New flag.
1869         * Makefile.in (ipa-split.o): New object file.
1870         * passes.c (init_optimization_passes): Add ipa-split.
1871         * params.def (partial-inlining-entry-probability): New parameters.
1872         * doc/invoke.texi (-fpartial-inlining): New.
1873
1874 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1875
1876         PR 44665
1877         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
1878         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
1879         (gimplify_expr): Likewise.
1880
1881 2010-06-25  Martin Jambor  <mjambor@suse.cz>
1882
1883         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
1884         statements instead of bailing out on them.
1885         (ipa_analyze_indirect_call_uses): Do not require that loads from the
1886         parameter are in the same BB as the condition.  Update comments.
1887
1888 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
1889
1890         PR middle-end/43866
1891         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
1892         true or always false, return NULL_TREE.
1893         (tree_unswitch_single_loop): Optimize conditions even when reaching
1894         max-unswitch-level parameter.  If num > 0, optimize first all conditions
1895         using entry checks, then do still reachable block discovery and consider
1896         only conditions in still reachable basic blocks in the loop.
1897
1898         PR tree-optimization/44539
1899         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
1900         the call doesn't have LHS, but has VDEF.
1901
1902 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
1903
1904         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
1905         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
1906         * gcc.c (enum add_del, struct modify_target, modify_target):
1907         Remove.
1908         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
1909         * system.h (MODIFY_TARGET_NAME): Poison.
1910
1911 2010-06-25  Alan Modra  <amodra@gmail.com>
1912
1913         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
1914         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
1915         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1916         CMODEL_LARGE as default.
1917         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
1918         (offsettable_ok_by_alignment): Delete.
1919         (rs6000_emit_move): Remove mcmodel=medium optimization.
1920
1921 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
1922
1923         With large parts from Jim Wilson:
1924         PR target/43902
1925         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
1926         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
1927         * optabs.c (optab_for_tree_code): Likewise.
1928         (expand_widen_pattern_expr): Likewise.
1929         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
1930         out of execute_optimize_widening_mul.
1931         (convert_plusminus_to_widen): New function.
1932         (execute_optimize_widening_mul): Use the two new functions.
1933         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
1934         Remove code to generate widening multiply-accumulate.  Add support
1935         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
1936         * gimple-pretty-print.c (dump_ternary_rhs): New function.
1937         (dump_gimple_assign): Call it when appropriate.
1938         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
1939         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1940         (expand_gimple_stmt_1): Likewise.
1941         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
1942         WIDEN_MULT_MINUS_EXPR.
1943         * tree-ssa-operands.c (get_expr_operands): Likewise.
1944         * tree-inline.c (estimate_operator_cost): Likewise.
1945         * gimple.c (extract_ops_from_tree_1): Renamed from
1946         extract_ops_from_tree.  Add new arg for a third operand; fill it.
1947         (gimple_build_assign_stat): Support operations with three operands.
1948         (gimple_build_assign_with_ops_stat): Likewise.
1949         (gimple_assign_set_rhs_from_tree): Likewise.
1950         (gimple_assign_set_rhs_with_ops_1): Renamed from
1951         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
1952         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
1953         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
1954         WIDEN_MULT_MINUS_EXPR.
1955         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
1956         (extract_ops_from_tree_1): Adjust declaration.
1957         (gimple_assign_set_rhs_with_ops_1): Likewise.
1958         (gimple_build_assign_with_ops): Pass NULL for last operand.
1959         (gimple_build_assign_with_ops3): New macro.
1960         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
1961         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
1962         functions.
1963         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
1964         (verify_gimple_assign): Call it.
1965         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
1966         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
1967         functions for dealing with three-operand statements.
1968         * tree.c (commutative_ternary_tree_code): New function.
1969         * tree.h (commutative_ternary_tree_code): Declare it.
1970         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
1971         ternary statements.
1972         (gimple_assign_nonzero_warnv_p): Likewise.
1973         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
1974         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
1975         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
1976         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
1977         (struct hashtable_expr): New member ternary in the union.
1978         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
1979         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
1980         (iterative_hash_hashable_expr): Likewise.
1981         (print_expr_hash_elt): Handle EXPR_TERNARY.
1982         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
1983         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
1984         statements.  Handle GIMPLE_TERNARY_RHS.
1985
1986 2010-06-25  Jan Hubicka  <jh@suse.cz>
1987
1988         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
1989
1990 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
1991
1992         PR c/44517
1993         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
1994         parameters are not good.
1995         (c_parser_parameter_declaration): Error unknown type name if the type
1996         name can't start declaration specifiers.
1997
1998 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
1999
2000         * gcc.c (translate_options): Don't mention +e in comment.
2001         (process_command): Don't handle +e specially.
2002
2003 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
2004
2005         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
2006
2007         * ira-build.c (merge_hard_reg_conflicts): New function.
2008         (create_cap_allocno, copy_info_to_removed_store_destinations,
2009         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
2010         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
2011         (remove_unnecessary_allocnos, remove_low_level_allocnos)
2012         copy_nifo_to_removed_store_destination): Use them.
2013         * ira-lives.c (make_hard_regno_born): New function, split out of
2014         make_regno_born.
2015         (make_allocno_born): Likewise.
2016         (make_hard_regno_dead): New function, split out of make_regno_dead.
2017         (make_allocno_dead): Likewise.
2018         (inc_register_pressure): New function, split out of set_allocno_live.
2019         (dec_register_pressure): New function, split out of clear_allocno_live.
2020         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
2021         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
2022         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
2023         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
2024         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
2025         mark_pseudo_regno_live.
2026         (process_bb_node_lives): Use mark_pseudo_regno_live,
2027         make_hard_regno_born and make_allocno_dead.
2028         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
2029         set_allocno_live, clear_allocno_live): Delete functions.
2030
2031         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
2032         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
2033         functions.
2034         (ira_flattening): Use ira_parent_allocno.
2035         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
2036         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
2037
2038         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
2039         statement.
2040
2041         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
2042         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
2043         minmax_set_iter_cond, minmax_set_iter_next,
2044         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
2045         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
2046         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
2047         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
2048         uses changed.
2049
2050         * ira-int.h (struct live_range, live_range_t): Renamed from struct
2051         ira_allocno_live_range and allocno_live_range_t; all uses changed.
2052         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
2053         All uses changed.
2054
2055 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
2056
2057         * thumb2.md (thumb2_tlobits_cbranch): Delete.
2058         (peephole2 to convert zero_extract/compare of single bit to
2059          lshift/compare): New.
2060
2061 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
2062
2063         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
2064         recursive call and call to 'int_const_binop'.
2065         (build_range_check, fold_cond_expr_with_comparison, unextend,
2066         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
2067         multiple_of_p): Adjust call to const_binop.
2068
2069 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
2070
2071         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
2072         determine size of XFmode operand.
2073         (XFmode extended DFmode push splitter): Ditto.
2074         (XFmode extended SFmode push splitter): Ditto.
2075
2076 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
2077
2078         PR target/44588
2079         * config/i386/i386.md (extract_code): New.
2080         (<u>divmodqi4): Likewise.
2081         (divmodhiqi3): Likewise.
2082         (udivmodhiqi3): Likewise.
2083         (<u>divqi3): Remvoved.
2084
2085 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
2086
2087         PR middle-end/44492
2088         * recog.h (struct recog_data): Add is_asm field.
2089         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
2090         present in constraints of inline-asm operand and memory operand
2091         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
2092         (extract_insn): Initialize recog_data.is_asm.
2093         * doc/md.texi (Constraints): Document operand side-effect rules.
2094
2095 2010-06-24  Andi Kleen  <ak@linux.intel.com>
2096
2097         * c-parser.c (c_parser_conditional_expression): Call
2098         warn_for_omitted_condop.
2099         * doc/invoke.texi: Document omitted condop warning.
2100
2101 2010-06-24  Nick Clifton<nickc@redhat.com>
2102
2103         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
2104         insn in the sequence is a jump insn before setting its label.
2105
2106 2010-06-24  Alan Modra  <amodra@gmail.com>
2107
2108         * collect2.c (main): Match exactly --version and --help.
2109
2110 2010-06-24  DJ Delorie  <dj@redhat.com>
2111
2112         * config/m32c/m32c-pragma.c: Don't include rtl.h.
2113
2114 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
2115
2116         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
2117         using X87MODEF mode iterator.
2118         (pushsf splitter): Macroize splitter using P mode iterator.
2119         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
2120         mode iterator.
2121
2122         (*movxf_internal): Rename from *movxf_integer.
2123         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
2124         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
2125         (*movdf_internal): Rename from *movdf_integer.
2126         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
2127         (*movsf_internal): Rename from *movdf_1.
2128
2129 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
2130
2131         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
2132         (const_gimple_seq_node): Removed typedefs.
2133
2134         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
2135         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
2136
2137 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
2138
2139         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
2140         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
2141         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
2142         and CODE_FOR_vec_extract_lo_v4df.
2143
2144         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
2145         Changed to define_insn_and_split.
2146         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
2147         (vec_extract_lo_v16hi): Likewise.
2148         (vec_extract_lo_v32qi): Likewise.
2149         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
2150         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
2151
2152 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
2153
2154         PR target/44640
2155         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
2156         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
2157         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
2158         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
2159         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
2160
2161         PR target/44640
2162         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
2163
2164         PR other/44644
2165         * df-core.c (struct df): Rename to df_d.
2166         * df.h (struct df): Likewise.
2167         * dse.h (struct df): Remove forward declaration.
2168         * recog.h (struct insn_data): Rename to:
2169         (struct_insn_data_d).  Adjusted all users.
2170
2171 2010-06-23  Arnaud Charlet  <charlet@adacore.com
2172
2173         PR ada/22220
2174         * doc/install.texi: Update requirements to build GNAT.
2175
2176 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
2177
2178         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
2179         enum type.
2180         (m68k_sched_attr_opx_type): Remove unreachable return.
2181         (m68k_sched_attr_opy_type): Likewise.
2182         (m68k_sched_attr_size): Likewise.
2183         (sched_get_opxy_mem_type): Likewise.
2184         (m68k_sched_attr_op_mem): Likewise.
2185
2186 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
2187
2188         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
2189         new statement and adjust VDEF only if necessary.  Remove superfluous
2190         call to maybe_clean_or_replace_eh_stmt.
2191         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
2192         copy the flags.
2193         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
2194         * tree-inline.c (copy_bb): ...and not there.
2195
2196 2010-06-22  Cary Coutant  <ccoutant@google.com>
2197
2198         * dwarf2out.c (is_nested_in_subprogram): New function.
2199         (should_move_die_to_comdat): Use it.
2200         (copy_ancestor_tree): Don't mark DIEs here.
2201         (copy_decls_walk): Start walk from root of newly-added tree;
2202         mark DIEs here instead.
2203
2204 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
2205
2206         * config/i386/i386.md (unit): Also check sseishft1.
2207
2208 2010-06-22  Jan Hubicka  <jh@suse.cz>
2209
2210         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
2211         enabled.
2212
2213 2010-06-22  Jan Hubicka  <jh@suse.cz>
2214
2215         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
2216         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
2217         Return true if something changed.
2218         * df.h (df_confluence_function_n): Return bool.
2219         * df-core.c (df_worklist_propagate_forward,
2220         df_worklist_propagate_backward): Track changes and ages.
2221         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
2222         track ages.
2223         * dse.c (dse_confluence_n): Return always true.
2224
2225 2010-06-22  Jan Hubicka  <jh@suse.cz>
2226
2227         * bitmap.c (bitmap_clear_bit): Micro optimize.
2228
2229 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
2230
2231         * config/i386/i386.md (SWI1248x): New mode iterator.
2232         (SWI48x): Ditto.
2233         (SWI12): Ditto.
2234         (SWI24): Ditto.
2235
2236         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
2237         SWI1248x mode iterator.
2238         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
2239         using SWI124 mode iterator.
2240         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
2241         mode iterator.
2242         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
2243         *pushdi2_prologue_rex64 using P mode iterator.
2244         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
2245         using SWI48 mode iterator.
2246         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
2247         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
2248         using SWI1248x mode iterator.
2249         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
2250         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
2251         SWI48 mode iterator.
2252         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
2253         iterator.
2254         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
2255         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
2256         SWI12 mode iterator.
2257         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
2258         SWI12 mode iterator.
2259         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
2260         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
2261         SWI24 mode iterator.
2262         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
2263         SWI48 mode iterator.
2264         (mov<mode>_insn_1): New expander.
2265         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
2266         using SWI48x mode iterator.
2267
2268         (*movoi_internal_avx): Rename from *movoi_internal.
2269         (*movti_internal_rex64): Rename from *movti_rex64.
2270         (*movti_internal_sse): Rename from *movti_sse.
2271         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
2272         (*movdi_internal): Rename from *movdi_2.
2273         (*movsi_internal): Rename from *movsi_1.
2274         (*movhi_internal): Rename from *movhi_1.
2275         (*movqi_internal): Rename from *movqi_1.
2276
2277         (insv): Update the call to gen_movsi_insv_1 for rename.
2278         * config/i386/i386.c (promote_duplicated_reg): Ditto.
2279
2280 2010-06-22  Jan Hubicka  <jh@suse.cz>
2281
2282         * passes.c (execute_function_todo): Move call of statistics_fini_pass
2283         to ...
2284         (execute_todo) ... this one.
2285
2286 2010-06-22  Alan Modra  <amodra@gmail.com>
2287
2288         PR target/44364
2289         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
2290         * caller-save.c (insert_restore, insert_save): Use non-validate
2291         form of adjust_address.
2292
2293 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2294
2295         PR target/39690
2296         * config/pa/pa.c (override_options): Disable
2297         -freorder-blocks-and-partition.
2298
2299 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
2300
2301         PR target/44615
2302         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
2303
2304         * config/i386/i386.md (type): Add sseishft1
2305
2306         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
2307         (ppro_insn_load): Likewise.
2308         (ppro_insn_store): Likewise.
2309         (ppro_insn_both): Likewise.
2310
2311         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
2312         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
2313         for type.
2314         (*vec_extractv2di_1_avx): Likewise.
2315         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
2316         type.  Remove atom_unit.
2317         (*vec_extractv2di_1_sse2): Likewise.
2318
2319 2010-06-21  DJ Delorie  <dj@redhat.com>
2320
2321         * diagnostic.h (diagnostic_classification_change_t): New.
2322         (diagnostic_context): Add history and push/pop list.
2323         (diagnostic_push_diagnostics): Declare.
2324         (diagnostic_pop_diagnostics): Declare.
2325         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
2326         from pragmas in a history chain instead of the global table.
2327         (diagnostic_push_diagnostics): New.
2328         (diagnostic_pop_diagnostics): New.
2329         (diagnostic_report_diagnostic): Scan history chain to find state
2330         of diagnostics as of the diagnostic location.
2331         * opts.c (set_option): Pass UNKNOWN_LOCATION to
2332         diagnostic_classify_diagnostic.
2333         (enable_warning_as_error): Likewise.
2334         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
2335         use in the history chain.
2336         * doc/extend.texi: Document pragma GCC diagnostic changes.
2337
2338 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
2339
2340         * dwarf2out.c (add_linkage_name): New function.  Don't add
2341         anything to DW_TAG_member DIEs.
2342         (add_name_and_src_coords_attributes): Use it.
2343         (gen_variable_die): Call it for C++ static data members if
2344         specification is DW_TAG_member.
2345
2346         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
2347         C++ char16_t and char32_t.
2348
2349         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
2350         * genattrtab.c: Include vecprim.h.
2351         (cached_attrs, cached_attr_count, attrs_seen_once,
2352         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
2353         attrs_cached_after): New variables.
2354         (find_attrs_to_cache): New function.
2355         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
2356         (write_test_expr): Add attrs_cached argument, return it too,
2357         attempt to cache non-const attributes used more than once in
2358         a single case handling.
2359         (write_attr_get): Use find_attrs_to_cache, for caching candidates
2360         emit cached_* variables.  Adjust write_attr_set callers.
2361         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
2362         to find attributes that should be cached in this block.  Adjust
2363         write_test_expr callers.
2364         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
2365         callers.
2366         (make_automaton_attrs): Adjust write_test_expr caller.
2367
2368         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
2369         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
2370         (make_automaton_attrs): If find_tune_attr returns non-NULL,
2371         write separate internal_dfa_insn_code_* and insn_default_latency_*
2372         functions for each attribute's value and emit init_sched_attrs
2373         function and function pointers.
2374         * genattr.c (const_attrs, reservations): New variables.
2375         (gen_attr): Add const attributes to const_attrs vector.
2376         (check_tune_attr, find_tune_attr): New functions.
2377         (main): Add reservations to reservations vector.  If find_tune_attr
2378         returns true, add prototype for init_sched_attrs and make
2379         internal_dfa_insn_code and insn_default_latency function pointers,
2380         otherwise define init_sched_attrs as dummy macro.
2381         * cfgexpand.c: Include insn-attr.h.
2382         (gimple_expand_cfg): Call init_sched_attrs.
2383
2384         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
2385
2386         PR target/44575
2387         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
2388         va_arg from a set of register save slots into a temporary,
2389         if the container is bigger than type size, do the copying
2390         using smaller mode or using memcpy.
2391
2392         PR bootstrap/44426
2393         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
2394         prototype.
2395         (sel_print_to_dot): Remove macro.
2396         (sel_print): Likewise.  New prototype.
2397         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
2398         (sel_print): New function.
2399
2400 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2401
2402         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
2403         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
2404
2405 2010-06-21  Nick Clifton  <nickc@redhat.com>
2406
2407         * config/rx/rx.h (PTRDIFF_TYPE): Define.
2408         (SMALL_REGISTER_CLASS): Define (to zero).
2409         (PRINT_OPERAND): Delete.
2410         (PRINT_OPERAND_ADDRESS): Delete.
2411         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
2412         (rx_print_operand_address): Delete prototype.
2413         * config/rx/rx.c (rx_print_operand): Make static.
2414         Allow %H and %L to handle CONST_DOUBLEs.
2415         (rx_print_operand_address): Make static.
2416         (rx_gen_move_template): Rename local variable 'template' to
2417         out_template.
2418         (rx_function_arg): Do not pass unknown sized objects in registers.
2419         (TARGET_PRINT_OPERAND): Define.
2420         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2421
2422 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
2423
2424         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
2425
2426 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
2427
2428         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
2429         stack-alignment for simple leaf-functions.
2430
2431 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
2432
2433         * doc/install.texi: Document bootstrap-lto.
2434
2435 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
2436
2437         PR debug/44248
2438         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
2439         (input_function): Drop them here, if VTA is disabled.
2440
2441 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
2442
2443         PR target/44546
2444         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
2445         New predicate.
2446         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
2447         ix86_swapped_fp_comparsion_operator instead of
2448         ix86_fp_comparison_operator.
2449
2450         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
2451         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
2452         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
2453         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
2454         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
2455         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
2456
2457 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2458
2459         PR other/32998
2460         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
2461         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
2462         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
2463         (decode_cmdline_option): Update for this return value.  Set
2464         orig_option_with_args_text field.  Set arg field for unknown
2465         options.  Make static.
2466         (decode_cmdline_options_to_array): New.
2467         (prune_options): Update handling of find_opt return value.
2468         * opts.c (read_cmdline_option): Take decoded option.  Return void.
2469         (read_cmdline_options): Take decoded options.
2470         (decode_options): Add parameters for decoded options.  Use
2471         decode_cmdline_options_to_array.  Use decoded options for -O
2472         scan.  Use integral_argument for -O parameters.  Update call to
2473         read_cmdline_options.
2474         (enable_warning_as_error): Update handling of find_opt return value.
2475         * opts.h: Update comment on unknown options.
2476         (struct cl_decoded_option): Update comments on opt_index and arg.
2477         Add orig_option_with_args_text.
2478         (decode_cmdline_option): Remove.
2479         (decode_cmdline_options_to_array): Declare.
2480         (decode_options): Update prototype.
2481         * toplev.c (save_argv): Remove.
2482         (save_decoded_options, save_decoded_options_count): New.
2483         (read_integral_parameter): Remove.
2484         (print_switch_values): Use decoded options.
2485         (toplev_main): Don't set save_argv.  Update call to decode_options.
2486         * toplev.h (read_integral_parameter): Remove.
2487         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
2488
2489 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
2490
2491         PR target/44072
2492         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
2493         immediate.
2494         * constraints.md (Pw, Px): New constraints.
2495         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
2496
2497 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
2498
2499         * config/i386/sse.md (fma4modesuffixf4): Removed.
2500         (ssemodesuffixf2s): Likewise.
2501         (ssemodesuffixf4): Likewise.
2502         (ssemodesuffixf2c): Likewise.
2503         (ssescalarmodesuffix2s): Likewise.
2504         (avxmodesuffixf2c): Likewise.
2505         (ssemodesuffix): New.
2506         (ssescalarmodesuffix): Likewise.
2507         Update patterns with ssemodesuffix and ssescalarmodesuffix.
2508
2509 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
2510
2511         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
2512
2513 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2514
2515         * stor-layout.c (debug_rli): Remove unused local variables.
2516
2517 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2518
2519         PR rtl-optimization/40900
2520         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
2521         original expression for later reuse.
2522         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
2523         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
2524
2525 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
2526
2527         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
2528         double_int_fits_in_uhwi_p): Implement as static inline.
2529         (double_int_xor): New inline function.
2530         (double_int_lrotate, double_int_rrotate, double_int_max,
2531         double_int_umax, double_int_smax, double_int_min, double_int_umin,
2532         double_int_smin): Declare.
2533         (lrotate_double, rrotate_double): Remove declaration.
2534         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
2535         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
2536         (double_int_lrotate, double_int_rrotate, double_int_max,
2537         double_int_umax, double_int_smax, double_int_min, double_int_umin,
2538         double_int_smin): New function.
2539         * fold-const.c (int_const_binop): Clean up, use double_int_*
2540         functions.
2541         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
2542         double_int_* and immed_double_int_const functions.
2543
2544 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
2545
2546         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
2547         * function.c (types_used_by_cur_var_decl): Likewise.
2548         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
2549
2550 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
2551
2552         * tree.h (record_layout_info): Change type of pending_statics field
2553         to a VEC.
2554         * stor-layout.c (start_record_layout): Store NULL into
2555         pending_statics.
2556         (debug_rli): Call debug_vec_tree instead of debug_tree.
2557         (place_field): Likewise.
2558         (finish_record_layout): Likewise.
2559
2560 2010-06-18  Alan Modra  <amodra@gmail.com>
2561
2562         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
2563
2564 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2565
2566         PR target/43740
2567         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
2568         for SET source operand from SET destination operand.
2569
2570 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
2571
2572         PR rtl-optimization/39871
2573         * reload1.c (init_eliminable_invariants): For flag_pic, disable
2574         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
2575         (function_invariant_p): Rule out a plus of frame or arg pointer with
2576         a SYMBOL_REF.
2577         * ira.c (find_reg_equiv_invariant_const): Likewise.
2578
2579 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
2580
2581         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
2582         print_operand_address and puts to output the operand for CONST.
2583
2584 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
2585
2586         PR debug/44572
2587         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
2588         hook.
2589
2590 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2591
2592         * v850-protos.h (print_operand): Delete.
2593         (print_operand_address): Delete.
2594         * v850.h (PRINT_OPERAND): Delete.
2595         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2596         (PRINT_OPERAND_ADDRESS): Delete.
2597         * v850.c (print_operand_address): Rename to...
2598         (v850_print_operand_address): ...this.  Make static. Call
2599         v850_print_operand.
2600         (print_operand): Rename to...
2601         (v850_print_operand): ...this.  Make static.  Call
2602         v850_print_operand_address.
2603         (v850_print_operand_punct_valid_p): New function.
2604         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2605         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2606
2607 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2608
2609         * config/sh/sh-protos.h (print_operand): Delete.
2610         (print_operand_address): Delete.
2611         * config/sh/sh.h (PRINT_OPERAND): Delete.
2612         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2613         (PRINT_OPERAND_ADDRESS): Delete.
2614         * config/sh/sh.c (sh_print_operand_address): Make static.
2615         (sh_print_operand): Make static.  Call sh_print_operand_address
2616         and sh_print_operand.
2617         (sh_print_operand_punct_valid_p): New function.
2618         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2619         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2620
2621 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2622
2623         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
2624         (mcore_print_operand_address): Delete.
2625         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
2626         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2627         (PRINT_OPERAND_ADDRESS): Delete.
2628         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
2629         (mcore_print_operand): Make static.
2630         (mcore_print_operand_punct_valid_p): New function.
2631         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
2632         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2633
2634 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2635
2636         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
2637         (print_operand_address): Delete.
2638         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
2639         (PRINT_OPERAND_ADDRESS): Delete.
2640         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
2641         static.
2642         (m68hc11_print_operand): Make static.
2643         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2644
2645 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2646
2647         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
2648         (m32r_print_operand_address): Delete.
2649         * config/m32r/m32r.h (m32r_punct_chars): Delete.
2650         (PRINT_OPERAND): Delete.
2651         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2652         (PRINT_OPERAND_ADDRESS): Delete.
2653         * config/m32r/m32r.c (m32r_punct_chars): Make static.
2654         (m32r_print_operand_address): Make static.
2655         (m32r_print_operand): Make static.
2656         (m32r_print_operand_punct_valid_p): New function.
2657         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2658         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2659
2660 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2661
2662         * config/iq2000/iq2000-protos.h (print_operand): Delete.
2663         (print_operand_address): Delete.
2664         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
2665         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2666         (PRINT_OPERAND_ADDRESS): Delete.
2667         (iq2000_print_operand_punct): Delete.
2668         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
2669         (iq2000_print_operand_address): Make static.
2670         (iq2000_print_operand): Make static.
2671         (iq2000_print_operand_punct_valid_p): New function.
2672         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2673         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2674
2675 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2676
2677         * config/frv/frv-protos.h (frv_print_operand): Delete.
2678         (frv_print_operand_address): Delete.
2679         * config/frv/frv.h (PRINT_OPERAND): Delete.
2680         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2681         (PRINT_OPERAND_ADDRESS): Delete.
2682         * config/frv/frv.c (frv_print_operand_address): Make static.
2683         (frv_print_operand): Make static.
2684         (frv_print_operand_punct_valid_p): New function.
2685         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2686         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2687
2688 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2689
2690         * tree.h (vec_member): Declare.
2691         * tree.c (vec_member): Define.
2692
2693 2010-06-17  Richard Guenther  <rguenther@suse.de>
2694
2695         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
2696         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
2697
2698 2010-06-17  Richard Guenther  <rguenther@suse.de>
2699
2700         * tree-inline.c (declare_return_variable): Remove bogus code.
2701
2702 2010-06-17  Richard Guenther  <rguenther@suse.de>
2703
2704         * gimplify.c (gimplify_bind_expr): Always promote complex
2705         and vector variables to registers if possible.
2706
2707 2010-06-17  Richard Guenther  <rguenther@suse.de>
2708
2709         * expr.c (get_inner_reference): Use double_int for bit_offset
2710         calculation.
2711
2712 2010-06-16  DJ Delorie  <dj@redhat.com>
2713
2714         * common.opt (-fstrict-volatile-bitfields): new.
2715         * doc/invoke.texi: Document it.
2716         * fold-const.c (optimize_bit_field_compare): For volatile
2717         bitfields, use the field's type to determine the mode, not the
2718         field's size.
2719         * expr.c (expand_assignment): Likewise.
2720         (get_inner_reference): Likewise.
2721         (expand_expr_real_1): Likewise.
2722         * expmed.c (store_fixed_bit_field): Likewise.
2723         (extract_bit_field_1): Likewise.
2724         (extract_fixed_bit_field): Likewise.
2725
2726 2010-06-16  Richard Guenther  <rguenther@suse.de>
2727
2728         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
2729
2730 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
2731
2732         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
2733         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
2734         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
2735         * debug.c: Likewise.
2736         * sdbout.c: Likewise.
2737         * vmsdbgout.c: Likewise.
2738         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
2739         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
2740         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
2741         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
2742         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
2743         * dwarf2out.c (dw_fde_struct): New fields
2744         dw_fde_vms_{end,begin}_prologue.
2745         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
2746         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
2747         (dwarf2out_vms_end_prologue): New function.
2748         (dwarf2out_vms_begin_epilogue): New function.
2749         (dw_val_struct): New value dw_val_class_vms_delta.
2750         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
2751         begin_epilogue for VMS.
2752         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
2753         new static functions.
2754         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
2755         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
2756         static functions.
2757         (print_die): New case dw_val_class_vms_delta.
2758         (attr_checksum): Likewise.
2759         (same_dw_val_p: Likewise.
2760         (size_of_die): Likewise.
2761         (value_format): Likewise.
2762         (output_die): Likewise.
2763         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
2764         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
2765         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
2766         dwarf2out_cfi_begin_epilogue
2767         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
2768
2769 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
2770
2771         * config/cris/cris-protos.h (cris_print_operand): Delete.
2772         (cris_print_operand_address): Delete.
2773         * config/cris/cris.h (PRINT_OPERAND): Delete.
2774         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2775         (PRINT_OPERAND_ADDRESS): Delete.
2776         * config/cris/cris.c (cris_print_operand_address): Make static.
2777         (cris_print_operand): Make static.
2778         (cris_print_operand_punct_valid_p): New function.
2779         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2780         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2781
2782 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
2783
2784         * config/arm/arm-protos.h (arm_print_operand): Delete.
2785         (arm_print_operand_address): Delete.
2786         * config/arm/arm.h (PRINT_OPERAND): Delete.
2787         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2788         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
2789         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
2790         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
2791         (arm_print_operand): Make static.
2792         (arm_print_operand_punct_valid_p): New function.
2793         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2794         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2795
2796 2010-06-16  Nick Clifton  <nickc@redhat.com>
2797
2798         * config/rx/constraints.md (NEGint4): New constraint.
2799         * config/rx/rx.md (attr cc): Add set_zsc.
2800         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
2801         initialised.
2802         (cmpsf): Likewise.
2803         (call_internal): Clobber the cc0 register.
2804         (call_value_internal): Likewise.
2805         (cstoresi4): Likewise.
2806         (movsieq): Likewise.
2807         (movsine): Likewise.
2808         (addsi3): Add alternative to handle small negative constants.
2809         (sunsi3): Likewise.
2810         (addsi3): Do not set the O bit in the cc0 register.
2811         (adddi3): Likewise.
2812         (subsi3): Likewise.
2813         (subdi3): Likewise.
2814         (andsi3): Reorder alternatives to prefer shorter forms.
2815         (mulsi3): Likewise.
2816         (iorsi3): Likewise.
2817         (negsi2): Note that the cc0 flags are set.
2818         (rotlsi3): Note that only the Z and S bits are set in cc0.
2819         (lshrsi3): Likewise.
2820         (ashlsi3): Likewise.
2821         (subsf3): Use %Q for the MEM operand.
2822         (fix_truncsfsi2): Likewise.
2823         (floatsisf2): Likewise.
2824         (bitset): Remove early clobber from destination.
2825         (bitset_in_memory): Likewise.
2826         (lrintsf2): Clobber the cc0 register.
2827         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
2828         (rx_print_operand): Handle %N.
2829
2830 2010-06-16  Jan Hubicka  <jh@suse.cz>
2831
2832         * df-core.c (df_compact_blocks): Free problem_temps vector.
2833
2834 2010-06-16  Martin Jambor  <mjambor@suse.cz>
2835
2836         PR tree-optimization/43905
2837         * tree-sra.c: Include tree-inline.h.
2838         (create_abstract_origin): Removed.
2839         (modify_function): Version the call graph node instead of creating
2840         abstract origins and dealing with same_body aliases.
2841         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
2842         function is versionable.
2843         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
2844
2845 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
2846
2847         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
2848         (CHOOSE_DYNAMIC_LINKER): Update.
2849
2850 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
2851
2852         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
2853         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
2854         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
2855         *prefetch_3dnow_rex.
2856
2857 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
2858
2859         * target.h (struct asm_out):Add declare_constant_name field.
2860         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
2861         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
2862         * output.h (default_asm_declare_constant_name): Declare.
2863         (assemble_label): Update prototype.
2864         * varasm.c (assemble_constant_contents): Use
2865         targetm.asm_out.declare_constant_name target hook.
2866         (assemble_label): Add 'file' argument.
2867         (default_asm_declare_constant_name): New function.
2868         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
2869         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
2870         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
2871
2872         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
2873         * config/darwin.c (darwin_asm_declare_constant_name): New function.
2874         (machopic_output_indirection): Update assemble_label argument list.
2875         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
2876         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
2877
2878 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
2879
2880         PR middle-end/44391
2881         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2882         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
2883
2884 2010-06-15  Richard Guenther  <rguenther@suse.de>
2885
2886         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
2887
2888 2010-06-15  Paul Brook  <paul@codesourcery.com>
2889
2890         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
2891         hard-float ABI.
2892
2893 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
2894
2895         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
2896         don't get a vector type for output.
2897
2898 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2899
2900         PR fortran/44536
2901         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
2902         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
2903         (LANG_HOOKS_DECLS): Add it.
2904         * gimplify.c (omp_notice_variable): Call
2905         lang_hooks.decls.omp_report_decl.
2906
2907 2010-06-15  Martin Jambor  <mjambor@suse.cz>
2908
2909         PR lto/44464
2910         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
2911         on the newly dead SSA name.
2912
2913 2010-06-15  Alan Modra  <amodra@gmail.com>
2914
2915         * doc/invoke.texi: Add mcmodel to powerpc options.
2916         * configure.ac: Add HAVE_LD_LARGE_TOC test.
2917         * configure: Regenerate.
2918         * config.in: Regenerate.
2919         * config/rs6000/linux64.opt (mcmodel): New.
2920         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
2921         (TARGET_CMODEL, SET_CMODEL): Define.
2922         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
2923         select CMODEL_MEDIUM default.
2924         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
2925         (TARGET_CMODEL): Define default.
2926         * config/rs6000/rs6000.c (cmodel): New variable.
2927         (rs6000_explicit_options): Add cmodel field.
2928         (rs6000_handle_option): Handle -mcmodel.
2929         (create_TOC_reference): Add largetoc_reg param.  Generate high,
2930         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
2931         (rs6000_delegitimize_address): Recognise new toc reference rtl
2932         and minimal-toc rtl.
2933         (rs6000_legitimize_reload_address): Handle new toc references.
2934         (print_operand_address): Handle legitimate_constant_pool_address_p
2935         match before lo_sum.
2936         (rs6000_eliminate_indexed_memrefs): Tidy.
2937         (rs6000_emit_move): Tweak threshold for inlining constants.
2938         Keep rs6000_emit_allocate_stack large stack frame offsets
2939         loaded into r0 inline.
2940         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
2941         (tocrel_base, tocrel_offset): New variables.
2942         (toc_relative_expr_p): Set them here.
2943         (print_operand_address): Skip over any offset on constant pool address.
2944         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
2945         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
2946         (offsettable_ok_by_alignment): New function.
2947         (rs6000_emit_move): Address suitably aligned local symbol_refs
2948         relative to the toc pointer for -mcmodel=medium.
2949         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
2950         strict param.  Allow lo_sum version of addressing.  Verify reg
2951         used for -mminimal-toc and -mcmodel != small.  Update all callers.
2952         * config/rs6000/constraints.md: Update for above change.
2953         * config/rs6000/predicates.md: Likewise.
2954         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
2955         code.
2956         (tls_gd): Split for -mcmodel=medium/large.
2957         (tls_gd_high, tls_gd_low): New.
2958         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
2959         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
2960         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
2961         (largetoc_high, largetoc_low): New.
2962         (cmptf_internal2): Add clobber.
2963         * config/rs6000/rs6000-protos.h: Update.
2964
2965 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
2966
2967         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
2968         true if no prefetch is going to be generated for a given group.
2969         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
2970         estimate the prefetch_count.
2971         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
2972         prefetch count by considering the unroll_factor and prefetch_mod
2973         for is_loop_prefetching_profitable.
2974
2975 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
2976
2977         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
2978         anything if the argument is not a MEM.
2979
2980 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
2981
2982         PR debug/43650
2983         PR debug/44181
2984         PR debug/44247
2985         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
2986         debug stmts.
2987         (canonicalize_loop_ivs): Likewise.
2988
2989 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
2990
2991         PR debug/43656
2992         * haifa-sched.c (setup_insn_reg_pressure_info,
2993         update_register_pressure): Reject debug insns.
2994         (ready_sort): Don't setup reg pressure for debug insns.
2995         (schedule_insn): Don't update reg pressure for debug insns.
2996
2997 2010-06-14  Richard Guenther  <rguenther@suse.de>
2998
2999         * lto-streamer.c (cached_bp): Remove.
3000         (bitpack_delete): Likewise.
3001         (bitpack_create): Likewise.
3002         (bp_get_next_word): Likewise.
3003         (bp_pack_value, bp_unpack_value): Move ...
3004         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
3005         Re-implement.
3006         (struct bitpack_d): Likewise.
3007         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
3008         New inline functions.
3009         * lto-streamer-out.c (lto_output_bitpack): Remove.
3010         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
3011         (pack_value_fields): Adjust.
3012         (lto_write_tree): Likewise.
3013         (output_gimple_stmt): Likewise.
3014         (output_function): Likewise.
3015         * lto-streamer-in.c (input_gimple_stmt): Adjust.
3016         (input_function): Likewise.
3017         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
3018         (lto_input_bitpack): Remove.
3019         (lto_materialize_tree): Adjust.
3020         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
3021         * lto-cgraph.c (lto_output_edge): Adjust.
3022         (lto_output_node): Likewise.
3023         (lto_output_varpool_node): Likewise.
3024         (lto_output_ref): Likewise.
3025         (input_node): Likewise.
3026         (input_varpool_node): Likewise.
3027         (input_ref): Likewise.
3028         (input_edge): Likewise.
3029         (output_node_opt_summary): Likewise.
3030         (input_node_opt_summary): Likewise.
3031         * ipa-pure-const.c (pure_const_write_summary): Likewise.
3032         (pure_const_read_summary): Likewise.
3033         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
3034         (ipa_read_indirect_edge_info): Likewise.
3035         (ipa_write_node_info): Likewise.
3036         (ipa_read_node_info): Likewise.
3037
3038 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3039
3040         PR target/44534
3041         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
3042         (vec_extract_lo_v16hi): Likewise.
3043         (vec_extract_lo_v32qi): Likewise.
3044
3045 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
3046
3047         PR bootstrap/44426
3048         * tree.h (build_call_expr): Don't define as vararg macro, instead
3049         add a prototype.
3050         * builtins.c (build_call_nofold): Remove.
3051         (expand_builtin_int_roundingfn, expand_builtin_pow,
3052         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
3053         expand_builtin_memset_args, expand_builtin_strcmp,
3054         expand_builtin_strncmp, expand_builtin_memory_chk): Use
3055         build_call_nofold_loc instead of build_call_nofold.
3056         (build_call_expr): New function.
3057
3058         PR tree-optimization/44508
3059         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
3060         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
3061         don't eliminate trivially dead stmts.
3062         * tree-vrp.c (vrp_finalize): Pass false as last argument
3063         to substitute_and_fold.
3064         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
3065         to substitute_and_fold.
3066         * tree-ssa-ccp.c (ccp_finalize): Likewise.
3067
3068         PR bootstrap/44509
3069         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
3070
3071 2010-06-14  Ira Rosen  <irar@il.ibm.com>
3072
3073         PR tree-optimization/44507
3074         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
3075         to build initial vector for BIT_AND_EXPR.
3076         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3077
3078 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
3079
3080         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
3081         adjust z10prop set_attr.
3082
3083 2010-06-13  Jan Hubicka  <jh@suse.cz>
3084
3085         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
3086         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
3087         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
3088         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
3089         datastructure checks into checking asserts.
3090         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
3091         * tree-ssa-sccvn.c (VN_INFO): Likewise.
3092         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
3093         df_ref_create_structure): Likewise.
3094         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
3095         pool_free): Use gcc_checking_assert.
3096         * alias.c (get_alias_set): Likewise.
3097         * var-tracking.c (variable_htab_free, shared_hash_copy,
3098         canonicalize_values_mark, variable_merge_over_cur): Likewise.
3099         * lto-streamer.c (bp_unpack_value): Likewise.
3100
3101 2010-06-13  Richard Guenther  <rguenther@suse.de>
3102
3103         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
3104         Do not stream but initialize TYPE_CANONICAL to NULL.
3105         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
3106         * gimple.c (gimple_types_compatible_p): Disregard
3107         TYPE_STRUCTURAL_EQUALITY_P.
3108         (gimple_register_type): Use TYPE_CANONICAL as cache.
3109         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
3110         before registering common types.
3111         * config/i386/i386.c (ix86_function_arg_boundary): Do not
3112         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
3113         * tree.h (TYPE_CANONICAL): Clarify documentation.
3114
3115 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
3116
3117         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3118         LIBCALL_VALUE): Remove macros.
3119         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
3120         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3121         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3122         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
3123         (ia64_function_value): Make static. Handle receiving the function
3124         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
3125
3126 2010-06-12  Jan Hubicka  <jh@suse.cz>
3127
3128         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
3129         at correct place.
3130
3131 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
3132
3133         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
3134
3135 2010-06-12  Jan Hubicka  <jh@suse.cz>
3136
3137         * df-core.c (df_clear_bb_info): New function.
3138         (df_set_blocks): bb_info is always allocated.
3139         (df_get_bb_info): Use block_info_elt_size.
3140         (df_set_bb_info): Likewise.
3141         (df_compact_blocks): Update for new block_info.
3142         (grow_bb_info): New function.
3143         * df-problems.c (df_grow_bb_info): Move to df-core.c
3144         (df_rd_set_bb_info): Remove.
3145         (df_rd_free_bb_info): Do not free block pool.
3146         (df_rd_alloc): Do not create pool, use check for
3147         obstack presence instead of NULL pointer for new blocks.
3148         (df_rd_free): DO not free alloc pool; clear block_info.
3149         (problem_RD): Add size of block info structure.
3150         (df_lr_set_bb_info): Remove.
3151         (df_lr_free_bb_info): Do not free block pool.
3152         (df_lr_alloc): Do not create pool, use check for
3153         obstack presence instead of NULL pointer for new blocks.
3154         (df_lr_free): DO not free alloc pool; clear block_info.
3155         (problem_LR): Add size of block info structure.
3156         (df_live_set_bb_info): Remove.
3157         (df_live_free_bb_info): Do not free block pool.
3158         (df_live_alloc): Do not create pool, use check for
3159         obstack presence instead of NULL pointer for new blocks.
3160         (df_live_free): DO not free alloc pool; clear block_info.
3161         (problem_LIVE): Add size of block info structure.
3162         (problem_CHAIN): Add size of block info structure.
3163         (df_byte_lr_set_bb_info): Remove.
3164         (df_byte_lr_free_bb_info): Do not free block pool.
3165         (df_byte_lr_alloc): Do not create pool, use check for
3166         obstack presence instead of NULL pointer for new blocks.
3167         (df_byte_lr_free): DO not free alloc pool; clear block_info.
3168         (problem_BYTE_LR): Add size of block info structure.
3169         (problem_NOTE): Add size of block info structure.
3170         (df_byte_MD_set_bb_info): Remove.
3171         (df_byte_MD_free_bb_info): Do not free block pool.
3172         (df_byte_MD_alloc): Do not create pool, use check for
3173         obstack presence instead of NULL pointer for new blocks.
3174         (df_byte_MD_free): DO not free alloc pool; clear block_info.
3175         (problem_BD): Add size of block info structure.
3176         * df-scan.c (df_scan_free_internal): Free block pool.
3177         (df_scan_set_bb_info): Remove.
3178         (df_scan_free_bb_info): Check for artificial_defs instead
3179         of bb_info being non-NULL.
3180         (df_scan_alloc): DO not create df_scan_block pool.
3181         (problem_SCAN): Set size of block info.
3182         (df_bb_refs_record): Do not allocate bb_info.
3183         * df.h (df_problem): Add block_info_elt_size.
3184         (struct dataflow): Change block_info to void *.
3185         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
3186         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
3187         in-line structures.
3188
3189 2010-06-12  Jan Hubicka  <jh@suse.cz>
3190
3191         PR tree-optimize/44485
3192         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
3193         containing use of return value of noreturn function.
3194
3195 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
3196
3197         * targhooks.c (default_function_value): Don't use
3198         FUNCTION_OUTGOING_VALUE.
3199         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
3200         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
3201
3202 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
3203
3204         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
3205         Add crtfastmath.o to extra_parts.
3206         * config/mips/crtfastmath.c: New.
3207         * config/mips/linux.h (ENDFILE_SPEC): New.
3208
3209 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
3210
3211         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
3212         old_type in parameter.
3213         (gcc_type_for_value): Update call to gcc_type_for_interval.
3214         (compute_type_for_level_1): Renamed compute_type_for_level.
3215         Update call to gcc_type_for_interval.
3216
3217 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
3218
3219         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
3220         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
3221
3222 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
3223
3224         * opts-common.c: Include options.h.
3225         (integral_argument): Move from opts.c.
3226         (decode_cmdline_option): New.  Based on read_cmdline_option.
3227         * opts.c (integral_argument): Move to opts-common.c.
3228         (read_cmdline_option): Move most contents to
3229         decode_cmdline_option.  Use %qs in diagnostics.
3230         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
3231         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
3232         decode_cmdline_option): New.
3233
3234 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
3235
3236         PR target/44481
3237         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
3238         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
3239         (partiysi2_cmp): Ditto.
3240         (*partiyhi2_cmp): Ditto.
3241         (*parityqi2_cmp): Remove.
3242
3243 2010-06-11  Jan Hubicka  <jh@suse.cz>
3244
3245         * bitmap.h (bmp_iter_next_bit): New.
3246         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
3247
3248 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
3249             Eric Botcazou  <ebotcazou@adacore.com>
3250
3251         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
3252         computed cost.
3253
3254 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
3255
3256         * config/i386/i386.md (unspec): New define_c_enum.
3257         (unspecv): Ditto.
3258
3259 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
3260
3261         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
3262
3263 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
3264
3265         PR middle-end/44483
3266         * tree-if-conv.c (bb_predicate_s): New struct.
3267         (bb_predicate_p): New.
3268         (bb_has_predicate): New.
3269         (bb_predicate): New.
3270         (set_bb_predicate): New.
3271         (bb_predicate_gimplified_stmts): New.
3272         (set_bb_predicate_gimplified_stmts): New.
3273         (add_bb_predicate_gimplified_stmts): New.
3274         (init_bb_predicate): New.
3275         (free_bb_predicate): New.
3276         (is_predicated): Use bb_predicate.
3277         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
3278         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
3279         before processing their successors.
3280         (clean_predicate_lists): Removed.
3281         (find_phi_replacement_condition): Use bb_predicate.
3282         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
3283         computations.
3284         (insert_gimplified_predicates): New.
3285         (combine_blocks): Call insert_gimplified_predicates.
3286         (tree_if_conversion): Call free_bb_predicate instead of
3287         clean_predicate_lists.
3288
3289 2010-10-11  Paul Brook  <paul@codesourcery.com>
3290
3291         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
3292         * config/arm/arm.c (all_architectures): Change v7e-m default to
3293         cortexm4.
3294         * config/arm/arm-cores.def: Add cortex-m4.
3295         * config/arm/arm-tune.md: Regenerate.
3296
3297 2010-06-11  Jan Hubicka  <jh@suse.cz>
3298
3299         * ipa-pure-const.c (special_builtlin_state): New function.
3300         (check_call): Use it instead of special casign BUILT_IN_RETURN.
3301         (propagate_pure_const): Use it.
3302
3303 2010-06-11  Jan Hubicka  <jh@suse.cz>
3304
3305         * df-problems.c (df_live_scratch): Convert to bitmap_head.
3306         (df_live_alloc): Initialize df_live_scratch when initializing
3307         problem_data.
3308         (df_live_transfer_function): Update uses of df_live_scratch.
3309         (df_live_free): Free problem_data; clear df_live_scratch before
3310         releasing the obstack.
3311         (df_md_free): Free problem data.
3312
3313 2010-06-11  Jan Hubicka  <jh@suse.cz>
3314
3315         * doc/invoke.texi (Wsuggest-attribute): Document.
3316         (Wmissing-noreturn): Remove.
3317         * ipa-pure-const.c (warn_function_noreturn): New function.
3318         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
3319         warn_missing_noreturn.
3320         * common.opt (Wsuggest-attribute=noreturn): New.
3321         * tree-flow.h (warn_function_noreturn): Declare.
3322         * tree-cfg.c (execute_warn_function_noreturn): Use
3323         warn_function_noreturn.
3324         (gate_warn_function_noreturn): New.
3325         (pass_warn_function_noreturn): Update.
3326
3327 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3328
3329         * c-typeck.c (handle_warn_cast_qual): Add loc
3330         parameter. Improve warning message.
3331         (build_c_cast): Pass location to handle_warn_cast_qual.
3332
3333 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
3334
3335         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
3336         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
3337         insn mnemonic.
3338         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
3339
3340 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
3341
3342         Fix bootstap on mips
3343         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
3344         be naming typedefs.
3345
3346 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
3347
3348         * system.h (helper_const_non_const_cast): New inline for
3349         gcc version <= 4.0.
3350         (CONST_CAST2): For gcc version <= 4.0 use
3351         new helper to do const/non-const casting.
3352
3353 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3354
3355         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
3356         * Makefile.in (OBJS-common): Include insn-enums.o.
3357         (insn-enums.o): New rule.
3358         (simple_generated_c): Add insn-enums.c.
3359         (build/genenums.o): New rule.
3360         (genprogmd): Add "enums".
3361         * genconstants.c (print_enum_type): Declare a C string array
3362         for each enum.
3363         * genenums.c: New file.
3364         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
3365         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
3366         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
3367
3368 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3369
3370         * doc/md.texi (define_enum_attr): Document.
3371         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
3372         * read-md.h (lookup_enum_type): Declare.
3373         * read-md.c (lookup_enum_type): New function.
3374         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
3375         * genattrtab.c (attr_desc): Add an enum_name field.
3376         (evaluate_eq_attr): Take the associated attribute as argument.
3377         Get the enum prefix from the enum_name field, if defined.
3378         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
3379         (simplify_test_exp): Pass attr to evaluate_eq_attr.
3380         (add_attr_value): New function, split out from...
3381         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
3382         (write_test_expr): Pass attr to evaluate_eq_attr.
3383         (write_attr_get): Use the enum_name as the enum tag, if defined.
3384         (write_attr_valueq): Use the enum_name as a prefix, if defined.
3385         (find_attr): Initialize enum_name.
3386         (main): Handle DEFINE_ENUM_ATTR.
3387         * gensupport.c (process_rtx): Likewise.
3388         * config/mips/mips.h (mips_tune_attr): Delete.
3389         * config/mips/mips.md (cpu): Use define_attr_enum.
3390
3391 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3392
3393         * doc/md.texi (define_c_enum, define_enum): Document.
3394         * read-md.h (md_constant): Add a parent_enum field.
3395         (enum_value, enum_type): New structures.
3396         (upcase_string, traverse_enum_types): Declare.
3397         * read-md.c (enum_types): New variable.
3398         (upcase_string, add_constant): New functions.
3399         (handle_constants): Don't create the hash table here.
3400         Use add_constant.
3401         (traverse_md_constants): Don't check for a null md_constants.
3402         (decimal_string, handle_enum, traverse_enum_types): New functions.
3403         (read_md_files): Initialize md_constants and md_enums.
3404         * genconstants.c (print_md_constant): Ignore info argument.
3405         Only print constants that belong to no enum.
3406         (print_enum_type): New function.
3407         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
3408         for each defined enum type.
3409         * config/mips/mips.md (processor): New define_enum.
3410         (unspec): New define_c_enum.
3411         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
3412         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
3413         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
3414         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
3415         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
3416         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
3417         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
3418         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
3419         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
3420         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
3421         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
3422         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
3423         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
3424         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
3425         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
3426         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
3427         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
3428         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
3429         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
3430         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
3431         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
3432         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
3433         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
3434         (UNSPEC_RDDSP): Move to mips-dsp.md.
3435         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
3436         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
3437         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
3438         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
3439         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
3440         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
3441         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
3442         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
3443         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
3444         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
3445         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
3446         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
3447         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
3448         Moved to mips-dspr2.md.
3449         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
3450         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
3451         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
3452         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
3453         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
3454         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
3455         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
3456         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
3457         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
3458         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
3459         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
3460         UNSPEC_LOONGSON_PSADBH)
3461         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
3462         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
3463         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
3464         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3465         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3466         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3467         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
3468         (cpu): Update comment.
3469         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
3470         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
3471         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
3472         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
3473         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
3474         UNSPEC_LOONGSON_PCMPEQ)
3475         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
3476         UNSPEC_LOONGSON_PINSR_0)
3477         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
3478         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
3479         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
3480         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
3481         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
3482         UNSPEC_LOONGSON_PSADBH)
3483         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
3484         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
3485         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
3486         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3487         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3488         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3489         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
3490         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
3491         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
3492         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
3493         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
3494         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
3495         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
3496         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
3497         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
3498         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
3499         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
3500         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
3501         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
3502         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
3503         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
3504         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
3505         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
3506         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
3507         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
3508         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
3509         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
3510         (UNSPEC_RDDSP): Moved from mips.md.
3511         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
3512         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
3513         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
3514         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
3515         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
3516         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
3517         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
3518         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
3519         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
3520         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
3521         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
3522         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
3523         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
3524         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
3525         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
3526         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
3527         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
3528         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
3529         (UNSPEC_SCC): Moved from mips.md.
3530         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
3531         "processor_type" to "processor".
3532         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
3533         * config/mips/mips.h (processor_type): Delete.
3534         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
3535         "processor_type" to "processor".
3536
3537 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3538
3539         * configure.ac (tm_include_list): Add insn-constants.h.
3540         * configure: Regenerate.
3541         * Makefile.in (GTM_H): Move insn-constants.h here from...
3542         (TM_H): ...here.
3543         * mkconfig.sh: Remove special handling for insn-constants.h.
3544
3545 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3546
3547         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
3548         (BUILD_MD): ...this new variable.
3549         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
3550         that include the old contents of simple_generated_h and
3551         simple_generated_c.
3552         (simple_generated_h, simple_generated_c): Include them.  Add
3553         insn-constants.h.
3554         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
3555         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
3556         Remove these dependencies from the main rule and include
3557         insn-conditions.md in the command line only if it appears
3558         in the dependency list.
3559         (insn-constants.h, s-constants): Delete.
3560         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
3561         or gensupport.h.
3562         (build/genmddeps.o): Likewise.
3563         (genprogrtl): New variable that contains everything from genprogmd
3564         except mddeps and constants.
3565         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
3566         depend on $(BUILD_MD)
3567         (genprog): New variable.  Make these programs depend on
3568         $(BUILD_ERRORS).
3569         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
3570         (main): Use read_md_files instead of init_rtx_reader_args.
3571         * genconstants.c: As for genmddeps.c.
3572         * read-md.h (read_skip_construct): Declare.
3573         * read-md.c (read_skip_construct): New function.
3574         (handle_file): Allow a null handle_directive, skipping the
3575         construct if so.
3576         (parse_include): Update the comment accordingly.
3577
3578 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3579
3580         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
3581         * genmddeps.c: Include read-md.h.
3582         (main): Call init_rtx_reader_args instead of init_md_reader_args.
3583         * genattr.c (main): Likewise.
3584         * genattrtab.c (main): Likewise.
3585         * genautomata.c (main): Likewise.
3586         * gencodes.c (main): Likewise.
3587         * genconditions.c (main): Likewise.
3588         * genconfig.c (main): Likewise.
3589         * genconstants.c (main): Likewise.
3590         * genemit.c (main): Likewise.
3591         * genextract.c (main): Likewise.
3592         * genflags.c (main): Likewise.
3593         * genopinit.c (main): Likewise.
3594         * genoutput.c (main): Likewise.
3595         * genpeep.c (main): Likewise.
3596         * genrecog.c (main): Likewise.
3597         * genpreds.c (main): Likewise.
3598         * gensupport.h (in_fname): Move to read-md.h.
3599         (init_md_reader_args_cb): Rename to...
3600         (init_rtx_reader_args_cb): ...this and return a bool.
3601         (init_md_reader_args): Rename to...
3602         (init_rtx_reader_args): ...this and return a bool.
3603         (include_callback): Move to read-md.h.
3604         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
3605         (file_name_list, first_dir_md_include): Move to read-md.c
3606         (first_bracket_include): Delete unused variable.
3607         (last_dir_md_include): Move to read-md.c.
3608         (process_include): Delete, moving code to read-md.c:handle_include.
3609         (process_rtx): Don't handle INCLUDE.
3610         (save_string): Delete.
3611         (rtx_handle_directive): New function.
3612         (init_md_reader_args_cb): Rename to...
3613         (init_rtx_reader_args_cb): ...this and return a boolean success value.
3614         Use read_md_args.
3615         (init_md_reader_args): Rename to...
3616         (init_rtx_reader_args): ...this and return a boolean success value.
3617         * rtl.def (INCLUDE): Delete.
3618         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
3619         argument.
3620         * read-rtl.c (read_conditions): Don't gobble ')' here.
3621         (read_mapping): Likewise.
3622         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
3623         Handle top-level non-rtx constructs here rather than in read_rtx_1.
3624         Store the whole queue in *X.  Remove call to init_md_reader.
3625         (read_rtx_1): Rename to...
3626         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
3627         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
3628         here.
3629         (read_nested_rtx): New function.  Handle (nil) here rather than
3630         in read_rtx_code.
3631         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
3632         gobble ')' here.
3633         * read-md.h (directive_handler_t): New type.
3634         (in_fname, include_callback): Moved from read-md.h.
3635         (read_constants, init_md_reader): Delete.
3636         (read_md_files): Declare.
3637         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
3638         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
3639         from gensupport.c.
3640         (read_constants): Rename to...
3641         (handle_constants): ...this.  Don't gobble ')' here.
3642         (handle_include, handle_file, handle_toplevel_file)
3643         (parse_include): New functions, mostly taken from gensupport.c.
3644         (init_md_reader): Subsume into...
3645         (read_md_files): ...this new function.
3646
3647 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3648
3649         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
3650         (unread_char): Decrement read_md_lineno after putting back '\n'.
3651         * read-md.c (fatal_with_file_and_line): Push back any characters
3652         that we decide not to add to the context.
3653         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
3654         fatal_expected_char in cases where '/' ends a line (for example).
3655         (read_name): Don't increment read_md_lineno here.
3656         (read_escape): Likewise.
3657         (read_quoted_string): Likewise.
3658         (read_braced_string): Likewise.
3659
3660 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3661
3662         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
3663         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
3664         * genconstants.c: Include read-md.h.
3665         * read-rtl.c (md_constants): Move to read-md.c.
3666         (md_name): Move to read-md.h.
3667         (initialize_iterators): Use leading_string_hash instead of def_hash
3668         and leading_string_eq_p instead of def_name_eq_p.
3669         (read_name): Move to read-md.c.
3670         (def_hash, def_name_eq_p): Delete.
3671         (read_constants, traverse_md_constants): Move to read-md.c.
3672         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
3673         * read-md.h: Include hashtab.h.
3674         (md_name): Moved from read-rtl.c.
3675         (md_constant): Moved from read-md.h.
3676         (leading_string_hash, leading_string_eq_p, read_name)
3677         (read_constants, traverse_md_constants): Declare.
3678         * read-md.c (md_constants): Moved from read-rtl.c.
3679         (leading_string_hash, leading_string_eq_p): New functions.
3680         (read_name, read_constants, traverse_md_constants): Moved from
3681         read-rtl.c.
3682
3683 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3684
3685         * read-rtl.c (md_name): New structure.
3686         (read_name): Take an md_name instead of a buffer pointer.
3687         Use the "string" field instead of strcpy when expanding constants.
3688         (read_constants): Remove the tmp_char argument.  Update the calls
3689         to read_name, using two local name buffers instead of the tmp_char
3690         argument.  Merge the constant-creation code.
3691         (read_conditions): Remove the tmp_char argument.  Update the calls
3692         to read_name, using a local name buffer instead of the tmp_char
3693         argument.
3694         (read_mapping): Replace tmp_char variable with a local name buffer.
3695         Update the calls to read_name.
3696         (read_rtx_1): Likewise.  Update the calls to read_constants and
3697         read_conditions.
3698
3699 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3700
3701         * Makefile.in (build/read-md.o): Depend on errors.h.
3702         * read-md.h (error_with_line): Declare.
3703         * read-md.c: Include errors.h.
3704         (message_with_line_1): New function, extracted from...
3705         (message_with_line): ...here.
3706         (error_with_line): New function.
3707         * genattrtab.c: If a call to message_with_line is followed by
3708         "have_error = 1;", replace both statements with a call to
3709         error_with_line.
3710         * genoutput.c: Likewise.
3711         * genpreds.c: Likewise.
3712         * genrecog.c: If a call to message_with_line is followed by
3713         "error_count++;", replace both statements with a call to
3714         error_with_line.
3715         (errorcount): Delete.
3716         (main): Don't check it.
3717         * gensupport.c: If a call to message_with_line is followed by
3718         "errors = 1;", replace both statements with a call to error_with_line.
3719         (errors): Delete.
3720         (process_define_cond_exec): Check have_error instead of errors.
3721         (init_md_reader_args_cb): Likewise.  Don't set errors.
3722
3723 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3724
3725         * read-md.h (read_md_file): Declare.
3726         (read_char, unread_char): New functions.
3727         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
3728         (read_quoted_string, read_string): Remove FILE * argument.
3729         * read-md.c (read_md_file): New variable.
3730         (read_md_filename, read_md_lineno): Update comments and remove
3731         unnecessary initialization.
3732         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
3733         (read_escape, read_quoted_string, read_braced_string, read_string):
3734         Remove FILE * argument.  Update calls accordingly, using read_char
3735         and unread_char instead of getc and ungetc.
3736         * rtl.h (read_rtx): Remove FILE * argument.
3737         * read-rtl.c (iterator_group): Remove FILE * argument from
3738         "find_builtin".
3739         (iterator_traverse_data): Remove "infile" field.
3740         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
3741         (add_mapping, read_name, read_constants, read_conditions)
3742         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
3743         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
3744         Remove file arguments from all calls, using read_char and unread_char
3745         instead of getc and ungetc.
3746         * gensupport.c (process_include): Preserve read_md_file around
3747         the include.  Set read_md_file to the handle of the included file.
3748         Update call to read_rtx.
3749         (init_md_reader_args_cb): Set read_md_file to the handle of the file
3750         and remove local FILE *.  Update calls to read_rtx.
3751
3752 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3753
3754         * read-md.h (read_rtx_lineno): Rename to...
3755         (read_md_lineno): ...this.
3756         (read_rtx_filename): Rename to...
3757         (read_md_filename): ...this.
3758         (copy_rtx_ptr_loc): Rename to...
3759         (copy_md_ptr_loc): ...this.
3760         (print_rtx_ptr_loc): Rename to...
3761         (print_md_ptr_loc): ...this.
3762         * read-md.c: Likewise.  Update references after renaming.
3763         (string_obstack): Replace RTL with MD in comment.
3764         (set_rtx_ptr_loc): Rename to...
3765         (set_md_ptr_loc): ...this.
3766         (get_rtx_ptr_loc): Rename to...
3767         (get_md_ptr_loc): ...this.
3768         * genconditions.c: Update references after renaming.
3769         * genemit.c: Likewise.
3770         * genoutput.c: Likewise.
3771         * genpreds.c: Likewise.
3772         * gensupport.c: Likewise.
3773         * read-rtl.c: Likewise.
3774
3775 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3776
3777         * Makefile.in (READ_MD_H): New variable.
3778         (BUILD_RTL): Add build/read-md.o.
3779         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
3780         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
3781         (build/genattrtab.o, build/genconditions.o build/genemit.o)
3782         (build/genextract.o, build/genflags.o, build/genoutput.o)
3783         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
3784         (build/read-md.o): New rule.
3785         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
3786         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
3787         * coretypes.h: ...here.
3788         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
3789         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
3790         * genattr.c: Include read-md.h.
3791         * genattrtab.c: Likewise.
3792         * genconditions.c: Likewise.
3793         * genemit.c: Likewise.
3794         * genextract.c: Likewise.
3795         * genflags.c: Likewise.
3796         * genoutput.c: Likewise.
3797         * genpreds.c: Likewise.
3798         * genrecog.c: Likewise.
3799         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3800         (join_c_conditions, print_c_condition, read_rtx_filename)
3801         (read_rtx_lineno): Move to read-md.h.
3802         * read-rtl.c: Include read-md.h.
3803         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
3804         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
3805         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
3806         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
3807         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3808         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
3809         (read_braced_string, read_string): Move to read-md.c.
3810         (read_rtx): Move some initialization to init_md_reader and call
3811         init_md_reader here.
3812         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
3813         Move to read-md.h.
3814         * gensupport.c: Include read-md.h.
3815         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
3816         * read-md.h, read-md.c: New files.
3817
3818 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
3819
3820         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3821         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3822         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
3823         * config/moxie/moxie.c (moxie_function_value): Make static.
3824         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
3825         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
3826
3827 2010-06-10  Martin Jambor  <mjambor@suse.cz>
3828
3829         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
3830         * dbgcnt.def (tree_sra): New counter.
3831         * tree-sra.c: Include dbgcnt.h.
3832         (gate_intra_sra): Check tree_sra debug counter.
3833
3834 2010-06-10  Martin Jambor  <mjambor@suse.cz>
3835
3836         PR tree-optimization/44258
3837         * tree-sra.c (build_access_subtree): Return false iff there is a
3838         partial overlap.
3839         (build_access_trees): Likewise.
3840         (analyze_all_variable_accesses): Disqualify candidates if
3841         build_access_trees returns true for them.
3842
3843 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
3844
3845         PR debug/41371
3846         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
3847         tail-recurse into canonical node.  Fast-forward over
3848         non-canonical VALUEs.
3849
3850 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
3851
3852         PR boostrap/44470
3853         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
3854         (*addsi_1_zext) <TYPE_LEA>: Likewise.
3855         (add lea splitter): Likewise.
3856         (add_zext lea splitter): Likewise.
3857
3858 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
3859
3860         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
3861
3862 2010-06-10  Jan Hubicka  <jh@suse.cz>
3863
3864         * df-problems.c (df_live_problem_data): Add live_bitmaps.
3865         (df_live_alloc): Initialize problem data and live_osbtacks.
3866         (df_live_finalize): Remove obstack, problem data; do not
3867         clear all bitmaps.
3868         (df_live_top_dump, df_live_bottom_dump): Do not dump old
3869         data when not allocated.
3870         (df_live_verify_solution_start): Do not allocate problem data.
3871         (df_live_verify_solution_end): Check if out is allocated.
3872         (struct df_md_problem_data): New structure.
3873         (df_md_alloc): Allocate problem data.
3874         (df_md_free): Free problem data; do not clear bitmaps.
3875
3876 2010-06-10  Jan Beulich  <jbeulich@novell.com>
3877
3878         PR bootstrap/37304
3879         * configure.ac: Replace $() with ${} when intending to expand
3880         variables rather than invoking commands.
3881         * configure: Re-generate.
3882
3883 2010-06-10  Jan Hubicka  <jh@suse.cz>
3884
3885         PR rtl-optimization/44460
3886         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
3887         TYPE_NEEDS_CONSTRUCTING sanity check.
3888
3889 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3890
3891         * doc/include/fdl.texi: Move to GFDL version 1.3.
3892
3893         * doc/cpp.texi: Move to GFDL version 1.3.
3894         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
3895         * doc/gccint.texi: Move to GFDL version 1.3.
3896         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
3897         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
3898         * doc/invoke.texi: Move to GFDL version 1.3.
3899
3900 2010-06-09  Jan Hubicka  <jh@suse.cz>
3901
3902         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
3903         Break out from ...
3904         (propagate) ... here; swap the order.
3905
3906 2010-06-09  Jan Hubicka  <jh@suse.cz>
3907
3908         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
3909         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
3910         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
3911         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
3912
3913 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
3914
3915         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
3916         Do not the gather memory reference in the outer loop if the step
3917         is not a constant.
3918
3919 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
3920
3921         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
3922         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
3923         8 to 4.  Minor change of the related comments.
3924
3925 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3926
3927         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
3928         the scev analysis when the variable is not used outside the loop
3929         in a close phi node: call compute_overall_effect_of_inner_loop.
3930
3931 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3932
3933         * graphite-sese-to-poly.c (single_pred_cond): Renamed
3934         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
3935         (build_sese_conditions_before): Renamed call to single_pred_cond.
3936         (build_sese_conditions_after): Same.
3937
3938 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3939
3940         * graphite-poly.h: Fix comments and indentation.
3941         * graphite-sese-to-poly.c: Same.
3942         (build_sese_conditions_before): Compute stmt and gbb only when needed.
3943         * tree-chrec.c: Fix comments and indentation.
3944         (tree-ssa-loop-niter.c): Same.
3945
3946 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3947
3948         PR rtl-optimization/42461
3949         * dce.c (deletable_insn_p): Return true for const or pure calls again.
3950         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
3951
3952 2010-06-09  Jan Hubicka  <jh@suse.cz>
3953
3954         * bitmap.c (bitmap_and): Walk array forward.
3955         (bitmap_and_compl_into): Likewise.
3956         (bitmap_xor): Likewise.
3957         (bitmap_xor_into):  Likewise.
3958         (bitmap_equal_p): Likewise.
3959         (bitmap_intersect_p): Likewise.
3960         (bitmap_intersect_compl_p): Likewise.
3961         (bitmap_ior_and_into): Likewise.
3962         (bitmap_elt_copy): Likewise.
3963         (bitmap_and_compl): Likewise.
3964         (bitmap_elt_ior): Likewise.
3965
3966 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
3967
3968         * opts-common.c (prune_options): Ensure replacement argv array
3969         is correctly terminated by a NULL entry.
3970
3971 2010-06-09  Jan Hubicka  <jh@suse.cz>
3972
3973         * cgraph.h (varpool_first_static_initializer,
3974         varpool_next_static_initializer): Make checking only when
3975         checking enabled.
3976         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
3977         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
3978         gcc_assert to gcc_checking_assert.
3979         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
3980         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
3981         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
3982         op_iter_init_phiuse, op_iter_init_phidef,
3983         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
3984         gcc_checking_assert.
3985         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
3986         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
3987         partition_is_global, live_on_entry, live_on_exit,
3988         live_merge_and_clear): Likewise.
3989         * system.h (gcc_checking_assert): New macro.
3990         * gimple.h (set_bb_seq): Use gcc_checking_assert.
3991
3992 2010-06-09  Jason Merrill  <jason@redhat.com>
3993
3994         * Makefile.in (TAGS): Collect tags info from c-family.
3995
3996 2010-06-09  Jan Hubicka  <jh@suse.cz>
3997
3998         * gimple.h (gcc_gimple_checking_assert): New macro.
3999         (gimple_set_def_ops, gimple_set_use_ops,
4000         gimple_set_vuse, gimple_set_vdef,
4001         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
4002         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
4003         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
4004         gimple_asm_output_op, gimple_asm_output_op_ptr,
4005         gimple_asm_set_output_op, gimple_asm_clobber_op,
4006         gimple_asm_set_clobber_op, gimple_asm_label_op,
4007         gimple_asm_set_label_op, gimple_try_set_kind,
4008         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
4009         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
4010         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
4011         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
4012         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
4013         gimple_omp_for_set_initial, gimple_omp_for_final,
4014         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
4015         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
4016         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
4017         conditional with ENABLE_GIMPLE_CHECKING.
4018         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
4019
4020 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
4021
4022         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
4023         (get_computation_cost_at): Use it.
4024         (determine_use_iv_cost_condition): Likewise.
4025         (determine_iv_cost): Likewise.
4026
4027 2010-06-09  Richard Guenther  <rguenther@suse.de>
4028
4029         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
4030         replace constants.
4031
4032 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
4033
4034         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
4035
4036 2010-06-09  Martin Jambor  <mjambor@suse.cz>
4037
4038         PR tree-optimization/44423
4039         * tree-sra.c (dump_access): Dump also grp_assignment_read.
4040         (analyze_access_subtree): Pass negative allow_replacements to children
4041         if the current type is scalar.
4042
4043 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
4044
4045         PR testsuite/42843
4046         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
4047         * doc/plugins.texi (Plugin license check): Update information
4048         on type of plugin_is_GPL_compatible.
4049         * Makefile.in (PLUGINCC): Define as $(COMPILER).
4050         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
4051
4052 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
4053
4054         * config/arm/arm.c (thumb2_reorg): New function.
4055         (arm_reorg): Call it.
4056         * config/arm/thumb2.md (define_peephole2 for flag clobbering
4057         arithmetic operations): Delete.
4058
4059 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
4060
4061         PR target/44067
4062         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
4063         e500v2 target.
4064
4065 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
4066
4067         PR plugins/44459
4068         * gcc-plugin.h: Encapsulate all declarations in extern "C".
4069
4070 2010-06-08  Jan Hubicka  <jh@suse.cz>
4071
4072         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
4073         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
4074
4075 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
4076
4077         PR tree-optimization/39874
4078         PR middle-end/28685
4079         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
4080         Declare.
4081         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
4082         same_bool_result_p): New.
4083         (and_var_with_comparison, and_var_with_comparison_1,
4084         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
4085         (or_var_with_comparison, or_var_with_comparison_1,
4086         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
4087         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
4088         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
4089         of combine_comparisons.
4090         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
4091
4092 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
4093
4094         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4095         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4096         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
4097         pdp11_function_value_regno_p): New functions.
4098         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4099         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4100
4101 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
4102
4103         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
4104         Thumb-2 in the MINUS case.
4105
4106 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4107
4108         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
4109
4110         * doc/gty.texi (GTY Options): Document typed GC allocation and
4111         variable_size GTY option.
4112
4113         * ggc-internal.h: New.
4114
4115         * ggc.h: Update copyright year.
4116         (digit_string): Move to stringpool.c.
4117         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
4118         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
4119         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
4120         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
4121         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
4122         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
4123         (ggc_force_collect, ggc_get_size, ggc_statistics)
4124         (ggc_print_common_statistics): Move to ggc-internal.h.
4125         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
4126         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
4127         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
4128         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
4129         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
4130         (ggc_alloc_zone_pass_stat): Remove.
4131         (ggc_internal_alloc_stat, ggc_internal_alloc)
4132         (ggc_internal_cleared_alloc_stat): New.
4133         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
4134         (ggc_internal_vec_alloc_stat)
4135         (ggc_internal_cleared_vec_alloc_stat)
4136         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
4137         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
4138         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
4139         (ggc_cleared_alloc_ptr_array_two_args): New.
4140         (htab_create_ggc, splay_tree_new_ggc): Redefine.
4141         (ggc_splay_alloc): Change the type of the first argument to
4142         enum gt_types_enum.
4143         (ggc_alloc_string): Make macro.
4144         (ggc_alloc_string_stat): New.
4145         (ggc_strdup): Redefine.
4146         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
4147         (ggc_alloc_rtvec_sized): New.
4148         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
4149         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
4150         (ggc_internal_cleared_alloc_zone_stat)
4151         (ggc_internal_zone_alloc_stat)
4152         (ggc_internal_zone_cleared_alloc_stat)
4153         (ggc_internal_zone_vec_alloc_stat)
4154         (ggc_alloc_zone_rtx_def_stat)
4155         (ggc_alloc_zone_tree_node_stat)
4156         (ggc_alloc_zone_cleared_tree_node_stat)
4157         (ggc_alloc_cleared_gimple_statement_d_stat): New.
4158
4159         * ggc-common.c: Include ggc-internal.h.
4160         (ggc_internal_cleared_alloc_stat): Rename from
4161         ggc_alloc_cleared_stat.
4162         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
4163         (ggc_calloc): Remove.
4164         (ggc_cleared_alloc_htab_ignore_args): New.
4165         (ggc_cleared_alloc_ptr_array_two_args): New.
4166         (ggc_splay_alloc): Add obj_type parameter.
4167         (init_ggc_heuristics): Formatting fixes.
4168
4169         * ggc-none.c: Update copyright year.
4170         (ggc_alloc_stat): Rename to ggc_alloc_stat.
4171         (ggc_alloc_cleared_stat): Rename to
4172         ggc_internal_cleared_alloc_stat.
4173         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
4174
4175         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
4176         Remove references to ggc_alloc in comments.
4177         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
4178         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
4179         (new_ggc_zone, destroy_ggc_zone): Remove.
4180         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
4181
4182         * ggc-zone.c: Include ggc-internal.h.  Remove references to
4183         ggc_alloc in comments.
4184         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
4185         (ggc_internal_alloc_zone_pass_stat): New.
4186         (ggc_internal_cleared_alloc_zone_stat): New.
4187         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
4188         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
4189         (new_ggc_zone, destroy_ggc_zone): Remove.
4190
4191         * stringpool.c: Update copyright year.  Include ggc-internal.h
4192         (digit_vector): Make static.
4193         (digit_string): Moved from ggc.h.
4194         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
4195         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
4196
4197         * Makefile.in (GGC_INTERNAL_H): New.
4198         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
4199         $(GGC_INTERNAL_H) to dependencies.
4200
4201         * gentype.c: Update copyright year.
4202         (walk_type): Accept variable_size GTY option.
4203         (USED_BY_TYPED_GC_P): New macro.
4204         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
4205         whitespace at the end of strings.
4206         (get_type_specifier, variable_size_p): New functions.
4207         (alloc_quantity, alloc_zone): New enums.
4208         (write_typed_alloc_def): New function.
4209         (write_typed_struct_alloc_def): Likewise.
4210         (write_typed_typed_typedef_alloc_def): Likewise.
4211         (write_typed_alloc_defns): Likewise.
4212         (output_typename, write_splay_tree_allocator_def): Likewise.
4213         (write_splay_tree_allocators): Likewise.
4214         (main): Call write_typed_alloc_defns and
4215         write_splay_tree_allocators.
4216
4217         * lto-streamer.h (lto_file_decl_data_ptr): New.
4218
4219         * passes.c (order): Define using cgraph_node_ptr.
4220
4221         * strinpool.c (struct string_pool_data): Declare nested_ptr using
4222         ht_identifier_ptr.
4223
4224         * gimple.h (union gimple_statement_d): Likewise.
4225
4226         * rtl.h (struct rtx_def): Likewise.
4227         (struct rtvec_def): Likewise.
4228
4229         * tree.h (union tree_node): Likewise.
4230
4231         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
4232
4233         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
4234
4235         * tree-scalar-evolution.c (scev_initialize): Likewise.
4236
4237         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
4238
4239         * dwarf2asm.c (dw2_force_const_mem): Likewise.
4240
4241         * omp-low.c (lower_omp_critical): Likewise.
4242
4243         * bitmap.h (struct bitmap_head_def): Update comment to not
4244         reference ggc_alloc.
4245
4246         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
4247
4248         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
4249
4250         * ipa-prop.c (duplicate_ggc_array): Rename to
4251         duplicate_ipa_jump_func_array.  Use typed GC allocation.
4252         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
4253
4254         * gimple.c (gimple_alloc_stat): Use
4255         ggc_alloc_cleared_gimple_statement_d_stat.
4256
4257         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
4258
4259         * tree.c (make_node_stat): Use
4260         ggc_alloc_zone_cleared_tree_node_stat.
4261         (make_tree_vec_stat): Likewise.
4262         (build_vl_exp_stat): Likewise.
4263         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
4264         (make_tree_binfo_stat): Likewise.
4265         (tree_cons_stat): Likewise.
4266
4267         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
4268         (shallow_copy_rtx_stat): Likewise.
4269         (make_node_stat): Likewise.
4270
4271         * lto-symtab.c: Fix comment.
4272
4273         * tree-cfg.c (create_bb): Update comment to not reference
4274         ggc_alloc_cleared.
4275         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
4276
4277         * varpool.c (varpool_node): Use typed GC allocation.
4278         (varpool_extra_name_alias): Likewise.
4279
4280         * varasm.c (emutls_decl): Likewise.
4281         (get_unnamed_section): Likewise.
4282         (get_noswitch_section): Likewise.
4283         (get_section): Likewise.
4284         (get_block_for_section): Likewise.
4285         (build_constant_desc): Likewise.
4286         (create_constant_pool): Likewise.
4287         (force_const_mem): Likewise.
4288
4289         * tree.c (build_vl_exp_stat): Likewise.
4290         (build_real): Likewise.
4291         (build_string): Likewise.
4292         (decl_debug_expr_insert): Likewise.
4293         (decl_value_expr_insert): Likewise.
4294         (type_hash_add): Likewise.
4295         (build_omp_clause): Likewise.
4296
4297         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
4298
4299         * tree-ssa.c (init_tree_ssa): Likewise.
4300
4301         * tree-ssa-structalias.c (heapvar_insert): Likewise.
4302
4303         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
4304
4305         * tree-ssa-loop-niter.c (record_estimate): Likewise.
4306
4307         * tree-ssa-alias.c (get_ptr_info): Likewise.
4308
4309         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
4310
4311         * tree-phinodes.c (allocate_phi_node): Likewise.
4312
4313         * tree-iterator.c (tsi_link_before): Likewise.
4314         (tsi_link_after): Likewise.
4315
4316         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
4317
4318         * tree-dfa.c (create_var_ann): Likewise.
4319
4320         * tree-cfg.c (create_bb): Likewise.
4321
4322         * toplev.c (alloc_for_identifier_to_locale): Likewise.
4323         (general_init): Likewise.
4324
4325         * stringpool.c (stringpool_ggc_alloc): Likewise.
4326         (gt_pch_save_stringpool): Likewise.
4327
4328         * sese.c (if_region_set_false_region): Likewise.
4329
4330         * passes.c (do_per_function_toporder): Likewise.
4331
4332         * optabs.c (set_optab_libfunc): Likewise.
4333         (set_conv_libfunc): Likewise.
4334
4335         * lto-symtab.c (lto_symtab_register_decl): Likewise.
4336
4337         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
4338         (input_eh_region): Likewise.
4339         (input_eh_lp): Likewise.
4340         (make_new_block): Likewise.
4341         (unpack_ts_real_cst_value_fields): Likewise.
4342
4343         * lto-section-in.c (lto_new_in_decl_state): Likewise.
4344
4345         * lto-cgraph.c (input_node_opt_summary): Likewise.
4346
4347         * loop-init.c (loop_optimizer_init): Likewise.
4348
4349         * lambda.h (lambda_vector_new): Likewise.
4350
4351         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
4352
4353         * ira.c (update_equiv_regs): Likewise.
4354
4355         * ipa.c (cgraph_node_set_new): Likewise.
4356         (cgraph_node_set_add): Likewise.
4357         (varpool_node_set_new): Likewise.
4358         (varpool_node_set_add): Likewise.
4359
4360         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
4361         (duplicate_ipa_jump_func_array): Likewise.
4362         (ipa_read_node_info): Likewise.
4363
4364         * ipa-cp.c (ipcp_create_replace_map): Likewise.
4365
4366         * integrate.c (get_hard_reg_initial_val): Likewise.
4367
4368         * gimple.c (gimple_alloc_stat): Likewise.
4369         (gimple_build_omp_for): Likewise.
4370         (gimple_seq_alloc): Likewise.
4371         (gimple_copy): Likewise.
4372
4373         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
4374         (gsi_insert_after_without_update): Likewise.
4375
4376         * function.c (add_frame_space): Likewise.
4377         (insert_temp_slot_address): Likewise.
4378         (assign_stack_temp_for_type): Likewise.
4379         (allocate_struct_function): Likewise.
4380         (types_used_by_var_decl_insert): Likewise.
4381
4382         * except.c (init_eh_for_function): Likewise.
4383         (gen_eh_region): Likewise.
4384         (gen_eh_region_catch): Likewise.
4385         (gen_eh_landing_pad): Likewise.
4386         (add_call_site): Likewise.
4387
4388         * emit-rtl.c (get_mem_attrs): Likewise.
4389         (get_reg_attrs): Likewise.
4390         (start_sequence): Likewise.
4391         (init_emit): Likewise.
4392
4393         * dwarf2out.c (new_cfi): Likewise.
4394         (queue_reg_save): Likewise.
4395         (dwarf2out_frame_init): Likewise.
4396         (new_loc_descr): Likewise.
4397         (find_AT_string): Likewise.
4398         (new_die): Likewise.
4399         (add_var_loc_to_decl): Likewise.
4400         (clone_die): Likewise.
4401         (clone_as_declaration): Likewise.
4402         (break_out_comdat_types): Likewise.
4403         (new_loc_list): Likewise.
4404         (loc_descriptor): Likewise.
4405         (add_loc_descr_to_each): Likewise.
4406         (add_const_value_attribute): Likewise.
4407         (tree_add_const_value_attribute): Likewise.
4408         (add_comp_dir_attribute): Likewise.
4409         (add_name_and_src_coords_attributes): Likewise.
4410         (lookup_filename): Likewise.
4411         (store_vcall_insn): Likewise.
4412         (dwarf2out_init): Likewise.
4413
4414         * dbxout.c (dbxout_init): Likewise.
4415
4416         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
4417
4418         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
4419
4420         * config/score/score7.c (score7_output_external): Likewise.
4421
4422         * config/score/score3.c (score3_output_external): Likewise.
4423
4424         * config/s390/s390.c (s390_init_machine_status): Likewise.
4425
4426         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
4427         (rs6000_init_machine_status): Likewise.
4428         (output_toc): Likewise.
4429
4430         * config/pa/pa.c (pa_init_machine_status): Likewise.
4431         (get_deferred_plabel): Likewise.
4432
4433         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
4434
4435         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
4436
4437         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
4438
4439         * config/mep/mep.c (mep_init_machine_status): Likewise.
4440         (mep_note_pragma_flag): Likewise.
4441
4442         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
4443
4444         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
4445
4446         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
4447
4448         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
4449         (i386_pe_maybe_record_exported_symbol): Likewise.
4450
4451         * config/i386/i386.c (get_dllimport_decl): Likewise.
4452         (ix86_init_machine_status): Likewise.
4453         (assign_386_stack_local): Likewise.
4454
4455         * config/frv/frv.c (frv_init_machine_status): Likewise.
4456
4457         * config/darwin.c (machopic_indirection_name): Likewise.
4458
4459         * config/cris/cris.c (cris_init_machine_status): Likewise.
4460
4461         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
4462
4463         * config/avr/avr.c (avr_init_machine_status): Likewise.
4464
4465         * config/arm/arm.c (arm_init_machine_status): Likewise.
4466
4467         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
4468         (alpha_need_linkage): Likewise.
4469         (alpha_use_linkage): Likewise.
4470
4471         * cgraph.c (cgraph_allocate_node): Likewise.
4472         (cgraph_create_edge_1): Likewise.
4473         (cgraph_create_indirect_edge): Likewise.
4474         (cgraph_add_asm_node): Likewise.
4475
4476         * cfgrtl.c (init_rtl_bb_info): Likewise.
4477
4478         * cfgloop.c (alloc_loop): Likewise.
4479         (rescan_loop_exit): Likewise.
4480
4481         * cfg.c (init_flow): Likewise.
4482         (alloc_block): Likewise.
4483         (unchecked_make_edge): Likewise.
4484
4485         * c-parser.c (c_parse_init): Likewise.
4486         (c_parse_file): Likewise.
4487
4488         * c-decl.c (bind): Likewise.
4489         (record_inline_static): Likewise.
4490         (push_scope): Likewise.
4491         (make_label): Likewise.
4492         (lookup_label_for_goto): Likewise.
4493         (finish_struct): Likewise.
4494         (finish_enum): Likewise.
4495         (c_push_function_context): Likewise.
4496
4497         * bitmap.c (bitmap_element_allocate): Likewise.
4498         (bitmap_gc_alloc_stat): Likewise.
4499
4500         * alias.c (record_alias_subset): Likewise.
4501         (init_alias_analysis): Likewise.
4502
4503 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
4504
4505         * fold-const.c (fold_comparison): Remove redundant parenthesis.
4506         * tree-inline.c (expand_call_inline): Pass translated return value of
4507         cgraph_inline_failed_string to diagnostic function.
4508
4509 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
4510             Shujing Zhao  <pearly.zhao@oracle.com>
4511
4512         PR c/37724
4513         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
4514         implicit bad conversions is initialization.
4515         (error_init): Use gmsgid instead of msgid for argument name and change
4516         the call for error.
4517         (pedwarn_init): Use gmsgid instead of msgid for argument name and
4518         change the call for pedwarn.
4519         (warning_init): Use gmsgid instead of msgid for argument name and
4520         change the call for warning.
4521
4522 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
4523
4524         * config/mips/mips-protos.h (mips_print_operand): Delete.
4525         (mips_print_operand_address): Delete.
4526         * config/mips/mips.h (mips_print_operand_punct): Delete.
4527         (PRINT_OPERAND): Delete.
4528         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4529         (PRINT_OPERAND_ADDRESS): Delete.
4530         * config/mips/mips.c (mips_print_operand_punct): Make static.
4531         (mips_print_operand_address): Make static.
4532         (mips_print_operand): Make static.  Call
4533         mips_print_operand_punct_valid_p.
4534         (mips_print_operand_punct_valid_p): New function.
4535         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4536         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4537
4538 2010-06-07  Jan Hubicka  <jh@suse.cz>
4539
4540         PR middle-end/44454
4541         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
4542         are allocated.
4543
4544 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
4545
4546         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
4547         name of RECORD.
4548
4549 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4550
4551         * doc/sourcebuild.texi (Effective-Target Keywords, Other
4552         attributes): Document gas.
4553
4554 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
4555
4556         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
4557         <TYPE_LEA>: Split instruction.
4558         <default>: Remove alternative 2 handling.
4559         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
4560         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
4561         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
4562
4563         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
4564         (ashift_zext lea splitter): Use DImode for multiplication.
4565
4566         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
4567         to generate addition.
4568
4569 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
4570
4571         * common.opt (fira-verbose): Use Var.
4572         (fpcc-struct-return): Use Init instead of VarExists.
4573         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
4574         toplev.c.
4575         * flags.h (flag_signed_char, flag_short_enums,
4576         flag_pcc_struct_return, flag_ira_verbose,
4577         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
4578         * toplev.c (flag_detailed_statistics, flag_signed_char,
4579         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
4580         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
4581         * toplev.h (flag_crossjumping, flag_if_conversion,
4582         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
4583         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
4584         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
4585         flag_cprop_registers, time_report, flag_ira_loop_pressure,
4586         flag_ira_coalesce, flag_ira_move_spills,
4587         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
4588
4589 2010-06-07  Jan Hubicka  <jh@suse.cz>
4590
4591         * df-core.c (df_analyze_problem): Do verification after allocation.
4592
4593         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
4594         (df_lr_alloc): Initialize problem data; move bitmaps to
4595         lr_bitmaps obstack.
4596         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
4597         (df_lr_verify_solution_start): Do not initialize problem data;
4598         allocate bitmaps in lr_bitmaps.
4599         (df_lr_verify_solution_end): Do not free problem data.
4600
4601 2010-06-07  Jan Hubicka  <jh@suse.cz>
4602
4603         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
4604         if caller is noreturn.
4605         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
4606         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
4607         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
4608         * ipa-pure-const.c (check_decl): Add IPA parameter.
4609         (state_from_flags): New function.
4610         (better_state, worse_state): New functions.
4611         (check_call): When in IPA mode, do not care about callees.
4612         (check_load, check_store): Update.
4613         (check_ipa_load, check_ipa_store): New.
4614         (check_stmt): When in IPA mode, use IPA checkers.
4615         (analyze_function): Use state_from_flags.
4616         (propagate): Check indirect edges and references.
4617
4618 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
4619
4620         PR rtl-optimization/44404
4621         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
4622         of count_occurrences to see if it's safe to modify mem_insn.
4623
4624 2010-06-07  Richard Guenther  <rguenther@suse.de>
4625
4626         * gimplify.c (gimplify_cleanup_point_expr): For empty body
4627         and EH-only cleanup drop the cleanup instead of inserting it
4628         unconditionally.
4629
4630 2010-06-07  Ira Rosen  <irar@il.ibm.com>
4631
4632         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
4633         documentation.
4634         * targhooks.c (default_builtin_vectorization_cost): New function.
4635         * targhooks.h (default_builtin_vectorization_cost): Declare.
4636         * target.h (enum vect_cost_for_stmt): Define.
4637         (builtin_vectorization_cost): Change argument and comment.
4638         * tree-vectorizer.h: Remove cost model macros.
4639         * tree-vect-loop.c: Include target.h.
4640         (vect_get_cost): New function.
4641         (vect_estimate_min_profitable_iters): Replace cost model macros with
4642         calls to vect_get_cost.
4643         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
4644         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
4645         default implementation.
4646         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
4647         calls to target hook builtin_vectorization_cost.
4648         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
4649         Likewise.
4650         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
4651         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
4652         implementation to return costs.
4653         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
4654         * config/spu/spu.h: Remove vectorizer cost model macros.
4655         * config/i386/i386.h: Likewise.
4656         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
4657         a call to target hook builtin_vectorization_cost.
4658
4659 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
4660
4661         PR target/44319
4662         * config/i386/i386.c (override_options): Turn zee pass on for level 2
4663         and above and defer till target is known.
4664         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
4665         turn off otherwise.
4666
4667 2010-05-25  Jan Hubicka  <jh@suse.cz>
4668
4669         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
4670         (df_compact_blocks): Likewise.
4671         * df.h (struct df): Turn hardware_regs_used,
4672         regular_block_artificial_uses, eh_block_artificial_uses,
4673         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
4674         bitmap_head.
4675         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
4676         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
4677         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
4678         df_scan_blocks, df_insn_delete, df_insn_rescan,
4679         df_insn_rescan_debug_internal, df_insn_rescan_all,
4680         df_process_deferred_rescans, df_process_deferred_rescans,
4681         df_notes_rescan, df_get_call_refs, df_get_call_refs,
4682         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
4683         df_record_entry_block_defs, df_record_exit_block_uses,
4684         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
4685         df_scan_verify): Update.
4686
4687 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
4688
4689         PR c++/44188
4690         * c-common.c (is_typedef_decl): Move this definition ...
4691         * tree.c (is_typedef_decl): ... here.
4692         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
4693         * c-common.h (is_typedef_decl): Move this declaration ...
4694         * tree.h (is_typedef_decl): ... here.
4695         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
4696         * dwarf2out.c (is_naming_typedef_decl): New function.
4697         (gen_tagged_type_die): Split out of ...
4698         (gen_type_die_with_usage): ... this function. When an anonymous
4699         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
4700         is emitted for the typedef.
4701         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
4702         anonymous tagged types.
4703
4704 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4705
4706         PR c/20000
4707         * c-decl.c (grokdeclarator): Delete warning.
4708
4709 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4710
4711         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
4712         newly built CALL_EXPR.
4713         * tree-profile.c (tree_profiling): Don't profile functions produced
4714         for built-in stuff.
4715
4716 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
4717
4718         PR bootstrap/44427
4719         PR bootstrap/44428
4720         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
4721         endianness-independent.
4722
4723 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
4724
4725         * c-common.c: Move to c-family/.
4726         * c-common.def: Likewise.
4727         * c-common.h: Likewise.
4728         * c-cppbuiltin.c: Likewise.
4729         * c-dump.c: Likewise.
4730         * c-format.c: Likewise.
4731         * c-format.h : Likewise.
4732         * c-gimplify.c: Likewise.
4733         * c-lex.c: Likewise.
4734         * c-omp.c: Likewise.
4735         * c.opt: Likewise.
4736         * c-opts.c: Likewise.
4737         * c-pch.c: Likewise.
4738         * c-ppoutput.c: Likewise.
4739         * c-pragma.c: Likewise.
4740         * c-pragma.h: Likewise.
4741         * c-pretty-print.c: Likewise.
4742         * c-pretty-print.h: Likewise.
4743         * c-semantics.c: Likewise.
4744         * stub-objc.c: Likewise.
4745
4746         * gengtype.c (get_file_langdir): Special-case files in c-family/.
4747         (get_output_file_with_visibility): Fix name for c-common.h.
4748         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
4749
4750         * c-tree.h: Update include path for moved files.
4751         * c-lang.c: Likewise.
4752         * c-lang.h: Likewise.
4753         * c-parser.c: Likewise.
4754         * c-convert.c: Likewise.
4755         * c-decl.c: Likewise.
4756         * c-objc-common.c: Likewise.
4757         * configure.ac: Make sure c-family/ exists in the build directory.
4758         * configure: Regenerate.
4759         * Makefile.in: Update paths for moved files.  Regroup files per
4760         location and update dependencies.  Move generated_files down after
4761         ALL_GTFILES_H.
4762
4763         * config/spu/spu-c.c: Update paths for moved files.
4764         * config/mep/mep-pragma.c: Likewise.
4765         * config/darwin-c.c: Likewise.
4766         * config/i386/msformat-c.c: Likewise.
4767         * config/i386/i386-c.c: Likewise.
4768         * config/avr/avr-c.c: Likewise.
4769         * config/sol2-c.c: Likewise.
4770         * config/ia64/ia64-c.c: Likewise.
4771         * config/rs6000/rs6000-c.c: Likewise.
4772         * config/arm/arm.c: Likewise.
4773         * config/arm/arm-c.c: Likewise.
4774         * config/h8300/h8300.c: Likewise.
4775         * config/v850/v850-c.c: Likewise.
4776
4777         * config/t-darwin: Fix dependencies for moved files.
4778         * config/t-sol2: Fix dependencies for moved files.
4779         * config/mep/t-mep: Fix dependencies for moved files.
4780         * config/ia64/t-ia64: Fix dependencies for moved files.
4781         * config/rs6000/t-rs6000: Fix dependencies for moved files.
4782         * config/v850/t-v850: Fix dependencies for moved files.
4783         * config/v850/t-v850e: Fix dependencies for moved files.
4784
4785         * config/m32c/m32c-pragma.c
4786
4787         * po/exgettext: Look in c-family/ also.
4788
4789 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4790
4791         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
4792         (mark_control_dependent_edges_necessary): Call it instead of marking
4793         the last statement manually.
4794         (propagate_necessity): Likewise.
4795
4796 2010-06-05  Jan Hubicka  <jh@suse.cz>
4797
4798         * basic-block.h (compute_dominance_frontiers): Updated.
4799         (compute_idf): Likewise.
4800
4801         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
4802         for dominance frontiers.
4803         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
4804         (insert_updated_phi_nodes_for): Likewise.
4805         (update_ssa): Likewise.
4806         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4807         (compute_dominance_frontiers): Likewise.
4808         (compute_idf): Likewise.
4809         * df-problems.c (df_md_local_compute): Likewise.
4810
4811 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
4812
4813         * target.h (struct gcc_target): Add memory_move_cost field.
4814         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
4815         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
4816         * targhooks.c (default_memory_move_cost): New function.
4817         * targhooks.h (default_memory_move_cost): Declare function.
4818         * reload.h (memory_move_cost): Declare.
4819         (memory_move_secondary_cost): Change type of 'in' argument to bool.
4820         * reginfo.c (memory_move_cost): New function.
4821         (memory_move_secondary_cost): Change type of 'in' argument to bool.
4822         * ira.h (ira_memory_move_cost): Update comment.
4823         * ira.c: (ira_memory_move_cost): Update comment.
4824         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
4825         with memory_move_cost.
4826         * postreload.c (reload_cse_simplify_set): (Ditto.).
4827         * reload1.c (choose_reload_regs): (Ditto.).
4828         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
4829         (MEMORY_MOVE_COST):  Revise documentation.
4830
4831         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
4832         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
4833         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
4834         type of 'in' argument to bool.
4835         (TARGET_MEMORY_MOVE_COST): Define.
4836
4837 2010-06-05  Jan Hubicka  <jh@suse.cz>
4838
4839         * ipa-pure-const.c (propagate): Fix typo in handling of functions
4840         that cannot return.  Be more careful when merging the results with
4841         previously known ones.
4842
4843 2010-06-05  Matthias Klose  <doko@ubuntu.com>
4844
4845         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
4846         function to add the -iplugindir option.
4847         (find_plugindir_spec_function): Add new declaration and function.
4848         (static_spec_func): Use it for "find-plugindir".
4849
4850 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
4851
4852         PR c++/44361
4853         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
4854         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
4855         statement expression.
4856
4857 2010-06-05  Jan Hubicka  <jh@suse.cz>
4858
4859         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
4860         (df_rd_problem_data): Convert sparse_invalidated_by_call,
4861         dense_invalidated_by_call to bitmap head.
4862         (df_rd_alloc, df_rd_bb_local_compute_process_def,
4863         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
4864         df_rd_start_dump, df_lr_verify_transfer_functions,
4865         df_live_verify_transfer_functions, df_chain_create_bb,
4866         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
4867         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
4868         df_simulate_one_insn_forwards, df_md_alloc,
4869         df_md_bb_local_compute_process_def,
4870         df_md_bb_local_compute_process_def, df_md_local_compute,
4871         df_md_transfer_function df_md_free): Update.
4872
4873 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
4874
4875         PR c/44322
4876         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
4877         target type for ADDR_EXPR; require no changes to qualifiers except
4878         for function types.
4879         * c-tree.h (c_build_type_variant): Remove.
4880
4881 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
4882
4883         * genautomata.c (get_excl_set): Do work per element, not per char.
4884         (check_presence_pattern_sets): Similar.
4885         (check_absence_pattern_sets): Similar.
4886
4887 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
4888
4889         * genautomata.c (curr_state_pass_num): Delete.
4890         (min_issue_delay_pass_states): Delete.
4891         (min_issue_delay): Delete.
4892         (initiate_min_issue_delay_pass_states): Delete.
4893         (output_min_issue_delay_table): Compute min_issue_delay_vect
4894         using a breadth-first search variant.
4895         (output_tables): Don't call initiate_min_issue_delay_pass_states.
4896
4897 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4898
4899         PR boostrap/44421
4900         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
4901         (df_byte_lr_bb_local_compute): Likewise.
4902
4903 2010-06-03  Jason Merrill  <jason@redhat.com>
4904
4905         Implement noexcept operator (5.3.7)
4906         * c-common.c (c_common_reswords): Add noexcept.
4907         * c-common.h (enum rid): Add RID_NOEXCEPT.
4908
4909 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
4910
4911         * config/darwin-driver.c (darwin_default_min_version): Use
4912         GCC-specific formats in diagnostics.
4913         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
4914         diagnostics.
4915         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
4916         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
4917         eval_spec_function, handle_braces, process_brace_body, main,
4918         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
4919         getenv_spec_function, compare_version_strings,
4920         version_compare_spec_function): Use GCC-specific formats in
4921         diagnostics.
4922
4923 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
4924
4925         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
4926         that operand 0 and operand 1 are equal.
4927         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
4928         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
4929         and operand 1 are equal.
4930         <default>: Ditto.  Remove ??? comment.
4931         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
4932         and operand 1 are equal.
4933         <default>: Ditto.  Remove ??? comment.
4934         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
4935         are equal.
4936         (*add<mode>_4) <default>: Ditto.
4937         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
4938
4939 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
4940
4941         * config/i386/i386-protos.h (ix86_print_operand): Declare.
4942         * config/i386/i386.c (ix86_print_operand): Make non-static.
4943         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
4944         * output.h (output_operand): Declare.
4945         * final.c (output_operand): Make non-static.
4946
4947 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
4948
4949         PR rtl-optimization/44013
4950         * sched-deps.c (add_dependence_list_and_free): Don't free lists
4951         when processing debug insns.
4952
4953         PR debug/41371
4954         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
4955         recursing.  Check that recursion is bounded.  Rename inner var
4956         to avoid hiding incoming argument.
4957
4958 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
4959
4960         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
4961         operands[2] == 255.
4962         (*addqi_3): Ditto.
4963         (*addqi_4): Ditto.
4964         (*addqi_5): Ditto.
4965         (*addqi_ext_1_rex64): Ditto.
4966         (*addqi_ext_1): Ditto.
4967
4968         (*addqi_4): Check for incdec_operand in QImode.
4969
4970         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
4971         using SWI mode iterator.
4972         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
4973         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
4974         mode iterator.
4975         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
4976         using SWI mode iterator.
4977
4978 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4979
4980         PR c/25880
4981         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
4982         * c-format.c (gcc_diag_flag_specs): Add hash.
4983         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
4984         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
4985         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
4986         pp_c_cv_qualifiers. Handle qualifiers spelling here.
4987         (pp_c_type_qualifier_list): Call the function above.
4988         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
4989         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
4990         (WARN_FOR_QUALIFIERS): New macro.
4991         (convert_for_assignment): Use it.
4992
4993 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
4994
4995         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
4996
4997 2010-06-04  Jan Hubicka  <jh@suse.cz>
4998
4999         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
5000         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
5001         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
5002         DF_BYTE_LR_OUT): Update for embedded bitmaps.
5003         * fwprop.c (single_def_use_enter_block): Likewise.
5004         * ddg.c (create_ddg_dep_from_intra_loop_link,
5005         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
5006         * loop-iv.c (latch_dominating_def): Likewise.
5007         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
5008         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
5009         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
5010         df_rd_transfer_function, df_rd_top_dump,
5011         df_rd_bottom_dump): Update.
5012         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
5013         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
5014         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
5015         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
5016         df_lr_verify_solution_start, df_lr_verify_solution_end,
5017         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
5018         df_live_free_bb_info, df_live_alloc, df_live_reset,
5019         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
5020         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
5021         df_live_verify_solution_start, df_live_verify_solution_end,
5022         df_live_verify_transfer_functions, df_chain_create_bb,
5023         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
5024         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
5025         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
5026         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
5027         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
5028         df_byte_lr_transfer_function, df_byte_lr_top_dump,
5029         df_byte_lr_bottom_dump, df_create_unused_note,
5030         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
5031         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
5032         df_md_transfer_function, df_md_init, df_md_confluence_0,
5033         df_md_confluence_n,
5034         df_md_top_dump, df_md_bottom_dump): Update.
5035         (struct df_lr_problem_data): Embedd bitmap headers.
5036
5037 2010-06-04  Jan Hubicka  <jh@suse.cz>
5038
5039         * dce.c (dce_process_block): Do not re-scan already marked
5040         instructions.
5041
5042 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
5043
5044         PR rtl-optimization/39871
5045         PR rtl-optimization/40615
5046         PR rtl-optimization/42500
5047         PR rtl-optimization/42502
5048         * ira.c (init_reg_equiv_memory_loc: New function.
5049         (ira): Call it twice.
5050         * reload.h (calculate_elim_costs_all_insns): Declare.
5051         * ira-costs.c: Include "reload.h".
5052         (regno_equiv_gains): New static variable.
5053         (init_costs): Allocate it.
5054         (finish_costs): Free it.
5055         (ira_costs): Call calculate_elim_costs_all_insns.
5056         (find_costs_and_classes): Take estimated elimination costs
5057         into account.
5058         (ira_adjust_equiv_reg_cost): New function.
5059         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
5060         * reload1.c (init_eliminable_invariants, free_reg_equiv,
5061         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
5062         (elim_bb): New static variable.
5063         (reload): Move code out of here into init_eliminable_invariants and
5064         free_reg_equiv.  Call them.
5065         (calculate_elim_costs_all_insns): New function.
5066         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
5067         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
5068         but call note_reg_elim_costly if we turned a valid memory address
5069         into an invalid one.
5070         * Makefile.in (ira-costs.o): Depend on reload.h.
5071
5072 2010-06-04  Julian Brown  <julian@codesourcery.com>
5073
5074         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
5075         for pool ranges.
5076
5077 2010-06-04  Richard Guenther  <rguenther@suse.de>
5078
5079         PR lto/41584
5080         * cgraph.h (struct varpool_node): Add lto_file_data field.
5081         * lto-cgraph.c (input_varpool_node): Initialize it.
5082
5083 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
5084
5085         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
5086         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
5087         predicate in "type" attribute calculation.
5088         (*addsi_1_zext): Ditto.
5089         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
5090         (*addsi_2_zext): Ditto.
5091         (*add<mode>_3): Ditto.
5092         (*addsi_3_zext): Ditto.
5093         (*add<mode>_5): Ditto.
5094
5095 2010-06-03  Jan Hubicka  <jh@suse.cz>
5096
5097         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
5098         of bitmap_bit_p.
5099         * cfganal.c (compute_dominance_frontiers_1): Likewise.
5100
5101 2010-06-03  Jan Hubicka  <jh@suse.cz>
5102
5103         * df-problems.c (df_create_unused_note, df_note_bb_compute):
5104         micro-optimize the checks when to add new note.
5105
5106 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
5107
5108         * final.c (output_asm_insn): Call
5109         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
5110         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
5111         (output_address): Call targetm.asm_out.print_operand_address.
5112         Update comments.
5113         * target.h (struct gcc_target): Add print_operand,
5114         print_operand_address, and print_operand_punct_valid_p fields.
5115         * targhooks.h (default_print_operand): Declare.
5116         (default_print_operand_address): Declare.
5117         (default_print_operand_punct_valid_p): Declare.
5118         * targhooks.c (default_print_operand): Define.
5119         (default_print_operand_address): Define.
5120         (default_print_operand_punct_valid_p): Define.
5121         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
5122         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
5123         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
5124         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
5125         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
5126         * vmsdbgout.c (addr_const_to_string): Update comment.
5127         * config/i386/i386.c (print_operand): Rename to...
5128         (ix86_print_operand): ...this.  Make static.
5129         (print_operand_address): Rename to...
5130         (ix86_print_operand_address): ...this.  Make static.  Call
5131         ix86_print_operand instead of PRINT_OPERAND.
5132         (ix86_print_operand_punct_valid_p): New function.
5133         (TARGET_PRINT_OPERAND): Define.
5134         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5135         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5136         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
5137         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5138         (PRINT_OPERAND): Delete.
5139         (PRINT_OPERAND_ADDRESS): Delete.
5140         * config/i386/i386-protos.h (print_operand): Delete prototype.
5141         (print_operand_address): Delete prototype.
5142
5143 2010-06-03  Richard Guenther  <rguenther@suse.de>
5144
5145         PR tree-optimization/44403
5146         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5147         Preserve pointer qualifiers.
5148         (vect_create_data_ref_ptr): Likewise.
5149
5150 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
5151
5152         PR c++/44294
5153         * defaults.h (MAX_FIXED_MODE_SIZE): New.
5154
5155         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
5156
5157 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
5158
5159         PR debug/44375
5160         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
5161         return false if merging the bbs would lead to goto_locus
5162         location being lost from the IL.
5163
5164 2010-06-03  Jan Hubicka  <jh@suse.cz>
5165             Jakub Jelinek  <jakub@redhat.com>
5166
5167         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
5168         set->regs[i] is NULL or has just one entry.
5169
5170 2010-06-03  Jan Hubicka  <jh@suse.cz>
5171
5172         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
5173         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
5174
5175 2010-06-03  Paul Brook  <paul@codesourcery.com>
5176
5177         * config/arm/arm.c (FL_TUNE): Define.
5178         (arm_default_cpu, arm_cpu_select): Remove.
5179         (all_cores): Populate core field.
5180         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
5181         (arm_find_cpu): New function.
5182         (arm_handle_option): Lookup cpu/architecture names.
5183         (arm_override_options): Cleanup mcpu/march/mtune handling.
5184         (arm_file_start): Ditto.
5185
5186 2010-06-03  Alan Modra  <amodra@gmail.com>
5187
5188         PR target/44169
5189         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
5190         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
5191         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
5192         (rs6000_emit_load_toc_table): Likewise.
5193
5194 2010-06-02  Jan Hubicka  <jh@suse.cz>
5195
5196         * passes.c (init_optimization_passes): Put ipa reference
5197         after ipa pure-const.
5198
5199 2010-06-02  Jan Hubicka  <jh@suse.cz>
5200
5201         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
5202         calls_read_all and calls_write_all.
5203         (get_reference_optimization_summary): Fix formatting.
5204         (is_proper_for_analysis): Check that decl is not readonly.
5205         (propagate_bits): Check CONST/PURE/noreturn flags.
5206         (ipa_init): Move all_module_statics to optimization_summary_obstack.
5207         (analyze_function): Ignore indirect edges.
5208         (copy_global_bitmap): For all module statics, do nothing.
5209         (generate_summary): Do not print calls_read_all/calls_write_all.
5210         (read_write_all_from_decl): Take node as argument; check
5211         cgraph_node_cannot_return.
5212         (propagate): Reorganize read_all/write_all computation;
5213         check indirect edges; check ecf flags; use all_module_statics
5214         in the results; do not free all_module_statics.
5215         (stream_out_bitmap): Handle all_module_statics.
5216         (ipa_reference_write_optimization_summary): Likewise; use
5217         varpool/cgraph encoders to get boundaries.
5218         (ipa_reference_read_optimization_summary): Read in all_module_statics;
5219         use it when possible.
5220
5221 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5222
5223         PR target/44218
5224         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
5225         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
5226
5227         * doc/extend.texi (powerpc builtins): Document vec_recip,
5228         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
5229
5230         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
5231         (rs6000_emit_swrsqrt): Ditto.
5232         (rs6000_emit_swdivsf): Delete.
5233         (rs6000_emit_swdivdf): Ditto.
5234         (rs6000_emit_swrsqrtsf): Ditto.
5235
5236         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
5237         describe the reciprocal estimate support for each type.
5238         (recip_options): Map -mrecip=<opt> into option bits.
5239         (gen_2arg_fn_t): New typedef for binary rtx gen function.
5240         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
5241         reciprocal estimate instructions.
5242         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
5243         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
5244         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
5245         cost information if -mdebug=cost or -mdebug=reg.
5246         (rs6000_override_options): Set -mrecip-precision for power6, and
5247         power7 machines.  If -mvsx or -mdfp, enable various options that
5248         came in previous instruction set ISAs, unless the option was
5249         explicitly disabled by the command line option.  Parse
5250         -mrecip=<opt> options.
5251         (rs6000_builtin_vectorized_function): Add support for vectorizing
5252         the reciprocal estimate builtins and expansions.
5253         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
5254         (bdesc_2arg): Add reciprocal estimate builtins.
5255         (bdesc_1arg): Add reciprocal square root estimate builtins.
5256         (rs6000_expand_builtin): Rewrite to use a switch statement,
5257         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
5258         (rs6000_init_builtins): Create declarations for reciprocal
5259         estimate builtins.
5260         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
5261         sized, prefer traditional floating point registers, if integer
5262         vector types, prefer altivec registers.  Don't actually look at
5263         the memory address any more.
5264         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
5265         builtins.
5266         (rs6000_load_constant_and_splat): New helper function to load up
5267         the constant for reciprocal estimate instructions.
5268         (rs6000_emit_madd): New helper function for generating
5269         multiply/add type instructions, based on the current switches.
5270         (rs6000_emit_msub): Ditto.
5271         (rs6000_emit_mnsub): Ditto.
5272         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
5273         replace a divide with a reciprocal estimate and fixup, adding
5274         support for machines with high precision and vectors.
5275         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
5276         low precision machines.
5277         (rs6000_emit_swdiv): New common function to be called to replace a
5278         division with reciprocal estimate and fixup.
5279         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
5280         for double and vector types.  Add support for high precision machines.
5281
5282         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
5283         the reciprocal estimate instructions can be generated.
5284         (TARGET_FRE): Ditto.
5285         (TARGET_FRSQRTES): Ditto.
5286         (TARGET_FRSQRTE): Ditto.
5287         (RS6000_RECIP_*): New macros for reciprocal estimate support.
5288
5289         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
5290         square root estimate on vectors.
5291         (re<mode>2): New insn for reciprocal division estimate on vectors.
5292
5293         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
5294         New builtin.
5295         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
5296         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
5297         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
5298         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
5299         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
5300         (RS6000_BUILTIN_RSQRT): Ditto.
5301         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
5302         floating point builtin.
5303
5304         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5305         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
5306         __RECIP_PRECISION__ based on the command line switches.
5307         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
5308
5309         * config/rs6000/rs6000.opt (-mrecip): Document add support for
5310         replacing division instructions with reciprocal estimate and fixup.
5311         (-mrecip=<opt>): New option.
5312         (-mrecip-precision): Ditto.
5313
5314         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
5315         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
5316         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
5317         precision scalar.
5318
5319         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
5320         (UNSPEC_VREFP): Ditto.
5321         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
5322         conterparts with regard to support of -mno-fused-madd and -ffast-math.
5323         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
5324         reciprocal estimate instructions to be generated.
5325         (altivec_vrefp): Ditto.
5326
5327         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
5328         estimate support.
5329         (rreg): New mode attribute for reciprocal estimate support.
5330         (recip<mode>3): New insn for division using reciprocal estimate
5331         and fixup builtins.
5332         (divide define_split): New define_split to convert floating point
5333         division to use reciprocal estimate if the user used the
5334         appropriate options and the split is run when we can add new
5335         pseudo registers for the fixup.
5336         (rsqrt<mode>2): New insn for reciprocal square root support.
5337         (recipsf3): Move into recip<mode>3.
5338         (recipdf3): Ditto.
5339         (fres): Use TARGET_FRES.
5340         (rsqrtsf2): Move into rsqrt<mode>2.
5341         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
5342         (copysignsf3): Add support for VSX.
5343         (fred): Use TARGET_FRE.
5344         (fred_fpr): Ditto.
5345         (rsqrtdf_internal1): New function for frsqrte instruciton.
5346
5347         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
5348         (vec_rsqrt): Ditto.
5349
5350 2010-06-03  Richard Guenther  <rguenther@suse.de>
5351
5352         PR middle-end/44291
5353         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
5354         (set_user_assembler_libfunc): Likewise.
5355
5356 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5357
5358         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
5359         defaults.h.
5360         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
5361         to defaults.h
5362         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
5363         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
5364         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
5365         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
5366         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
5367         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
5368         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
5369         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
5370         * defaults.h: Updated for above mentioned changes.
5371
5372 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
5373
5374         * c-common.c: Remove header include of tm_p.h.
5375         * Makefile.in (c-common.o): Remove TM_P_H dependency.
5376
5377 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
5378
5379         * tree.h (struct tree_decl_map): New type.
5380         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
5381         (tree_decl_map_hash): New prototype.
5382         (debug_expr_for_decl, value_expr_for_decl): Change into
5383         tree_decl_map hashtab from tree_map.
5384         (init_ttree): Adjust initialization.
5385         (tree_decl_map_hash): New function.
5386         (decl_debug_expr_lookup, decl_debug_expr_insert,
5387         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
5388
5389 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5390
5391         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
5392         linker emulations.
5393         * configure: Regenerate.
5394         * config.in: Regenerate.
5395
5396         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
5397         (X86_64_EMULATION): Define.
5398         (TARGET_LD_EMULATION): Use them.
5399
5400         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
5401         (SPARC64_EMULATION): Define.
5402         (LINK_ARCH_SPEC): Use them.
5403
5404 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5405
5406         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
5407         smallest_mode_for_size for computing the precision types of new
5408         graphite IVs.  Do not call lang_hooks.types.type_for_size.
5409
5410 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5411
5412         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
5413         information.
5414         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
5415
5416 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5417
5418         PR middle-end/44363
5419         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
5420         return false instead.
5421
5422 2010-06-02  Jan Hubicka  <jh@suse.cz>
5423
5424         PR middle-end/44295
5425         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
5426         create new cgraph node to check callee.
5427
5428 2010-06-02  Richard Guenther  <rguenther@suse.de>
5429
5430         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
5431
5432 2010-06-02  Richard Guenther  <rguenther@suse.de>
5433
5434         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
5435         (lto_wrapper_cleanup): ... this.  Do not exit.
5436         (fatal): Adjust.  Exit here.
5437         (fatal_perror): Likewise.
5438         (fatal_signal): New function.
5439         (main): Set up signal handlers to cleanup temporary files.
5440         * Makefile.in (lto-wrapper.o): Adjust dependencies.
5441
5442 2010-06-02  Richard Guenther  <rguenther@suse.de>
5443
5444         PR tree-optimization/44377
5445         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
5446
5447 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5448
5449         * config/s390/2097.md (z10_fhex): Remove insn reservation.
5450         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
5451         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
5452         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
5453         instruction.
5454         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
5455
5456 2010-06-02  Jan Hubicka  <jh@suse.cz>
5457
5458         * bitmap.c (bitmap_descriptor): Add search_iter.
5459         (bitmap_find_bit): Increment it.
5460         (print_statistics): Print it.
5461
5462 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
5463
5464         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
5465         instead of gimple_build_call_vec.  Delete unnecessary local variable.
5466
5467 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5468
5469         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
5470         change from yesterday.
5471
5472 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5473
5474         * c-ada-spec.c: Clean up redundant includes.
5475
5476 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
5477
5478         * gimplify.c: Do not include except.h and optabs.h.
5479         (gimplify_body): Do not initialize RTL profiling.
5480         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
5481         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
5482         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
5483         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
5484         langhooks.h.
5485
5486         * tree-pretty-print.h: Include pretty-print.h.
5487         * gimple-pretty-print.h: Include pretty-print.h.
5488
5489         * tree-pretty-print.c: Do not include diagnostic.h.
5490         * tree-vrp.c: Likewise.
5491         * tree-tailcall.c: Likewise
5492         * tree-scalar-evolution.c: Likewise
5493         * tree-ssa-dse.c: Likewise
5494         * tree-chrec.c: Likewise
5495         * tree-ssa-sccvn.c: Likewise
5496         * tree-ssa-copyrename.c: Likewise
5497         * tree-nomudflap.c: Likewise
5498         * tree-call-cdce.c: Likewise
5499         * tree-stdarg.c: Likewise
5500         * tree-ssa-math-opts.c: Likewise
5501         * tree-nrv.c: Likewise
5502         * tree-ssa-sink.c: Likewise
5503         * tree-browser.c: Likewise
5504         * tree-ssa-loop-ivcanon.c: Likewise
5505         * tree-ssa-loop.c: Likewise
5506         * tree-parloops.c: Likewise
5507         * tree-ssa-address.c: Likewise
5508         * tree-ssa-ifcombine.c: Likewise
5509         * tree-if-conv.c: Likewise
5510         * tree-data-ref.c: Likewise
5511         * tree-affine.c: Likewise
5512         * tree-ssa-phiopt.c: Likewise
5513         * tree-ssa-coalesce.c: Likewise
5514         * tree-ssa-pre.c: Likewise
5515         * tree-ssa-live.c: Likewise
5516         * tree-predcom.c: Likewise
5517         * tree-ssa-forwprop.c: Likewise
5518         * tree-ssa-dce.c: Likewise
5519         * tree-ssa-ter.c: Likewise
5520         * tree-ssa-loop-prefetch.c: Likewise
5521         * tree-optimize.c: Likewise
5522         * tree-ssa-phiprop.c: Likewise
5523         * tree-object-size.c: Likewise
5524         * tree-outof-ssa.c: Likewise
5525         * tree-ssa-structalias.c: Likewise
5526         * tree-switch-conversion.c: Likewise
5527         * tree-ssa-reassoc.c: Likewise
5528         * tree-ssa-operands.c: Likewise
5529         * tree-vectorizer.c: Likewise
5530         * tree-vect-data-refs.c: Likewise
5531         * tree-vect-generic.c: Likewise
5532         * tree-vect-stmts.c: Likewise
5533         * tree-vect-patterns.c: Likewise
5534         * tree-vect-slp.c: Likewise
5535         * tree-vect-loop.c: Likewise
5536         * tree-ssa-loop-ivopts.c: Likewise
5537         * tree-ssa-loop-im.c: Likewise
5538         * tree-ssa-loop-niter.c: Likewise
5539         * tree-ssa-loop-unswitch.c: Likewise
5540         * tree-ssa-loop-manip.c: Likewise
5541         * tree-ssa-loop-ch.c: Likewise
5542         * tree-dump.c: Likewise
5543         * tree-complex.c: Likewise
5544
5545         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
5546         * tree-ssa-uninit.c: Likewise
5547         * tree-ssa-threadupdate.c: Likewise
5548         * tree-ssa-uncprop.c: Likewise
5549         * tree-ssa-ccp.c: Likewise
5550         * tree-ssa-dom.c: Likewise
5551         * tree-ssa-propagate.c: Likewise
5552         * tree-ssa-alias.c: Likewise
5553         * tree-dfa.c: Likewise
5554         * tree-cfgcleanup.c: Likewise
5555         * tree-sra.c: Likewise
5556         * tree-ssa-copy.c: Likewise
5557         * tree-ssa.c: Likewise
5558         * tree-profile.c: Likewise
5559         * tree-cfg.c: Likewise
5560         * tree-ssa-threadedge.c: Likewise
5561         * tree-vect-loop-manip.c: Likewise
5562
5563         * tree-inline.c: Do not include diagnostic.h and expr.h.
5564         Include rtl.h.
5565         (copy_decl_for_dup_finish): Do not use NULL_RTX.
5566
5567         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
5568         * tree-loop-distribution.c: Likewise.
5569
5570 2010-06-01  Jan Hubicka  <jh@suse.cz>
5571
5572         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
5573
5574 2010-06-01  Jan Hubicka  <jh@suse.cz>
5575
5576         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
5577         remove return value.
5578         (split_bbs_on_noreturn_calls) .... here.
5579         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
5580         * tree-flow.h (fixup_noreturn_call): New.
5581
5582 2010-06-01  Jan Hubicka  <jh@suse.cz>
5583
5584         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
5585
5586 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
5587
5588         * tree.h (build_nt_call_list): Delete.
5589         * tree.c (build_nt_call_list): Delete.
5590
5591 2010-06-01  Jan Hubicka  <jh@suse.cz>
5592
5593         * fwprop.c: Make emit-rtl.h include last.
5594         * rtlanal.c: Include emit-rtl.h.
5595         * genautomata.c: Output emit-rtl include into insn-automata.c
5596         * df-scan.c: Include emit-rtl.h.
5597         * haifa-sched.c: Indlude emit-rtl.h.
5598         * mode-switching.c: Indlude emit-rtl.h.
5599         * graph.c: Indlude emit-rtl.h.
5600         * sel-sched.c: Include emit-rtl.h.
5601         * sel-sched-ir.c: Include emit-rtl.h.
5602         * ira-build.c: Include emit-rtl.h.
5603         * emit-rtl.c: (first_insn, last_insn): Remove defines.
5604         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
5605         Move to emit-rtl.h.
5606         (set_new_first_and_last_insn, get_last_insn_anywhere,
5607         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
5608         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
5609         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
5610         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
5611         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
5612         Use accessor functions.
5613         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
5614          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
5615         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
5616         mem_expr_equal_p): Move here from rtl.h.
5617         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
5618         Move here from emit-rtl.c; make inline.
5619         * cfglayout.h: Include emit-rtl.h.
5620         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
5621          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
5622         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
5623         mem_expr_equal_p, get_insns, set_first-insn,
5624         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
5625         * reg-stack.c: Include emit-rtl.h.
5626         * dce.c: Likewise.
5627
5628 2010-06-01  Jan Hubicka  <jh@suse.cz>
5629
5630         * cgraph.h (tree_function_versioning): Update prototype.
5631         (cgraph_function_versioning): Update prototype.
5632         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
5633         bitmap.
5634         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
5635         (cgraph_materialize_clone, save_inline_function_body): Update use of
5636         tree_function_versioning.
5637         * tree-inline.c (copy_bb): Look for previous copied block to link
5638         after; fix debug output.
5639         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
5640         (copy_body): Likewise.
5641         (expand_call_inline): Update use of copy_body.
5642         (tree_function_versioning): Update use of copy body; accept
5643         blocks_to_copy and new_entry.
5644
5645 2010-06-01  Jan Hubicka  <jh@suse.cz>
5646
5647         * gegenrtl.c: Remove unnecesary prototypes.
5648         (gendecl): Remove.
5649         (gendef): Produce static inline.
5650         (gencode): Remove.
5651         (main): Do not decode parameters; generate header only.
5652         * Makefile.in (genrtl.c): Remove.
5653
5654 2010-06-01  Jan Hubicka  <jh@suse.cz>
5655
5656         * tree-switch-conversion.c (build_one_array): Make it readonly.
5657
5658 2010-06-01  Richard Guenther  <rguenther@suse.de>
5659
5660         * optabs.c (init_optabs): Guard all accesses to reinit.
5661         * ipa-pure-const.c (propagate): Fix another typo.
5662         * opts.c (common_handle_option): Split assignment to bool.
5663         * c-opts.c (c_common_handle_option): Likewise.
5664
5665 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
5666             Matthew Gingell  <gingell@adacore.com>
5667
5668         * doc/invoke.texi: Mention -fdump-ada-spec.
5669         * tree-dump.c (dump_files): Add ada-spec.
5670         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
5671         * tree-pass.h (tree_dump_index): Add TDI_ada.
5672         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
5673         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
5674         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
5675         * c-decl.c: Include c-ada-spec.h.
5676         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
5677         functions.
5678         (c_write_global_declarations): Add handling of -fdump-ada-spec.
5679         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
5680         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
5681         * c-ada-spec.h, c-ada-spec.c: New files.
5682
5683 2010-06-01  Richard Guenther  <rguenther@suse.de>
5684
5685         PR lto/43853
5686         * ipa-pure-const.c (get_function_state): Hand back varying state
5687         if we do not have one.
5688         (has_function_state): New function.
5689         (duplicate_node_data): Adjust.
5690         (remove_node_data): Likewise.
5691         (pure_const_write_summary): Likewise.
5692         (propagate): Likewise.  Fix typo.
5693
5694 2010-06-01  Jan Hubicka  <jh@suse.cz>
5695
5696         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
5697         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
5698         (execute_all_ipa_transforms): Do not play with the states.
5699
5700 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
5701
5702         * config/arm/t-linux-androideabi: New.
5703         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
5704
5705 2010-06-01  Jan Hubicka  <jh@suse.cz>
5706
5707         * tree-inline.c (estimate_num_insns): For stdarg functions look
5708         into call statement to count cost of argument passing.
5709
5710 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
5711
5712         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
5713         argument for fprintf.
5714         (ix86_output_addr_diff_elt): Likewise.
5715         (x86_function_profiler): Likewise.
5716         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
5717         (LPREFIX): Likewise.
5718         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
5719
5720 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
5721
5722         PR target/44338
5723         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
5724         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
5725         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
5726         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
5727         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
5728         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
5729         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
5730         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
5731         TARGET_FUSED_MADD.
5732
5733 2010-05-31  Jan Hubicka  <jh@suse.cz>
5734
5735         * tree.h (tree_range_check_failed): Declare noreturn.
5736
5737 2010-05-31  Jan Hubicka  <jh@suse.cz>
5738
5739         * gimple.c (gimple_call_builtin_p): New function.
5740         * gimple.h (gimple_call_builtin_p): Declare.
5741         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
5742         to exit.
5743         (execute_warn_function_return): BUILT_IN_RETURN is return.
5744         (split_critical_edges): Return edges are not critical.
5745         (is_ctrl_altering_stmt): Builtin_in_return is altering.
5746         (gimple_verify_flow_info): Handle built_in_return.
5747         (execute_warn_function_return): Handle built_in_return.
5748         * ipa-pure-const.c (check_call): Ignore builtin_return.
5749
5750 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
5751
5752         PR middle-end/44337
5753         * expr.c (expand_assignment): Don't store anything for out-of-bounds
5754         array accesses with non-MEM.
5755
5756         PR tree-optimization/44182
5757         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
5758         newly needs to end a bb is followed by debug stmts, instead return
5759         true from the function at the end.
5760         (maybe_move_debug_stmts_to_successors): New function.
5761         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
5762
5763 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
5764
5765         PR target/44161
5766         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
5767
5768 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
5769
5770         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
5771         for nested functions in non-optimized compilation.
5772
5773 2010-05-31  Richard Guenther  <rguenther@suse.de>
5774
5775         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
5776
5777 2010-05-30  Jan Hubicka  <jh@suse.cz>
5778
5779         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
5780
5781 2010-05-30  Richard Guenther  <rguenther@suse.de>
5782
5783         PR lto/42975
5784         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
5785         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
5786         no longer needed.
5787
5788 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
5789
5790         * config/darwin.c (output_objc_section_asm_op): Add comment.
5791         (name_needs_quotes): Add '_' to list of valid comment chars.
5792         (machopic_output_function_base_name): Remove unneeded quotes.
5793         (darwin_encode_section_info): Adjust asm whitespace.
5794         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
5795         (ASM_OUTPUT_LOCAL): Ditto.
5796         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
5797         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
5798         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
5799
5800 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5801
5802         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
5803         RS6000_OUTPUT_BASENAME unconditionally.
5804         (rs6000_output_function_epilogue): Likewise.
5805
5806 2010-05-30  Jan Hubicka  <jh@suse.cz>
5807
5808         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
5809         nodes.
5810
5811 2010-05-30  Richard Guenther  <rguenther@suse.de>
5812
5813         * tree-cfg.c (verify_gimple_assign_single): Implement
5814         verification for COND_EXPR rhs.
5815
5816 2010-05-30  Jan Hubicka  <jh@suse.cz>
5817
5818         * cgraph.h (cgraph_dump_file): Declare.
5819         * cgraphunit.c (cgraph_dump_file): Export.
5820         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
5821
5822 2010-05-30  Jan Hubicka  <jh@suse.cz>
5823
5824         * dwarf2out.c (reference_to_unused,
5825         premark_types_used_by_global_vars_helper): Avoid creation of new
5826         varpool nodes.
5827
5828 2010-05-30  Jan Hubicka  <jh@suse.cz>
5829
5830         * cgraph.h (cgraph_node_cannot_return,
5831         cgraph_edge_cannot_lead_to_return): New functions.
5832         * cgraph.c (cgraph_node_cannot_return,
5833         cgraph_edge_cannot_lead_to_return): Use them.
5834         * ipa-pure-const.c (pure_const_names): New static var.
5835         (check_call): Handle calls not leading to return.
5836         (pure_const_read_summary): Dump info read.
5837         (propagate): Dump info about propagation process; ignore side effects
5838         of functions not leading to exit; fix handling of pure functions.
5839
5840 2010-05-30  Jan Hubicka  <jh@suse.cz>
5841
5842         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
5843         for tail call epilogues.
5844
5845 2010-05-30  Jan Hubicka  <jh@suse.cz>
5846
5847         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
5848         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
5849         dump files.
5850
5851 2010-05-29  Jan Hubicka  <jh@suse.cz>
5852
5853         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
5854         node; remove references in node we no longer keep in cgrpah but need
5855         body of.
5856
5857 2010-05-29  Jan Hubicka  <jh@suse.cz>
5858
5859         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
5860
5861 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5862
5863         PR target/44165
5864         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
5865
5866 2010-05-29  Jan Hubicka  <jh@suse.cz>
5867
5868         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
5869         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
5870         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
5871         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
5872         debug_names_replaced_by, debug_update_ssa): Likewise.
5873         * sbitmap.c (debug_sbitmap): Likewise.
5874         * genrecog.c (debug_decision, debug_decision_list): Likewise.
5875         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
5876         debug_tree_chain): Likewise.
5877         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
5878         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
5879         * optabs.c  (debug_optab_libfuncs): Likewise.
5880         (verify_loop_closed_ssa): Likewise.
5881         * value-prof.c (verify_histograms): Likewise.
5882         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
5883         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
5884         * cfghooks.c (verify_flow_info): Likewise.
5885         * fold-const.c (debug_fold_checksum): Likewise.
5886         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
5887         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
5888         Likewise.
5889         * omega.c (debug_omega_problem): Likewise.
5890         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
5891         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
5892         * dominance.c (verify_dominators, debug_dominance_info,
5893         debug_dominance_tree): Likewise.
5894         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
5895         * df_regno_debug, df_ref_debug,
5896         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
5897         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
5898         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
5899         * sel-sched.c (debug_state): Likewise.
5900         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
5901         Likewise.
5902         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
5903         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
5904         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
5905         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
5906         Likewise.
5907         * c-pretty-print.c (debug_c_tree): Likewise.
5908         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
5909         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
5910         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
5911         * ebitmap.c (debug_ebitmap): Likewise.
5912         * function.c (debug_find_var_in_block_tree): Likewise.
5913         * print-rtl.c (debug_rtx): Likewise.
5914         (debug_rtx_count): Likewise.
5915         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
5916         * stor-layout.c (debug_rli): Likewise.
5917         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
5918         * tree-data-ref.c (debug_data_references,
5919         debug_data_dependence_relations, debug_data_reference,
5920         debug_data_dependence_relation, debug_rdg_vertex,
5921         debug_rdg_component, debug_rdg): Likewise.
5922         * tree-affine.c (debug_aff): Likewise.
5923         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
5924         Likewise.
5925         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
5926         * emit-rtl.c (verify_rtl_sharing): Likewise.
5927         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
5928         debug_value_expressions): Likewise.
5929         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
5930         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
5931         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
5932         * cfglayout.c (verify_insn_chain): Likewise.
5933         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
5934         debug_clast_stmt, debug_generated_program): Likewise.
5935         * ggc-page.c (debug_print_page_list): Likewise.
5936         * tree-ssa-ter.c (debug_ter): Likewise.
5937         * graphite-dependences.c (debug_pddr): Likewise.
5938         * sched-deps.c (debug_ds): Likewise.
5939         * tree-ssa.c (verify_ssa): Likewise.
5940         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
5941         debug_scattering_functions, debug_iteration_domains, debug_pdr,
5942         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
5943         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
5944         * tree-inline.c (debug_find_tree): Likewise.
5945         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
5946         debug_ppl_powerset_matrix): Likewise.
5947         * var-tracking.c (debug_dv): Likewise.
5948         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
5949         * cfgloop.c (verify_loop_structure): Likewise.
5950         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
5951         * c-common.c (verify_sequence_points): Likewise.
5952         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
5953         debug_candidates, debug_rgn_dependencies): Likewise.
5954         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
5955         * debug_constraint_graph, debug_solution_for_var,
5956         debug_sa_points_to_info): Likewise.
5957         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
5958         Likewie.
5959         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
5960         debug_loops, debug_loop, debug_loop_num): Likewise.
5961         * passes.c (debug_pass): Likewise.
5962         (dump_properties): Likewise; add cfglayout property.
5963         (debug_properties): Likewise.
5964         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
5965         * varpool.c (debug_varpool): Likewise.
5966         * regcprop.c (debug_value_data): Likewise.
5967         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
5968         debug_immediate_uses_for): Likewise.
5969
5970 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5971
5972         PR bootstrap/44315
5973         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
5974         Filter out insn-flags.h.
5975
5976 2010-05-29  Jan Hubicka  <jh@suse.cz>
5977
5978         * cgraph.h (struct varpool_node_set_def,
5979         struct cgraph_node_set_def): Remove unused AUX pointer.
5980         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
5981         VEC_empty macro.
5982
5983 2010-05-29  Jan Hubicka  <jh@suse.cz>
5984
5985         PR middle-end/44324
5986         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
5987
5988 2010-05-29  Richard Guenther  <rguenther@suse.de>
5989
5990         * lto-streamer.c (cached_bp): New global variable.
5991         (bitpack_create): Return the cached bitpack, if available.
5992         (bitpack_delete): Clear and cache the bitpack, if appropriate.
5993         (bp_pack_value): Remove redundant asserts.
5994
5995 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
5996
5997         PR middle-end/44306
5998         * tree-if-conv.c (is_true_predicate): New.
5999         (is_predicated): Use is_true_predicate.
6000         (add_to_predicate_list): Same.  Do not use unshare_expr.
6001         (add_to_dst_predicate_list): Same.
6002
6003 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
6004
6005         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
6006         field on edges.
6007         (predicate_bbs): Same.
6008         (clean_predicate_lists): Same.
6009         (find_phi_replacement_condition): Do not AND the predicate from
6010         edge->aux.
6011
6012 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
6013
6014         PR bootstrap/44315
6015         * Makefile.in (build/gencondmd.o): Add a missing `\'.
6016
6017 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6018
6019         PR target/44261
6020         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
6021         (negdf2): Adjust expander pattern and use negdf2_slow.
6022         (negsf2): Likewise.
6023
6024 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
6025
6026         * basic-block.h (struct control_flow_graph): Move last_label_uid field
6027         up.
6028         * df.h (struct df_base_ref): Move regno field up.
6029         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
6030         * expr.h (struct separate_ops): Move location field up.
6031         * optabs.h (struct optab_d): Move libcall_basename field down.
6032         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
6033         * config/i386/i386.h (struct machine_function): Convert call_abi field
6034         into a bitfield.  Move cfa field to the end of the structure.
6035
6036 2010-05-29  Jan Hubicka  <jh@suse.cz>
6037
6038         * varpool.c (varpool_get_node): Fix lookup.
6039
6040 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
6041
6042         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
6043         RTL specific prototypes with #ifdef RTX_CODE.
6044         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
6045         * config/spu/t-spu-elf: Fix dependencies.
6046
6047         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
6048
6049 2010-05-29  Mike Stump  <mikestump@comcast.net>
6050
6051         PR bootstrap/44315
6052         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
6053         TM_H when building to avoid dependency loops.
6054
6055 2010-05-29  Jan Hubicka  <jh@suse.cz>
6056
6057         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
6058         refs and body; not the whole node for masters of materialized clones.
6059
6060 2010-05-29  Mike Stump  <mikestump@comcast.net>
6061
6062         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
6063
6064 2010-05-29  Jan Hubicka  <jh@suse.cz>
6065
6066         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
6067         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
6068         use of clone_function_name.
6069         * cgraph.h (cgraph_create_virtual_clone,
6070         cgraph_function_versioning): update prototypes.
6071         (clone_function_name): Declare.
6072         * ipa-cp.c (ipcp_insert_stage): Update call of
6073         cgraph_create_virtual_clone.
6074         * omp-low.c (create_omp_child_function_name): Use
6075         cgraph_create_virtual_clone.
6076         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
6077         (cgraph_function_versioning): Take SUFFIX argument; produce new name
6078         and make decl local.
6079
6080 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
6081
6082         * vec.h: Include statistics.h
6083         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
6084         with VEC_H.
6085
6086 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
6087
6088         * c-lex.c: Do not include c-tree.h.
6089         * c-pretty-print.c: Likewise.
6090         * c-opts.c: Likewise.
6091         * c-gimplify.c: Likewise.
6092         * c-common.c: Likewise.
6093         * c-dump.c: Likewise.  Include c-common.h.
6094
6095 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
6096
6097         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
6098         before including diagnostic-core.h.
6099         (c_cpp_error): New prototype moved from c-tree.h.
6100         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
6101         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
6102         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
6103         (c_cpp_error): Prototype moved to c-common.h.
6104         * Makefile.in: Update dependency for C_COMMON_H.
6105
6106 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
6107
6108         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
6109         * c-common.c (c_register_addr_space): Remove here.
6110         * c-decl.c (c_register_addr_space): Re-add here.
6111
6112 2010-05-28  Mike Stump  <mikestump@comcast.net>
6113
6114         * config/darwin-c.c: Remove c-tree.h include.
6115
6116 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
6117
6118         * gcc.c: Include diagnostic.h.
6119         (error_count): Remove.  All users changed to use errorcount.
6120         (programname): Remove.  All users changed to use progname.
6121         (fancy_abort, internal_error, fatal_error, error, warning, inform,
6122         fnotice): Remove.
6123         (execute): Don't include "Internal error" and bug reporting
6124         information in argument of internal_error call.
6125         (process_command): Don't increment error_count after calling
6126         perror_with_name.
6127         (input_filename): Rename to gcc_input_filename.  All users
6128         changed.
6129         (main): Call diagnostic_initialize.  Register delete_temp_files
6130         with atexit.  Use seen_error to test for errors.
6131         * gcc.h: Include diagnostic-core.h.
6132         (fatal_error, error, warning): Remove.
6133         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
6134         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
6135         (gcc.o): Update dependencies.
6136
6137 2010-05-28  Jeff Law  <law@redhat.com>
6138
6139         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
6140         functions.
6141         * ira.h (ira_bad_reload_regno): Declare
6142         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
6143
6144         * ira-color.c (update_curr_costs): Free updated hard reg costs.
6145         (ira_reassign_conflict_allocnos): Remove bogus asserts.
6146         (allocno_reload_assign): Likewise.
6147
6148 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
6149
6150         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
6151         build1_stat.
6152
6153 2010-05-28  Richard Guenther  <rguenther@suse.de>
6154
6155         PR lto/44312
6156         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
6157         Stream fixed-point constants mode.
6158         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
6159         and TYPE_PRECISION.
6160         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
6161         Stream fixed-point constants mode.
6162         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
6163         and TYPE_PRECISION.
6164
6165 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
6166
6167         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
6168         only place it was called from.
6169         (number_of_latch_executions): Do not return chrec_dont_know when the
6170         may_be_zero is a runtime condition: instead, return a COND_EXPR
6171         including the may_be_zero condition.
6172         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
6173         of nb_iterations.
6174         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
6175         COND_EXPRs.
6176
6177 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
6178
6179         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
6180         generate COND_EXPRs for degenerate_phi_result.
6181
6182 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
6183
6184         PR middle-end/44293
6185         * tree-if-conv.c (if_convertible_loop_p): Check the
6186         if-convertibility of phi nodes in non predicated BBs.
6187
6188 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
6189
6190         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
6191
6192 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
6193
6194         PR driver/15303
6195         * gcc.c (inform, warning, inform): New functions.
6196         (fatal_ice): Rename to internal_error; change cmsgid parameter to
6197         gmsgid.  All callers changed.
6198         (notice): Rename to fnotice; add parameter fp.  All callers changed.
6199         (fatal_error): Rename to fatal_signal.  All users changed.
6200         (fatal): Rename to fatal_error; change cmsgid parameter to
6201         gmsgid.  All callers changed.
6202         (process_command): Use warning instead of error for warnings.
6203         (end_going_arg): Don't use _() around argument of error.
6204         (do_spec_1): Use inform for message from %n specs.  Use warning
6205         instead of error for warnings.
6206         (main): Use inform for comparison messages.  Use warning for
6207         message about unused linker input.
6208         (error): Increment error_count.  Print "error: ".
6209         * gcc.h (fatal): Change to fatal_error.
6210         (warning): Declare.
6211         * config/darwin-driver.c (darwin_default_min_version): Use warning
6212         instead of fprintf for warnings.
6213         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
6214
6215 2010-05-28  Julian Brown  <julian@codesourcery.com>
6216
6217         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
6218         (*thumb2_addsi3_compare0_scratch): New.
6219         * config/arm/constraints.md (Pv): New.
6220         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
6221         for ARM mode only.
6222         (*addsi3_compare0_scratch): Likewise.
6223
6224 2010-05-28  Jan Hubicka  <jh@suse.cz>
6225
6226         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
6227         check.
6228         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
6229         only on local statics.
6230
6231 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
6232
6233         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
6234
6235 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
6236
6237         PR bootstrap/44314
6238         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
6239         (OPTION_GLIBC): Define.
6240
6241 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
6242
6243         PR debug/41048
6244         * dwarf2out.c (double_int_type_size_in_bits): New function.
6245         (round_up_to_align): Change first argument and return value to
6246         double_int.
6247         (field_byte_offset): Work internally on double_ints.
6248
6249         PR target/43636
6250         * builtins.c (expand_movstr): Use a temporary pseudo instead
6251         of target even when target is not NULL and not const0_rtx, but
6252         fails movstr predicate.
6253         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
6254
6255 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
6256
6257         * final.c (rest_of_clean_state): Use %m in errors instead of
6258         strerror (errno).
6259         * gengtype.c (read_input_list, close_output_files): Use xstrerror
6260         instead of strerror.
6261         * toplev.c (process_options): Use %m in errors instead of strerror
6262         (errno).
6263         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
6264         (errno).
6265
6266 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
6267
6268         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
6269         (ix86_canonical_va_list_type): Make static.  Add declaration.
6270         (ix86_enum_va_list): Make static.  Reindent.
6271         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
6272         (ix86_canonical_va_list_type): Ditto.
6273         (ix86_enum_va_list): Ditto.
6274
6275 2010-05-28  Richard Guenther  <rguenther@suse.de>
6276
6277         * lto-wrapper.c (run_gcc): With -save-temps generate a
6278         user-visible ltrans filename.  Fixup ltrans unit numbering.
6279
6280 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
6281
6282         * c-common.c (c_common_nodes_and_builtins): Replace use
6283         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
6284         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
6285         to ix86_enum_va_list.
6286         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
6287         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
6288         (TARGET_ENUM_VA_LIST_P): Add hook description.
6289         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
6290         * target.h (gcc_target): Add enum_va_list hook.
6291
6292         PR bootstrap/44299
6293         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
6294         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
6295         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
6296
6297 2010-05-28  Alan Modra  <amodra@gmail.com>
6298
6299         PR target/44266
6300         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
6301         emit_library_call machinery to set up __tls_get_addr calls.
6302
6303 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6304
6305         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
6306
6307 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
6308
6309         Revert fix for PR c++/44188
6310         * c-common.c (is_typedef_decl): Revert the moving of  this
6311         definition ...
6312         * tree.c (is_typedef_decl): ... here.
6313         (typdef_variant_p): Revert the moving of this  definition
6314         here from gcc/cp/tree.c.
6315         * c-common.h (is_typedef_decl): Revert the moving of this
6316         declaration ...
6317         * tree.h (is_typedef_decl): ... here.
6318         (typedef_variant_p): Revert the moving of this  declaration here
6319         from gcc/cp/cp-tree.h
6320         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
6321         (gen_tagged_type_die): Revert the splitting out of ...
6322         (gen_type_die_with_usage): ... this function. Revert the anonymous
6323         tagged type handling.
6324         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
6325         typedefs naming anonymous tagged types.
6326
6327 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
6328
6329         * config/rs6000/rs6000-modes.def (PSImode): Delete.
6330
6331 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
6332
6333         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
6334         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
6335         throughout.
6336         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
6337         "xer" to "ca".
6338         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
6339         XER_REGS to CA_REGS throughout.
6340         * config/rs6000/rs6000.h: Same.
6341         (ADDITIONAL_REGISTER_NAMES): Add "xer".
6342         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
6343         that mode_iterator "P" is the size for arithmetic carries as well.
6344         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
6345
6346 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
6347
6348         PR bootstrap/44255
6349         * combine.c (struct rtx_subst_pair): Define unconditionally.
6350         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
6351         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
6352         Call make_compound_operation on pair->to.
6353         (propagate_for_debug): Don't call make_compound_operation here.
6354         Always use simplify_replace_fn_rtx.
6355
6356 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
6357
6358         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
6359         * config/xtensa/xtensa.c (override_options): Check
6360           TARGET_FORCE_NO_PIC and set flag_pic.
6361         * config/xtensa/xtensa.opt: Document -mforce-no-pic
6362
6363 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
6364
6365         PR bootstrap/44299
6366         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
6367         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
6368
6369 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
6370
6371         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
6372         toplev.h.
6373         * diagnostic.c: Don't include toplev.h.
6374         (progname): Define.  Moved from toplev.c.
6375         (seen_error): New function.
6376         * diagnostic.h: Include diagnostic-core.h.
6377         (diagnostic_t, emit_diagnostic): Don't declare here.
6378         * toplev.c (progname): Move to toplev.c.
6379         (emit_debug_global_declarations, compile_file, finalize,
6380         do_compile, toplev_main): Use seen_error.
6381         * toplev.h: Include diagnostic-core.h.
6382         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
6383         internal_error, warning, warning_at, error, error_n, error_at,
6384         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
6385         verbatim, fnotice, progname): Move to diagnostic-core.h.
6386         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
6387         (expand_builtin_expect): Use seen_error.
6388         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
6389         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
6390         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
6391         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
6392         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
6393         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
6394         errorcount for errors.
6395         * c-opts.c (c_common_finish): Use seen_error.
6396         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
6397         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
6398         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
6399         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
6400         (get_coverage_counts): Use seen_error.
6401         * dwarf2out.c (dwarf2out_finish): Use seen_error.
6402         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
6403         gimplify_body): Use seen_error.
6404         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
6405         * ipa-pure-const.c (gate_pure_const): Use seen_error.
6406         * ipa-reference.c (gate_reference): Use seen_error.
6407         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
6408         * lambda-code.c: Include diagnostic-core.h instead of
6409         diagnostic.h.
6410         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
6411         * lto-compress.c: Include diagnostic-core.h instead of
6412         diagnostic.h.
6413         * lto-section-in.c: Include diagnostic-core.h instead of
6414         diagnostic.h.
6415         * lto-streamer-out.c: Include diagnostic-core.h instead of
6416         diagnostic.h.
6417         * lto-streamer.c: Include diagnostic-core.h instead of
6418         diagnostic.h.
6419         (gate_lto_out): Use seen_error.
6420         * matrix-reorg.c: Include diagnostic-core.h instead of
6421         diagnostic.h.
6422         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
6423         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
6424         (gate_expand_omp, lower_omp_1): Use seen_error.
6425         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
6426         (rest_of_decl_compilation, rest_of_type_compilation,
6427         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
6428         * tree-cfg.c (label_to_block_fn): Use seen_error.
6429         * tree-inline.c (optimize_inline_calls): Use seen_error.
6430         * tree-mudflap.c (mudflap_finish_file): Use
6431         seen_error.
6432         * tree-optimize.c (gate_all_optimizations,
6433         gate_all_early_local_passes, gate_all_early_optimizations): Use
6434         seen_error.
6435         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
6436         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
6437         (varpool_remove_unreferenced_decls,
6438         varpool_assemble_pending_decls): Use seen_error.
6439         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
6440         (TOPLEV_H, DIAGNOSTIC_H): Update.
6441         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
6442         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
6443         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
6444         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
6445         coverage.o, lambda-code.o): Update dependencies.
6446
6447 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
6448
6449         PR c++/44188
6450         * c-common.c (is_typedef_decl): Move this definition ...
6451         * tree.c (is_typedef_decl): ... here.
6452         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
6453         * c-common.h (is_typedef_decl): Move this declaration ...
6454         * tree.h (is_typedef_decl): ... here.
6455         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
6456         * dwarf2out.c (is_naming_typedef_decl): New function.
6457         (gen_tagged_type_die): Split out of ...
6458         (gen_type_die_with_usage): ... this function. When an anonymous
6459         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
6460         is emitted for the typedef.
6461         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
6462         anonymous tagged types.
6463
6464 2010-05-27  Jason Merrill  <jason@redhat.com>
6465
6466         * print-tree.c (debug_vec_tree): New fn.
6467         (print_vec_tree): New fn.
6468         * tree.h: Declare them.
6469         * gdbinit.in (pvt): New command.
6470
6471         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
6472
6473         * gdbinit.in (pdd): New command.
6474
6475 2010-05-27  Jan Hubicka  <jh@suse.cz>
6476
6477         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
6478         (update_caller_keys): Return early if there are no callers;
6479         only update fibheap when decresing the key.
6480         (update_callee_keys): Avoid recursion.
6481         (decide_inlining_of_small_functions): When badness does not match;
6482         re-insert into fibheap.
6483
6484 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
6485
6486         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
6487         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
6488         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
6489         (ALL_HOST_OBJS): Now a union of the above two.
6490         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
6491         all files in ALL_HOST_FRONTEND_OBJS.
6492         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
6493
6494         * c-common.c: Pretend to be a backend file by undefining
6495         IN_GCC_FRONTEND (still need rtl.h here).
6496
6497 2010-05-27  Jan Hubicka  <jh@suse.cz>
6498
6499         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
6500         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
6501
6502 2010-05-27  Jan Hubicka  <jh@suse.cz>
6503
6504         * sched-ebb.c: Rename struct deps to struct deps_desc.
6505         * ddg.c: Likewise.
6506         * sel-sched-ir.c: Likewise.
6507         * sched-deps.c: Likewise.
6508         * sched-int.h: Likewise.
6509         * sched-rgn.c: Likewise.
6510
6511 2010-05-27  Jon Beniston  <jon@beniston.com>
6512
6513         PR 43726
6514         * config/lm32/lm32.h: Remove definition of
6515         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
6516
6517 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6518
6519         PR lto/44230
6520         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
6521
6522 2010-05-27  Richard Guenther  <rguenther@suse.de>
6523
6524         PR tree-optimization/44284
6525         * tree-vect-stmts.c (vectorizable_assignment): Handle
6526         sign-changing conversions as simple copy.
6527
6528 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6529
6530         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
6531         Bionic C library.
6532         (__gthread_active_p): Check for pthread_create if compiling against
6533         Bionic C library.
6534
6535 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6536
6537         Support compilation for Android platform.  Reimplement -mandroid.
6538
6539         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
6540         (*android*): Set ANDROID_DEFAULT.
6541         (arm*-*-linux*): Include linux-android.h.
6542         (arm*-*-eabi*): Don't include previous -mandroid implementation.
6543         * config/arm/eabi.h: Remove, move Android-specific parts ...
6544         * config/linux-android.h: ... here.  New file.
6545         * config/arm/eabi.opt: Rename to ...
6546         * config/linux-android.opt: ... this.
6547         (mandroid): Allow -mno-android option.  Initialize based on
6548         ANDROID_DEFAULT.
6549         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
6550         Move logic to corresponding LINUX_TARGET_* macros.
6551         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
6552         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
6553         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
6554         Android definitions.
6555         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
6556         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
6557         Document.
6558
6559 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6560
6561         Add support for Bionic C library
6562
6563         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
6564         macro.
6565         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
6566         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
6567
6568         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
6569         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
6570         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
6571         to support multiple C libraries.  Handle Bionic.
6572         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
6573         (BIONIC_DYNAMIC_LINKER64): Define.
6574         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
6575         Update.
6576         (TARGET_HAS_SINCOS): Enable for Bionic.
6577
6578         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
6579         the last option specified on command line take effect.
6580         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
6581         (mbionic): New.
6582         (mglibc, muclibc): Update.
6583
6584         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
6585         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
6586         DEFAULT_LIBC.
6587
6588         * doc/invoke.texi (-mglibc, -muclibc): Update.
6589         (-mbionic): Document.
6590
6591 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6592
6593         * c-common.h (c_register_addr_space): Add prototype.
6594         (ADDR_SPACE_KEYWORD): Remove.
6595         * c-common.c (c_register_addr_space): New function.
6596         (c_addr_space_name): Reimplement.
6597         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
6598
6599         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
6600         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
6601
6602         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
6603         Remove TARGET_ADDR_SPACE_KEYWORDS.
6604
6605 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
6606
6607         * input.c: New file.
6608         * input.h (main_input_filename): Move declaration to toplev.h.
6609         * toplev.c (input_location, line_table): Move to input.c
6610         * toplev.h (main_input_filename): Move declaration from input.h.
6611         * tree.c (expand_location): Move to input.c.
6612         * Makefile.in (OBJS-common): Add input.o.
6613         (input.o): Add dependencies.
6614
6615 2010-05-27  Richard Guenther  <rguenther@suse.de>
6616
6617         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
6618         for non-existant files.
6619         (fork_execute): Mark args_name file as deleted.
6620
6621 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
6622
6623         PR bootstrp/44287
6624         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
6625         (narrow_signed_type): Likewise.
6626
6627 2010-05-26  Jan Hubicka  <jh@suse.cz>
6628
6629         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
6630         edge only when checking is enabled; check using former_clone_of;
6631         check inline clones too.
6632         (cgraph_materialize_clone): Record former_clone_of pointer.
6633         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
6634         combining redirections; dump args_to_skip bitmap
6635         (cgraph_materialize_all_clones): Do no redirection here.
6636         * ipa-inline.c (inline_transform): Do redirection here.
6637         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
6638         cheking only).
6639
6640 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6641
6642         * config/avr/avr-c.c: Do not include regs.h.
6643         Include cpplib.h for cpp_define and tree.h for c-common.h.
6644         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
6645         * config/avr/t-avr: Fix dependencies for avr-c.o.
6646
6647 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6648
6649         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
6650         string instead of SYMBOL_REF rtx.
6651         * rtl.h (set_stack_check_libfunc): Move prototype from here...
6652         * libfuncs.h: ...to here.  Adjust for explow.c change.
6653
6654 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
6655
6656         * pretty-print.c: Don't include ggc.h.
6657         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
6658         (identifier_to_locale): Use them for allocation.
6659         * pretty-print.h (identifier_to_locale_alloc,
6660         identifier_to_locale_free): Declare.
6661         * toplev.c (alloc_for_identifier_to_locale): New.
6662         (general_init): Set identifier_to_locale_alloc and
6663         identifier_to_locale_free.
6664         * Makefile.in (pretty-print.o): Update dependencies.
6665
6666 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6667
6668         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
6669         pointer types if they have different alignment or mode.
6670
6671 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
6672
6673         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6674         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6675         * config/sparc/sparc-protos.h (function_value): Remove declaration.
6676         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
6677         sparc_function_value_regno_p): New functions.
6678         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6679         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6680         (function_value): Rename to...
6681         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
6682         argument to 'outgoing'.
6683         (function_arg_record_value, function_arg_union_value,
6684         function_arg_vector_value): Update comment.
6685
6686 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6687
6688         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
6689         (fde_needed_for_eh_p): New predicate.
6690         (output_call_frame_info): Use it throughout to decide whether FDEs
6691         are needed for EH purpose.
6692         (dwarf2out_begin_prologue): Reorder assignments.
6693
6694 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6695
6696         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
6697         special case loop->header.
6698         (is_predicated): New.
6699         (if_convertible_loop_p): Call it.
6700
6701 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6702
6703         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
6704         iterator in parameter.  Do not generate code during the analysis.
6705         (tree_if_convert_cond_stmt): Removed.
6706         (tree_if_convert_stmt): Removed.
6707         (predicate_bbs): New.
6708         (if_convertible_loop_p): Call predicate_bbs.
6709         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
6710         now contains all the analysis part.
6711
6712 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6713
6714         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
6715         statements in the analysis part.
6716         (tree_if_convert_stmt): Update comment.
6717         (remove_conditions_and_labels): New.
6718         (combine_blocks): Call remove_conditions_and_labels.
6719         (tree_if_conversion): Update comment.
6720
6721 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6722
6723         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
6724         than 2 predecessors or more than 2 successors.
6725
6726 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6727
6728         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
6729         of loops in which the data dependence analysis fails.
6730
6731 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6732
6733         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
6734         CDI_POST_DOMINATORS.
6735         (tree_if_conversion): Same.
6736
6737 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6738
6739         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
6740
6741 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6742
6743         * tree-if-conv.c: Update copyright years.  Fix comments.
6744         Fix indentation.
6745
6746 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
6747
6748         * builtin-types.def (BT_INT128): New primitive type.
6749         (BT_UINT128): Likewise.
6750         * c-common.c (c_common_r): Add __int128 keyword.
6751         (c_common_type_for_size): Handle __int128.
6752         (c_common_type_for_mode): Likewise.
6753         (c_common_signed_or_unsigned_type): Likewise.
6754         (c_common_nodes_and_builtins): Add builtin type
6755         if target supports 128-bit integer scalar.
6756         * c-common.h (enum rid): Add RID_INT128.
6757         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
6758         if target supports 128-bit integer scalar.
6759         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
6760         (finish_declspecs): Likewise.
6761         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
6762         (c_token_starts_declspecs): Likewise.
6763         (c_parser_declspecs): Likewise.
6764         (c_parser_attributes): Likewise.
6765         (c_parser_objc_selector): Likewise.
6766         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
6767         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
6768         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
6769         * tree.c (make_or_reuse_type): Likewise.
6770         (make_unsigned_type): Likewise.
6771         (build_common_tree_nodes_2): Likewise.
6772         * tree.h (enum integer_type_kind): Add itk_int128 and
6773         itk_unsigned_int128.
6774         (int128_integer_type_node): New define.
6775         (int128_unsigned_type_node): New define.
6776         * doc/extend.texi: Add documentation about __int128 type.
6777
6778 2010-05-26  Richard Guenther  <rguenther@suse.de>
6779
6780         * tree-ssa-sccvn.c (copy_nary): Adjust.
6781         (copy_phis): Rename to ...
6782         (copy_phi): ... this.  Adjust.
6783         (copy_references): Rename to ...
6784         (copy_reference): ... this.  Adjust.
6785         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
6786         result into the valid table.
6787
6788 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6789
6790         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
6791         insn-config.h, insn-codes.h, recog.h, and optabs.h.
6792
6793 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6794
6795         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
6796
6797 2010-05-26  Richard Guenther  <rguenther@suse.de>
6798
6799         * opts.c (common_handle_option): Handle OPT_Ofast.
6800
6801 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
6802
6803         * diagnostic.c: Don't include opts.h.
6804         (permissive_error_option): Define.
6805         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
6806         for classify_diagnostic.  Don't use memset for
6807         classify_diagnostic.  Initialize new and recently added fields.
6808         (diagnostic_classify_diagnostic): Use context->n_opts instead of
6809         N_OPTS.
6810         (diagnostic_report_diagnostic): Pass context parameter to
6811         diagnostic_report_warnings_p.  Use option_enabled and option_name
6812         hooks from context.
6813         (emit_diagnostic): Use permissive_error_option.
6814         (permerror): Likewise.
6815         * diagnostic.h: Don't include options.h.
6816         (struct diagnostic_context): Add n_opts, opt_permissive,
6817         inhibit_warnings, warn_system_headers, option_enabled and
6818         option_name fields.  Change classify_diagnostic to a pointer.
6819         * opts-diagnostic.h: New file.
6820         * opts.c: Include opts-diagnostic.h.
6821         (common_handle_option): Set global_dc fields for -Wfatal-errors,
6822         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
6823         (option_name): New function.
6824         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
6825         (c_common_handle_option): Set global_dc->permissive for
6826         -fpermissive.
6827         * c-common.c (c_cpp_error): Save and restore
6828         global_dc->warn_system_headers, not variable warn_system_headers.
6829         * toplev.c: Include opts-diagnostic.h.
6830         (general_init): Update call to diagnostic_initialize.  Set
6831         global_dc->show_column, global_dc->option_enabled and
6832         global_dc->option_name.
6833         (process_options): Don't set global_dc fields here.
6834         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
6835         (diagnostic.o, opts.o, toplev.o): Update dependencies.
6836
6837 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6838
6839         * config/picochip/picochip.md (movsi): Split a movsi from a
6840         const after reload.
6841
6842 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6843
6844         * ggc-zone.c: Update copyright year.
6845         (poison_region): Mark memory for Valgrind as undefined before
6846         memset () call and inaccessible afterwards.
6847         (ggc_pch_total_size): Change type of i to int.
6848
6849 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6850
6851         * ggc-common.c (ggc_free_overhead): Allow empty slot.
6852
6853 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6854
6855         * ggc-common.c: Update copyright year.
6856         (ggc_rlimit_bound): Remove prototype.  Compile only if
6857         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
6858         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
6859         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
6860         (ggc_min_heapsize_heuristic): Likewise.
6861
6862 2010-05-26  Richard Guenther  <rguenther@suse.de>
6863
6864         PR rtl-optimization/44164
6865         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
6866         no-common access-path disambiguation.
6867         (indirect_ref_may_alias_decl_p): Adjust.
6868         (indirect_refs_may_alias_p): Likewise.
6869         (refs_may_alias_p_1): Likewise.
6870
6871 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6872
6873         * c-typeck.c: Do not include expr.h.
6874
6875 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6876
6877         * rtl.h (decl_default_tls_model): Move prototype from here...
6878         * output.h: ...to here.
6879         * c-decl.c: Do not include rtl.h.
6880         * c-pragma.c: Likewise.
6881         * c-parser.c: Likewise.
6882         * c-gimplify.c: Likewise.  And also not hard-reg-set.
6883         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
6884         FIXME note for it.  Add a FIXME note for expr.h.
6885         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
6886         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
6887         defined.
6888
6889 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
6890
6891         PR target/44199
6892         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
6893         or total_size is larger than red zone size for non-V4 ABI, emit a
6894         stack_tie resp. frame_tie insn before stack pointer restore.
6895         * config/rs6000/rs6000.md (frame_tie): New insn.
6896
6897 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6898
6899         * function.h (struct function): Add can_throw_non_call_exceptions bit.
6900         * lto-streamer-in.c (input_function): Stream it in.
6901         * lto-streamer-out.c (output_function): Stream it out.
6902         * function.c (allocate_struct_function): Set it.
6903         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
6904         for flag_non_call_exceptions.
6905         * cfgbuild.c (control_flow_insn_p): Likewise.
6906         (make_edges): Likewise.
6907         * cfgexpand.c (expand_stack_alignment): Likewise.
6908         * combine.c (distribute_notes): Likewise.
6909         * cse.c (cse_extended_basic_block): Likewise.
6910         * except.c (insn_could_throw_p): Likewise.
6911         * gcse.c (simple_mem): Likewise.
6912         * ipa-pure-const.c (check_call): Likewise.
6913         (check_stmt ): Likewise.
6914         * lower-subreg.c (lower-subreg.c): Likewise.
6915         * optabs.c (emit_libcall_block): Likewise.
6916         (prepare_cmp_insn): Likewise.
6917         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
6918         * postreload.c (rest_of_handle_postreload): Likewise.
6919         * reload1.c (reload_as_needed): Likewise.
6920         (emit_input_reload_insns): Likewise.
6921         (emit_output_reload_insns): Likewise.
6922         (fixup_abnormal_edges): Likewise.
6923         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
6924         * store-motion.c (find_moveable_store): Likewise.
6925         * tree-eh.c (stmt_could_throw_p): Likewise.
6926         (tree_could_throw_p): Likewise.
6927         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6928         * config/arm/arm.c (arm_expand_prologue): Likewise.
6929         (thumb1_expand_prologue): Likewise.
6930         * config/rx/rx.md (cbranchsf4): Likewise.
6931         (cmpsf): Likewise.
6932         * config/s390/s390.c (s390_emit_prologue): Likewise.
6933         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
6934         (inline_forbidden_into_p): New predicate.
6935         (expand_call_inline): Use it to forbid inlining.
6936         (tree_can_inline_p): Likewise.
6937
6938 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6939
6940         * config/i386/i386-c.c: Do not include rtl.h.
6941         * config/i386/t-i386: Update dependencies.
6942
6943 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6944
6945         * attribs.c: Do not include rtl.h.
6946         * Makefile.in: Update dependencies.
6947
6948 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
6949
6950         * double-int.h (double_int_and): New.
6951         * combine.c (try_combine): Clean up, use double_int_* and
6952         immed_double_int_const functions.
6953
6954 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6955
6956         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
6957         stderr to /dev/null instead of grep -q.
6958         * configure: Regenerate.
6959
6960 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6961
6962         * Makefile.in (EXCEPT_H): Fix typo.
6963
6964 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
6965
6966         * ira-build.c (update_conflict_hard_reg_costs): New.
6967         (ira_build): Call update_conflict_hard_reg_costs.
6968
6969 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
6970
6971         PR debug/41371
6972         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
6973         ENABLE_CHECKING.
6974         (intersect_loc_chains): Walk the s2var's loc_chain together
6975         with s1node chain as long as the locations are equal, don't
6976         call find_loc_in_1pdv in that case.
6977
6978         PR debug/42801
6979         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
6980         (copy_bind_expr): ... instead of here.
6981         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
6982         if the block hasn't been remapped.
6983         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
6984         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
6985
6986 2010-05-25  Richard Guenther  <rguenther@suse.de>
6987
6988         PR middle-end/44069
6989         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
6990         out-of-bounds array accesses.
6991
6992 2010-05-25  Richard Guenther  <rguenther@suse.de>
6993
6994         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
6995         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
6996         (run_gcc): Re-organize to make cleanup easier.
6997
6998 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6999
7000         * config/s390/s390.c (optimization_options): Fix and move the
7001         flag_prefetch_loop_arrays override ...
7002         (override_options): ... here.
7003
7004 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
7005
7006         * diagnostic.c: Don't include plugin.h.
7007         (diagnostic_report_diagnostic): Don't handle plugins specially
7008         here.  Pass context to internal_error callback.
7009         * diagnostic.h (struct diagnostic_context): Add context parameter
7010         to internal_error callback.
7011         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
7012         * plugin.h (struct diagnostic_context): Declare.
7013         (warn_if_plugins, plugins_internal_error_function): Declare.
7014         * toplev.c (general_init): Set global_dc->internal_error.
7015         * Makefile.in (diagnostic.o): Update dependencies.
7016
7017 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
7018
7019         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
7020         * config/rs6000/t-darwin64: New.
7021         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
7022         build crt2.
7023
7024 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
7025
7026         PR 44203
7027         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
7028         match the original (and intended) behaviour before r159557.  This
7029         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
7030         in two ways.
7031
7032 2010-05-25  Richard Guenther  <rguenther@suse.de>
7033
7034         * doc/invoke.texi: Document -Ofast.
7035         * target.h (struct gcc_target): Add handle_ofast.
7036         * target-def.h (TARGET_HANDLE_OFAST): Add.
7037         (TARGET_INITIALIZER): Adjust.
7038         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
7039         * common.opt (Ofast): Add.
7040
7041 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
7042
7043         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
7044         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
7045
7046 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
7047
7048         PR target/43610
7049         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
7050         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
7051         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
7052         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
7053
7054 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
7055
7056         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
7057         DW_OP_minus with negated offset instead of DW_OP_plus.
7058         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
7059
7060 2010-05-25  Wei Guozhi  <carrot@google.com>
7061
7062         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
7063         tst instruction and a new alternative.
7064         * config/arm/constraints.md (Pu): New constraint.
7065
7066 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
7067
7068         * function.c (assign_stack_local_1): Initialize variable
7069         to avoid warning when bootstrapping at -O3.
7070
7071 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
7072
7073         * configure.ac (all_lang_makefiles): Remove everything related to it.
7074         * configure: Regenerate.
7075         * Makefile.in: Fix reference to ada Make-lang.in.
7076         Remove support for LANG_MAKEFILES.
7077
7078 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
7079             Sandra Loosemore  <sandra@codesourcery.com>
7080
7081         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
7082         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
7083         description.  Add arm_neon_fp16_ok.
7084         (Add Options): Add arm_neon and arm_neon_fp16.
7085
7086 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
7087
7088         * diagnostic.c: Don't include flags.h.
7089         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
7090         context parameters.  Check flags in the context passed as a parameter.
7091         (diagnostic_build_prefix): Add context parameter.  Check
7092         show_column flag in context.
7093         (diagnostic_action_after_output): Check fatal_errors flag in context.
7094         (diagnostic_report_current_module): Check show_column flag in context.
7095         (default_diagnostic_starter): Update call to
7096         diagnostic_build_prefix.
7097         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
7098         (emit_diagnostic): Pass context to permissive_error_kind.
7099         (permerror): Pass context to permissive_error_kind.
7100         * diagnostic.h (struct diagnostic_context): Add show_column,
7101         pedantic_errors, permissive and fatal_errors fields.
7102         (diagnostic_build_prefix): Update prototype.
7103         * langhooks.c
7104         * toplev.c (process_options): Set flags in global_dc from
7105         flag_show_column, flag_pedantic_errors, flag_permissive,
7106         flag_fatal_errors.
7107         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
7108         to diagnostic_build_prefix.
7109         * Makefile.in (diagnostic.o): Update dependencies.
7110
7111 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
7112
7113         * config/i386/ia32intrin.h (__crc32q): Define only if
7114         __SSE4_2__ is defined.
7115
7116 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
7117
7118         PR target/44132
7119         PR middle-end/43602
7120         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
7121         DECL_VISIBILITY_SPECIFIED.
7122         (emutls_decl): Set DECL_PRESERVE_P and copy
7123         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
7124         (emutls_finalize_control_var): New callback.
7125         (emutls_finish): Finalize emutls control variables.
7126         * toplev.c (compile_file): Move the call to emutls_finish ()
7127         before varpool_assemble_pending_decls ().
7128
7129 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
7130
7131         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
7132         added to the preprocessor condition.
7133
7134 2010-05-24  Paul Brook  <paul@codesourcery.com>
7135
7136         * gengtype-lex.l: Add HARD_REG_SET.
7137         * expr.c (expand_expr_real_1): Record writes to hard registers.
7138         * function.c (rtl_data): Add asm_clobbers.
7139         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
7140         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
7141         Use crtl->asm_clobbers.
7142
7143 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7144
7145         * doc/makefile.texi (Makefile): Mention stages 'profile'
7146         and 'feedback' for profiledbootstrap.
7147
7148 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
7149
7150         PR target/44245
7151         * config/i386/i386.c (def_builtin): Properly check
7152         OPTION_MASK_ISA_64BIT.
7153
7154 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
7155
7156         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
7157         typedefs with different but compatible types.  Allow duplicate
7158         typedefs with the same type except for pedantic non-C1X, but give
7159         warning for variably modified types.
7160         * c-typeck.c (tagged_types_tu_compatible_p,
7161         function_types_compatible_p, type_lists_compatible_p,
7162         comptypes_internal): Add parameter different_types_p; set
7163         *different_types_p for different but compatible types.  All
7164         callers changed.
7165         (comptypes_check_different_types): New.
7166         * c-tree.h (comptypes_check_different_types): Declare.
7167
7168 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
7169
7170         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
7171         * jump.c: Include basic-block.h.
7172         * profile.c: Likewise.
7173         * tree-profile.c: Likewise.
7174         * coverage.c: Likewise.
7175         * basic-block.h (optimize_function_for_size_p): Move to function.h.
7176         (optimize_function_for_speed_p): Likewise.
7177         * function.h (optimize_function_for_size_p,
7178         optimize_function_for_speed_p): Moved here from basic-block.h.
7179         * Makefile.in: Update dependencies.
7180
7181 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7182
7183         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
7184         before calling make; allow override through $MAKE.
7185         * doc/invoke.texi (Optimize Options): Document override.
7186
7187 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
7188
7189         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
7190         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7191         (rs6000_mode_dependent_address_ptr): Make static.
7192         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7193         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
7194         Remove.
7195
7196 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
7197
7198         PR target/43869
7199         * config/i386/i386.c: Make sure that the correct regparm is passed.
7200
7201 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
7202
7203         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
7204         * sbitmap.c: ...to here to internalize sbitmap element access.
7205         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
7206         Explain why basic-block.h is included.
7207         * function.h: Include tm.h for CUMULATIVE_ARGS.
7208         * Makefile.in: Update dependencies.
7209
7210 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
7211
7212         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
7213         New core types.
7214         * sbitmap.h (struct sbitmap_def): Do not typedef here.
7215         * sbitmap.c: Include sbitmap.h.
7216         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
7217         hard-reg-set.h.  Split everything related to regsets out from here...
7218         * regset.h: ...to here.  New file.
7219         * df.h: Include regset.h and sbitmap.h.
7220         * tree-flow.h: Likewise.
7221         * cfgloop.h: Likewise.
7222         * except.h: Do not include sbitmap.h.  Include hashtab.h.
7223         * cgraph.h: Include vec.h and function.h.
7224         * reload.h (struct insn_chain): Change types of live_throughout
7225         and dead_or_set from regset_head to bitmap_head.
7226         (compute_use_by_pseudos): Be defined also if regset.h is not included.
7227         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
7228         spilled_regs from regset_head to bitmap_head to avoid dependency
7229         in regset.h.
7230         * sel-sched-ir.h: Include regset.h.
7231         * reload.c: Include df.h before reload.h.
7232         * caller-save.c: Likewise.
7233         * reload1.c: Likewise.
7234         * ira.c: Likewise.
7235         (mark_elimination): Update type of r to bitmap, consistent with
7236         DF_LR_IN.
7237         * dominance.c: Include bitmap.h.
7238         * modulo-sched.c: Include df.h.
7239         * cfganal.c: Include bitmap.h and sbitmap.h.
7240         * cfgbuild.c: Include sbitmap.h.
7241         * lcm.c: Include sbitmap.h.
7242         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
7243         * domwalk.c: Include sbitmap.h, exclude ggc.h.
7244         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
7245         * cselib.c: Include bitmap.h.
7246         * tree-optimize.c: Include regset.h.
7247         * stmt.c: Include bitmap.h.
7248         * Makefile.in: Update dependencies.
7249
7250 2010-05-22  Jan Hubicka  <jh@suse.cz>
7251
7252         * cgraph.h (struct varpool_node): Add same_comdat_group.
7253         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
7254         pointer.
7255         (output_varpool): Update call of lto_output_varpool_node.
7256         (input_varpool): Read same_comdat_group pointer.
7257         (input_varpool_1): Fixup same_comdat_group pointer.
7258         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
7259         group is needed, all are.
7260         * varpool.c (varpool_remove_node): Remove node from same comdat group
7261         linklist too.
7262         (varpool_analyze_pending_decls): Walk same comdat groups.
7263
7264 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
7265
7266         * rtl.h (union rtunion_def): Remove rt_bit member.
7267         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
7268         * print-rtl (print_rtx): Do not print the member.
7269         * gengtype.c (adjust_field_rtx_def): Do not handle it.
7270         * gengenrtl.c (type_from_format): Likewise.
7271         (accessor_from_format): Likewise.
7272
7273 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
7274
7275         * dbgcnt.c: Include toplev.h instead of errors.h.
7276         * ira-emit.c: Don't include errors.h.
7277         * ira.c: Include toplev.h instead of errors.h.
7278         * lto-compress.c: Include toplev.h instead of errors.h.
7279         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
7280         ira.o, dbgcnt.o): Update dependencies.
7281
7282 2010-05-22  Richard Guenther  <rguenther@suse.de>
7283
7284         * gimple.c (gimple_types_compatible_p): Check type qualifications
7285         before merging pointer to complete and pointer to incomplete type.
7286         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
7287         we use our own resolution algorithm.  The gold linker plugin
7288         doesn't do the job we want it to do here.
7289
7290 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
7291
7292         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7293         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7294         (sparc_mode_dependent_address_p): New function.
7295
7296 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7297
7298         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
7299
7300         * timevar.c: Do not include any core headers.
7301         (timevar_print): De-i18n-ize.
7302         (print_time): Likewise.
7303         * timevar.h (timevar_push, timevar_pop): Make inline functions.
7304
7305 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
7306
7307         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
7308         langhooks-def.h.
7309         (diagnostic_initialize): Initialize x_data not last_function.
7310         (diagnostic_report_current_function): Move to tree-diagnostic.c.
7311         (default_diagnostic_starter): Call
7312         diagnostic_report_current_module not
7313         diagnostic_report_current_function.
7314         (diagnostic_report_diagnostic): Initialize x_data not
7315         abstract_origin.
7316         (verbatim): Likewise.
7317         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
7318         x_data.
7319         (struct diagnostic_context): Change last_function to x_data.
7320         (diagnostic_auxiliary_data): Replace with
7321         diagnostic_context_auxiliary_data and
7322         diagnostic_info_auxiliary_data.
7323         (diagnostic_last_function_changed, diagnostic_set_last_function,
7324         diagnostic_report_current_function): Move to tree-diagnostic.h.
7325         (print_declaration, dump_generic_node, print_generic_stmt,
7326         print_generic_stmt_indented, print_generic_expr,
7327         print_generic_decl, debug_c_tree, dump_omp_clauses,
7328         print_call_name, debug_generic_expr, debug_generic_stmt,
7329         debug_tree_chain, default_tree_printer): Move to
7330         tree-pretty-print.h.
7331         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
7332         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
7333         gimple-pretty-print.h.
7334         * pretty-print.c: Don't include tree.h
7335         (pp_base_format): Don't handle %K here.
7336         (pp_base_tree_identifier): Move to tree-pretty-print.c.
7337         * pretty-print.h (text_info): Change abstract_origin to x_data.
7338         (pp_tree_identifier, pp_unsupported_tree,
7339         pp_base_tree_identifier): Move to tree-pretty-print.h.
7340         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
7341         tree-pretty-print.h: New files.
7342         * tree-pretty-print.c: Include tree-pretty-print.h.
7343         (percent_K_format): New.  Moved from pretty-print.c.
7344         (pp_base_tree_identifier): Move from pretty-print.c.
7345         * c-objc-common.c: Include tree-pretty-print.h.
7346         (c_tree_printer): Handle %K here.
7347         * langhooks.c: Include tree-diagnostic.h.
7348         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
7349         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
7350         (default_tree_printer): Handle %K using percent_K_format.
7351         (general_init): Use default_tree_diagnostic_starter.
7352         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
7353         (free_lang_data): Use default_tree_diagnostic_starter.
7354         * c-pretty-print.c: Include tree-pretty-print.h.
7355         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7356         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7357         * dwarf2out.c: Include tree-pretty-print.h.
7358         * except.c: Include tree-pretty-print.h.
7359         * gimple-pretty-print.c: Include tree-pretty-print.h and
7360         gimple-pretty-print.h.
7361         * gimplify.c: Include tree-pretty-print.h.
7362         * graphite-poly.c: Include tree-pretty-print.h and
7363         gimple-pretty-print.h.
7364         * ipa-cp.c: Include tree-pretty-print.h.
7365         * ipa-inline.c: Include gimple-pretty-print.h.
7366         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7367         * ipa-pure-const.c: Include gimple-pretty-print.h.
7368         * ipa-struct-reorg.c: Include tree-pretty-print.h and
7369         gimple-pretty-print.h.
7370         * ipa-type-escape.c: Include tree-pretty-print.h.
7371         * print-rtl.c: Include tree-pretty-print.h.
7372         * print-tree.c: Include gimple-pretty-print.h.
7373         * sese.c: Include tree-pretty-print.h.
7374         * tree-affine.c: Include tree-pretty-print.h.
7375         * tree-browser.c: Include tree-pretty-print.h.
7376         * tree-call-cdce.c: Include gimple-pretty-print.h.
7377         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7378         * tree-chrec.c: Include tree-pretty-print.h.
7379         * tree-data-ref.c: Include tree-pretty-print.h and
7380         gimple-pretty-print.h.
7381         * tree-dfa.c: Include tree-pretty-print.h.
7382         * tree-if-conv.c: Include tree-pretty-print.h and
7383         gimple-pretty-print.h.
7384         * tree-inline.c: Include tree-pretty-print.h.
7385         * tree-into-ssa.c: Include tree-pretty-print.h and
7386         gimple-pretty-print.h.
7387         * tree-nrv.c: Include tree-pretty-print.h.
7388         * tree-object-size.c: Include tree-pretty-print.h and
7389         gimple-pretty-print.h.
7390         * tree-outof-ssa.c: Include tree-pretty-print.h and
7391         gimple-pretty-print.h.
7392         * tree-parloops.c: Include tree-pretty-print.h and
7393         gimple-pretty-print.h.
7394         * tree-predcom.c: Include tree-pretty-print.h and
7395         gimple-pretty-print.h.
7396         * tree-scalar-evolution.c: Include tree-pretty-print.h and
7397         gimple-pretty-print.h.
7398         * tree-sra.c: Include tree-pretty-print.h.
7399         * tree-ssa-address.c: Include tree-pretty-print.h.
7400         * tree-ssa-alias.c: Include tree-pretty-print.h.
7401         * tree-ssa-ccp.c: Include tree-pretty-print.h and
7402         gimple-pretty-print.h.
7403         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
7404         * tree-ssa-copy.c: Include tree-pretty-print.h and
7405         gimple-pretty-print.h.
7406         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
7407         * tree-ssa-dce.c: Include tree-pretty-print.h and
7408         gimple-pretty-print.h.
7409         * tree-ssa-dom.c: Include tree-pretty-print.h and
7410         gimple-pretty-print.h.
7411         * tree-ssa-dse.c: Include gimple-pretty-print.h.
7412         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
7413         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
7414         * tree-ssa-live.c: Include tree-pretty-print.h and
7415         gimple-pretty-print.h.
7416         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
7417         gimple-pretty-print.h.
7418         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
7419         gimple-pretty-print.h.
7420         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
7421         gimple-pretty-print.h.
7422         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
7423         gimple-pretty-print.h.
7424         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
7425         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
7426         * tree-ssa-operands.c: Include tree-pretty-print.h and
7427         gimple-pretty-print.h.
7428         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
7429         gimple-pretty-print.h.
7430         * tree-ssa-pre.c: Include tree-pretty-print.h and
7431         gimple-pretty-print.h.
7432         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
7433         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
7434         gimple-pretty-print.h.
7435         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
7436         gimple-pretty-print.h.
7437         * tree-ssa-sink.c: Include gimple-pretty-print.h.
7438         * tree-ssa-ter.c: Include tree-pretty-print.h and
7439         gimple-pretty-print.h.
7440         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
7441         * tree-ssa.c: Include tree-pretty-print.h and
7442         gimple-pretty-print.h.
7443         * tree-stdarg.c: Include gimple-pretty-print.h.
7444         * tree-switch-conversion.c: Include gimple-pretty-print.h.
7445         * tree-tailcall.c: Include tree-pretty-print.h and
7446         gimple-pretty-print.h.
7447         * tree-vect-data-refs.c: Include tree-pretty-print.h and
7448         gimple-pretty-print.h.
7449         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
7450         gimple-pretty-print.h.
7451         * tree-vect-loop.c: Include tree-pretty-print.h and
7452         gimple-pretty-print.h.
7453         * tree-vect-patterns.c: Include gimple-pretty-print.h.
7454         * tree-vect-slp.c: Include tree-pretty-print.h and
7455         gimple-pretty-print.h.
7456         * tree-vect-stmts.c: Include tree-pretty-print.h and
7457         gimple-pretty-print.h.
7458         * tree-vectorizer.c: Include tree-pretty-print.h.
7459         * tree-vrp.c: Include tree-pretty-print.h and
7460         gimple-pretty-print.h.
7461         * value-prof.c: Include tree-pretty-print.h and
7462         gimple-pretty-print.h.
7463         * var-tracking.c: Include tree-pretty-print.h.
7464         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
7465         (tree-diagnostic.o): New dependencies.
7466         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
7467         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
7468         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
7469         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
7470         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
7471         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
7472         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
7473         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
7474         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
7475         tree-ssa-address.o, tree-ssa-loop-niter.o,
7476         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
7477         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
7478         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
7479         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
7480         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
7481         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
7482         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
7483         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
7484         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
7485         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
7486         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
7487         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
7488         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
7489         tree-switch-conversion.o, var-tracking.o, value-prof.o,
7490         cfgexpand.o, pretty-print.o): Update dependencies.
7491
7492 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
7493
7494         * tree-ssa-structalias.c: Remove tm_p.h from include.
7495
7496 2010-05-21  Jeff Law  <law@redhat.com>
7497
7498         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
7499
7500 2010-05-21  Jason Merrill  <jason@redhat.com>
7501
7502         * tree-eh.c (cleanup_is_dead_in): New.
7503         (lower_try_finally): Don't generate a dead cleanup region.
7504         (lower_cleanup): Likewise.
7505
7506 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
7507
7508         PR debug/44223
7509         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
7510         unchain each use from the cyclic next_regno_use chain first.
7511
7512 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7513
7514         * real: Do not include gmp.h, mpfr.h, and mpc.h.
7515         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
7516         (real_value_negate, real_value_abs): New prototypes.
7517         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
7518         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
7519         new include file for interface between MPFR and REAL_VALUE_TYPE.
7520         * real.c: Include realmpfr.h.
7521         (real_arithmetic2): Remove legacy function.
7522         (real_value_negate): New.
7523         (real_value_abs): New.
7524         (mfpr_from_real, real_from_mpfr): Move from here...
7525         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
7526         * builtins.c: Include realmpfr.h.
7527         * fold-const.c: Include realmpfr.h.
7528         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
7529         (fold_negate_const): Likewise.
7530         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
7531         * toplev.c: Include realmpfr.h.
7532         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
7533         and real_value_negate.
7534         * fixed-value.c (check_real_for_fixed_mode): Likewise.
7535         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
7536         (vfp3_const_double_index): Likewise.
7537         (arm_print_operand): Likewise.
7538         * Makefile.in: Update dependencies.
7539
7540 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7541
7542         * config/s390/s390.c (override_options): Increase the default
7543         of max-completely-peel-times.
7544
7545 2010-05-21  Julian Brown  <julian@codesourcery.com>
7546             Mark Mitchell  <mark@codesourcery.com>
7547
7548         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
7549         sibling calls for Thumb-1.
7550         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
7551         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
7552         Thumb-2.
7553         (*call_insn, *call_value_insn): Don't use for Thumb-2.
7554         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
7555         for Thumb-2.
7556         (return): New expander.
7557         (*arm_return): New name for ARM return insn.
7558         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
7559
7560 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
7561
7562         * config.gcc (sparc64-*-rtems*): New target.
7563
7564 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
7565
7566         * tree.c (build_function_decl_skip_args): Fix grammar.
7567         (build_function_type_list_1): Fix typos, adjust formatting.
7568
7569 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7570
7571         * tree.h: Include real.h and fixed-value.h as basic datatypes.
7572         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
7573         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
7574         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
7575         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
7576         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
7577         tree-pretty-print.c, tree-loop-distribution.c,
7578         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
7579         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
7580         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
7581         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
7582         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
7583         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
7584         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
7585         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
7586         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
7587         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
7588         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
7589         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
7590         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
7591         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
7592         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
7593         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
7594         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
7595         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
7596         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
7597         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
7598         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
7599         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
7600         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
7601         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
7602         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
7603         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
7604         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
7605         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
7606         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
7607         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
7608         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
7609         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
7610         config/score/score7.c, config/score/score.c, config/arm/arm.c,
7611         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
7612         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
7613         config/bfin/bfin.c: Clean up redundant includes.
7614         * Makefile.in: Update accordingly.
7615
7616 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
7617
7618         PR middle-end/44204
7619         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
7620         statement has no arguments.
7621
7622 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
7623
7624         PR/44139
7625         * varasm.c (emutls_decl): Merge attributes to new decl.
7626
7627 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7628
7629         PR middle-end/44101
7630         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
7631         around the uniquized constructor if its type requires a conversion.
7632
7633 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
7634
7635         PR debug/44205
7636         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
7637         at -O0 goto_locus of any of the incoming edges differs from
7638         goto_locus of outgoing edge, or gimple_location of any of the
7639         labels differs.
7640
7641 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
7642
7643         * ira.c (ira_non_ordered_class_hard_regs): Define.
7644         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
7645         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
7646         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
7647         cost of unaligned hard regs when allocating multi-reg pseudos.
7648
7649 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
7650
7651         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
7652         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
7653         for TARGET_NO_FLOAT.
7654         * config/mips/mips.c (mips_file_start): Expand conditional expression
7655         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
7656         (mips_override_options): Move -mno-float override -msoft-float and
7657         -mhard-float.
7658         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
7659         Condition(TARGET_SUPPORTS_NO_FLOAT).
7660         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
7661         __mips_no_float here.
7662         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
7663         (TARGET_SUPPORTS_NO_FLOAT): Define.
7664         * config/mips/sdemtk.opt: Delete.
7665
7666 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
7667
7668         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
7669
7670 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
7671
7672         PR target/43733
7673         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
7674         * configure: Regenerate.
7675         * config.in: Regenerate.
7676         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
7677         instead of sahf only for 64bit targets.
7678
7679 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
7680
7681         PR debug/44178
7682         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
7683         setup_ref_regs for DEBUG_INSNs.
7684
7685 2010-05-20  Jan Hubicka  <jh@suse.cz>
7686
7687         PR middle-end/44197
7688         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
7689
7690 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
7691
7692         PR bootstrap/43870
7693         * df-scan.c (df_ref_compare): Stabilize sort.
7694
7695 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
7696
7697         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
7698         argument.  Don't use DW_OP_piece if offset is non-zero,
7699         put offset into second DW_OP_bit_piece argument.
7700         (dw_sra_loc_expr): Adjust callers.  For memory expressions
7701         compute offset.
7702
7703 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
7704
7705         PR target/44202
7706         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
7707         settings for 16-bit-constant "addo" alternative.
7708
7709 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
7710
7711         * config/mips/mips-dsp.md (add<DSPV:mode>3,
7712         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
7713
7714         PR target/43764
7715         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
7716         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
7717         Use it.
7718
7719 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
7720
7721         * diagnostic.c (FLOAT, FFS): Don't undefine.
7722         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
7723         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
7724         include ordering.
7725
7726 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
7727
7728         * combine.c (propagate_for_debug): Call make_compound_operation
7729         on the source value.
7730         (try_combine): When implementing a split chosen by find_split_point,
7731         either copy i2src or set it to null.  Assert that i2src is not null
7732         before substituting into CALL_INSN_FUNCTION_USAGE.
7733
7734 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
7735
7736         * double-int.h (double_int_ior): New function.
7737         * tree.h (build_int_cst_wide_type): Remove.
7738         * tree.c (build_int_cst_wide_type): Remove.
7739         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
7740         of build_int_cst_wide_type.
7741         * stor-layout.c (set_sizetype): (Ditto.).
7742         * dojump.c (do_jump): Use build_int_cstu instead of
7743         build_int_cst_wide_type.
7744
7745 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
7746
7747         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
7748         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
7749         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
7750         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
7751         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
7752         propagate the 'data' argument to copy_tree_r.
7753         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
7754         Propagate 'data' argument to walk_tree.
7755         (copy_if_shared): New function.
7756         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
7757         (unmark_visited): New function.
7758         (unshare_body): Call copy_if_shared instead of doing it manually.
7759         (unvisit_body): Call unmark_visited instead of doing it manually.
7760
7761 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
7762
7763         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
7764         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
7765         * hooks.c: Likewise.
7766         * target-def.h (TARGET_FOLD_BUILTIN): Define to
7767         hook_tree_tree_int_treep_bool_null.
7768         * target.h (struct gcc_target): Update signature of fold_builtin
7769         field.
7770         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
7771         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
7772         instead of the call expression.
7773         (fold_builtin_call_array): Pass n and argarray directly.
7774         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
7775         consing a list.
7776         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
7777         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
7778         `i' and use it in place of `arity'.
7779         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
7780         Dereference `args' directly.
7781         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
7782
7783 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7784
7785         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7786         3dnow, sse3, sse2.
7787         (Directives): Document optional dg-require-effective-target
7788         selector.
7789
7790 2010-05-19  Richard Guenther  <rguenther@suse.de>
7791
7792         PR lto/44196
7793         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
7794
7795 2010-05-19  Richard Guenther  <rguenther@suse.de>
7796
7797         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
7798         * common.opt (fwhopr=): New.
7799         * opts.c (common_handle_option): Handle OPT_fwhopr.
7800         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
7801         * collect2.c (main): Match -fwhopr*.
7802         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
7803         Execute ltrans stage in parallel when jobs is bigger than 1.
7804
7805 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7806
7807         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
7808         pentiumpro on Solaris 8/x86 with Sun as.
7809         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
7810         hidden alias bug.
7811         (gcc_cv_as_ix86_quad): Check for .quad directive.
7812         * configure: Regenerate.
7813         * config.in: Regenerate.
7814         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
7815
7816 2010-05-19  Martin Jambor  <mjambor@suse.cz>
7817
7818         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
7819         also for indirect edges.  Actual printing moved...
7820         (ipa_print_node_jump_functions_for_edge): ...here.
7821         (ipa_compute_jump_functions): Renamed to
7822         ipa_compute_jump_functions_for_edge and made static.
7823         (ipa_compute_jump_functions): New function.
7824         (make_edge_direct_to_target): Check if the number of arguments on
7825         the newly direct edge is the same as the number of parametrs of
7826         the callee.
7827         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
7828         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
7829         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
7830         analysis functions unconditionally, call the new
7831         ipa_analyze_params_uses on the node instead of every edge.
7832
7833 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
7834
7835         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
7836         to tree.
7837         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
7838         also checks for a constant int vs.  non-constant but
7839         loop-invariant steps.
7840         (find_or_create_group): Change the sort algorithm to only consider
7841         steps that are constant ints.
7842         (idx_analyze_ref): Adopt code to handle a tree instead of a
7843         HOST_WIDE_INT for step.
7844         (gather_memory_references_ref): Handle tree instead of int and be
7845         prepared to see a NULL_TREE.
7846         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
7847         prefetches if the step cannot be calculated at compile time.
7848         (issue_prefetch_ref): Issue prefetches for non-constant but
7849         loop-invariant steps.
7850
7851 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7852
7853         Revert:
7854         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7855
7856         * tree.h (build_call_list): Remove.
7857         * tree.c (build_call_list): Remove.
7858
7859 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7860
7861         * tree.h (build_call_list): Remove.
7862         * tree.c (build_call_list): Remove.
7863
7864 2010-05-18  Jan Hubicka  <jh@suse.cz>
7865
7866         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
7867
7868 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
7869
7870         PR rtl-optimization/43332
7871         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
7872
7873 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
7874
7875         * tree.h (build_int_cstu): Implement as static inline.
7876         * tree.c (build_int_cstu): Remove function.
7877         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
7878         sign extended.
7879
7880 2010-05-18  Richard Guenther  <rguenther@suse.de>
7881
7882         PR lto/44143
7883         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
7884         (debug): Initialize from -save-temps.
7885         (collect_execute): Print command-line when verbose.
7886         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
7887         for ltrans invocation.  Produce -dumpbase flag again.
7888         (process_args): Remove.
7889         (main): Simplify.
7890         * collect2.c (maybe_run_lto_and_relink): Only pass object
7891         files to lto-wrapper.
7892         * gcc.c (LINK_COMMAND_SPEC): Likewise.
7893
7894 2010-05-18  Jan Hubicka  <jh@suse.cz>
7895
7896         * opts.c (decode_options): Do not disable whopr at ipa_cp.
7897         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
7898
7899 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
7900
7901         PR lto/44184
7902         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
7903         in a GIMPLE_ASM.
7904         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
7905         in a GIMPLE_ASM.
7906
7907 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
7908
7909         PR debug/41371
7910         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
7911         rtx_equal_p inline.
7912
7913 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
7914
7915         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
7916         lto-macho as lto_binary_reader.
7917
7918         * darwin.c (darwin_asm_named_section): Do not add assembler comment
7919         after .section directive; just print it before the directive instead.
7920
7921 2010-05-17  Jan Hubicka  <jh@suse.cz>
7922
7923         * cgraph.c (cgraph_create_virtual_clone): Only check
7924         versionable_function_p when not in wpa and checking is enabled.
7925         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
7926         there are no more functions to materialize.
7927
7928 2010-05-17  Jan Hubicka  <jh@suse.cz>
7929
7930         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
7931         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
7932         New functions.
7933         (output_cgraph): Call output_cgraph_opt_summary.
7934         (input_cgrpah): Call input_cgraph_opt_summary.
7935         (output_cgraph_opt_summary_p, output_node_opt_summary,
7936         input_node_opt_summary, input_cgraph_opt_section): New functions.
7937         * lto-section-in.c (lto_section_name): Add cgraphopt.
7938         * tree-inline.c (tree_function_versioning): Handle parm_num.
7939         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
7940         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
7941
7942 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
7943
7944         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
7945         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
7946         the insn to prefetch ratio heuristic to loops with known trip count.
7947
7948 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
7949
7950         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
7951         (schedule_prefetches): Do not generate a prefetch if the unroll factor
7952         is far from what is required by the prefetch.
7953
7954 2010-05-17  Jan Hubicka  <jh@suse.cz>
7955
7956         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
7957         (ipcp_estimate_growth): Likewise.
7958         (ipcp_const_param_count): Likewise.
7959         (ipcp_insert_stage): Likewise.
7960         * ipa-prop.c (visit_load_for_mod_analysis): New function.
7961         (visit_store_addr_for_mod_analysis): Set used flag.
7962         (ipa_detect_param_modifications): Set used flag for SSE params;
7963         update use of walk_stmt_load_store_addr_ops.
7964         (ipa_print_node_params): Print used flag.
7965         (ipa_write_node_info): Stream used flag.
7966         (ipa_read_node_info): Likewise.
7967         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
7968         (ipa_is_param_used): New function.
7969         (lto_ipa_fixup_call_notes): Remove unused declaration.
7970
7971 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7972
7973         PR target/44074
7974         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
7975         * configure: Regenerate.
7976         * config.in: Regenerate.
7977         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
7978         !HAVE_AS_IX86_REP_LOCK_PREFIX.
7979         Don't emit whitespace.
7980         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
7981         (*rep_movsi): Likewise.
7982         (*rep_movsi_rex64): Likewise.
7983         (*rep_movqi): Likewise.
7984         (*rep_movqi_rex64): Likewise.
7985         (*rep_stosdi_rex64): Likewise.
7986         (*rep_stossi): Likewise.
7987         (*rep_stossi_rex64): Likewise.
7988         (*rep_stosqi): Likewise.
7989         (*rep_stosqi_rex64): Likewise.
7990         (*cmpstrnqi_nz_1): Use {%;} after repz.
7991         (*cmpstrnqi_nz_rex_1): Likewise.
7992         (*cmpstrnqi_1): Likewise.
7993         (*cmpstrnqi_rex_1): Likewise.
7994         (*strlenqi_1): Use {%;} after repnz.
7995         (*strlenqi_rex_1): Likewise.
7996         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
7997         (*sync_compare_and_swap<mode>): Likewise.
7998         (sync_double_compare_and_swap<mode>): Likewise.
7999         (*sync_double_compare_and_swapdi_pic): Likewise.
8000         (sync_old_add<mode>): Likewise.
8001         (sync_add<mode>): Likewise.
8002         (sync_sub<mode>): Likewise.
8003         (sync_<code><mode>): Likewise.
8004
8005 2010-05-17  Martin Jambor  <mjambor@suse.cz>
8006
8007         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
8008         otr_token and polymorphic.
8009         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
8010         (cgraph_clone_edge): Copy the above fields.
8011         * tree.c (get_binfo_at_offset): New function.
8012         * tree.h (get_binfo_at_offset): Declare.
8013         * ipa-prop.h (enum jump_func_type): Added known_type jump function
8014         type, reordered items, updated comments.
8015         (union jump_func_value): Added base_type field, reordered fields.
8016         (enum ipa_lattice_type): Moved down in the file.
8017         (struct ipa_param_descriptor): New field polymorphic.
8018         (ipa_is_param_polymorphic): New function.
8019         * ipa-prop.c: Include gimple.h and gimple-fold.h.
8020         (ipa_print_node_jump_functions): Print known type jump functions.
8021         (compute_complex_pass_through): Renamed to...
8022         (compute_complex_assign_jump_func): this.
8023         (compute_complex_ancestor_jump_func): New function.
8024         (compute_known_type_jump_func): Likewise.
8025         (compute_scalar_jump_functions): Create known type and complex ancestor
8026         jump functions.
8027         (ipa_note_param_call): New parameter polymorphic, set the corresponding
8028         flag in the call note accordingly.
8029         (ipa_analyze_call_uses): Renamed to...
8030         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
8031         variable var only in the block where it is used.
8032         (ipa_analyze_virtual_call_uses): New function.
8033         (ipa_analyze_call_uses): Likewise.
8034         (combine_known_type_and_ancestor_jfs): Likewise.
8035         (update_jump_functions_after_inlining): Implemented handling of a
8036         number of new jump function types combination.
8037         (print_edge_addition_message): Removed.
8038         (make_edge_direct_to_target): New function.
8039         (try_make_edge_direct_simple_call): Likewise.
8040         (try_make_edge_direct_virtual_call): Likewise.
8041         (update_call_notes_after_inlining): Renamed to...
8042         (update_indirect_edges_after_inlining): this.  Moved edge creation for
8043         indirect calls to try_make_edge_direct_simple_call, also calls
8044         try_make_edge_direct_virtual_call for virtual calls.
8045         (ipa_print_node_params): Changed the header message.
8046         (ipa_write_jump_function): Stream also known type jump functions.
8047         (ipa_read_jump_function): Likewise.
8048         (ipa_write_indirect_edge_info): Stream new fields in
8049         cgraph_indirect_call_info.
8050         (ipa_read_indirect_edge_info): Likewise.
8051         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
8052         GIMPLE_FOLD_H.
8053
8054 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8055
8056         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
8057
8058 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
8059
8060         * tree.h (CALL_EXPR_ARGS): Delete.
8061         (call_expr_arglist): Delete.
8062         * tree.c (call_expr_arglist): Delete.
8063         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
8064         targetm.fold_builtin.
8065         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
8066         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
8067         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
8068         arglist parameter.  Use CALL_EXPR_ARG.
8069         (picochip_expand_builtin_3op): Likewise.
8070         (picochip_expand_builtin_2opvoid): Likewise.
8071         (picochip_expand_array_get): Likewise.
8072         (picochip_expand_array_put): Likewise.
8073         (picochip_expand_array_testport): Likewise.
8074         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
8075         rather than arglist.
8076         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
8077         CALL_EXPR_ARGS.
8078         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
8079         than TREE_VALUE and TREE_CHAIN.
8080         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
8081         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
8082         the arglist.
8083
8084 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
8085
8086         PR bootstrap/42347
8087         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
8088         to have no fallthru edge.
8089
8090         PR middle-end/44102
8091         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
8092         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
8093         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
8094         add BARRIER after previous bb if needed.
8095
8096 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
8097
8098         * tree.c (build_function_type_list_1): Remove bogus assert condition.
8099
8100 2010-05-17  Alan Modra  <amodra@gmail.com>
8101
8102         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
8103         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
8104         with copy_reg rtx param.
8105         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
8106         Correct cases where code for ABI_V4 did not initialise the reg
8107         used to access frame.  Also leave frame_reg_rtx as sp for large
8108         frames that save no regs.
8109
8110 2010-05-17  Martin Jambor  <mjambor@suse.cz>
8111
8112         PR middle-end/44133
8113         * tree-sra.c (create_access_replacement): New parameter rename, mark
8114         the replaement for renaming only when it is true.
8115         (get_access_replacement): Pass true in the rename parameter of
8116         create_access_replacement.
8117         (get_unrenamed_access_replacement): New function.
8118         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
8119         replacement declaration from it.
8120
8121 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
8122
8123         * function.c (try_fit_stack_local, add_frame_space): New static
8124         functions.
8125         (assign_stack_local_1): Use them.  Look for opportunities to use
8126         space previously wasted on alignment.
8127         * function.h (struct frame_space): New.
8128         (struct rtl_data): Add FRAME_SPACE_LIST member.
8129         * reload1.c (something_was_spilled): New static variable.
8130         (alter_reg): Set it.
8131         (reload): Test it in addition to testing if the frame size changed.
8132
8133 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
8134
8135         * config/s390/s390.c: Define sane prefetch settings and activate
8136         flag_prefetch_loop_arrays on -O3.
8137         * config/s390/s390.h: Declare that read can use write prefetch.
8138
8139 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
8140
8141         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
8142         build.
8143
8144 2010-05-16  Jan Hubicka  <jh@suse.cz>
8145
8146         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
8147         function body; do not check stdarg field of struct function.
8148
8149 2010-05-16  Jan Hubicka  <jh@suse.cz>
8150
8151         * cgraph.c (dump_cgraph_node): Dump versionable flag.
8152         * cgraph.h (cgraph_local_info): Add versionable flag.
8153         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
8154         (ipcp_versionable_function_p): Use it.
8155         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
8156         versionable flag.
8157
8158 2010-05-16  Jan Hubicka  <jh@suse.cz>
8159
8160         * cgraph.c (cgraph_clone_node): Take decl argument and insert
8161         clone into hash when it is different from orig.
8162         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
8163         * cgraph.h (cgraph_clone_node): Update prototype.
8164         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
8165         (lto_cgraph_encoder_delete): Delete body map.
8166         (lto_cgraph_encoder_size): Move to header.
8167         (lto_cgraph_encoder_encode_body_p,
8168         lto_set_cgraph_encoder_encode_body): New.
8169         (lto_output_node): Do not take written_decls argument; output clone_of
8170         pointer.
8171         (add_node_to): Add include_body_argument; call
8172         lto_set_cgraph_encoder_encode_body on master of the clone.
8173         (add_references): Update use of add_node_to.
8174         (compute_ltrans_boundary): Likewise.
8175         (output_cgraph): Do not create written_decls bitmap.
8176         (input_node): Take nodes argument; stream in clone_of correctly.
8177         (input_cgraph_1): Update use of input_node.
8178         * lto-streamer-out.c (lto_output): Use encoder info to decide
8179         what bodies to output.
8180         * ipa-inline.c (cgraph_clone_inlined_nodes,
8181         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
8182         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
8183         (lto_cgraph_encoder_size): Define here.
8184         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
8185         Declare.
8186
8187 2010-05-16  Richard Guenther  <rguenther@suse.de>
8188
8189         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
8190         -fipa-type-escape.
8191         * ipa-type-escape.c (gate_type_escape_vars): Run when
8192         -fipa-struct-reorg runs.
8193         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
8194         * common.opt (fipa-type-escape): Remove.
8195
8196 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
8197
8198         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
8199         (decode_options): Likewise.
8200         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
8201
8202 2010-05-16  Jan Hubicka  <jh@suse.cz>
8203
8204         * ipa.c (function_and_variable_visibility): Also bring local all
8205         aliases.
8206
8207 2010-05-16  Richard Guenther  <rguenther@suse.de>
8208
8209         * alias.c (nonoverlapping_memrefs_p): Remove use of
8210         IPA type-escape information.
8211
8212 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
8213
8214         * c-common.c (c_common_reswords): Add _Static_assert for C.
8215         * c-parser.c (c_token_starts_declaration,
8216         c_parser_next_token_starts_declaration,
8217         c_parser_static_assert_declaration_no_semi,
8218         c_parser_static_assert_declaration): New.
8219         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
8220         Handle static assertions if static_assert_ok.
8221         (c_parser_external_declaration, c_parser_declaration_or_fndef,
8222         c_parser_compound_statement_nostart, c_parser_label,
8223         c_parser_for_statement, c_parser_objc_methodprotolist,
8224         c_parser_omp_for_loop): All callers of
8225         c_parser_declaration_or_fndef changed.
8226         (c_parser_struct_declaration): Handle static assertions.
8227         (c_parser_compound_statement_nostart): Use
8228         c_parser_next_token_starts_declaration and
8229         c_token_starts_declaration to detect start of declarations.
8230         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
8231         Likewise.
8232
8233 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
8234
8235         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
8236         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8237         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8238         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8239         (mmix_function_outgoing_value): Rename to...
8240         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
8241         (mmix_function_value_regno_p): Make static.
8242         (mmix_libcall_value): New function.
8243         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
8244         mmix_function_value_regno_p): Remove declaration.
8245
8246 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
8247
8248         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
8249         BUILT_IN_ALLOCA if stack checking is enabled.
8250
8251 2010-05-16  Richard Guenther  <rguenther@suse.de>
8252
8253         * var-tracking.c (vars_copy_1): Inline ...
8254         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
8255         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
8256         (variable_merge_over_cur): Adjust.  Merge asserts.
8257         (variable_merge_over_src): Likewise.
8258         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
8259         (variable_post_merge_new_vals): Merge asserts.
8260         (variable_post_merge_perm_vals): Likewise.
8261         (find_mem_expr_in_1pdv): Likewise.
8262         (dataflow_set_different_value): Remove.
8263         (onepart_variable_different_p): Merge asserts.
8264         (variable_different_p): Likewise.
8265         (dataflow_set_different_1): Inline ...
8266         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
8267         (emit_notes_for_differences_1): Merge asserts.
8268
8269 2010-05-16  Richard Guenther  <rguenther@suse.de>
8270
8271         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
8272         * optabs.c (libfunc_decl_hash): Likewise.
8273         * varasm.c (emutls_decl): Likewise.
8274
8275 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
8276
8277         * c-decl.c: Don't include gimple.h.
8278         (merge_decls): Do not copy gimple_body.
8279
8280 2010-05-15  Jason Merrill  <jason@redhat.com>
8281
8282         * c.opt: Add -fnothrow-opt.
8283
8284 2010-05-15  Jan Hubicka  <jh@suse.cz>
8285
8286         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
8287         analyzed.
8288         * passes.c (ipa_write_summaries): Write all analyzed nodes.
8289
8290 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
8291
8292         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
8293         * Makefile.in: Add it.
8294         Fix all other Makefile dependencies for changes below.
8295         * tree.h: Include it instead of defining VEC primitives here.
8296         * gimple.h: Likewise.
8297         * rtl.h: Likewise.
8298         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
8299         * except.h: Include vecir.h, break dependence on tree.h.
8300
8301         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
8302         Move from here...
8303         * tree-iterator.c: ...to here.
8304         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
8305
8306         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
8307         tm_p.h.
8308         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
8309         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
8310         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
8311         tree-mudflap.h, and target.h.
8312         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
8313         predict.h, tree-inline.h, gimple.h, and langhooks.h.
8314         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
8315         Add FIXME for why gimple.h is still included (should be unnecessary
8316         since GCC 4.5 gimplification unit-at-a-time).
8317         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
8318         * c-pragma.c: Add FIXME for why function.h needs to be included just
8319         for cfun, at front-end level.
8320         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
8321         Do not include ggc.h, but include vecprim.h for VEC(char).
8322         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
8323         Explain why target.h is included.
8324         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
8325         Explain why gimple.h is included.
8326         * c-ppoutput.c: Do not include tm.h.
8327         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
8328         * c-parses.c: Explain why rtl.h is included, and that this (and only
8329         this) is also why tm.h must be included.
8330         Do not include except.h.
8331         * c-lang.c: Do not include ggc.h.
8332
8333 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
8334
8335         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
8336
8337 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
8338
8339         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
8340         unions by default if those structs and unions have no tags.  Do
8341         not condition anonymous struct and unions handling on flag_iso.
8342         Allow anonymous structs and unions for C1X.
8343         (finish_struct): Do not diagnose lack of named fields when
8344         anonymous structs and unions present for C1X.  Accept flexible
8345         array members in structure with anonymous structs or unions but no
8346         directly named fields.
8347         * doc/extend.texi (Unnamed Fields): Update.
8348
8349 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
8350
8351         * gimple.h (compare_field_offset): Rename into...
8352         (gimple_compare_field_offset): ...this.
8353         * gimple.c (compare_field_offset): Rename into...
8354         (gimple_compare_field_offset): ...this.  Compare the full access if
8355         the offset is self-referential.
8356         (gimple_types_compatible_p): Adjust for above renaming.
8357         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
8358         DECL_NONADDRESSABLE_P flag of fields before merging them.
8359
8360 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
8361
8362         * tree.h (ctor_to_list): Delete.
8363         * tree.c (ctor_to_list): Delete.
8364
8365 2010-05-15  Jan Hubicka  <jh@suse.cz>
8366
8367         * ipa-reference.c: Include toplev.h
8368         (is_proper_for_analysis): Only add to all_module_statics
8369         if it is allocated.
8370         (write_node_summary_p, stream_out_bitmap,
8371         ipa_reference_write_optimization_summary,
8372         ipa_reference_read_optimization_summary): New.
8373         (struct ipa_opt_pass_d pass_ipa_reference): Add
8374         optimization summary streaming.
8375         * lto-cgraph.c (referenced_from_this_partition_p,
8376         reachable_from_this_partition_p): New functions.
8377         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8378         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
8379         * opts.c (decode_options): Enable ipa_reference.
8380         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
8381         * lto-streamer.h (referenced_from_this_partition_p,
8382         reachable_from_this_partition_p): Declare.
8383
8384 2010-05-15  Richard Guenther  <rguenther@suse.de>
8385
8386         PR tree-optimization/44038
8387         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
8388         taking the address of a V_C_E of a constant.
8389
8390 2010-05-14  Jan Hubicka  <jh@suse.cz>
8391
8392         * tree.h (memory_identifier_string): Remove.
8393         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
8394         (ipa_reference_global_vars_info_d): Remove statics_not_read and
8395         statics_not_written.
8396         (ipa_reference_optimization_summary_d): New structure.
8397         (ipa_reference_optimization_summary_t): New type and vector.
8398         (ipa_reference_vars_info_d): Embedd structures instead of using
8399         pointers.
8400         (reference_vars_to_consider): Remove out of GGC space.
8401         (module_statics_escape): Remove.
8402         (global_info_obstack): Rename to ...
8403         (optimization_summary_obstack): ... this one.
8404         (initialization_status_t): Remove.
8405         (memory_identifier_string): Remove.
8406         (get_reference_vars_info): Fix indenting.
8407         (set_reference_vars_info): Likewise.
8408         (get_reference_optimization_summary): New.
8409         (set_reference_optimization_summary): New.
8410         (get_global_reference_vars_info): Remove.
8411         (ipa_reference_get_read_global): Remove.
8412         (ipa_reference_get_written_global): Remove.
8413         (ipa_reference_get_not_read_global): Update.
8414         (ipa_reference_get_not_written_global): Update.
8415         (is_proper_for_analysis): Outlaw addressable.
8416         (propagate_bits): Update for new datastructures.
8417         (analyze_variable): Remove.
8418         (init_function_info): Update for new datastructures.
8419         (clean_function_local_data): Remove.
8420         (clean_function): Remove.
8421         (copy_global_bitmap): Use optimizations_summary_obstack.
8422         (duplicate_node_data): Duplicate optimization summary only.
8423         (remove_node_data): Remove optimization summary only.
8424         (generate_summary): Do not analyze variables; do not compute
8425         module_statics_escape; do not prune solutions by it.
8426         (read_write_all_from_decl): Fix typos in comments.
8427         (propagate): Doscover readonly and nonaddressable first;
8428         update for new datastructures; share global bitmaps.
8429         * ipa-reference.h (ipa_reference_get_read_global,
8430         ipa_reference_get_written_global): Remove.
8431         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
8432         * Makefile.in: Remove ipa-refereference from GT files.
8433
8434 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
8435
8436         PR debug/44112
8437         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
8438         for all SYMBOL_REF_DECLs.
8439
8440 2010-05-14  Jan Hubicka  <jh@suse.cz>
8441
8442         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
8443         (varpool_all_refs_explicit_p): New inline function.
8444         * ipa-reference.c: Update comment.
8445         (module_statics_written): Remove.
8446         (get_static_decl): Remove.
8447         (ipa_init): Do not initialize module_statics_written.
8448         (analyze_function): Likewise.
8449         (generate_summary): Likewise; do not compute module_statics_readonly
8450         and do not update variable flags.
8451         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
8452         * ipa.c: Inlucde flags.h
8453         (cgraph_local_node_p): New.
8454         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
8455         promote functions to local.
8456         (ipa_discover_readonly_nonaddressable_vars): New function.
8457         (function_and_variable_visibility): Use cgraph_local_node_p.
8458         * varpool.c (varpool_finalize_decl): Set force_output for
8459         DECL_PRESERVE_P vars.
8460
8461 2010-05-14  Jan Hubicka  <jh@suse.cz>
8462
8463         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
8464
8465 2010-05-14  Richard Guenther  <rguenther@suse.de>
8466
8467         PR tree-optimization/44119
8468         * tree-ssa-pre.c (eliminate): Properly mark replacement of
8469         a PHI node necessary.
8470
8471 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8472
8473         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
8474
8475 2010-05-14  Jason Merrill  <jason@redhat.com>
8476
8477         PR c++/44127
8478         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
8479         (gimple_call_set_nothrow): New.
8480         * gimple.c (gimple_build_call_from_tree): Call it.
8481         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
8482
8483         PR c++/44127
8484         * gimplify.c (gimplify_seq_add_stmt): No longer static.
8485         * gimple.h: Declare it.
8486         * gimple.c (gimple_build_eh_filter): No ops.
8487
8488 2010-05-14  Jan Hubicka  <jh@suse.cz>
8489
8490         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
8491         nodes already in queue.
8492         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
8493         re-enqueueing node.
8494
8495 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
8496
8497         PR debug/44136
8498         * cfgexpand.c (expand_debug_expr): If non-memory op0
8499         has BLKmode, return NULL.
8500
8501 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
8502
8503         * config.gcc: Add support for --with-cpu option for bdver1.
8504         * config/i386/i386.h (TARGET_BDVER1): New macro.
8505         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
8506         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
8507         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
8508         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
8509         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
8510         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
8511         (processor_type): Add PROCESSOR_BDVER1.
8512         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
8513         processor_type in config/i386/i386.h.
8514         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
8515         movaps <reg, reg> instead of movapd <reg, reg> when replacing
8516         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
8517         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
8518         to emit packed xor instead of packed double/packed integer
8519         xor for SSE and AVX when moving a zero value.
8520         * config/i386/sse.md: Add check for
8521         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
8522         movapd/movdqa for SSE and AVX.
8523         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
8524         single logical operations i.e and, or and xor instead of packed double
8525         logical operations for SSE and AVX.
8526         * config/i386/i386-c.c (ix86_target_macros_internal):
8527         Add PROCESSOR_BDVER1.
8528         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
8529         (has_fma4, has_xop): New.
8530         * config/i386/i386.c (bdver1_cost): New variable.
8531         (m_BDVER1): New macro.
8532         (m_AMD_MULTIPLE): Add m_BDVER1.
8533         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
8534         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
8535         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
8536         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
8537         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
8538         x86_tune_sse_partial_reg_dependency,
8539         x86_tune_sse_unaligned_load_optimal,
8540         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
8541         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
8542         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
8543         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
8544         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
8545         Enable/disable for bdver1.
8546         (processor_target_table): Add bdver1_cost.
8547         (cpu_names): Add bdver1.
8548         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
8549          processor_alias_table.
8550         (ix86_expand_vector_move_misalign): Change.
8551         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
8552         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
8553         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
8554         of movupd/movdqu for SSE and AVX.
8555         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
8556         (ix86_tune_adjust_cost): Add code for bdver1.
8557         (standard_sse_constant_opcode): Add check for
8558         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
8559         of packed double xor for SSE and AVX.
8560
8561 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
8562
8563         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
8564         result to unsigned.
8565
8566 2010-05-14  Tristan Gingold  <gingold@adacore.com>
8567
8568         * toplev.c (default_debug_hooks): Remove this variable.
8569         (process_options): Remove assignments to default_debug_hooks.
8570
8571 2010-05-14  Martin Jambor  <mjambor@suse.cz>
8572
8573         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
8574         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
8575         * langhooks.h (struct lang_hooks_for_decls): Removed field
8576         fold_obj_type_ref.
8577         * tree.c (free_lang_data): Remove assignment to
8578         lang_hooks.fold_obj_type_ref.
8579         * tree.def (OBJ_TYPE_REF): Update comment.
8580
8581 2010-05-14  Richard Guenther  <rguenther@suse.de>
8582
8583         PR tree-optimization/44124
8584         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
8585
8586 2010-05-14  Alan Modra  <amodra@gmail.com>
8587
8588         PR target/44075
8589         * config/rs6000/rs6000.c (struct machine_function): Reorder
8590         fields for better packing.  Add lr_save_state.
8591         (rs6000_ra_ever_killed): Return lr_save_state if set.
8592         (rs6000_emit_eh_reg_restore): Set lr_save_state.
8593
8594 2010-05-13  Jan Hubicka  <jh@suse.cz>
8595
8596         * varpool.c (decide_is_variable_needed): Drop code checking
8597         TREE_SYMBOL_REFERENCED.
8598
8599 2010-05-13  Jan Hubicka  <jh@suse.cz>
8600
8601         * final.c (output_addr_const): Do not call mark_decl_referenced.
8602         * cgraphunit.c (process_function_and_variable_attributes): Use
8603         mark_needed_node dirrectly.
8604         (assemble_thunk): Do not call mark_decl_referenced.
8605
8606 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
8607
8608         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
8609
8610 2010-05-13  Jeff Law  <law@redhat.com>
8611
8612         * ira-conflicts.c (print_allocno_conflicts): New function broken out
8613         from...
8614         (print_conflicts): Call print_allocno_conflicts.
8615
8616 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
8617
8618         PR debug/44104
8619         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
8620         if it is NULL.
8621
8622 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
8623
8624         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
8625         t-mingw-w64 or t-mingw-w32 for multilib configuration.
8626         * config/i386/t-mingw-w32: New.
8627         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
8628
8629 2010-05-13  Martin Jambor  <mjambor@suse.cz>
8630
8631         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
8632         gimple-fold.c).
8633         * gimple-fold.c (get_base_binfo_for_type): New function.
8634         (gimple_get_relevant_ref_binfo): Likewise.
8635         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8636         (gimple_fold_obj_type_ref): Likewise.
8637         (fold_gimple_call): Simplify condition for folding virtual calls
8638         and call gimple_fold_obj_type_ref.
8639         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
8640         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8641
8642 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
8643
8644         * config/rs6000/rs6000-protos.h
8645         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
8646         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
8647         (rs6000_debug_mode_dependent_address)
8648         (rs6000_mode_dependent_address_ptr): Likewise.
8649
8650 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
8651
8652         PR debug/43983
8653         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
8654         by SRA.
8655         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
8656         * tree-sra.c (create_access_replacement): Call unshare_expr before
8657         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
8658         * dwarf2out.c: Include tree-flow.h.
8659         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
8660         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
8661         Handle DW_OP_bit_piece.
8662         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
8663         construct_piece_list, adjust_piece_list): New functions.
8664         (add_var_loc_to_decl): Handle SRA optimized variables.
8665         Adjust for var_loc_note to loc field renaming.
8666         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
8667         in VAR_LOCATION note.
8668         (new_loc_descr_op_bit_piece): New function.
8669         (dw_sra_loc_expr): New function.
8670         (dw_loc_list): Use it.  Don't handle the last range after the
8671         loop, handle it inside of the loop.  Adjust for var_loc_note
8672         to loc field renaming.
8673         (add_location_or_const_value_attribute): Only special case
8674         single entry loc lists if loc is NOTE_P.  Adjust for
8675         var_loc_note to loc field renaming.
8676         (dwarf2out_var_location): Don't set newloc->var_loc_note
8677         and newloc->next here.
8678
8679 2010-05-12  Jan Hubicka  <jh@suse.cz>
8680
8681         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
8682         flag.
8683         * cgraph.h (cgraph_only_called_directly_p,
8684         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
8685         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
8686         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
8687         (assemble
8688         * ipa.c (cgraph_remove_unreachable_nodes): Use
8689         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
8690         flags.
8691         * tree-inline.c (copy_bb): Check address_taken flag.
8692         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
8693         externally_visible flag.
8694
8695 2010-05-12  Jason Merrill  <jason@redhat.com>
8696
8697         PR bootstrap/44048
8698         PR target/44099
8699         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
8700         * sdbout.c (plain_type_1): Likewise.
8701         * dwarf2out.c (is_base_type): Likewise.
8702         (gen_type_die_with_usage): Likewise.  Generate
8703         DW_TAG_unspecified_type for any LANG_TYPE.
8704
8705 2010-05-12  Jan Hubicka  <jh@suse.cz>
8706
8707         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
8708         indrect edges too.
8709         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
8710         (cgraph_clone_edge): Update.
8711         (cgraph_node_remove_callees): Remove indirect calls too.
8712         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
8713         (cgraph_create_indirect_edge): Update prototype.
8714         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
8715         is_proper_for_analysis.
8716         (add_new_function, visited_nodes, function_insertion_hook_holder,
8717         get_local_reference_vars_info, mark_address_taken, mark_address,
8718         mark_load, mark_store, check_asm_memory_clobber, check_call,
8719         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
8720         (ipa_init): Do not initialize visited_nodes;
8721         function_insertion_hook_holder.
8722         (analyze_variable): Rewrite.
8723         (analyze_function): Rewrite.
8724         (copy_local_bitmap): Remove.
8725         (duplicate_node_dat): Do not duplicate local info.
8726         (generate_summary): Simplify to only walk cgraph.
8727         (write_node_summary_p, ipa_reference_write_summary,
8728         ipa_reference_read_summary): Remove.
8729         (propagate): Do not remove function insertion;
8730         generate summary.
8731         (pass_ipa_reference): NULLify summary handling fields.
8732         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
8733         (input_edge): Input ecf_flags.
8734         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
8735         (update_indirect_edges_after_inlining): Ignore edges with unknown
8736         param.
8737
8738 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
8739
8740         * implicit-zee.c: New file.
8741         * tree-pass.h (pass_implicit_zee): Declare.
8742         * passes.c (init_optimization_passes): Add zee pass.
8743         * common.opt (fzee): New flag.
8744         * timevar.def (TV_ZEE): Define.
8745         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
8746         and beyond.
8747         * Makefile.in (implicit-zee.o): Add new build file.
8748
8749 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8750             Nathan Froyd  <froydnj@codesourcery.com>
8751
8752         * c-common.c (sync_resolve_params): Remove write-only variable.
8753
8754 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
8755
8756         * target.h (struct gcc_target): Add mode_dependent_address_p field.
8757         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
8758         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
8759         * targhooks.c (default_mode_dependent_address_p): New function.
8760         * targhooks.h (default_mode_dependent_address_p): Declare function.
8761         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
8762         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
8763         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
8764         target hook. Change return type to bool.
8765         * recog.h (mode_dependent_address_p): Change return type to bool.
8766
8767 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8768             Nathan Froyd  <froydnj@codesourcery.com>
8769
8770         * tree-mudflap.c (build_function_type_0, build_function_type_1,
8771         build_function_type_2, build_function_type_3): Remove.
8772         (mudflap_init): Use build_function_type_list.
8773
8774 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8775             Nathan Froyd  <froydnj@codesourcery.com>
8776
8777         * coverage.c (build_fn_info_value): Call build_constructor instead of
8778         build_constructor_from_list.
8779         (build_ctr_info_value): Likewise.
8780         (build_gcov_info): Likewise.
8781
8782 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
8783
8784         * tree.c (build_constructor): Compute TREE_CONSTANT for the
8785         resultant constructor.
8786         (build_constructor_single): Don't set TREE_CONSTANT.
8787         (build_constructor_from_list): Don't compute TREE_CONSTANT.
8788
8789 2010-05-12  Jan Hubicka  <jh@suse.cz>
8790
8791         * cgraph.h (struct varpool_node): Add aux.
8792         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
8793         * varpool.c (varpool_remove_node): Do not remove initializer.
8794         (varpool_reset_queue): Export.
8795         (varpool_finalize_decl): Volatile vars are forced to be output.
8796         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
8797         replaced decl.
8798         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
8799         process_references, varpool_can_remove_if_no_refs): New functions.
8800         (cgraph_remove_unreachable_nodes): Handle variables too.
8801
8802 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
8803
8804         PR target/44088
8805         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
8806
8807 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
8808
8809         PR middle-end/44085
8810         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
8811         change value of ORT_TASK.
8812         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
8813         (omp_notice_threadprivate_variable): New function.
8814         (omp_notice_variable): Call it for threadprivate variables.
8815         If enclosing ctx is a task, print enclosing task rather than
8816         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
8817         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
8818         if task has untied clause.
8819
8820         PR debug/42278
8821         * dwarf2out.c (base_type_die): Don't add name attribute here.
8822         (modified_type_die): Instead of sizetype use
8823         its underlying original type.  If a DW_TAG_base_type doesn't
8824         have name added, add __unknown__.
8825         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
8826         always call force_type_die instead.
8827
8828 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
8829
8830         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
8831         for __stack_chk_guard.
8832
8833 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
8834
8835         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
8836         don't call start_source_file debug hook here...
8837         (finish_options): ... but here, after outputting predefined and
8838         command line defines and undefs.
8839
8840         PR middle-end/44071
8841         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
8842         no fallthru edge.
8843         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
8844         optimizing away empty bb with no successors, move over its
8845         footer chain to fallthru predecessor.
8846         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
8847         (rtl_split_edge): For asm goto call patch_jump_insn even if
8848         splitting fallthru edge.
8849
8850         PR c++/44059
8851         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
8852         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
8853         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
8854         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
8855         on DW.ref.* decls.
8856
8857         PR c++/44062
8858         * c-parser.c (c_parser_expression): Mark LHS of a comma
8859         expression as read if it is a decl, handled component or
8860         COMPOUND_EXPR with that on the RHS.
8861         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
8862         if it is a decl or handled component.
8863
8864 2010-05-11  Jan Hubicka  <jh@suse.cz>
8865
8866         * lto-symtab.c (lto_symtab_free): New function.
8867         * lto-streamer.h (lto_symtab_free): Declare.
8868
8869 2010-05-11  Jan Hubicka  <jh@suse.cz>
8870
8871         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
8872         that if function is needed it is reachable.
8873         (lto_output_node): See if it the function is reachable or referenced.
8874         (output_cgraph): Update call of lto_output_node.
8875         * lto-streamer.h (reachable_from_other_partition_p): Declare.
8876
8877 2010-05-11  Jan Hubicka  <jh@suse.cz>
8878
8879         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
8880         Mark as used.
8881
8882 2010-05-11  Jan Hubicka  <jh@suse.cz>
8883
8884         PR tree-optimize/44063
8885         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
8886         queue.
8887         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
8888         limits.
8889         (estimate_function_body_sizes): Compute sizes even when disregarding.
8890
8891 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
8892
8893         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
8894
8895 2010-05-11  Jan Hubicka  <jh@suse.cz>
8896
8897         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
8898         into every boundary.
8899
8900 2010-05-11  Jan Hubicka  <jh@suse.cz>
8901
8902         * matrix-reorg.c (matrix_reorg): Rebuild edges.
8903
8904 2010-05-11  Jan Hubicka  <jh@suse.cz>
8905
8906         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
8907         lto_streamer_cache_delete): Put nodes into heap.
8908         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
8909         heap.
8910
8911 2010-05-11  Jan Hubicka  <jh@suse.cz>
8912
8913         * cgraphbuild.c (cgraph_rebuild_references): New.
8914         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
8915         out extern inlines.
8916         * cgraph.h (cgraph_rebuild_references): Declare.
8917         * tree-inline.c (tree_function_versioning): Use it.
8918         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
8919
8920 2010-05-11  Jan Hubicka  <jh@suse.cz>
8921
8922         * cgraph.c: Include ipa-utils.h
8923         (cgraph_create_virtual_clone): Update references.
8924         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
8925
8926 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
8927
8928         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
8929         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
8930         cache size.
8931
8932 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
8933
8934         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
8935
8936 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
8937
8938         * gcc.c (execute): For -### don't quote arguments that
8939         contain just alphanumerics and _/-. characters.
8940         * doc/invoke.texi: Document that change for -###.
8941
8942         PR debug/44023
8943         * df-problems.c (struct dead_debug): Add to_rescan field.
8944         (dead_debug_init): Clear to_rescan field.
8945         (dead_debug_finish): Rescan all debug insns in to_rescan
8946         bitmap and free the bitmap.
8947         (dead_debug_insert_before): Instead of rescanning debug insns
8948         immediately queue their rescanning until dead_debug_finish.
8949         (df_note_bb_compute): After dead_debug_add do continue instead
8950         of break.
8951
8952 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
8953
8954         PR debug/44028
8955         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
8956         clear also INSN_REG_USE_LIST.
8957
8958 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8959
8960         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
8961
8962 2010-05-10  Jan Hubicka  <jh@suse.cz>
8963
8964         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
8965         commited change.
8966
8967 2010-05-10  Jan Hubicka  <jh@suse.cz>
8968
8969         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
8970         Allocate encoders.
8971         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
8972         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
8973         (lto_streamer_cache_create): Init alloc pool.
8974         (lto_streamer_cache_delete): Free alloc pool.
8975         * lto-streamer.h: Include alloc pool.
8976         (lto_streamer_cache_d): Use alloc pool.
8977         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
8978
8979 2010-05-10  Jan Hubicka  <jh@suse.cz>
8980
8981         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
8982         * cgraphbuild.c: Include except.h
8983         (record_type_list, record_eh_tables): New function.
8984         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
8985
8986 2010-05-10  Jan Hubicka  <jh@suse.cz>
8987
8988         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
8989         __frame_dummy_init_array_entry, force_to_data): Attribute as used
8990         rather than unused.
8991
8992 2010-05-10  Michael Matz  <matz@suse.de>
8993
8994         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
8995         (can_reassociate_p): Use FLOAT_TYPE_P.
8996         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
8997         (vect_force_simple_reduction): ... this.
8998         * tree-parloops.c (gather_scalar_reductions): Use
8999         vect_force_simple_reduction.
9000         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
9001         vect_is_simple_reduction, add modify argument, if true rewrite
9002         "a-b" into "a+(-b)".
9003         (vect_is_simple_reduction, vect_force_simple_reduction): New
9004         functions.
9005         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
9006
9007 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
9008             Vladimir Makarov  <vmakarov@redhat.com>
9009
9010         PR rtl-optimization/44012
9011         * ira-build.c (remove_unnecessary_allocnos): Nullify
9012         regno_allocno_map of the removed allocno.
9013
9014 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9015
9016         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
9017         to /dev/null.
9018         * configure: Regenerate.
9019
9020 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9021
9022         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
9023         unused.
9024         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
9025         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
9026         support in Sun ld.
9027         * configure: Regenerate.
9028
9029 2010-05-10  Richard Guenther  <rguenther@suse.de>
9030
9031         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
9032         marked if the entry identifier is marked.
9033
9034 2010-05-10  Richard Guenther  <rguenther@suse.de>
9035
9036         * c-common.c (struct c_common_attributes): Add fnspec attribute.
9037         (handle_fnspec_attribute): New function.
9038         * gimple.h (gimple_call_return_flags): Declare.
9039         (gimple_call_arg_flags): Likewise.
9040         * gimple.c (gimple_call_arg_flags): New function.
9041         (gimple_call_return_flags): Likewise.
9042         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
9043         New argument flags.
9044         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
9045         return value flags.
9046         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
9047         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
9048         main work to ...
9049         (make_heapvar_for): ... this new function.
9050         (handle_rhs_call): Handle fnspec attribute argument specifiers.
9051         (handle_lhs_call): Likewise.
9052         (find_func_aliases): Adjust.
9053
9054 2010-05-10  Richard Guenther  <rguenther@suse.de>
9055
9056         PR tree-optimization/44050
9057         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
9058
9059 2010-05-10  Wei Guozhi  <carrot@google.com>
9060
9061         PR target/42879
9062         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
9063
9064 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
9065
9066         PR c/10676
9067         * c-typeck.c (lookup_field): Take a type directly.  Update
9068         recursive calls.
9069         (build_component_ref): Update call to lookup_field.
9070         (set_init_label): Use lookup_field to find initialized field.
9071         Handle returned list of fields like a sequence of designators.
9072
9073 2010-05-09  Richard Guenther  <rguenther@suse.de>
9074
9075         PR middle-end/44024
9076         * fold-const.c (tree_single_nonzero_warnv_p): Properly
9077         handle &FUNCTION_DECL.
9078
9079 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
9080
9081         PR c/4784
9082         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
9083         structures and unions recursively.
9084         (detect_field_duplicates): Move duplicate detection with a hash to
9085         detect_field_duplicates_hash.  Always use a hash if anonymous
9086         structures or unions are present.
9087         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
9088         give errors.
9089
9090 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9091
9092         PR target/44046
9093         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
9094         detect Atom, Core 2 and Core i7.
9095
9096 2010-05-09  Richard Guenther  <rguenther@suse.de>
9097
9098         * gcc.c (store_arg): Handle temporary file deletion for
9099         joined arguments.
9100
9101 2010-05-09  Richard Guenther  <rguenther@suse.de>
9102
9103         PR middle-end/44043
9104         * ipa-inline.c (estimate_function_body_sizes): Return after
9105         disregarding inline limits.
9106
9107 2010-05-09  Richard Guenther  <rguenther@suse.de>
9108
9109         * gcc.c (store_arg): Revert last change.
9110
9111 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
9112
9113         PR middle-end/28685
9114         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
9115         (optimize_ops_list): Call it.
9116
9117 2010-05-08  Richard Guenther  <rguenther@suse.de>
9118
9119         PR tree-optimization/44030
9120         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
9121         NECESSARY flag if we propagate from a inserted expression.
9122
9123 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
9124
9125         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
9126         domain types as equal if they are both PLACEHOLDER_EXPRs.
9127
9128 2010-05-08  Richard Guenther  <rguenther@suse.de>
9129
9130         * lto-wrapper.c (run_gcc): Remove linker output from
9131         command line for LTRANS invocation.
9132
9133 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9134
9135         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9136         lto-macho as lto_binary_reader.
9137         * target.h (struct gcc_target): New hooks lto_start and lto_end.
9138         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
9139         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
9140         in lto_start and lto_end calls.
9141         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
9142         magic numbers.
9143         (scan_prog_file): Update is_elf_or_coff call.
9144         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
9145
9146         * collect2.c (main): Fix enum comparison.
9147
9148         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
9149         Add prototypes.
9150         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
9151         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
9152         and TARGET_ASM_LTO_END.
9153         * darwin.c: Include obstack.h and lto-streamer.h.
9154         (lto_section_names_offset, lto_section_names_obstack,
9155         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
9156         global variables.
9157         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
9158         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
9159         to a temporary file.
9160         (darwin_asm_lto_end): New function.  Restore asm_out_file.
9161         (darwin_asm_named_section): For LTO sections, replace the name with
9162         the offset of the section name in a string table, and build this
9163         table.
9164         (darwin_file_start): Initialize global vars for LTO support.
9165         (darwin_file_end): If output to asm_out_file was redirected, append it
9166         to the proper asm_out_file here.  Add the section names section.
9167
9168 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
9169
9170         * c-pragma.c (pending_weak_d, pending_weak): New.
9171         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
9172         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
9173         handle_pragma_weak): Update the uses of pending_weaks.
9174
9175 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9176
9177         PR documentation/44016
9178         * doc/standards.texi (Standards): Link to unversioned
9179         cxx0x_status.html page.
9180
9181 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
9182
9183         PR target/43708
9184         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
9185         in addition to TREE_USED, to avoid "set but unused" warnings.
9186
9187 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
9188
9189         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
9190         (is_loop_prefetching_profitable): Do not insert prefetches
9191         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
9192         times the prefetch ahead distance.
9193
9194 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
9195
9196         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
9197         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
9198         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
9199         the unroll_factor.
9200
9201 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
9202
9203         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
9204         a diagnostic info when the insn-to-mem ratio is too small.
9205
9206 2010-05-07  Richard Guenther  <rguenther@suse.de>
9207
9208         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
9209         the linker plugin.
9210         (store_arg): Queue temp_filename for deletion instead of
9211         the whole argument.
9212
9213 2010-05-07  Richard Guenther  <rguenther@suse.de>
9214
9215         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
9216         (run_gcc): Handle LTRANS phase invocation.
9217         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
9218
9219 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
9220
9221         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
9222         this is also meaningful on PARM_DECLs and RESULT_DECLs.
9223
9224 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9225
9226         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
9227
9228 2010-05-07  Richard Guenther  <rguenther@suse.de>
9229
9230         PR tree-optimization/44020
9231         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
9232         code when PRE is not yet initialized.
9233
9234 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9235
9236         * config/mips/dbxmdebug.h: Remove.
9237         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
9238
9239 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
9240
9241         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
9242         with null pointer and also warn about ordered comparison of zero with
9243         pointer if -Wextra.
9244
9245 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9246
9247         * graphite-blocking.c
9248         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
9249         * graphite-clast-to-gimple.c
9250         (clast_to_gcc_expression): Same.
9251         (precision_for_value): Same.
9252         (precision_for_interval): Same.
9253         (gcc_type_for_interval): Same.
9254         (graphite_create_new_guard): Same.
9255         (compute_bounds_for_level): Same.
9256         (graphite_create_new_loop_guard): Same.
9257         * graphite-interchange.c
9258         (build_linearized_memory_access): Same.
9259         (pdr_stride_in_loop): Same.
9260         (memory_strides_in_loop_1): Same.
9261         (memory_strides_in_loop): Same.
9262         (extend_scattering): Same.
9263         (psct_scattering_dim_for_loop_depth): Same.
9264         (pbb_number_of_iterations): Same.
9265         * graphite-poly.h
9266         (debug_iteration_domains): Same.
9267         * graphite-ppl.c
9268         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9269         (ppl_set_inhomogeneous_gmp): Same.
9270         (ppl_strip_loop): Same.
9271         (ppl_lexico_compare_linear_expressions): Same.
9272         (ppl_read_polyhedron_matrix): Same.
9273         (ppl_max_for_le_pointset): Same.
9274         * graphite-ppl.h
9275         (ppl_read_polyhedron_matrix): Same.
9276         (tree_int_to_gmp): Same.
9277         (gmp_cst_to_tree): Same.
9278         (ppl_set_inhomogeneous): Same.
9279         (ppl_set_inhomogeneous_tree): Same.
9280         (ppl_set_coef): Same.
9281         (ppl_set_coef_tree): Same.
9282         * graphite-sese-to-poly.c
9283         (build_pbb_scattering_polyhedrons): Same.
9284         (build_scop_scattering): Same.
9285         (scan_tree_for_params_right_scev): Same.
9286         (scan_tree_for_params): Same.
9287         (find_params_in_bb): Same.
9288         (find_scop_parameters): Same.
9289         (add_upper_bounds_from_estimated_nit): Same.
9290         (build_loop_iteration_domains): Same.
9291         (add_condition_to_domain): Same.
9292         (pdr_add_memory_accesses): Same.
9293
9294 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9295
9296         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
9297         CLooG's value_* macros to their respective mpz_* counterparts.
9298         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
9299         (graphite_create_new_loop_guard): Same.
9300         * graphite-interchange.c (build_linearized_memory_access): Same.
9301         (pdr_stride_in_loop): Same.
9302         (memory_strides_in_loop_1): Same.
9303         (1st_interchange_profitable_p): Same.
9304         * graphite-poly.c (extend_scattering): Same.
9305         (psct_scattering_dim_for_loop_depth): Same.
9306         (pbb_number_of_iterations): Same.
9307         (pbb_number_of_iterations_at_time): Same.
9308         * graphite-poly.h (new_1st_loop): Same.
9309         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
9310         (oppose_constraint): Same.
9311         (insert_constraint_into_matrix): Same.
9312         (ppl_set_inhomogeneous_gmp): Same.
9313         (ppl_set_coef_gmp): Same.
9314         (ppl_strip_loop): Same.
9315         (ppl_lexico_compare_linear_expressions): Same.
9316         (ppl_max_for_le_pointset): Same.
9317         (ppl_min_for_le_pointset): Same.
9318         (ppl_build_realtion): Same.
9319         * graphite-ppl.h (gmp_cst_to_tree): Same.
9320         (ppl_set_inhomogeneous): Same.
9321         (ppl_set_inhomogeneous_tree): Same.
9322         (ppl_set_coef): Same.
9323         (ppl_set_coef_tree): Same.
9324         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
9325         (build_scop_scattering): Same.
9326         (add_value_to_dim): Same.
9327         (scan_tree_for_params_right_scev): Same.
9328         (scan_tree_for_params_int): Same.
9329         (scan_tree_for_params): Same.
9330         (find_params_in_bb): Same.
9331         (find_scop_parameters): Same.
9332         (add_upper_bounds_from_estimated_nit): Same.
9333         (build_loop_iteration_domains): Same.
9334         (create_linear_expr_from_tree): Same.
9335         (add_condition_to_domain): Same.
9336         (pdr_add_memory_accesses): Same.
9337
9338 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
9339             Jason Merrill  <jason@redhat.com>
9340
9341         * c-common.c (c_common_reswords): Add nullptr.
9342         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
9343         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
9344         (gen_type_die_with_usage): Likewise.
9345         * dbxout.c (dbxout_type): Likewise.
9346         * sdbout.c (plain_type_1): Likewise.
9347
9348 2010-05-06  Jason Merrill  <jason@redhat.com>
9349
9350         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
9351         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
9352         ret appropriately.
9353         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
9354
9355         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
9356         stripping WITH_SIZE_EXPR.
9357         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
9358         change.
9359
9360 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9361
9362         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
9363         list of obsolete configurations.
9364         Disabled check for obsolete configurations.
9365         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
9366         Removed support for previous versions.
9367         * config/mips/iris.h: Removed.
9368         * config/mips/iris5.h: Removed.
9369         * config/mips/iris6.h: Merged old iris.h contents.
9370         (TARGET_IRIX): Removed.
9371         (DRIVER_SELF_SPECS): Removed mabi=32.
9372         (IDENT_ASM_OP): Removed undef.
9373         (STARTFILE_SPEC): Removed mabi=32.
9374         (ENDFILE_SPEC): Likewise.
9375         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
9376         (MACHINE_TYPE): Update for IRIX 6.5.
9377         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
9378         TARGET_IRIX by TARGET_IRIX6.
9379         (mips_file_start): Likewise.
9380         (mips_output_external): Remove IRIX 5/6 O32 support.
9381         (mips_output_function_prologue): Likewise.
9382         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
9383         TARGET_IRIX6.
9384         (TARGET_CPU_CPP_BUILTINS): Likewise.
9385         (TARGET_IRIX): Removed.
9386         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
9387         (MULTILIB_DIRNAMES): Removed 32.
9388         (MULTILIB_OSDIRNAMES): Removed ../lib.
9389         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
9390         (Specific, mips-sgi-irix5): Document removal.
9391         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
9392         Remove references to older IRIX 6 releases and the O32 ABI.
9393
9394 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
9395
9396         PR bootstrap/43994
9397         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
9398         instead of DF_REF_REAL_REG.
9399
9400 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
9401
9402         PR target/43888
9403         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
9404         handling to still return true for x64 targets.
9405
9406 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9407
9408         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
9409
9410 2010-05-06  Jan Hubicka  <jh@suse.cz>
9411
9412         PR tree-optimization/43791
9413         * ipa-inline.c (update_caller_keys): Remove bogus
9414         disregard_inline_limits check.
9415
9416 2010-05-06  Michael Matz  <matz@suse.de>
9417
9418         PR tree-optimization/43984
9419         * tree-ssa-pre.c (inserted_phi_names): Remove.
9420         (inserted_exprs): Change to bitmap.
9421         (create_expression_by_pieces): Set bits, don't append to vector.
9422         (insert_into_preds_of_block): Don't handle inserted_phi_names.
9423         (eliminate): Don't look at inserted_phi_names, remove deleted
9424         insns from inserted_exprs.
9425         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
9426         (init_pre, fini_pre): Allocate and free bitmaps.
9427         (execute_pre): Insert insns on edges before elimination.
9428
9429 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9430
9431         * tree.c (initializer_zerop): Handle STRING_CST.
9432
9433 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9434
9435         PR 40989
9436         * doc/invoke.texi (Wimplicit): Document as C only.
9437         * opts.c (common_handle_option): Add argument kind.
9438         (handle_option): Rename as read_cmdline_option. Factor out code to...
9439         (handle_option): ... here. New.
9440         (handle_options): Rename as read_cmdline_options.
9441         (decode_options): Update call.
9442         (set_option): Use option index instead of option pointer. Classify
9443         diagnostics correctly.
9444         (enable_warning_as_error): Call handle_option.
9445         * opts.h (set_option): Update declaration.
9446         (handle_option): Declare.
9447         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
9448         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
9449         * c-opts.c (set_Wimplicit): Delete.
9450         (c_family_lang_mask): New static constant.
9451         (c_common_handle_option): Add argument kind. Use handle_option
9452         instead of set_Wimplicit.
9453         (c_common_post_options): warn_implicit and warn_implicit_int
9454         are disabled by default.
9455         * c-common.c (warn_implicit): Do not define here.
9456         * c-common.h (warn_implicit): Do not declare here.
9457         (c_common_handle_option): Update declaration.
9458         * lto-opts.c (lto_reissue_options): Update call to set_option.
9459
9460 2010-05-06  Richard Guenther  <rguenther@suse.de>
9461
9462         PR tree-optimization/43571
9463         * domwalk.c (walk_dominator_tree): Walk the dominator
9464         sons in more optimal order.
9465
9466 2010-05-06  Richard Guenther  <rguenther@suse.de>
9467
9468         PR tree-optimization/43934
9469         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
9470         (stmt_cost): Likewise.
9471         (extract_true_false_args_from_phi): New helper.
9472         (determine_max_movement): For PHI nodes verify we can hoist them
9473         and compute their cost.
9474         (determine_invariantness_stmt): Handle PHI nodes.
9475         (move_computations_stmt): Likewise.  Hoist PHI nodes in
9476         if-converted form using COND_EXPRs.
9477         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
9478         (tree_ssa_lim): Likewise.
9479         * tree-flow.h (tree_ssa_lim): Adjust prototype.
9480         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
9481
9482 2010-05-06  Richard Guenther  <rguenther@suse.de>
9483
9484         PR tree-optimization/43987
9485         * tree-ssa-structalias.c (could_have_pointers): For possibly
9486         address-taken variables force pointers to be recorded.
9487         (create_variable_info_for_1): Likewise.
9488         (push_fields_onto_fieldstack): Pass in wheter all fields
9489         must have pointers.
9490         (find_func_aliases): Query types instead of vars whether
9491         they contain pointers where appropriate.
9492
9493 2010-05-06  Jan Hubicka  <jh@suse.cz>
9494
9495         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
9496         (record_reference, mark_address, mark_load, mark_store): Record
9497         references.
9498         (record_references_in_initializer): Update call of record_references.
9499         (rebuild_cgraph_edges): Remove all references before rebuiding.
9500         * cgraph.c (cgraph_create_node): Clear ref list.
9501         (cgraph_remove_node): Remove references.
9502         (dump_cgraph_node): Dump references.
9503         (cgraph_clone_node): Clone references.
9504         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
9505         (struct cgraph_node, varpool_node): Add ref_lst.
9506         * ipa-ref.c: New file.
9507         * ipa-ref.h: New file.
9508         * ipa-ref-inline.h: New file.
9509         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
9510         (referenced_from_other_partition_p): New function.
9511         (lto_output_varpool_node): Take set arugment; call
9512         referenced_from_other_partition.
9513         (lto_output_ref): New.
9514         (add_references): New.
9515         (output_refs): New.
9516         (output_cgraph): Compute boundary based on references; output refs.
9517         (output_varpool): Accept cgraph_node_set argument.
9518         (input_ref): New.
9519         (input_refs): New.
9520         (input_cgraph): Call input_refs.
9521         * lto-section-in.c (lto_section_name): Add refs.
9522         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
9523         (ipa-ref.o): New file.
9524         * varpool.c (varpool_node): Clear ipa ref list.
9525         (varpool_remove_node): Remove references.
9526         (dump_varpool_node): Dump references.
9527         (varpool_assemble_decl): Only compile finalized ones.
9528         (varpool_extra_name_alias): Initialize ref list.
9529         * lto-streamer.c (lto-get_section_name): Add .refs section.
9530         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
9531         (referenced_from_other_partition_p): Declared.
9532
9533 2010-05-06  Ira Rosen  <irar@il.ibm.com>
9534
9535         PR tree-optimization/43901
9536         * tree-vect-stmts.c (vectorizable_call): Assert that vector
9537         type is not NULL if it's transformation phase, and return
9538         FALSE if it's analysis.
9539         (vectorizable_conversion, vectorizable_operation,
9540         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
9541
9542 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
9543
9544         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
9545         Delete.
9546         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
9547         New define.
9548         * config/mips/mips-protos.h
9549         (mips_small_register_classes_for_mode_p): Delete prototype.
9550
9551 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
9552
9553         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
9554         * config/arm/arm.c (multiple_operation_profitable_p,
9555         compute_offset_order): New static functions.
9556         (load_multiple_sequence, store_multiple_sequence): Use them.
9557         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
9558         memory offsets, not register numbers.
9559         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
9560
9561 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
9562
9563         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
9564         (get_pending_sizes, put_pending_size, put_pending_sizes):
9565         Update the uses of pending_sizes.
9566         * c-decl.c (store_parm_decls): Likewise.
9567         * c-tree.h (struct c_arg_info): Likewise.
9568         * tree.h: Update the prototype for get_pending_sizes and
9569         put_pending_sizes.
9570
9571 2010-05-05  Jason Merrill  <jason@redhat.com>
9572
9573         PR debug/43370
9574         * c-common.c (handle_aligned_attribute): Respect
9575         ATTR_FLAG_TYPE_IN_PLACE.
9576
9577         PR testsuite/43758
9578         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
9579         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9580         (TARGET_INITIALIZER): Use it.
9581         * c-common.c (attribute_takes_identifier_p): Call it.
9582         * c-common.h: Update prototype.
9583         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
9584         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9585
9586 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
9587
9588         PR debug/43950
9589         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
9590         DW_ID_down_case for Fortran compilation units.
9591
9592 2010-05-05  Jan Hubicka  <jh@suse.cz>
9593
9594         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
9595         handle aliases.
9596
9597 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9598
9599         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
9600         a variable-sized RESULT_DECL.
9601
9602 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
9603
9604         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
9605
9606 2010-05-05  Jason Merrill  <jason@redhat.com>
9607
9608         PR c++/43787
9609         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
9610         returns GS_OK.
9611         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
9612
9613 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
9614             Jakub Jelinek  <jakub@redhat.com>
9615
9616         PR debug/43478
9617         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
9618         (dead_debug_init, dead_debug_finish): New functions.
9619         (dead_debug_add, dead_debug_insert_before): Likewise.
9620         (df_note_bb_compute): Initialize a dead_debug object, add dead
9621         debug uses to it, insert debug bind insns before death insns,
9622         reset debug insns that refer to pending uses at the end.
9623         * rtl.h (make_debug_expr_from_rtl): New prototype.
9624         * varasm.c (make_debug_expr_from_rtl): New function.
9625
9626 2010-05-05  Jan Hubicka  <jh@suse.cz>
9627
9628         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
9629         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
9630         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
9631         lto_varpool_encoder_deref, lto_varpool_encoder_size,
9632         lto_varpool_encoder_encode_initializer_p,
9633         lto_set_varpool_encoder_encode_initializer): New functions.
9634         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
9635         call output_varpool.
9636         (input_varpool_node): Do not always set analyzed.
9637         (input_cgraph_1): Return vector of cgraph nodes.
9638         (input_varpool_1): Return vector of varpools.
9639         (input_cgraph): Free the vectors.
9640         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9641         output only initializers needed.
9642         (lto_output): Only call output_cgraph.
9643         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
9644         * lto-section-out.c (lto_new_out_decl_state): Initialize
9645         state->varpool_node_encoder.
9646         * lto-streamer.h (lto_varpool_encoder_d): New.
9647         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
9648         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
9649         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
9650         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
9651         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
9652         Declare.
9653         (output_varpool, input_varpool): Remove declarations.
9654
9655 2010-05-05  Jan Hubicka  <jh@suse.cz>
9656
9657         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
9658         with body can prevail.
9659
9660 2010-05-05  Jan Hubicka  <jh@suse.cz>
9661
9662         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
9663         size.
9664
9665 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9666
9667         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
9668
9669         * gengtype.h (erro_at_line): Constify pos argument.
9670
9671         * gengtype.c: Include hashtab.h.
9672         (enum gc_used): Document GC_MAYBE_POINTED_TO.
9673         (error_at_line): Constify pos argument.
9674         (do_typedef): Initialize p->opt field.
9675         (get_file_gtfilename): Fix comment typo.
9676         (struct walk_type_data): Constify line field.
9677         (get_output_file_for_structure): New function.
9678         (write_local_func_for_structure): Constify orig_s argument.
9679         Use get_output_file_for_structure.
9680         (write_func_for_structure): Use get_output_file_for_structure.
9681         (INDENT): New define.
9682         (dump_pair, dump_type, dump_type_list, dump_typekind)
9683         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
9684         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
9685         functions.
9686         (seen_types): New variable.
9687         (main): New variable do_dump.  Process "-d" command line option.
9688         Call dump_everything if dump requested.
9689
9690 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
9691
9692         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
9693         in a temporary instead of invoking the macro multiple times.
9694         (track_expr_p): Likewise.
9695
9696 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
9697
9698         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
9699         per new semantics.
9700         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
9701         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
9702         conditions for printing notes.
9703         * common.opt (-Wcoverage-mismatch): Allow negative, default to
9704         true, update documentation.
9705         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
9706
9707 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
9708
9709         PR c/43981
9710         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
9711         on dimen.
9712
9713 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
9714
9715         PR target/43799
9716         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
9717         (*sse_prologue_save_insn1): Likewise.
9718         (SSE prologue save splitter): Likewise.
9719
9720 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9721
9722         * tree.c (free_lang_data_in_one_sizepos): New inline function.
9723         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
9724         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
9725         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
9726         all decls.  Call it on DECL_FIELD_OFFSET of fields.
9727         (find_decls_types_r): Follow DECL_VALUE_EXPR.
9728         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
9729
9730 2010-05-04  Martin Jambor  <mjambor@suse.cz>
9731
9732         * tree-sra.c (build_access_from_expr_1): The first parameter type
9733         changed to simple tree.
9734         (build_access_from_expr): Likewise, gsi parameter was eliminated.
9735         (scan_assign_result): Renamed to assignment_mod_result, enum elements
9736         renamed as well.
9737         (build_accesses_from_assign): Removed all parameters except for a
9738         simple gimple statement.  Now returns a simple bool.
9739         (scan_function): All non-analysis parts moved to separate functions
9740         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
9741         parameters and updated both callers.
9742         (sra_modify_expr): Removed parameter data.
9743         (sra_modify_function_body): New function.
9744         (perform_intra_sra): Call sra_modify_function_body to modify the
9745         function body.
9746         (replace_removed_params_ssa_names): Parameter data changed into
9747         adjustments vector.
9748         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
9749         changed the parameter dont_convert to convert with the opposite
9750         meaning.
9751         (sra_ipa_modify_assign): Parameter data changed into adjustments
9752         vector, return value changed to bool.
9753         (ipa_sra_modify_function_body): New function.
9754         (sra_ipa_reset_debug_stmts): Updated a comment.
9755         (modify_function): Use ipa_sra_modify_function_body to modify function
9756         body.
9757
9758 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
9759
9760         PR middle-end/43671
9761         * alias.c (true_dependence): Handle the same VALUE in x and mem.
9762         (canon_true_dependence): Likewise.
9763         (write_dependence_p): Likewise.
9764
9765 2010-05-04  Jan Hubicka  <jh@suse.cz>
9766
9767         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
9768         * cgraphbuild.c: Include ipa-utils.h
9769         (record_reference_ctx): New struct.
9770         (record_reference): Simplify to work on initializers; not statements.
9771         (mark_address, mark_load, mark_store): New.
9772         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
9773         walk PHI nodes too.
9774         (record_references_in_initializer): Update use of record_reference.
9775         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
9776         walk PHI nodes too.
9777
9778 2010-05-04  Jan Hubicka  <jh@suse.cz>
9779
9780         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
9781         node will be removed anyway.
9782         (lto_varpool_replace_node): Allow also unanalyzed nodes;
9783         relink aliases of node into prevailing node.
9784         * varpool.c (varpool_remove_node): Remove aliases properly;
9785         when removing node, remove all its aliases too; remove DECL_INITIAL
9786         of removed node; ggc_free the varpool node.
9787
9788 2010-05-04  Richard Guenther  <rguenther@suse.de>
9789
9790         PR tree-optimization/43879
9791         * tree-ssa-structalias.c (alias_get_name): Use
9792         DECL_ASSEMBLER_NAME if available.
9793         (create_function_info_for): Return the varinfo node.
9794         (ipa_pta_execute): Associate same-body aliases and extra names
9795         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
9796
9797 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9798
9799         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
9800
9801 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
9802
9803         PR bootstrap/43964
9804         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
9805         only if HONOR_REG_ALLOC_ORDER is not defined.
9806
9807 2010-05-04  Richard Guenther  <rguenther@suse.de>
9808
9809         PR tree-optimization/43949
9810         * tree-vrp.c (extract_range_from_binary_expr): Only handle
9811         TRUNC_MOD_EXPR.
9812
9813 2010-04-26  Jason Merrill  <jason@redhat.com>
9814
9815         * c.opt (-fstrict-enums): New.
9816         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
9817
9818 2010-05-03  David Ung  <davidu@mips.com>
9819             James E. Wilson  <wilson@codesourcery.com>
9820
9821         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
9822         emit the trap instruction before the divide for TUNE_74K.
9823
9824 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
9825
9826         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
9827         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
9828         based on the above, for new target hook.
9829
9830         * hooks.c (hook_bool_mode_true): New generic hook.
9831         * hooks.h (hook_bool_mode_true): Add prototype.
9832
9833         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
9834         target hook.
9835         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
9836         target hook, set to hook_bool_mode_false.
9837         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
9838         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
9839         with targetm.small_register_classes_for_mode_p.
9840         (find_reusable_reload): Likewise.
9841         (combine_reloads): Likewise.
9842         * reload1.c (reload_as_needed): Likewise.
9843         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
9844         * ifcvt.c (noce_process_if_block, check_cond_move_block,
9845         dead_or_predicable): Likewise.
9846         * regmove.c (optimize_reg_copy_1): Likewise.
9847         * calls.c (prepare_call_address): Likewise.
9848         (precompute_register_parameters): Likewise.
9849
9850         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
9851         hook definition.
9852         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
9853         implementation of the hook that considers all register classes
9854         small except for SH64.
9855         (sh_override_options): Use the new hook.
9856         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
9857         Add prototype.
9858
9859         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
9860         hook definition.
9861         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
9862         implementation of the hook that considers all register classes
9863         small for THUMB1.
9864         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
9865         Add prototype.
9866
9867         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
9868         hook definition.
9869         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
9870         implementation of the hook that considers all register classes
9871         small for MIPS16.
9872         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
9873         Add prototype.
9874
9875         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
9876         hook definition.
9877         * config/m32c/m32c.h: Likewise.
9878         * config/pdp11/pdp11.h: Likewise.
9879         * config/avr/avr.h: Likewise.
9880         * config/xtensa/xtensa.h: Likewise.
9881         * config/m68hc11/m68hc11.h: Likewise.
9882         * config/mn10300/mn10300.h: Likewise.
9883         * config/mcore/mcore.h: Likewise.
9884         * config/h8300/h8300.h: Likewise.
9885         * config/bfin/bfin.h: Likewise.
9886
9887         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
9888         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
9889
9890 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
9891
9892         * double-int.h (tree_to_double_int): Remove macro.
9893         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
9894         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
9895         (tree_to_double_int): New function.
9896         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
9897         Move ...
9898         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
9899
9900 2010-05-03  Richard Guenther  <rguenther@suse.de>
9901
9902         PR tree-optimization/43971
9903         * tree-ssa-structalias.c (get_constraint_for_1): Fix
9904         constraints in the !flag_delete_null_pointer_checks case.
9905
9906 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
9907
9908         PR debug/43972
9909         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
9910         result mode matches original rtl mode.
9911
9912 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
9913
9914         PR target/43888
9915         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
9916
9917 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9918
9919         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
9920         when processing flag options.
9921
9922 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9923
9924         * gcov-iov.c (main): Change format string placeholder
9925         from %#08x to 0x%08x.
9926         * genchecksum.c (dosum): Change format string placeholder
9927         from %#02x to 0x%02x.
9928
9929 2010-05-02  Richard Guenther  <rguenther@suse.de>
9930
9931         PR tree-optimization/43879
9932         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
9933
9934 2010-05-02  Bruno Haible  <bruno@clisp.org>
9935
9936         * doc/extend.texi (Function Attributes): Fix a typo.
9937
9938 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9939
9940         Revert:
9941         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
9942         placeholder from 0x%x to %#x.
9943         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
9944         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
9945         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
9946         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
9947         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
9948         * config/i386/i386.c (ix86_target_string): Ditto.
9949         * config/i386/i386.c (output_pic_addr_const): Ditto.
9950         (print_operand): Ditto.
9951
9952 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9953
9954         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
9955         placeholder from 0x%x to %#x.
9956         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
9957         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
9958         (ASM_OUTPUT_DEBUG_DATA): Ditto.
9959         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
9960         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
9961         * optc-gen.awk: Ditto.
9962         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
9963         (HOST_WIDE_INT_PRINT_HEX): Ditto.
9964         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
9965         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
9966
9967 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
9968
9969         * target.h (struct calls): Add function_value_regno_p field.
9970         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9971         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
9972         * targhooks.c (default_function_value_regno_p): New function.
9973         * targhooks.h (default_function_value_regno_p): Declare function.
9974         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
9975         * builtins.c. (apply_result_size): (Ditto.).
9976         * combine.c. (likely_spilled_retval_p): (Ditto.).
9977         * mode-switching.c. Include 'target.h'.
9978         (create_pre_exit): Use function_value_regno_p hook.
9979         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
9980         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
9981         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
9982
9983         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
9984         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
9985         (ix86_function_value_regno_p): Declare as static, change argument
9986         type to const unsigned int.
9987         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
9988
9989 2010-05-01  Richard Guenther  <rguenther@suse.de>
9990
9991         PR tree-optimization/43949
9992         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
9993         types.
9994         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
9995
9996 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
9997
9998         * rtl.h (CONST_DOUBLE_P): Define.
9999         (rtx_to_double_int): Declare.
10000         * emit-rtl.c (rtx_to_double_int): New function.
10001         * dwarf2out.c (insert_double): New function.
10002         (loc_descriptor, add_const_value_attribute): Clean up, use
10003         rtx_to_double_int and insert_double functions.
10004
10005 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
10006
10007         * doc/extend.texi (Inline): Add missing return keyword to examples.
10008         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
10009         "command-line".
10010
10011 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
10012
10013         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
10014         the variable part of the offset as well.  Use highest_pow2_factor for
10015         all alignment checks.
10016
10017 2010-04-30  Richard Guenther  <rguenther@suse.de>
10018
10019         PR tree-optimization/43879
10020         * tree-ssa-structalias.c (type_could_have_pointers): Functions
10021         can have pointers.
10022
10023 2010-04-30  Jan Hubicka  <jh@suse.cz>
10024
10025         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
10026         varpool.
10027         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
10028
10029 2010-04-30  Jan Hubicka  <jh@suse.cz>
10030
10031         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
10032         New.
10033         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
10034         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
10035         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
10036         cgraph_node_set_needs_ltrans_p): Remove.
10037
10038 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
10039
10040         * sdbout.c: Include vec.h, do not include varray.h.
10041         (deferred_global_decls, sdbout_global_decl,
10042         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
10043         * toplev.c: Do not include varray.h.
10044         (dump_memory_report): Do not dump VARRAY statistics.
10045         * gengtype.c (open_base_file): Ignore varray.h.
10046         * Makefile.in: Update for abovementioned changes.
10047         Remove all traces of varray.c and varray.h.
10048         * varray.c: Remove file.
10049         * varray.h: Remove file.
10050
10051 2010-04-30  Jan Hubicka  <jh@suse.cz>
10052
10053         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
10054         references.
10055
10056 2010-04-30  Jan Hubicka  <jh@suse.cz>
10057
10058         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
10059         needed.
10060
10061 2010-04-30  Richard Guenther  <rguenther@suse.de>
10062
10063         * tree-ssa-structalias.c (get_constraint_for_1): Generate
10064         constraints for CONSTRUCTOR.
10065
10066 2010-04-30  Richard Guenther  <rguenther@suse.de>
10067
10068         PR lto/43946
10069         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
10070         first after all lowering passes.
10071
10072 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
10073
10074         * toplev.c: Include varray.h for statistics dumping.
10075         * tree.h: Do not declare varray_head_tag.
10076         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
10077         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
10078         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
10079         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
10080         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
10081         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
10082         c-common.c, c-common.h, reg-stack.c, basic-block.h,
10083         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
10084         include varray.h.
10085         * Makefile.in: Update for abovementioned changes.
10086
10087 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
10088
10089         PR debug/43942
10090         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
10091
10092 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10093
10094         * config/picochip/picochip.c (picochip_legitimize_address): Define.
10095         Use this function to do machine-specific conversion.
10096         (picochip_legitimize_reload_address): Likewise.
10097         (picochip_legitimate_address_p): Check valid base register only if
10098         strict.
10099         (picochip_check_conditional_copy): Check for modw only if opnd is
10100         register.
10101         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
10102         to call the function in c.
10103         * config/picochip/picochip-protos.h
10104         (picochip_legitimize_reload_address): Define.
10105         * config/picochip/picochip.md (supported_compare1): Define.
10106
10107 2010-04-30  Jan Hubicka  <jh@suse.cz>
10108
10109         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
10110         (cgraph_global_info): Remove inlined.
10111         (LTO_cgraph_tag_names): Remove.
10112         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
10113         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
10114         simplify cgraph tags and document.
10115         (lto_output_node): Use only LTO_cgraph_unavail_node and
10116         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
10117         for_functions_valid, global info, process and output flags.
10118         (input_overwrite_node): Initialize estimated stack size and
10119         estimated growth.  Do not read flags we no longer store.
10120         (input_node): Likewise do not read info no longer stored.
10121         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
10122         flag.
10123
10124 2010-04-30  Richard Guenther  <rguenther@suse.de>
10125
10126         PR tree-optimization/43879
10127         * tree-ssa-structalias.c (get_constraint_for_1): Properly
10128         handle non-zero initializers.
10129
10130 2010-04-30  Richard Guenther  <rguenther@suse.de>
10131
10132         * builtins.c (fold_builtin_1): Delete free (0).
10133
10134 2010-04-29  Jan Hubicka  <jh@suse.cz>
10135
10136         * gengtype.c (open_base_files): Add lto-streamer.h
10137         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
10138         (pass_ipa_cp): GGC collect.
10139         * toplev. (compile_file): Do not output symbols.
10140         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
10141         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
10142         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
10143         * lto-section-in.c: Include ggc.h
10144         (lto_new_in_decl_state): Alloc in GGC.
10145         (lto_delete_in_decl_state): Likewise.
10146         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
10147         Collect.
10148
10149 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
10150
10151         PR target/42895
10152         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
10153         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
10154         (HONOR_REG_ALLOC_ORDER): Describe new macro.
10155         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
10156         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
10157         account only if HONOR_REG_ALLOC_ORDER is not defined.
10158         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
10159         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
10160
10161 2010-04-29  Jon Grant  <04@jguk.org>
10162
10163         * collect2.c (vflag): Change type from int to bool.
10164         (debug): Likewise.
10165         (helpflag): New global bool.
10166         (main): Set vflag and debug with boolean, not integer truth values.
10167         Accept new "--help" option and output usage text if found.
10168         * collect2.h (vflag): Update prototype.
10169         (debug): Likewise.
10170
10171 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
10172
10173         PR bootstrap/43936
10174         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
10175
10176 2010-04-29  Richard Guenther  <rguenther@suse.de>
10177
10178         PR bootstrap/43935
10179         * plugin.h (invoke_plugin_callbacks): Annotate arguments
10180         with ATTRIBUTE_UNUSED.
10181
10182 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
10183
10184         PR target/43921
10185         * config/i386/i386.c (get_some_local_dynamic_name): Replace
10186         INSN_P with NONDEBUG_INSN_P.
10187         (distance_non_agu_define): Likewise.
10188         (distance_agu_use): Likewise.
10189
10190 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
10191
10192         From Dominique d'Humieres  <dominiq@lps.ens.fr>
10193         PR bootstrap/43858
10194         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
10195         test_set.
10196
10197 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
10198
10199         * plugin.h (invoke_plugin_callbacks): New inline function.
10200         * plugin.c (flag_plugin_added): New global flag.
10201         (add_new_plugin): Initialize above flag.
10202         (invoke_plugin_callbacks): Rename to ...
10203         (invoke_plugin_callbacks_full): ... this.
10204
10205 2010-04-28  Jan Hubicka  <jh@suse.cz>
10206
10207         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
10208         (lto_varpool_replace_node): New.
10209         (lto_symtab_resolve_symbols): Resolve varpool nodes.
10210         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
10211         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
10212         * cgraph.h (varpool_node_ptr): New type.
10213         (varpool_node_ptr): New vector.
10214         (varpool_node_set_def): New structure.
10215         (varpool_node_set): New type.
10216         (varpool_node_set): New vector.
10217         (varpool_node_set_element_def): New structure.
10218         (varpool_node_set_element, const_varpool_node_set_element): New types.
10219         (varpool_node_set_iterator): New type.
10220         (varpool_node): Add prev pointers, add used_from_other_partition,
10221         in_other_partition.
10222         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
10223         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
10224         varpool_get_node, varpool_remove_node): Declare.
10225         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
10226         varpool_node_set_size): New inlines.
10227         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
10228         * tree-pass.h (varpool_node_set_def): Forward declare.
10229         (ipa_opt_pass_d): Summary writting takes vnode sets too.
10230         (ipa_write_optimization_summaries): Update prototype.
10231         * ipa-cp.c (ipcp_write_summary): Update.
10232         * ipa-reference.c (ipa_reference_write_summary): Update.
10233         * lto-cgraph.c (lto_output_varpool_node): New static function.
10234         (output_varpool): New function.
10235         (input_varpool_node): New static function.
10236         (input_varpool_1): New function.
10237         (input_cgraph): Input varpool.
10238         * ipa-pure-const.c (pure_const_write_summary): Update.
10239         * lto-streamer-out.c (lto_output): Update, output varpool too.
10240         (write_global_stream): Kill WPA hack.
10241         (produce_asm_for_decls): Update.
10242         (output_alias_pair_p): Handle variables.
10243         (output_unreferenced_globals): Output only needed partition of varpool.
10244         * ipa-inline.c (inline_write_summary): Update.
10245         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
10246         cgraph.
10247         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
10248         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
10249         varpool_node_set_new, varpool_node_set_add,
10250         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
10251         debug_varpool_node_set): New functions.
10252         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
10253         (execute_one_pass): Process new decls too.
10254         (ipa_write_summaries_2): Pass around vsets.
10255         (ipa_write_summaries_1): Likewise.
10256         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
10257         to add.
10258         (ipa_write_optimization_summaries_1): Pass around vsets.
10259         (ipa_write_optimization_summaries): Likewise.
10260         * varpool.c (varpool_get_node): New.
10261         (varpool_node): Update doubly linked lists.
10262         (varpool_remove_node): New.
10263         (dump_varpool_node): More dumping.
10264         (varpool_enqueue_needed_node): Update doubly linked lists.
10265         (decide_is_variable_needed): Kill ltrans hack.
10266         (varpool_finalize_decl): Kill lto hack.
10267         (varpool_assemble_decl): Skip decls in other partitions.
10268         (varpool_assemble_pending_decls): Update doubly linkes lists.
10269         (varpool_empty_needed_queue): Likewise.
10270         (varpool_extra_name_alias): Likewise.
10271         * lto-streamer.c (lto_get_section_name): Add vars section.
10272         * lto-streamer.h (lto_section_type): Update.
10273         (output_varpool, input_varpool): Declare.
10274
10275 2010-04-28  Mike Stump  <mikestump@comcast.net>
10276
10277         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
10278
10279 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10280
10281         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
10282         record or union type with RECORD_OR_UNION_TYPE_P predicate.
10283         (lto_input_ts_type_tree_pointers): Likewise.
10284         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
10285         (lto_output_ts_type_tree_pointers): Likewise.
10286
10287 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10288
10289         Uniquization of constants at the Tree level
10290         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
10291         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
10292         bit to the end.
10293         (tree_output_constant_def): Declare.
10294         * gimplify.c (gimplify_init_constructor): When using block copy, first
10295         uniquize the constant constructor on the RHS.
10296         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
10297         DECL_IN_CONSTANT_POOL flag.
10298         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
10299         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
10300         constant pool.
10301         (assemble_variable): Deal with symbols belonging to the tree constant
10302         pool.
10303         (get_constant_section): Add ALIGN parameter and simplify.
10304         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
10305         (assemble_constant_contents): Use the expression of the VAR_DECL.
10306         (output_constant_def_contents): Use the alignment of the VAR_DECL.
10307         (tree_output_constant_def): New global function.
10308         (mark_constant): Use the expression of the VAR_DECL.
10309         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
10310         its expression.
10311         (output_object_block): Likewise and assemble the expression.
10312
10313 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10314
10315         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
10316         hash_tree, eq_tree): New tree hash table.
10317         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
10318         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
10319         lto_orig_address_remove): Reimplement.
10320
10321 2010-04-28  Xinliang David Li  <davidxl@google.com>
10322
10323         PR c/42643
10324         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
10325         (compute_uninit_opnds_pos): New function.
10326         (is_non_loop_exit_postdominating): New function.
10327         (compute_control_dep_chain): New function.
10328         (find_pdom): New function.
10329         (convert_control_dep_chain_into_preds): New function.
10330         (find_predicates): New function.
10331         (find_control_equiv_block): New function.
10332         (collect_phi_def_edges): New function.
10333         (find_def_preds): New function.
10334         (find_dom): New function.
10335         (dump_predicates): New function.
10336         (get_cmp_code): New function.
10337         (is_value_included_in): New function.
10338         (find_matching_predicate_in_rest_chains): New function.
10339         (use_pred_not_overlap_with_undef_path_pred): New function.
10340         (is_use_properly_guarded): New function.
10341         (normalize_cond_1): New function.
10342         (is_and_or_or): New function.
10343         (normalize_cond): New function.
10344         (is_gcond_subset_of): New function.
10345         (is_subset_of_any): New function.
10346         (is_or_set_subset_of): New function.
10347         (is_and_set_subset_of): New function.
10348         (is_norm_cond_subset_of): New function.
10349         (is_pred_expr_subset_of): New function.
10350         (is_pred_chain_subset_of): New function.
10351         (is_included_in): New function.
10352         (is_superset_of): New function.
10353         (find_uninit_use): New function.
10354         (warn_uninitialized_phi): New function.
10355         (compute_possibly_undefined_names): New function.
10356         (ssa_undefined_value_p): New function.
10357         (execute_late_warn_uninitialized): New function.
10358         * tree-ssa.c (ssa_undefined_value_p): Removed.
10359         (warn_uninit): Changed to extern.
10360         (warn_uninitialized_phi): Removed.
10361         (warn_uninitialized_vars): Changed to extern.
10362         (execute_late_warn_uninitialized): Removed
10363         * tree-flow.h: Add new prototypes.
10364         * timevar.def: Add new time variable.
10365         * Makefile.in: Add new build file.
10366
10367 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
10368
10369         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
10370         type if available.
10371
10372 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10373
10374         PR target/22224
10375         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
10376
10377 2010-04-28  Martin Jambor  <mjambor@suse.cz>
10378
10379         * cgraph.h (struct cgraph_node): New field indirect_calls.
10380         (struct cgraph_indirect_call_info): New type.
10381         (struct cgraph_edge): Removed field indirect_call. New fields
10382         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
10383         (cgraph_create_indirect_edge): Declare.
10384         (cgraph_make_edge_direct): Likewise.
10385         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
10386         * ipa-prop.h (struct ipa_param_call_note): Removed.
10387         (struct ipa_node_params): Removed field param_calls.
10388         (ipa_create_all_structures_for_iinln): Declare.
10389         * cgraph.c: Described indirect edges and uids in initial comment.
10390         (cgraph_add_edge_to_call_site_hash): New function.
10391         (cgraph_edge): Search also among the indirect edges, use
10392         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
10393         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
10394         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
10395         site hash.
10396         (initialize_inline_failed): Assign a reason to indirect edges.
10397         (cgraph_create_edge_1): New function.
10398         (cgraph_create_edge): Moved some functionality to
10399         cgraph_create_edge_1.
10400         (cgraph_create_indirect_edge): New function.
10401         (cgraph_edge_remove_callee): Add an assert checking for
10402         non-indirectness.
10403         (cgraph_edge_remove_caller): Special-case indirect edges.
10404         (cgraph_remove_edge): Likewise.
10405         (cgraph_set_edge_callee): New function.
10406         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
10407         (cgraph_make_edge_direct): New function.
10408         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
10409         the declaration of the call statement matches.
10410         (cgraph_node_remove_callees): Special-case indirect edges.
10411         (cgraph_clone_edge): Likewise.
10412         (cgraph_clone_node): Clone also the indirect edges.
10413         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
10414         indirect_call, dump count of indirect_calls edges.
10415         * ipa-prop.c (iinlining_processed_edges): New variable.
10416         (ipa_note_param_call): Create indirect edges instead of
10417         creating notes.  New parameter node.
10418         (ipa_analyze_call_uses): New parameter node, pass it on to
10419         ipa_note_param_call.
10420         (ipa_analyze_stmt_uses): Likewise.
10421         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
10422         (print_edge_addition_message): Work on edges rather than on notes.
10423         (update_call_notes_after_inlining): Likewise, renamed to
10424         update_indirect_edges_after_inlining.
10425         (ipa_create_all_structures_for_iinln): New function.
10426         (ipa_free_node_params_substructures): Do not free notes.
10427         (ipa_edge_duplication_hook): Propagate bits within
10428         iinlining_processed_edges bitmap.
10429         (ipa_node_duplication_hook): Do not duplicate notes.
10430         (free_all_ipa_structures_after_ipa_cp): Renamed to
10431         ipa_free_all_structures_after_ipa_cp.
10432         (free_all_ipa_structures_after_iinln): Renamed to
10433         ipa_free_all_structures_after_iinln.
10434         (ipa_write_param_call_note): Removed.
10435         (ipa_read_param_call_note): Removed.
10436         (ipa_write_indirect_edge_info): New function.
10437         (ipa_read_indirect_edge_info): Likewise.
10438         (ipa_write_node_info): Do not stream notes, do stream information
10439         in indirect edges.
10440         (ipa_read_node_info): Likewise.
10441         (lto_ipa_fixup_call_notes): Removed.
10442         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
10443         * ipa-inline.c (pass_ipa_inline): Likewise.
10444         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
10445         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
10446         * tree-inline.c (copy_bb): Removed an unnecessary double check for
10447         is_gimple_call.
10448         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
10449         edges.
10450         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
10451         (output_cgraph): Stream also indirect edges.
10452         (lto_output_edge): Added capability to stream indirect edges.
10453         (input_edge): Likewise.
10454         (input_cgraph_1): Likewise.
10455         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
10456         of indirect edges.
10457
10458 2010-04-28  Richard Guenther  <rguenther@suse.de>
10459
10460         PR tree-optimization/43879
10461         PR tree-optimization/43909
10462         * tree-ssa-structalias.c (struct variable_info): Add
10463         only_restrict_pointers flag.
10464         (new_var_info): Initialize it.  Increment stats.total_vars here.
10465         (create_function_info_for): Do not increment stats.total_vars here.
10466         (get_function_part_constraint): Fix build with C++.
10467         (insert_into_field_list): Remove.
10468         (push_fields_onto_fieldstack): Properly merge fields.
10469         (create_variable_info_for): Split and simplify.
10470         (create_variable_info_for_1): New piece.
10471         (intra_create_variable_infos): Properly make restrict constraints
10472         from parameters.
10473
10474 2010-04-28  Richard Guenther  <rguenther@suse.de>
10475
10476         PR c++/43880
10477         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
10478
10479 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10480             Jan Hubicka  <hubicka@ucw.cz>
10481
10482         * doc/invoke.texi (-Wsuggest-attribute=const,
10483         -Wsuggest-attribute=pure): Document.
10484         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
10485         (function_always_visible_to_compiler_p,
10486         suggest_attribute, warn_function_pure, warn_function_const):
10487         New functions.
10488         (check_call): Improve debug info.
10489         (analyze_function): Do not check availability.
10490         (add_new_function): Check availability.
10491         (propagate): Output warnings.
10492         (skip_function_for_local_pure_const): New function.
10493         (local_pure_const): Use it; output warnings.
10494         * common.opt (Wsuggest-attribute=const,
10495         Wsuggest-attribute=pure): New.
10496
10497 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
10498
10499         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
10500         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
10501         or DW_CFA_def_cfa_offset{,_sf}.
10502
10503 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
10504
10505         * tree.h: Fix truncated long macros.
10506
10507 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
10508
10509         * collect2.c (TARGET_64BIT): Redefine to target's default.
10510         * tlink.c: Likewise.
10511         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
10512         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
10513         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
10514         for underscoring __USER_LABEL_PREFIX__.
10515         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
10516         (SUB_LINK_ENTRY32): New.
10517         (SUB_LINK_ENTRY64): New.
10518         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
10519         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
10520         (SUB_LINK_ENTRY64): New.
10521         (SUB_LINK_ENTRY): New.
10522         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
10523         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
10524         x64 target is choosen.
10525         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
10526         * configure: Regenerated.
10527         * configure.ac (leading-mingw64-underscores): Option added.
10528
10529 2010-04-27  Jan Hubicka  <jh@suse.cz>
10530
10531         * doc/invoke.texi (-fipa-profile): Document.
10532         * opts.c (decode_options): Enable ipa-profile at -O1.
10533         * timevar.def (TV_IPA_PROFILE): Define.
10534         * common.opt (fipa-profile): Add.
10535         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
10536         flag for clones.
10537         (cgraph_propagate_frequency): Handle only local ones.
10538         * tree-pass.h (pass_ipa_profile): Declare.
10539         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
10540         (pass_ipa_profile): Use TV_IPA_PROFILE.
10541         * ipa.c (ipa_profile): New function.
10542         (gate_ipa_profile): Likewise.
10543         (pass_ipa_profile): New global variable.
10544         * passes.c (pass_ipa_profile): New.
10545
10546 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
10547
10548         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
10549
10550 2010-04-27  Martin Jambor  <mjambor@suse.cz>
10551
10552         PR middle-end/43812
10553         * ipa.c (dissolve_same_comdat_group_list): New function.
10554         (function_and_variable_visibility): Call
10555         dissolve_same_comdat_group_list when comdat group contains external or
10556         newly local nodes.
10557         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
10558         lists are circular and that they contain only DECL_ONE_ONLY nodes.
10559
10560 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
10561
10562         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
10563         (const_hash_1) <VECTOR_CST>: New case.
10564         (compare_constant) <VECTOR_CST>: Likewise.
10565         <ADDR_EXPR>: Deal with LABEL_REFs.
10566         (copy_constant) <VECTOR_CST>: New case.
10567
10568 2010-04-27  Jan Hubicka  <jh@suse.cz>
10569
10570         * cgraph.c (cgraph_propagate_frequency): New function.
10571         * cgraph.h (cgraph_propagate_frequency): Declare.
10572         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
10573         cgraph_propagate_frequency.
10574
10575 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
10576
10577         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
10578
10579 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
10580
10581         PR target/40657
10582         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
10583         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
10584         here to determine which regs to push and how much stack to reserve.
10585
10586 2010-04-27  Jie Zhang  <jie@codesourcery.com>
10587
10588         * doc/gimple.texi (gimple_statement_with_ops): Remove
10589         addresses_taken field.
10590         (gimple_statement_with_memory_ops): Likewise.
10591
10592 2010-04-27  Jan Hubicka  <jh@suse.cz>
10593
10594         * tree-inline.c (eni_inlining_weights): Remove.
10595         (estimate_num_insns): Special case more builtins.
10596
10597 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
10598
10599         PR c/32207
10600         * c-typeck.c (build_binary_op): Move forward check for comparison
10601         pointer with null pointer constant and adjust the diagnostic message.
10602
10603 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
10604
10605         PR lto/42776
10606         * configure.ac (gcc_cv_as_section_has_align): Set if installed
10607         binutils supports extended .section directive needed by LTO, or
10608         warn if older binutils found.
10609         (LTO_BINARY_READER): New AC_SUBST'd variable.
10610         (LTO_USE_LIBELF): Likewise.
10611         * gcc/config.gcc (lto_binary_reader): New target-specific configure
10612         variable.
10613         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
10614         (LTO_USE_LIBELF): Likewise.
10615         * configure: Regenerate.
10616
10617         * collect2.c (is_elf): Rename from this ...
10618         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
10619          object files in addition to ELF-formatted ones.
10620         (scan_prog_file): Caller updated.  Also allow for LTO info marker
10621         symbol to be prefixed or not by an extra underscore.
10622
10623         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
10624         * config/i386/winnt.c: Also #include lto-streamer.h
10625         (i386_pe_asm_named_section): Specify 1-byte section alignment for
10626         LTO named sections.
10627         (i386_pe_asm_output_aligned_decl_common): Add comment.
10628         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
10629
10630 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
10631
10632         PR target/43889
10633         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
10634         Add missing earlyclobber for second alternative.
10635
10636 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
10637
10638         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
10639         bits for artificial defs at the top of the block.
10640         * fwprop.c (single_def_use_enter_block): Don't call it.
10641
10642 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
10643
10644         PR 43715
10645         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
10646         instead of "$gcc_cv_objdump -T".
10647         Use "-undefined dynamic_lookup" on darwin.
10648         * gcc/configure: Regenerate.
10649
10650 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
10651
10652         PR c/43893
10653         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
10654
10655 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
10656
10657         * c-parser.c (struct c_token): Move location field up.
10658         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
10659         (struct c_declspecs): Convert typespec_word, storage_class, and
10660         default_int_p into bitfields.
10661         (struct c_declarator): Move loc field up.
10662
10663 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
10664
10665         * cfgloop.h (struct loop): Move can_be_parallel field up.
10666         * ipa-prop.h (struct ip_node_params): Move bitfields up.
10667         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
10668         down.
10669         (struct iv_cand): Convert pos field into a bitfield.
10670         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
10671         field up.
10672         (struct _stmt_vec_info): Shuffle fields for better packing.
10673
10674 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
10675
10676         * varasm.c (IN_NAMED_SECTION): Remove guard.
10677         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
10678         (IN_NAMED_SECTION_P): ...this.
10679         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
10680         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
10681
10682 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
10683
10684         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
10685         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
10686         of shadowing it.  Fix comments.
10687
10688 2010-04-26  Jan Hubicka  <jh@suse.cz>
10689
10690         * cgraph.c (cgraph_create_node): Set node frequency to normal.
10691         (cgraph_clone_node): Copy function frequency.
10692         * cgraph.h (node_frequency): New enum
10693         (struct cgraph_node): Add.
10694         * final.c (rest_of_clean_state): Update.
10695         * lto-cgraph.c (lto_output_node): Output node frequency.
10696         (input_overwrite_node): Input node frequency.
10697         * tre-ssa-loop-ivopts (computation_cost): Update.
10698         * lto-streamer-out.c (output_function): Do not output function
10699         frequency.
10700         * predict.c (maybe_hot_frequency_p): Update and handle functions
10701         executed once.
10702         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
10703         attribute lookup.
10704         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
10705         (compute_function_frequency): Set noreturn functions to be executed
10706         once.
10707         (choose_function_section): Update.
10708         * lto-streamer-in.c (input_function): Do not input function frequency.
10709         * function.c (allocate_struct_function): Do not initialize function
10710         frequency.
10711         * function.h (function_frequency): Remove.
10712         (struct function): Remove function frequency.
10713         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
10714         (try_update): Update.
10715         * tree-inline.c (initialize_cfun): Do not update function frequency.
10716         * passes.c (pass_init_dump_file): Update.
10717         * i386.c (ix86_compute_frame_layout): Update.
10718         (ix86_pad_returns): Update.
10719
10720 2010-04-26  Jie Zhang  <jie@codesourcery.com>
10721
10722         PR tree-optimization/43833
10723         * tree-vrp.c (range_int_cst_p): New.
10724         (range_int_cst_singleton_p): New.
10725         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
10726         when both operands are constants.  Use range_int_cst_p in
10727         BIT_IOR_EXPR case.
10728
10729 2010-04-26  Jan Hubicka  <jh@suse.cz>
10730
10731         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
10732
10733 2010-04-26  Richard Guenther  <rguenther@suse.de>
10734
10735         PR lto/43080
10736         * gimple.c (gimple_decl_printable_name): Deal gracefully
10737         with a NULL DECL_NAME.
10738
10739 2010-04-26  Richard Guenther  <rguenther@suse.de>
10740
10741         PR lto/42425
10742         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
10743         if emitting debug information and it is either a function
10744         or a namespace decl.
10745
10746 2010-04-26  Ira Rosen  <irar@il.ibm.com>
10747
10748         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
10749         determine if the statement is vectorizable, and a macro to access it.
10750         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
10751         Skip statements that can't be vectorized. If the analysis fails,
10752         mark the statement as unvectorizable if vectorizing basic block.
10753         (vect_compute_data_refs_alignment): Likewise.
10754         (vect_verify_datarefs_alignment): Skip statements marked as
10755         unvectorizable. Add print.
10756         (vect_analyze_group_access): Skip statements that can't be
10757         vectorized. If the analysis fails, mark the statement as
10758         unvectorizable if vectorizing basic block.
10759         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
10760         * tree-vect-stmts.c (vectorizable_store): Fix the number of
10761         generated stmts for SLP.
10762         (new_stmt_vec_info): Initialize the new field.
10763         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
10764         statements marked as unvectorizable.
10765
10766 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
10767
10768         * c-common.c (flag_isoc1x): New.
10769         (flag_isoc99): Update comment.
10770         * c-common.h (flag_isoc1x): New.
10771         (flag_isoc99): Update comment.
10772         * c-cppbuiltin.c (builtin_define_float_constants): Also define
10773         __<type>_DECIMAL_DIG__.
10774         * c-opts.c (set_std_c1x): New.
10775         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
10776         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
10777         * c.opt (-std=c1x, -std=gnu1x): New options.
10778         * doc/cpp.texi: Mention -std=c1x.
10779         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
10780         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
10781         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
10782         * doc/standards.texi: Mention C1X.
10783         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
10784         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
10785         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
10786         Define for C1X.
10787
10788 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
10789
10790         * config/i386/gmon-sol2.c (_mcleanup): Change format string
10791         placeholder from 0x%x to %#x.
10792         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
10793         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
10794         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
10795         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
10796         * config/i386/i386.c (ix86_target_string): Ditto.
10797         (output_pic_addr_const): Ditto.
10798         (print_operand): Ditto.
10799
10800 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
10801
10802         * combine.c (find_split_point): Add third argument.  Use it
10803         to find nested multiply-accumulate instructions.  Adjust calls.
10804         (try_combine): Adjust call to find_split_point.
10805
10806 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
10807
10808         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
10809
10810 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
10811
10812         PR tree-optimization/41442
10813         * fold-const.c (merge_truthop_with_opposite_arm): New function.
10814         (fold_binary_loc): Call it.
10815
10816 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10817
10818         * toplev.c (general_init): Set default for fdiagnostics-show-option.
10819         * opts.c (common_handle_option): Allow disabling it.
10820         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
10821
10822 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10823
10824         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
10825         between modes if both types are integral.
10826
10827 2010-04-23  Richard Guenther  <rguenther@suse.de>
10828
10829         PR tree-optimization/43572
10830         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
10831
10832 2010-04-23  Richard Guenther  <rguenther@suse.de>
10833
10834         PR lto/43455
10835         * tree-inline.c (tree_can_inline_p): Also check compatibility
10836         of return types.
10837
10838 2010-04-23  Martin Jambor  <mjambor@suse.cz>
10839
10840         PR tree-optimization/43846
10841         * tree-sra.c (struct access): New flag grp_assignment_read.
10842         (build_accesses_from_assign): Set grp_assignment_read.
10843         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
10844         (enum mark_read_status): New type.
10845         (analyze_access_subtree): Propagate grp_assignment_read, create
10846         accesses also if both direct_read and root->grp_assignment_read.
10847
10848 2010-04-23  Martin Jambor  <mjambor@suse.cz>
10849
10850         PR middle-end/43835
10851         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
10852         function does not have type attributes.
10853
10854 2010-04-23  Richard Guenther  <rguenther@suse.de>
10855
10856         PR lto/42653
10857         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
10858         of FUNCTION_DECLs.
10859
10860 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10861
10862         * sese.h (create_if_region_on_edge): Remove.
10863
10864         * sese.c (create_if_region_on_edge): Make static.
10865
10866         * tree-inline.c: Do not include ggc.h.
10867
10868         * expr.c: Do not include ggc.h.
10869
10870         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
10871         dependencies.
10872
10873 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10874
10875         PR target/43744
10876         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10877         in the middle of insns for casesi_worker_2.
10878
10879 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
10880
10881         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
10882
10883 2010-04-22  Ira Rosen  <irar@il.ibm.com>
10884
10885         PR tree-optimization/43842
10886         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
10887         loop unrolling in update of exit phis. Fix comment.
10888         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
10889         least two reduction statements in the loop before starting SLP
10890         analysis.
10891
10892 2010-04-22  Nick Clifton  <nickc@redhat.com>
10893
10894         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
10895
10896 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
10897
10898         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
10899         to simplify a + ~a.
10900
10901 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10902
10903         * tree-parloops.c (loop_parallel_p): New argument
10904         parloop_obstack.  Pass it down.
10905         (parallelize_loops): New variable parloop_obstack.  Initialize it,
10906         pass it down, free it.
10907
10908         * tree-loop-linear.c (linear_transform_loops): Pass down
10909         lambda_obstack.
10910
10911         * tree-data-ref.h (lambda_compute_access_matrices): New argument
10912         of type struct obstack *.
10913
10914         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
10915         scratch_obstack.  Initialize it, pass down, free it.
10916
10917         * lambda.h (lambda_loop_new): Remove.
10918         (lambda_matrix_new, lambda_matrix_inverse)
10919         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
10920         argument of type struct obstack *.
10921
10922         * lambda-trans.c (lambda_trans_matrix_new): New argument
10923         lambda_obstack.  Pass it down, use obstack allocation for ret.
10924         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
10925         it down.
10926
10927         * lambda-mat.c (lambda_matrix_get_column)
10928         (lambda_matrix_project_to_null): Remove.
10929         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
10930         allocation for mat.
10931         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
10932         lambda_obstack.
10933
10934         * lambda-code.c (lambda_loop_new): New function.
10935         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
10936         (lambda_compute_auxillary_space, lambda_compute_target_space)
10937         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
10938         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
10939         (build_access_matrix): New argument lambda_obstack.  Use obstack
10940         allocation for am.
10941         (lambda_compute_step_signs, lambda_compute_access_matrices): New
10942         argument lambda_obstack.  Pass it down.
10943
10944 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
10945
10946         * optabs.h (expand_widening_mult): Declare.
10947
10948 2010-04-22  Richard Guenther  <rguenther@suse.de>
10949
10950         PR tree-optimization/43845
10951         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
10952         lookup the CALL_EXPR function and arguments.
10953
10954 2010-04-22  Nick Clifton  <nickc@redhat.com>
10955
10956         * config/stormy16/stormy16.c
10957         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
10958         * config/stormy16/stormy16.h: Tidy up formatting.
10959         (DONT_USE_BUILTIN_SETJMP): Remove definition.
10960         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
10961         (ineqbranchsi): Delete pattern.
10962         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
10963         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
10964         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10965         stormy16-lib2-ucmpsi2.c.
10966
10967 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
10968
10969         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
10970         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
10971         extra set merge_set_noclobber, and use it to relax the final test
10972         slightly.
10973         * df.h (df_simulate_find_noclobber_defs): Declare.
10974         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
10975         conditional defs.
10976         (df_simulate_find_noclobber_defs): New function.
10977
10978 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
10979
10980         * config/i386/i386.md: Use {} around multi-line preparation statements.
10981
10982 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10983
10984         * c-tree.h (push_init_level, pop_init_level, set_init_index)
10985         (process_init_element): New argument of type struct obstack *.
10986
10987         * c-typeck.c (push_init_level, pop_init_level, set_designator)
10988         (set_init_index, set_init_label, set_nonincremental_init)
10989         (set_nonincremental_init_from_string, find_init_member)
10990         (output_init_element, output_pending_init_elements)
10991         (process_init_element): New argument braced_init_obstack.  Pass it
10992         down.
10993         (push_range_stack, add_pending_init): New argument
10994         braced_init_obstack.  Use obstack allocation.
10995
10996         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
10997         braced_init_obstack.  Pass it down.
10998         (c_parser_braced_init): New variables ret, braced_init_obstack.
10999         Initialize obstack, pass it down and finally free it.
11000
11001 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
11002
11003         PR middle-end/29274
11004         * tree-pass.h (pass_optimize_widening_mul): Declare.
11005         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
11006         gate_optimize_widening_mul): New static functions.
11007         (pass_optimize_widening_mul): New.
11008         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
11009         <case MULT_EXPR>: Remove support for widening multiplies.
11010         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
11011         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
11012         simplify_gen_unary rather than directly building extensions.
11013         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
11014         WIDEN_MULT_EXPR.
11015         * expmed.c (expand_widening_mult): New function.
11016         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
11017
11018 2010-04-21  Jan Hubicka  <jh@suse.cz>
11019
11020         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
11021         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
11022         * lto-wpa-fixup.c: Remove.
11023         * Makefile.in (lto-wpa-fixup.o): Remove.
11024         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
11025         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
11026         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
11027
11028 2010-04-21  Jan Hubicka  <jh@suse.cz>
11029
11030         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
11031         add write_optimization_summary, read_optimization_summary.
11032         (ipa_write_summaries_of_cgraph_node_set): Remove.
11033         (ipa_write_optimization_summaries): Declare.
11034         (ipa_read_optimization_summaries): Declare.
11035         * ipa-cp.c (pass_ipa_cp): Update.
11036         * ipa-reference.c (pass_ipa_reference): Update.
11037         * ipa-pure-const.c (pass_ipa_pure_const): Update.
11038         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
11039         Update.
11040         * ipa-inline.c (pass_ipa_inline): Update.
11041         * ipa.c (pass_ipa_whole_program): Update.
11042         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
11043         * passes.c (ipa_write_summaries_1): Do not test wpa.
11044         (ipa_write_optimization_summaries_1): New.
11045         (ipa_write_optimization_summaries): New.
11046         (ipa_read_summaries): Do not test ltrans.
11047         (ipa_read_optimization_summaries_1): New.
11048         (ipa_read_optimization_summaries): New.
11049
11050 2010-04-21  Jan Hubicka  <jh@suse.cz>
11051
11052         * lto-cgraph.c (lto_output_node): Do not output comdat groups
11053         for boundary nodes.
11054         (output_cgraph): Do not arrange comdat groups for boundary nodes.
11055
11056 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
11057
11058         PR debug/40040
11059         * dwarf2out.c (add_name_and_src_coords_attributes): Add
11060         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
11061
11062 2010-04-21  Jan Hubicka  <jh@suse.cz>
11063
11064         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
11065
11066 2010-04-21  Jan Hubicka  <jh@suse.cz>
11067
11068         * varpool.c (decide_is_variable_needed): Variable is always needed
11069         during ltrans.
11070
11071 2010-04-21  Jan Hubicka  <jh@suse.cz>
11072
11073         * opts.c (decode_options): Enable pure-const pass for whopr.
11074
11075 2010-04-21  Jan Hubicka  <jh@suse.cz>
11076
11077         * cgraph.c (dump_cgraph_node): Dump also assembler name.
11078         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
11079         at WPA dumping.
11080         (cgraph_decide_inlining): Do not expect callee to be removed in all
11081         cases.
11082
11083 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
11084
11085         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
11086
11087 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
11088
11089         * config/i386/i386.md (x86_shrd): Add athlon_decode and
11090         amdfam10_decode attributes.
11091
11092 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
11093
11094         PR middle-end/43570
11095         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
11096         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
11097         (lower_copyprivate_clauses): Use private var in outer
11098         context instead of original var.  Make sure the types
11099         are correct for VLAs.
11100
11101 2010-04-21  Richard Guenther  <rguenther@suse.de>
11102
11103         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
11104         to non-pointer objects.
11105
11106 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
11107
11108         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
11109         last chain entry if it starts with the still current label.
11110         (add_location_or_const_value_attribute): Check that
11111         loc_list->first->next is NULL instead of comparing ->first with ->last.
11112         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
11113         to add_var_loc_to_decl.
11114
11115         * dwarf2out.c (output_call_frame_info): For dw_cie_version
11116         >= 4 add also address size and segment size fields into CIE header.
11117
11118         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
11119         long as address size is the same as sizeof (void *) and
11120         segment size is 0.
11121         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
11122         address size or segment size is unexpected, return DW_EH_PE_omit.
11123         (classify_object_over_fdes): If get_cie_encoding returned
11124         DW_EH_PE_omit, return -1.
11125         (init_object): If classify_object_over_fdes returned -1,
11126         pretend there were no FDEs at all.
11127
11128 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
11129
11130         * config/i386/i386.md (bswap<mode>2): Macroize expander from
11131         bswap{si,di}2 using SWI48 mode iterator.
11132         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
11133         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
11134         set modrm attribute of bswap insn to 0 and remove length attribute.
11135         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
11136         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
11137         set mode attribute to <MODE> and remove length attribute.
11138
11139 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
11140
11141         PR rtl-optimization/43520
11142         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
11143         zero available registers.
11144
11145 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11146
11147         * builtins.c (fold_builtin_cproj): Fold more cases.
11148
11149 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11150
11151         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
11152         (fold_builtin_1): Fold builtin cproj.
11153         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
11154         Use ATTR_CONST_NOTHROW_LIST.
11155
11156 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
11157
11158         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
11159         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
11160         ffsi2_no_cmove for !TARGET_CMOVE.
11161         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
11162         (ffssi2): Remove expander.
11163         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
11164         mode iterator.
11165         (ctz<mode>2): Ditto from ctz{si,di}2.
11166         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
11167         mode iterator.
11168         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
11169         mode iterator.
11170
11171 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
11172
11173         * dwarf2out.c (AT_linkage_name): Define.
11174         (clone_as_declaration): Handle DW_AT_linkage_name.
11175         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
11176         of DW_AT_MIPS_linkage_name.
11177         (move_linkage_attr): Likewise.
11178         (dwarf2out_finish): Likewise.
11179
11180 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
11181
11182         PR middle-end/41952
11183         * fold-const.c (fold_comparison): New folding rule.
11184
11185 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
11186
11187         * double-int.h (double_int_setbit): Declare.
11188         * double-int.c (double_int_setbit): New function.
11189         * rtl.h (immed_double_int_const): Declare.
11190         * emit-rtl.c (immed_double_int_const): New function.
11191         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
11192         and immed_double_int_const functions.
11193         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
11194         expand_copysign_bit):  (Ditto.).
11195         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
11196         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
11197         * dojump.c (prefer_and_bit_test): (Ditto.).
11198         * expr.c (convert_modes, reduce_to_bit_field_precision,
11199         const_vector_from_tree): (Ditto.).
11200         * expmed.c (mask_rtx, lshift_value): (Ditto.).
11201
11202 2010-04-20  Jan Hubicka  <jh@suse.cz>
11203
11204         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
11205         (dump_cgraph_node): Dump new flags.
11206         * cgraph.h (struct cgraph_node): Add flags
11207         reachable_from_other_partition and in_other_partition.
11208         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
11209         other partition can not be removed.
11210         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
11211         the other partition must be output; silence sanity checking on
11212         leaking functions bodies from other paritition.
11213         * lto-cgraph.c (reachable_from_other_partition_p): New function.
11214         (lto_output_node): Output new flags; do not sanity check that inline
11215         clones are output; drop lto_forced_extern_inline_p code; do not mock
11216         visibility flags at partition boundaries.
11217         (add_node_to): New function.
11218         (output_cgraph): Use it to sort functions so masters appear before
11219         clones.
11220         (input_overwrite_node): Input new flags.
11221         * passes.c (ipa_write_summaries): Do not call
11222         lto_new_extern_inline_states.
11223         * lto-section-out.c (forced_extern_inline,
11224         lto_new_extern_inline_states lto_delete_extern_inline_states,
11225         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
11226         * lto-streamer.h (lto_new_extern_inline_states,
11227         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
11228         lto_forced_extern_inline_p): Kill.
11229
11230 2010-04-20  Richard Guenther  <rguenther@suse.de>
11231
11232         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
11233         from vars that can have pointers.
11234         (process_constraint): Dump useless constraints.
11235
11236 2010-04-20  Richard Guenther  <rguenther@suse.de>
11237
11238         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
11239         (dump_sa_points_to_info): Remove asserts.
11240         (init_base_vars): nothing_id isn't an escape point nor does it
11241         have pointers.
11242
11243 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
11244
11245         * tree.h (TYPE_REF_IS_RVALUE): Define.
11246         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
11247         should_move_die_to_comdat, prune_unused_types_walk): Handle
11248         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
11249         (modified_type_die, gen_reference_type_die): Emit
11250         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
11251         if TYPE_REF_IS_RVALUE and -gdwarf-4.
11252
11253 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11254
11255         PR target/43635
11256         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
11257         calls for -fpic -m31 if they have been sibcall optimized.
11258
11259 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
11260
11261         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
11262         ar.lc fixed and call-used.
11263
11264         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
11265
11266 2010-04-19  Jan Hubicka  <jh@suse.cz>
11267
11268         * opts.c (decode_options): Disable whpr incompatible passes.
11269         * lto/lto.c (lto_1_to_1_map): Skip clones.
11270         (read_cgraph_and_symbols): Do not mark everything as needed.
11271         (do_whole_program_analysis): Do map only after optimizing;
11272         set proper cgraph_state; use passmanager.
11273
11274 2010-04-19  DJ Delorie  <dj@redhat.com>
11275
11276         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
11277         POINTER_PLUS_EXPR and fix them.
11278
11279 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
11280
11281         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
11282         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
11283         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
11284         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
11285         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
11286         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
11287         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
11288         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
11289         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
11290         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
11291         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
11292
11293 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11294
11295         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
11296         (check_cond_move_block): Likewise.
11297         (cond_move_process_if_block): Likewise.
11298         (noce_find_if_block): Improve formatting.
11299         (find_if_header): Pass 0 to memset and tweak conditions.
11300         (cond_exec_find_if_block): Fix long lines and tweak conditions.
11301
11302 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
11303
11304         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
11305         for -gdwarf-4.
11306
11307         PR middle-end/43337
11308         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
11309         with non-local decl doesn't need chain.
11310
11311 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
11312
11313         * ira-color.c (allocno_reload_assign): Avoid accumulating
11314         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
11315
11316 2010-04-19  Martin Jambor  <mjambor@suse.cz>
11317
11318         * gimple.h (create_tmp_reg): Declare.
11319         * gimplify.c (create_tmp_reg): New function.
11320         (gimplify_return_expr): Use create_tmp_reg.
11321         (gimplify_omp_atomic): Likewise.
11322         (gimple_regimplify_operands): Likewise.
11323         * tree-dfa.c (make_rename_temp): Likewise.
11324         * tree-predcom.c (predcom_tmp_var): Likewise.
11325         (reassociate_to_the_same_stmt): Likewise.
11326         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
11327         (get_replaced_param_substitute): Likewise.
11328         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
11329         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
11330         * tree-ssa-pre.c (get_representative_for): Likewise.
11331         (create_expression_by_pieces): Likewise.
11332         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
11333         (create_tailcall_accumulator): Likewise.
11334
11335 2010-04-19  Martin Jambor  <mjambor@suse.cz>
11336
11337         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
11338         new_stmt.
11339         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
11340
11341 2010-04-19  Richard Guenther  <rguenther@suse.de>
11342
11343         PR tree-optimization/43796
11344         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
11345         from SCEV in the lattice.
11346         (vrp_visit_phi_node): Dump change.
11347
11348 2010-04-19  Richard Guenther  <rguenther@suse.de>
11349
11350         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
11351         * configure: Re-generated.
11352
11353 2010-04-19  Richard Guenther  <rguenther@suse.de>
11354
11355         PR tree-optimization/43783
11356         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
11357         constant ARRAY_REF operands two and three if possible.
11358
11359 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
11360
11361         PR target/43766
11362         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
11363
11364 2010-04-19  Jie Zhang  <jie@codesourcery.com>
11365
11366         PR target/43662
11367         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
11368
11369 2010-04-19  Ira Rosen  <irar@il.ibm.com>
11370
11371         PR tree-optimization/37027
11372         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
11373         and macro to access it.
11374         (vectorizable_reduction): Add argument.
11375         (vect_get_slp_defs): Likewise.
11376         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
11377         statements for possible use in SLP.
11378         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
11379         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
11380         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
11381         add new argument.
11382         (vectorizable_reduction): Likewise.
11383         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
11384         vect_get_slp_defs.
11385         (vectorizable_type_demotion, vectorizable_type_promotion,
11386         vectorizable_store): Likewise.
11387         (vect_analyze_stmt): Update call to vectorizable_reduction.
11388         (vect_transform_stmt): Likewise.
11389         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
11390         (vect_build_slp_tree): Fix indentation. Check that there are no loads
11391         from different interleaving chains in same node.
11392         (vect_slp_rearrange_stmts): New function.
11393         (vect_supported_load_permutation_p): Allow load permutations for
11394         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
11395         inside SLP nodes if necessary.
11396         (vect_analyze_slp_instance): Handle reductions.
11397         (vect_analyze_slp): Try to build SLP instances originating from groups
11398         of reductions.
11399         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
11400         (vect_get_constant_vectors): Create initial vectors for reductions
11401         according to reduction code. Add new argument.
11402         (vect_get_slp_defs): Add new argument, pass it to
11403         vect_get_constant_vectors.
11404         (vect_schedule_slp_instance): Remove SLP tree root statements.
11405
11406 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
11407
11408         * tree.h (ENUM_IS_SCOPED): Define.
11409         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
11410         for ENUM_IS_SCOPED enums.
11411
11412 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
11413
11414         * fold-const.c (fold_comparison): Use ssizetype.
11415         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
11416         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
11417         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
11418         * tree-object-size.c (compute_object_sizes): Use size_type_node.
11419
11420         * tree.h (initialize_sizetypes): Remove parameter.
11421         (build_common_tree_nodes): Remove second parameter.
11422         * stor-layout.c (initialize_sizetypes): Remove parameter.
11423         Always create an unsigned type.
11424         (set_sizetype): Assert that the passed type is unsigned and simplify.
11425         * tree.c (build_common_tree_nodes): Remove second parameter.
11426         Adjust call to initialize_sizetypes.
11427         * c-decl.c (c_init_decl_processing): Remove second argument in call to
11428         build_common_tree_nodes.
11429
11430 2010-04-18  Matthias Klose  <doko@ubuntu.com>
11431
11432         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
11433
11434 2010-04-18  Ira Rosen  <irar@il.ibm.com>
11435
11436         PR tree-optimization/43771
11437         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
11438         load permutation doesn't have gaps.
11439
11440 2010-04-18  Jan Hubicka  <jh@suse.cz>
11441
11442         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
11443         (sse_prologue_save_insn expander): Use new pattern.
11444         (sse_prologue_save_insn1): New pattern and splitter.
11445         (sse_prologue_save_insn): Update to deal also with 64bit aligned
11446         blocks.
11447         * i386.c (setup_incoming_varargs_64): Do not compute jump
11448         destination here.
11449         (ix86_gimplify_va_arg): Update alignment needed.
11450         (ix86_local_alignment): Do not align all local arrays to 128bit.
11451
11452 2010-04-17  Jan Hubicka  <jh@suse.cz>
11453
11454         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
11455
11456 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11457
11458         * arm.md (negdi2): Remove redundant code to force values into a
11459         register.
11460
11461 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11462
11463         * arm/bpabi.S: Add EABI alignment attributes to objects.
11464         * arm/bpabi-v6m.S: Likewise.
11465         * arm/crti.asm: Likewise.
11466         * arm/crtn.asm: Likewise.
11467         * arm/lib1funcs.asm: Likewise.
11468         * arm/libunwind.S: Likewise.
11469
11470 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11471
11472         * arm-protos.h (tune_params): New structure.
11473         * arm.c (current_tune): New variable.
11474         (arm_constant_limit): Delete.
11475         (struct processors): Add pointer to the tune parameters.
11476         (arm_slowmul_tune): New tuning option.
11477         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
11478         (all_cores): Adjust to pick up the tuning model.
11479         (arm_constant_limit): New function.
11480         (arm_override_options): Select the appropriate tuning model.  Delete
11481         initialization of arm_const_limit.
11482         (arm_split_constant): Use the new constant-limit model.
11483         (arm_rtx_costs): Pick up the current tuning model.
11484         * arm.md (is_strongarm, is_xscale): Delete.
11485         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
11486         for Xscale variant architectures.
11487         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
11488
11489 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11490
11491         * config/arm/arm.c (arm_gen_constant): Remove unused variable
11492         can_shift.
11493         (arm_rtx_costs_1): Remove unused variable extra_cost.
11494         (arm_unwind_emit_set): Use variable offset.
11495         (thumb1_output_casesi): Remove unused variable flags.
11496
11497 2010-04-16  Jeff Law  <law@redhat.com>
11498
11499         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
11500         needing assignment rather than doing a two-phase assignment.  Remove
11501         unused variable 'm'.
11502
11503 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11504
11505         PR bootstrap/43767
11506         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
11507
11508 2010-04-16  Doug Kwan  <dougkwan@google.com>
11509
11510         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
11511         (next_operand_entry_id): New static variable.
11512         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
11513         (add_to_ops_vec): Assigned unique ID to operand entry.
11514         (struct oecount_s): New field ID.
11515         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
11516         (undistribute_ops_list): Assign unique IDs to oecounts.
11517         (init_reassoc): reset next_operand_entry_id.
11518
11519 2010-04-16  Doug Kwan  <dougkwan@google.com>
11520
11521         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
11522         missing left parenthesis.
11523
11524 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
11525
11526         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
11527         *btdi_rex64 using SWI48 mode iterator.
11528         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
11529         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
11530         *jcc_btdi_mask_rex64.
11531
11532 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
11533
11534         * double-int.h (tree_to_double_int): Convert to macro.
11535         * double-int.c (tree_to_double_int): Remove.
11536
11537 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11538
11539         PR debug/43762
11540         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
11541         with want_address 2 and in case a single element list might be
11542         possible, call it again with want_address 0.
11543
11544 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
11545
11546         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
11547         case 'W' print operands for HI mode.
11548         * config/h8300/h8300.h (Y0, Y2) : New constraints.
11549         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
11550         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
11551         * config/h8300/predicate.md (bit_register_indirect_operand): New.
11552
11553         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
11554
11555         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
11556         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
11557         #xx:3 and #xx:4 mode.
11558
11559         * config/h8300/h8300.md (inverted load with HImode dest): Add
11560         support for H8300SX.
11561
11562         * config/h8300/predicate.md (bit_operand): Allow immediate values that
11563         satisfy 'U' constraint.
11564
11565 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11566
11567         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
11568         * configure: Regenerate.
11569         * config.in: Regenerate.
11570         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
11571         works.
11572
11573 2010-04-16  Richard Guenther  <rguenther@suse.de>
11574
11575         * tree.h (struct tree_decl_minimal): Move pt_uid ...
11576         (struct tree_decl_common): ... here.
11577         (DECL_PT_UID): Adjust.
11578         (SET_DECL_PT_UID): Likewise.
11579         (DECL_PT_UID_SET_P): Likewise.
11580
11581 2010-04-16  Richard Guenther  <rguenther@suse.de>
11582
11583         PR tree-optimization/43572
11584         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
11585         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
11586         * tree-flow.h (is_call_clobbered): Remove.
11587         * tree-flow-inline.h (is_call_clobbered): Likewise.
11588         * tree-dfa.c (dump_variable): Do not dump call clobber state.
11589         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
11590         (execute_return_slot_opt): Adjust.
11591         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
11592         check for call clobbered vars here.
11593         (find_tail_calls): Move tailcall verification to the
11594         proper place.
11595
11596 2010-04-16  Diego Novillo  <dnovillo@google.com>
11597
11598         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
11599
11600 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11601
11602         PR target/40603
11603         * config/arm/arm.md (cbranchqi4): New pattern.
11604         * config/arm/predicates.md (const0_operand,
11605         cbranchqi4_comparison_operator): New predicates.
11606
11607 2010-04-16  Richard Guenther  <rguenther@suse.de>
11608
11609         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
11610         (dump_gimple_stmt): Likewise.
11611
11612 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11613
11614         * recog.h (struct recog_data): New field is_operator.
11615         (struct insn_operand_data): New field is_operator.
11616         * recog.c (extract_insn): Set recog_data.is_operator.
11617         * genoutput.c (output_operand_data): Emit code to set the
11618         is_operator field.
11619         * reload.c (find_reloads): Use it rather than testing for an
11620         empty constraint string.
11621
11622         PR target/41514
11623         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
11624         If the previous insn is a cbranchsi4_insn with the same arguments,
11625         omit the compare instruction.
11626
11627         * config/arm/arm.md (addsi3_cbranch): If destination is a high
11628         register, inputs must be low registers and we need a low register
11629         scratch.  Handle alternative 2 like alternative 3.
11630
11631 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11632
11633         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
11634         don't call get_addr on both.  If one expression is a VALUE and
11635         the other a REG, check VALUE's locs if the REG isn't among them.
11636
11637 2010-04-16  Christian Bruel  <christian.bruel@st.com>
11638
11639         * config/sh/sh.h (sh_frame_pointer_required): New function.
11640         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
11641         (flag_omit_frame_pointer) Set.
11642         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
11643         (rounded_frame_size): Adjust size with outgoing_args_size.
11644         (sh_set_return_address): Must return from stack pointer.
11645         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
11646         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
11647         (ACCUMULATE_OUTGOING_ARGS): Define.
11648         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
11649         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
11650
11651 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11652
11653         PR target/43471
11654         * config/sh/sh.c (sh_legitimize_reload_address): Use
11655         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
11656         Remove a unneeded check for offset_base.
11657
11658 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
11659
11660         * configure: Regenerated.
11661
11662 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11663
11664         * config/s390/s390.c (s390_call_save_register_used): Switch back
11665         to HARD_REGNO_NREGS.
11666
11667 2010-04-15  Richard Guenther  <rguenther@suse.de>
11668
11669         * alias.c (alias_set_subset_of): Handle alias-set zero
11670         child properly.
11671
11672 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
11673             Julian Brown  <julian@codesourcery.com>
11674
11675         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
11676         alternatives according to use of high and low regs.
11677         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
11678         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
11679         optimizing for size on Thumb-2.
11680
11681 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
11682
11683         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
11684
11685 2010-04-15  Richard Guenther  <rguenther@suse.de>
11686
11687         * tree-ssa-structalias.c (struct variable_info): Add
11688         is_fn_info flag.
11689         (new_var_info): Initialize it.
11690         (dump_constraints): Support printing last added constraints.
11691         (debug_constraints): Adjust.
11692         (dump_constraint_graph): Likewise.
11693         (make_heapvar_for): Check for NULL cfun.
11694         (get_function_part_constraint): New function.
11695         (get_fi_for_callee): Likewise.
11696         (find_func_aliases): Properly implement IPA PTA constraints.
11697         (process_ipa_clobber): New function.
11698         (find_func_clobbers): Likewise.
11699         (insert_into_field_list_sorted): Remove.
11700         (create_function_info_for): Properly allocate vars for IPA mode.
11701         Do not use insert_into_field_list_sorted.
11702         (create_variable_info_for): Properly generate constraints for
11703         global vars in IPA mode.
11704         (dump_solution_for_var): Always dump the solution.
11705         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
11706         (find_what_var_points_to): Adjust.
11707         (pt_solution_set): Change.
11708         (pt_solution_ior_into): New function.
11709         (pt_solution_empty_p): Export.
11710         (pt_solution_includes_global): Adjust.
11711         (pt_solution_includes_1): Likewise.
11712         (pt_solutions_intersect_1): Likewise.
11713         (dump_sa_points_to_info): Check some invariants.
11714         (solve_constraints): Move constraint dumping ...
11715         (compute_points_to_sets): ... here.
11716         (ipa_pta_execute): ... and here.
11717         (compute_may_aliases): Do not re-compute points-to info
11718         locally if IPA info is available.
11719         (ipa_escaped_pt): New global var.
11720         (ipa_pta_execute): Properly implement IPA PTA.
11721         * tree-into-ssa.c (dump_decl_set): Support dumping
11722         decls not in referenced-vars.
11723         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
11724         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
11725         (dump_points_to_solution): Likewise.
11726         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
11727         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
11728         (remap_gimple_stmt): Reset call clobber/use information if necessary.
11729         (copy_decl_to_var): Copy DECL_PT_UID.
11730         (copy_result_decl_to_var): Likewise.
11731         * tree.c (make_node_stat): Initialize DECL_PT_UID.
11732         (copy_node_stat): Copy it.
11733         * tree.h (DECL_PT_UID): New macro.
11734         (SET_DECL_PT_UID): Likewise.
11735         (DECL_PT_UID_SET_P): Likewise.
11736         (struct tree_decl_minimal): Add pt_uid member.
11737         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
11738         (pt_solution_empty_p): Declare.
11739         (pt_solution_set): Adjust.
11740         (ipa_escaped_pt): Declare.
11741         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
11742         * gimple-pretty-print.c (pp_points_to_solution): New function.
11743         (dump_gimple_call): Dump call clobber/use information.
11744         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
11745         * tree-pass.h (TDF_ALIAS): New dump option.
11746         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
11747         * doc/invoke.texi (-fipa-pta): Update documentation.
11748
11749 2010-04-15  Richard Guenther  <rguenther@suse.de>
11750
11751         * Makefile.in (OBJS-common): Add gimple-fold.o.
11752         (gimple-fold.o): New rule.
11753         * tree.h (maybe_fold_offset_to_reference,
11754         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
11755         prototypes ...
11756         * gimple.h: ... here.
11757         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
11758         may_propagate_address_into_dereference): Move prototypes ...
11759         * gimple.h: ... here.
11760         * tree-ssa-ccp.c (get_symbol_constant_value,
11761         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
11762         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
11763         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
11764         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
11765         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
11766         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
11767         gimplify_and_update_call_from_tree): Move ...
11768         * gimple-fold.c: ... here.  New file.
11769         (ccp_fold_builtin): Rename to ...
11770         (gimple_fold_builtin): ... this.
11771         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
11772
11773 2010-04-15  Richard Guenther  <rguenther@suse.de>
11774
11775         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
11776         fit_double_type, force_fit_type_double, add_double_with_sign,
11777         neg_double, mul_double_with_sign, lshift_double, rshift_double,
11778         lrotate_double, rrotate_double, div_and_round_double): Move ...
11779         * double-int.c: ... here.
11780         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
11781         add_double, neg_double, mul_double_with_sign, mul_double,
11782         lshift_double, rshift_double, lrotate_double, rrotate_double,
11783         div_and_round_double): Move prototypes ...
11784         * double-int.h: ... here.
11785
11786 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
11787
11788         PR target/43742
11789         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
11790         matching constraints to ensure inputs match the output.
11791
11792 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11793
11794         PR target/43742
11795         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
11796         in an input-only operand.
11797
11798 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
11799
11800         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
11801         (double_int_not, double_int_lshift, double_int_rshift): Declare.
11802         (double_int_negative_p): Convert to static inline function.
11803         * double-int.c (double_int_lshift, double_int_lshift): New functions.
11804         (double_int_negative_p): Remove.
11805         * tree.h (lshift_double, rshift_double):
11806         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
11807         * fold-const.c (fold_convert_const_int_from_real,
11808         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
11809         (lshift_double): Change type of arith argument to bool.
11810         (rshift_double): Change type of arith argument to bool. Correct
11811         comment.
11812         * expmed.c (mask_rtx, lshift_value): (Ditto.).
11813
11814 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
11815
11816         PR target/21803
11817         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
11818         at the start and end of the then/else blocks, and omit them from the
11819         conversion.
11820         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
11821         argument; all callers changed.  Pass zero to old_insns_match_p instead.
11822         (flow_find_head_matching_sequence): New function.
11823         (old_insns_match_p): Check REG_EH_REGION notes for calls.
11824         * basic-block.h (flow_find_cross_jump,
11825         flow_find_head_matching_sequence): Declare functions.
11826
11827 2010-04-14  Jason Merrill  <jason@redhat.com>
11828
11829         PR c++/36625
11830         * c-common.c (attribute_takes_identifier_p): New fn.
11831         * c-common.h: Declare it.
11832
11833 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11834
11835         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
11836         splitter condition.
11837         (*udivmod<mode>4): Ditto.
11838
11839 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11840
11841         * config/i386/i386.md (maxmin_int): Rename code attribute from
11842         maxminiprefix and update all users.
11843         (maxmin_float): Ditto from maxminfprefix.
11844         (logic): Ditto from logicprefix.
11845         (absneg_mnemonic): Ditto from absnegprefix.
11846         * config/i386/mmx.md: Update all users of maxminiprefix,
11847         maxminfprefix and logicprefix for rename.
11848         * config/i386/sse.md: Ditto.
11849         * config/i386/sync.md (sync_<code><mode>): Update for
11850         logicprefix rename.
11851
11852 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11853
11854         PR 42966
11855         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
11856         warnings converted to errors.
11857
11858 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11859
11860         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
11861         used insn_type variable.
11862         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
11863         to avoid set-but-not-used warning.
11864
11865 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11866
11867         * df-core.c (df_ref_debug): Change format string placeholder
11868         from 0x%x to %#x.
11869         * dwarf2asm.c (dw2_asm_output_data_raw,
11870         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
11871         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
11872         * dwarf2out.c (output_cfi, output_cfi_directive,
11873         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
11874         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
11875         Ditto.
11876         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
11877         * print-rtl.c (print_rtx): Ditto.
11878
11879 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11880
11881         PR middle-end/42694
11882         * builtins.c (expand_builtin_pow_root): New function to expand pow
11883         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
11884         series of sqrt and cbrt calls under -ffast-math.
11885         (expand_builtin_pow): Call it.
11886
11887 2010-04-14  Michael Matz  <matz@suse.de>
11888
11889         PR tree-optimization/42963
11890         * tree-cfg.c (touched_switch_bbs): New static variable.
11891         (group_case_labels_stmt): New function broken out from ...
11892         (group_case_labels): ... here, use the above.
11893         (start_recording_case_labels): Allocate touched_switch_bbs.
11894         (end_recording_case_labels): Deallocate it, call
11895         group_case_labels_stmt.
11896         (gimple_redirect_edge_and_branch): Remember index of affected BB.
11897
11898 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11899
11900         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
11901         from insn template.
11902
11903 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11904
11905         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
11906
11907 2010-04-13  Jan Hubicka  <jh@suse.cz>
11908
11909         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
11910         of optimized out static functions.
11911         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
11912         cost computation.  Also sanity check for overflows.
11913         (update_caller_keys): Update cgraph_edge_badness call; properly
11914         update fibheap and sanity check that it is up to date.
11915         (add_new_edges_to_heap): Update cgraph_edge_badness.
11916         (cgraph_decide_inlining_of_small_function): Likewise;
11917         add sanity checking that badness in heap is up to date;
11918         improve dumping of reason; Update badness of calls to the
11919         offline copy of function currently inlined; dump badness
11920         of functions not inlined because of unit growth limits.
11921
11922 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
11923
11924         PR middle-end/32628
11925         * c-common.c (pointer_int_sum): Disregard overflow that occured only
11926         because of sign-extension change when converting to sizetype here...
11927         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
11928
11929         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
11930         the folding to constants.  Remove redundant final conversion.
11931         (fold_binary) <associate>: Do not associate if the re-association of
11932         constants alone overflows.
11933         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
11934         to the end of the list.
11935         (multiple_of_p) <COND_EXPR>: New case.
11936
11937 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11938
11939         * opt-functions.awk (opt_sanitized_name): New.
11940         (opt_enum): New.
11941         * optc-gen.awk: Use it
11942         * opth-gen.awk: Use it.
11943
11944 2010-04-13  Martin Jambor  <mjambor@suse.cz>
11945
11946         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
11947         (sra_modify_assign): Delete stmts loading dead data even if racc has no
11948         children.  Call replace_uses_with_default_def_ssa_name to handle
11949         SSA_NAES on lhs.
11950
11951 2010-04-13  Michael Matz  <matz@suse.de>
11952
11953         PR middle-end/43730
11954         * builtins.c (expand_builtin_interclass_mathfn): Also create
11955         a register if the predicate doesn't match.
11956
11957 2010-04-13  Diego Novillo  <dnovillo@google.com>
11958
11959         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
11960         * c-pch.c: Include timevar.h.
11961         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
11962         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
11963         * ggc-common.c: Include timevar.h.
11964         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
11965         * timevar.def (TV_PCH_SAVE): Define.
11966         (TV_PCH_CPP_SAVE): Define.
11967         (TV_PCH_PTR_REALLOC): Define.
11968         (TV_PCH_PTR_SORT): Define.
11969         (TV_PCH_RESTORE): Define.
11970         (TV_PCH_CPP_RESTORE): Define.
11971
11972 2010-04-13  Michael Matz  <matz@suse.de>
11973
11974         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
11975         into MINUS_EXPRs.
11976         (can_reassociate_p): New function.
11977         (break_up_subtract_bb, reassociate_bb): Use it.
11978
11979 2010-04-13  Richard Guenther  <rguenther@suse.de>
11980
11981         PR bootstrap/43737
11982         * builtins.c (c_readstr): Fix assert.
11983
11984 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
11985
11986         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
11987         when generating cltd insn.
11988
11989         (*ashl<mode>3_1): Remove special handling for register operand 2.
11990         (*ashlsi3_1_zext): Ditto.
11991         (*ashlhi3_1): Ditto.
11992         (*ashlhi3_1_lea): Ditto.
11993         (*ashlqi3_1): Ditto.
11994         (*ashlqi3_1_lea): Ditto.
11995         (*<shiftrt_insn><mode>3_1): Ditto.
11996         (*<shiftrt_insn>si3_1_zext): Ditto.
11997         (*<shiftrt_insn>qi3_1_slp): Ditto.
11998         (*<rotate_insn><mode>3_1): Ditto.
11999         (*<rotate_insn>si3_1_zext): Ditto.
12000         (*<rotate_insn>qi3_1_slp): Ditto.
12001
12002 2010-04-13  Richard Guenther  <rguenther@suse.de>
12003
12004         * tree-ssa-structalias.c (callused_id): Remove.
12005         (call_stmt_vars): New.
12006         (get_call_vi): Likewise.
12007         (lookup_call_use_vi): Likewise.
12008         (lookup_call_clobber_vi): Likewise.
12009         (get_call_use_vi): Likewise.
12010         (get_call_clobber_vi): Likewise.
12011         (make_transitive_closure_constraints): Likewise.
12012         (handle_const_call): Adjust to do per-call call-used handling.
12013         (handle_pure_call): Likewise.
12014         (find_what_var_points_to): Remove general callused handling.
12015         (init_base_vars): Likewise.
12016         (init_alias_vars): Initialize call_stmt_vars.
12017         (compute_points_to_sets): Process call-used and call-clobbered
12018         vars for call statements.
12019         (delete_points_to_sets): Free call_stmt_vars.
12020
12021 2010-04-13  Richard Guenther  <rguenther@suse.de>
12022
12023         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
12024         Only add RW dependence for dependence distance zero.
12025         Adjust maximal vectorization factor according to dependences.
12026         Move alignment handling ...
12027         (vect_find_same_alignment_drs): ... here.  New function.
12028         (vect_analyze_data_ref_dependences): Adjust.
12029         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
12030         (vect_analyze_data_refs): Adjust minimal vectorization factor
12031         according to data references.
12032         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
12033         dependences before determining the vectorization factor.
12034         Analyze alignment after determining the vectorization factor.
12035         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
12036         dependences before alignment.
12037         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
12038         Adjust prototype.
12039         (vect_analyze_data_refs): Likewise.
12040         (MAX_VECTORIZATION_FACTOR): New define.
12041
12042 2010-04-13  Duncan Sands  <baldrick@free.fr>
12043
12044         * except.h (lang_eh_type_covers): Remove.
12045         * except.c (lang_eh_type_covers): Likewise.
12046
12047 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12048             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12049
12050         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
12051         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
12052         UNITS_PER_LONG where it is ABI relevant.
12053         (s390_return_addr_rtx): Likewise.
12054         (s390_back_chain_rtx): Likewise.
12055         (s390_frame_area): Likewise.
12056         (s390_frame_info): Likewise.
12057         (s390_initial_elimination_offset): Likewise.
12058         (save_gprs): Likewise.
12059         (s390_emit_prologue): Likewise.
12060         (s390_emit_epilogue): Likewise.
12061         (s390_function_arg_advance): Likewise.
12062         (s390_function_arg): Likewise.
12063         (s390_va_start): Likewise.
12064         (s390_gimplify_va_arg): Likewise.
12065         (s390_function_profiler): Likewise.
12066         (s390_optimize_prologue): Likewise.
12067         (s390_rtx_costs): Likewise.
12068         (s390_secondary_reload): Likewise.
12069         (s390_promote_function_mode): Likewise.
12070         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
12071         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
12072         registers available.
12073         (s390_unwind_word_mode): New function.
12074         (s390_function_value): Split 64 bit values into register pair if
12075         used as return value.
12076         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
12077         function call parameters.  Handle parallels.
12078         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
12079         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
12080         (DWARF_CIE_DATA_ALIGNMENT): New macro.
12081         (s390_expand_setmem): Remove unused variable src_addr.
12082         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
12083         deal with 64 bit registers.
12084         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
12085         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
12086         (UNITS_PER_LONG): New macro.
12087         * libjava/include/s390-signal.h: Define extended ucontext
12088         structure containing the upper halfs of the 64 bit registers.
12089
12090 2010-04-13  Simon Baldwin  <simonb@google.com>
12091
12092         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
12093
12094 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
12095
12096         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
12097         rvalue on the RHS if the LHS is of a non-renamable type.
12098         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
12099
12100 2010-04-13  Matthias Klose  <doko@ubuntu.com>
12101
12102         * gcc.c (cc1_options): Handle -iplugindir before processing
12103         the cc1 spec. Only add -iplugindir once.
12104         (cpp_unique_options): Add -iplugindir option if -fplugin* options
12105         found.
12106         * common.opt (iplugindir): Remove `Separate' property, initialize.
12107         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
12108         option.
12109         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
12110         (distclean): Remove plugin dir.
12111         * doc/invoke.texi: Document -iplugindir.
12112
12113 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
12114
12115         * doc/plugins.texi (Loading Plugins): Document short
12116         -fplugin=foo option.
12117         (Plugin API): Mention default_plugin_dir_name function.
12118
12119         * gcc.c (find_file_spec_function): Add new declaration.
12120         (static_spec_func): Use it for "find-file".
12121         (find_file_spec_function): Add new function.
12122         (cc1_options): Add -iplugindir option if -fplugin* options found.
12123
12124         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
12125
12126         * plugin.c (add_new_plugin): Updated comment, and handle short
12127         plugin name.
12128         (default_plugin_dir_name): Added new function.
12129
12130         * common.opt (iplugindir): New option to set the plugin directory.
12131
12132 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
12133
12134         * config/i386/i386.md (any_rotate): New code iterator.
12135         (rotate_insn): New code attribute.
12136         (rotate): Ditto.
12137         (SWIM124): New mode iterator.
12138         (<rotate_insn>ti3): New expander.
12139         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
12140         any_rotate code iterator.
12141         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
12142         using any_rotate code iterator and SWIM124 mode iterator.
12143         (ix86_rotlti3): New insn_and_split pattern.
12144         (ix86_rotrti3): Ditto.
12145         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
12146         ix86_rotl{di,ti}3 patterns.
12147         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
12148         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
12149         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
12150         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
12151         code iterator and SWI mode iterator.
12152         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
12153         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
12154         code iterator.
12155         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
12156         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
12157         (bswap rotatert splitter): Add splitter.
12158         (bswap splitter): Macroize splitter using any_rotate code iterator.
12159         Add insn predicate to split only for TARGET_USE_XCHGB or when
12160         optimizing function for size.
12161
12162 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
12163
12164         * config/pa/pa.c (emit_move_sequence): Remove use of
12165         deleted variable flag_argument_noalias.
12166
12167 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12168
12169         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
12170         configurations.
12171         Add to unsupported targets list.
12172         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
12173         sparc*-sun-solaris2.[567]* from target lists.
12174         * configure: Regenerate.
12175         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
12176         removal.
12177         Remove Solaris 7 patch references.
12178         (Specific, sparc-sun-solaris2.7): Removed.
12179         (sparc-sun-solaris2*): Update Solaris 7 example.
12180         (sparc64-*-solaris2*): Likewise.
12181
12182 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12183
12184         * config.build (alpha*-dec-osf4*): Remove.
12185         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
12186         of obsolete configurations.
12187         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
12188         support.
12189         * config/alpha/t-osf4: Renamed to ...
12190         * config/alpha/t-osf5: ... this.
12191         * config/alpha/osf.h: Renamed to ...
12192         * config/alpha/osf5.h: ... this.
12193         Merged old osf5.h contents.
12194         Update comments.
12195         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
12196         (EXTRA_SPECS): Removed.
12197         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
12198         reflect removal of Tru64 UNIX V4.0/V5.0 support.
12199         Document that.
12200
12201 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12202
12203         * doc/contrib.texi (Contributors, Rainer Orth): Update.
12204
12205 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
12206
12207         PR/43702
12208         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
12209         __thiscall convention.
12210
12211 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
12212
12213         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
12214         orig_base.
12215         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
12216
12217 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
12218
12219         * function.c (assign_parms_initialize_all): Add unused attribute
12220         to fntype.
12221
12222 2010-04-12  Richard Guenther  <rguenther@suse.de>
12223
12224         * gsstruct.def (GSS_CALL): New.
12225         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
12226         * gimple.h: Include tree-ssa-alias.h.
12227         (struct gimple_statement_call): New.
12228         (union gimple_statement_struct_d): Add gimple_call member.
12229         (gimple_call_reset_alias_info): Declare.
12230         (gimple_call_use_set): New function.
12231         (gimple_call_clobber_set): Likewise.
12232         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
12233         * gimple.c (gimple_call_reset_alias_info): New function.
12234         (gimple_build_call_1): Call it.
12235         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12236         * tree-inline.c (remap_gimple_stmt): Likewise.
12237         (expand_call_inline): Remove callused handling.
12238         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
12239         * tree-dfa.c (dump_variable): Likewise.
12240         * tree-parloops.c (parallelize_loops): Likewise.
12241         * tree-ssa.c (init_tree_ssa): Likewise.
12242         (delete_tree_ssa): Likewise.
12243         * tree-flow-inline.h (is_call_used): Remove.
12244         * tree-flow.h (struct gimple_df): Remove callused member.
12245         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
12246         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
12247         (ref_maybe_used_by_call_p_1): Simplify.
12248         (call_may_clobber_ref_p_1): Likewise.
12249         * tree-ssa-structalias.c (compute_points_to_sets): Set
12250         the call stmt used and clobbered sets.
12251         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
12252         (find_tail_calls): Verify the tail call.
12253
12254 2010-04-12  Richard Guenther  <rguenther@suse.de>
12255
12256         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
12257         single-iteration always-inline inlining.
12258         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
12259         (cgraph_decide_inlining): Do not handle always-inline specially.
12260         (try_inline): Remove always-inline cycle detection special case.
12261         Do not recurse on always-inlines.
12262         (cgraph_early_inlining): Do not iterate if not optimizing.
12263         (cgraph_gate_early_inlining): remove.
12264         (pass_early_inline): Run unconditionally.
12265         (gate_cgraph_decide_inlining): New function.
12266         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
12267         not inlining or optimizing.
12268         (cgraph_decide_inlining_of_small_functions): Also consider
12269         always-inline functions.
12270         (cgraph_default_inline_p): Return true for nodes which should
12271         disregard inline limits.
12272         (estimate_function_body_sizes): Assume zero size and time for
12273         nodes which are marked as disregarding inline limits.
12274         (cgraph_decide_recursive_inlining): Do not perform recursive
12275         inlining on always-inline nodes.
12276
12277 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
12278
12279         PR bootstrap/43699
12280         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
12281         for exprs satisfying handled_component_p.
12282
12283 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
12284
12285         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
12286         non-constant aggregate elements.
12287
12288         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
12289         is a real initialization.
12290
12291 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
12292
12293         PR c/36774
12294         * c-decl.c (start_function): Move forward check for nested function.
12295
12296 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12297
12298         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
12299         * config/sh/sh.c: Include reload.h.
12300         (sh_legitimize_reload_address): New.
12301         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
12302         sh_legitimize_reload_address.
12303
12304 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12305
12306         * config/sh/sh.md (*movqi_pop): New insn pattern.
12307         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
12308
12309 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12310
12311         * config/i386/i386.md (any_shiftrt): New code iterator.
12312         (shiftrt_insn): New code attribute.
12313         (shiftrt): Ditto.
12314         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
12315         using any_shiftrt code iterator.
12316         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
12317         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
12318         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
12319         pattern from corresponding peephole2 patterns.
12320         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
12321         using any_shiftrt code iterator.
12322         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
12323         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
12324         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
12325         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
12326         *{ashr,lshr}<mode>3_cmp_zext.
12327         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
12328
12329 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12330
12331         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
12332         scratch register.
12333         (*lshr<mode>3_cconly): Ditto.
12334
12335 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12336
12337         * config/i386/i386.md (lshr<mode>3): Macroize expander from
12338         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
12339         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12340         pattern from *lshr{di,ti}3_1 and corresponding splitters using
12341         DWI mode iterator.
12342         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
12343         from corresponding peephole2 patterns.
12344         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
12345         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
12346         and *lshrdi3_1_rex64 using SWI mode iterator.
12347         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
12348         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
12349         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
12350         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
12351         and *lshrdi3_cmp_rex64 using SWI mode iterator.
12352         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
12353         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
12354         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
12355         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
12356         SWI mode iterator.
12357
12358 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
12359
12360         * config/i386/i386.md (ashr<mode>3): Macroize expander from
12361         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
12362         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12363         pattern from *ashr{di,ti}3_1 and corresponding splitters using
12364         DWI mode iterator.
12365         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
12366         from corresponding peephole2 patterns.
12367         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
12368         (ashrsi3_cvt): Rename from ashrsi3_31.
12369         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
12370         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
12371         and x86_64_shift_adj_3 using SWI48 mode iterator.
12372         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
12373         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
12374         and *ashrdi3_1_rex64 using SWI mode iterator.
12375         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
12376         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
12377         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
12378         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
12379         and *ashrdi3_cmp_rex64 using SWI mode iterator.
12380         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
12381         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
12382         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
12383         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
12384         SWI mode iterator.
12385         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
12386         * config/i386/i386.c (ix86_split_ashr): Update for renamed
12387         x86_shift<mode>_adj_3 expanders.
12388
12389 2010-04-10  Wei Guozhi  <carrot@google.com>
12390
12391         PR target/42601
12392         * config/arm/arm.c (arm_pic_static_addr): New function.
12393         (legitimize_pic_address): Call arm_pic_static_addr when it detects
12394         a static symbol.
12395         (arm_output_addr_const_extra): Output expression for new pattern.
12396         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
12397
12398 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
12399
12400         * ira-costs.c (record_reg_classes): Ignore alternatives that are
12401         not enabled.
12402
12403         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
12404         * web.c: Include "insn-config.h" and "recog.h".
12405         (union_match_dups): New function.
12406         (web_main): Call it.
12407         (union_defs): Don't try to recognize match_dups.
12408
12409         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
12410         if doing so would replace the entire pattern.
12411
12412 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
12413
12414         PR target/43707
12415         PR target/43709
12416         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
12417         and splitter pattern.  Change splitter operand 1 predicate to
12418         nonmemory_operand.
12419
12420 2010-04-09  Martin Jambor  <mjambor@suse.cz>
12421
12422         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
12423         lattices are addresses of CONST_DECLs with the same initial value.
12424         (ipcp_print_all_lattices): Print values of CONST_DECLs.
12425         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
12426
12427 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
12428             Bernd Schmidt  <bernds@codesourcery.com>
12429
12430         * loop-invariant.c (replace_uses): New static function.
12431         (move_invariant_reg): Use it to ensure we can replace the uses.
12432
12433 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12434
12435         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
12436         function template.
12437         (picochip_override_options): Enable section anchors only above -O1.
12438         (picochip_reorg): Fixed a couple of build warnings.
12439
12440 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12441
12442         * configure.ac (plugin -rdynamic test): Log result.
12443         * configure: Regenerate.
12444         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
12445         (RDYNAMIC_SPEC): Define.
12446         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
12447
12448 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12449
12450         * configure.ac: Determine Sun ld version numbers.
12451         (comdat_group): Restrict GNU ld version checks to gld.
12452         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
12453         (enable_comdat): Support --enable-comdat.
12454         * configure: Regenerate.
12455         * doc/install.texi (Configuration): Document --enable-comdat.
12456
12457 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12458
12459         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
12460         * config/sol2-gld.h: ... here.
12461         * config.gcc (sparc*-*-solaris2*): Reflect this.
12462         (i[34567]86-*-solaris2*): Use it.
12463
12464 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
12465
12466         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
12467         setup_clocks_p.
12468         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
12469
12470 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12471
12472         PR 42965
12473         * diagnostic.c (diagnostic_initialize): Initialize
12474         some_warnings_are_errors.
12475         (diagnostic_finish): New.
12476         (diagnostic_action_after_output): Call it before exiting.
12477         (diagnostic_report_diagnostic): Do not print message here. Set
12478         some_warnings_are_errors.
12479         * diagnostic.h (diagnostic_context): Delete
12480         issue_warnings_are_errors_message. Add some_warnings_are_errors.
12481         (diagnostic_finish): Declare.
12482         * toplev.c (toplev_main): Call it before exit.
12483
12484 2010-04-09  Jason Merrill  <jason@redhat.com>
12485
12486         PR c++/42623
12487         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
12488         for incomplete type.
12489
12490         PR c++/41788
12491         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
12492         based on a warning flag.
12493
12494 2010-04-09  Richard Guenther  <rguenther@suse.de>
12495
12496         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
12497
12498 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
12499
12500         PR bootstrap/43684
12501         * varasm.c (default_assemble_visibility): Wrap vars that are
12502         set, but unused, by targets without GAS.
12503         * config/rs6000/rs6000.c (paired_emit_vector_compare):
12504         Remove set, but unused, vars.
12505         (rs6000_legitimize_tls_address): Likewise.
12506         (altivec_expand_dst_builtin): Likewise.
12507         * config/darwin.c (machopic_classify_symbol): Likewise.
12508         (machopic_indirection_name): Likewise.
12509
12510 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
12511
12512         * config/i386/i386.md (DWI): New mode iterator.
12513         (S): New mode attribute.
12514         (shift_operand): Ditto.
12515         (shift_immediate_operand): Ditto.
12516         (ashl_input_operand): Ditto.
12517         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
12518         using SDWIM mode iterator.
12519         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12520         pattern from *ashl{di,ti}3_1 and corresponding splitters using
12521         DWI mode iterator.
12522         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
12523         from corresponding peephole2 patterns.
12524         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
12525         and x86_64_shift_adj_1 using SWI48 mode iterator.
12526         (x86_shift<mode>_adj_2): Ditto.
12527         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
12528         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
12529         using SWI48 mode iterator.
12530         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
12531         *ashldi3_cmp_rex64 using SWI mode iterator.
12532         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
12533         *ashldi3_cconly_rex64 using SWI mode iterator.
12534         * config/i386/i386.c (ix86_split_ashl): Update for renamed
12535         x86_shift<mode>_adj_{1,2}.
12536         (ix86_split_ashr): Ditto.
12537         (ix86_split_lshr): Ditto.
12538
12539 2010-04-09  Richard Guenther  <rguenther@suse.de>
12540
12541         * target.h (builtin_conversion): Pass in input and output types.
12542         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
12543         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
12544         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
12545         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
12546
12547         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
12548         Handle AVX modes.
12549         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
12550
12551 2010-04-09  Richard Guenther  <rguenther@suse.de>
12552
12553         PR target/43152
12554         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
12555
12556 2010-04-09  Richard Guenther  <rguenther@suse.de>
12557
12558         * tree-vectorizer.h (struct _stmt_vec_info): Document
12559         that vectype is the type of the LHS.
12560         (supportable_widening_operation, supportable_narrowing_operation):
12561         Get both input and output vector types as arguments.
12562         (vect_is_simple_use_1): Declare.
12563         (get_same_sized_vectype): Likewise.
12564         * tree-vect-loop.c (vect_determine_vectorization_factor):
12565         Set STMT_VINFO_VECTYPE to the vector type of the def.
12566         (vectorizable_reduction): Adjust.
12567         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
12568         Adjust.  Specify the output vector type.
12569         (vect_pattern_recog_1): Adjust.
12570         * tree-vect-stmts.c (get_same_sized_vectype): New function.
12571         (vectorizable_call): Adjust.
12572         (vectorizable_conversion): Likewise.
12573         (vectorizable_operation): Likewise.
12574         (vectorizable_type_demotion): Likewise.
12575         (vectorizable_type_promotion): Likewise.
12576         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
12577         the def.
12578         (vect_is_simple_use_1): New function.
12579         (supportable_widening_operation): Get both input and output
12580         vector types.
12581         (supportable_narrowing_operation): Likewise.
12582         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
12583
12584 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
12585
12586         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
12587         __thiscall and _thiscall as predefined macros.
12588         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
12589         thiscall attribute handling.
12590         (ix86_comp_type_attributes): Likewise.
12591         (ix86_function_regparm): Likewise.
12592         (ix86_return_pops_args): Likewise.
12593         (init_cumulative_args): Likewise.
12594         (find_drap_reg): Likewise.
12595         (ix86_static_chain): Likewise.
12596         (x86_this_parameter): Likewise.
12597         (x86_output_mi_thunk): Likewise.
12598         (ix86_attribute_table): Add description for thiscall attribute.
12599         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
12600         * doc/extend.texi: Add documentation for thiscall.
12601
12602 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12603
12604         PR c++/28584
12605         * c.opt (Wint-to-pointer-cast): Available in C++.
12606         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
12607
12608 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
12609
12610         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
12611         * calls.c (expand_call): Pass the function type to aggregate_value_p.
12612         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
12613         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
12614         function type instead.  Reorder and simplify checks.
12615
12616         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
12617
12618 2010-04-08  Jing Yu  <jingyu@google.com>
12619             Zdenek Dvorak  <ook@ucw.cz>
12620
12621         PR tree-optimization/42720
12622         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
12623         loop unswitch conditions here from ...
12624         (tree_unswitch_single_loop): ... here.
12625
12626 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
12627
12628         * tree-if-conv.c: Fix comments and simplify logic.
12629
12630 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
12631
12632         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
12633         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
12634         (main_tree_if_conversion): Update call to tree_if_conversion.
12635
12636 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12637
12638         PR 42485
12639         * doc/invoke.texi (-b,-V): Delete.
12640         * doc/tm.texi: Do not mention -b.
12641         * gcc.c (display_help): Delete -b and -V.
12642         (process_command): Delete -b and -V.
12643         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
12644
12645 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
12646             Wolfgang Gellerich  <gellerich@de.ibm.com>
12647
12648         Implement target hook for loop unrolling
12649         * target.h (loop_unroll_adjust): Add a new target hook function.
12650         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
12651         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
12652         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
12653         (s390_loop_unroll_adjust): Implement the new target hook for s390.
12654         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
12655         target hook.
12656         (decide_unroll_stupid): Likewise.
12657
12658 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12659
12660         PR target/43643
12661         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
12662
12663 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12664
12665         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
12666         (Specific, *-*-solaris2*): Likewise.
12667         Don't prefer Sun as over GNU as.
12668
12669 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
12670
12671         * config/s390/s390.c (override_options): Adjust the z10 defaults
12672         for max-unroll-times, max-completely-peeled-insns
12673         and max-completely-peel-times.
12674
12675 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12676
12677         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
12678         instructions for z10.
12679         (s390_expand_setmem): Likewise.
12680         (s390_expand_cmpmem): Likewise.
12681
12682 2010-04-08  Richard Guenther  <rguenther@suse.de>
12683
12684         PR tree-optimization/43679
12685         * tree-ssa-pre.c (eliminate): Only propagate copies.
12686
12687 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
12688
12689         PR bootstrap/43681
12690         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
12691         set but not used variable warning.
12692
12693 2010-04-08  Wei Guozhi  <carrot@google.com>
12694
12695         PR target/41653
12696         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
12697         (arm_size_rtx_costs): Call the new function when optimized for size.
12698
12699 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
12700
12701         PR debug/43670
12702         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
12703         op0 is not a MEM, just return NULL instead of assertion
12704         failure.
12705         (discover_nonconstant_array_refs): Don't walk debug stmts.
12706
12707 2010-04-08  Doug Kwan  <dougkwan@google.com>
12708
12709         * configure.ac: Recognize gold and do not use its version number
12710         to test ld features.
12711         * configure: Regenerate.
12712
12713 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
12714
12715         PR middle-end/40815
12716         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
12717         (negate_value): Move code to push elements to broken_up_substracts ...
12718         (eliminate_plus_minus_pair): ... here.  Push operands that have no
12719         negative pair to plus_negates.
12720         (repropagate_negates, init_reassoc, fini_reassoc): Update.
12721
12722 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12723
12724         * doc/install.texi (Configuration): Move description of
12725         --enable-lto, --with-libelf*, --enable-gold from Java section to
12726         general section.
12727
12728         * doc/generic.texi (Working with declarations)
12729         (Function Properties, C and C++ Trees): Fix typos.
12730         * doc/sourcebuild.texi (Top Level): Likewise.
12731
12732 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
12733
12734         PR c/18624
12735         * tree.h (DECL_READ_P): Define.
12736         (struct tree_decl_common): Add decl_read_flag.
12737         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
12738         a set but not used warning.
12739         (merge_decls): Merge DECL_READ_P flag.
12740         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
12741         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
12742         * c-common.c (handle_used_attribute, handle_unused_attribute):
12743         Likewise.
12744         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
12745         New prototypes.
12746         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
12747         New functions.
12748         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
12749         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
12750         c_parser_binary_expression, c_parser_cast_expression,
12751         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
12752         Call default_function_array_read_conversion instead of
12753         default_function_array_conversion where needed.
12754         (c_parser_unary_expression, c_parser_conditional_expression,
12755         c_parser_postfix_expression_after_primary, c_parser_initelt):
12756         Likewise.  Call mark_exp_read where needed.
12757         (c_parser_statement_after_labels, c_parser_asm_operands,
12758         c_parser_typeof_specifier, c_parser_sizeof_expression,
12759         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
12760         where needed.
12761         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
12762         New.
12763         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
12764         (warn_unused_but_set_parameter): Default to warn_unused
12765         && extra_warnings.
12766         * doc/invoke.texi: Document -Wunused-but-set-variable and
12767         -Wunused-but-set-parameter.
12768
12769         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
12770         used count variable.
12771         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
12772         when operandN variables aren't used in the body of the expander
12773         or splitter.
12774         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
12775         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
12776         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
12777         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
12778         FOR_EACH_IMM_USE_ON_STMT): Likewise.
12779         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
12780         * tree.c (PROCESS_ARG): Likewise.
12781
12782 2010-04-07  Simon Baldwin  <simonb@google.com>
12783
12784         * diagnostic.h (diagnostic_override_option_index): New macro to
12785         set a diagnostic's option_index.
12786         * c-tree.h (c_cpp_error): Add warning reason argument.
12787         * opts.c (_warning_as_error_callback): New.
12788         (register_warning_as_error_callback): Store callback for
12789         warnings enabled via enable_warning_as_error.
12790         (enable_warning_as_error): Call callback, minor code tidy.
12791         * opts.h (register_warning_as_error_callback): Declare.
12792         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
12793         response to -Werror=.
12794         (c_common_init_options): Register warning_as_error_callback in opts.c.
12795         * common.opt: Add -Wno-cpp option.
12796         * c-common.c (struct reason_option_codes_t): Map cpp warning
12797         reason codes to gcc option indexes.
12798         * (c_option_controlling_cpp_error): New function, lookup the gcc
12799         option index for a cpp warning reason code.
12800         * (c_cpp_error): Add warning reason argument, call
12801         c_option_controlling_cpp_error for diagnostic_override_option_index.
12802         * doc/invoke.texi: Document -Wno-cpp.
12803
12804 2010-04-07  Richard Guenther  <rguenther@suse.de>
12805
12806         * ipa-reference.c (mark_load): Use get_base_address.
12807         (mark_store): Likewise.
12808
12809         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
12810         inserting GIMPLE_NOPs into the IL.
12811         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12812         Explicitly strip handled components and indirect references.
12813
12814         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
12815         folding address expressions.
12816         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
12817         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
12818         operand_equal_p to compare decls.
12819         (ptr_deref_may_alias_decl_p): Likewise.
12820         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
12821         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
12822         Handle reversed comparison ops.
12823         * tree-sra.c (asm_visit_addr): Use get_base_address.
12824         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
12825         * ipa-reference.c (mark_address): Use get_base_address.
12826
12827 2010-04-07  Richard Guenther  <rguenther@suse.de>
12828
12829         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
12830         Propagate constants everywhere.
12831
12832 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
12833
12834         PR debug/43516
12835         * tree.c (MAX_INT_CACHED_PREC): Define.
12836         (nonstandard_integer_type_cache): New array.
12837         (build_nonstandard_integer_type): Cache results for precision
12838         <= MAX_INT_CACHED_PREC.
12839
12840 2010-04-07  Richard Guenther  <rguenther@suse.de>
12841
12842         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
12843         -fargument-noalias-global, -fargument-noalias-anything): Remove.
12844         * common.opt: Likewise.
12845         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
12846         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
12847         (nonoverlapping_memrefs_p): Likewise.
12848         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12849         * opts.c (common_handle_option): Handle OPT_fargument_alias,
12850         OPT_fargument_noalias, OPT_fargument_noalias_anything and
12851         OPT_fargument_noalias_global for backward compatibility.
12852
12853 2010-04-07  Richard Guenther  <rguenther@suse.de>
12854
12855         PR tree-optimization/43270
12856         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
12857         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
12858         * tree-ssa-pre.c (phi_translate_1): Adjust.
12859         (fully_constant_expression): Split out vn_reference handling to ...
12860         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
12861         Fold reads from constant strings.
12862         (vn_reference_lookup): Handle fully constant references.
12863         (vn_reference_lookup_pieces): Likewise.
12864         * Makefile.in (expmed.o-warn): Add -Wno-error.
12865
12866 2010-04-07  Martin Jambor  <mjambor@suse.cz>
12867
12868         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
12869
12870 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
12871
12872         PR driver/41594
12873         * gcc.c: Add -static-libstdc++ to list of recognized options.
12874
12875 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12876
12877         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
12878
12879 2010-04-07  Richard Guenther  <rguenther@suse.de>
12880
12881         PR middle-end/42617
12882         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
12883         bases build simple mem attributes to retain points-to information.
12884
12885 2010-04-07  Richard Guenther  <rguenther@suse.de>
12886
12887         PR middle-end/42617
12888         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
12889         preserve points-to related information.
12890
12891 2010-04-07  Richard Guenther  <rguenther@suse.de>
12892
12893         PR middle-end/42617
12894         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
12895         discard plain indirect references.
12896         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
12897         * tree.c (tree_nop_conversion): Likewise.
12898
12899 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
12900
12901         PR debug/43628
12902         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
12903
12904 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
12905
12906         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
12907         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
12908
12909 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12910
12911         * tree-if-conv.c: Fix indentation and comments.
12912
12913 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12914
12915         * tree-if-conv.c: Sort static functions in topological order.
12916
12917 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12918
12919         * tree-if-conv.c: Fix indentation and comments.
12920
12921 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12922
12923         PR middle-end/43519
12924         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
12925         lang_hooks.types.type_for_size instead of
12926         build_nonstandard_integer_type.
12927         When converting an unsigned type to signed, double its precision.
12928         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
12929         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
12930         (graphite_create_new_loop_guard): When ub + 1 wraps around,
12931         use lb <= ub.
12932
12933 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12934
12935         PR middle-end/43519
12936         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12937         POINTER_PLUS_EXPR for pointer types.
12938
12939 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12940
12941         PR middle-end/43519
12942         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
12943         * graphite-clast-to-gimple.c: Include langhooks.h.
12944         (max_signed_precision_type): New.
12945         (max_precision_type): Takes two types as arguments.
12946         (precision_for_value): New.
12947         (precision_for_interval): New.
12948         (gcc_type_for_interval): New.
12949         (gcc_type_for_value): New.
12950         (gcc_type_for_clast_term): New.
12951         (gcc_type_for_clast_red): New.
12952         (gcc_type_for_clast_bin): New.
12953         (gcc_type_for_clast_expr): Split up into several functions.
12954         (gcc_type_for_clast_eq): Rewritten.
12955         (compute_bounds_for_level): New.
12956         (compute_type_for_level_1): New.
12957         (compute_type_for_level): New.
12958         (gcc_type_for_cloog_iv): Removed.
12959         (gcc_type_for_iv_of_clast_loop): Rewritten.
12960         (graphite_create_new_loop): Compute the lower and upper bound types
12961         with gcc_type_for_clast_expr.
12962         (graphite_create_new_loop_guard): Same.
12963         (find_cloog_iv_in_expr): Removed.
12964         (compute_cloog_iv_types_1): Removed.
12965         (compute_cloog_iv_types): Removed.
12966         (gloog): Do not call compute_cloog_iv_types.
12967         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
12968         GBB_CLOOG_IV_TYPES.
12969         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
12970         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
12971         (GBB_CLOOG_IV_TYPES): Removed.
12972
12973 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12974
12975         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
12976         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
12977         (detect_commutative_reduction): Same.
12978
12979 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12980
12981         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
12982         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
12983         argument.
12984         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
12985         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
12986         (rewrite_commutative_reductions_out_of_ssa): Same.
12987         * passes.c (execute_function_todo): Call verify_ssa for every pass
12988         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
12989         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
12990         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
12991         with an extra argument.
12992         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
12993         verify_ssa only when the extra argument is true.
12994         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
12995         with an extra argument.
12996         (tree_transform_and_unroll_loop): Same.
12997
12998 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12999
13000         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
13001         for all the passes of the LNO having LOOP_CLOSED_SSA.
13002         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
13003         * tree-loop-distribution.c (pass_loop_distribution): Same.
13004         * tree-pass.h (TODO_verify_loops): Removed.
13005         * tree-ssa-loop.c (pass_tree_loop_init): Same.
13006         (pass_lim): Same.
13007         (pass_tree_unswitch): Same.
13008         (pass_predcom): Same.
13009         (pass_vectorize): Same.
13010         (pass_linear_transform): Same.
13011         (pass_graphite_transforms): Same.
13012         (pass_iv_canon): Same.
13013         (pass_complete_unroll): Same.
13014         (pass_complete_unrolli): Same.
13015         (pass_parallelize_loops): Same.
13016         (pass_loop_prefetch): Same.
13017         (pass_iv_optimize): Same.
13018
13019 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
13020
13021         PR middle-end/32824
13022         * passes.c (init_optimization_passes): Move pass_lim before
13023         pass_copy_prop and pass_dce_loop.
13024
13025 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR target/43667
13028         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
13029         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
13030         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
13031         MULTI_* defines for 4 argument vpermil2p* builtins.
13032
13033 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
13034
13035         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
13036         * config/i386/i386.c (x86_maybe_negate_const_int): New.
13037         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
13038         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
13039         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
13040         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
13041         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
13042         Use x86_maybe_negate_const_int to output insn mnemonic.
13043         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
13044         check from instruction predicate.  Update comments.
13045         * config/i386/sync.md (sync_add<mode>): Use
13046         x86_maybe_negate_const_int to output insn mnemonic.
13047
13048 2010-04-06  Jan Hubicka  <jh@suse.cz>
13049
13050         PR tree-optimization/42906
13051         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
13052         IGNORE_SELF argument.  Set visited_control_parents for fully
13053         processed BBs.
13054         (find_obviously_necessary_stmts): Update call of
13055         mark_control_dependent_edges_necessary.
13056         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
13057
13058 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
13059
13060         * config/i386/i386.md: Remove comment about 'e' and 'E'
13061         operand modifier.
13062
13063 2010-04-06  Richard Guenther  <rguenther@suse.de>
13064
13065         PR tree-optimization/43627
13066         * tree-vrp.c (extract_range_from_unary_expr): Widenings
13067         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
13068         not varying.
13069
13070 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
13071
13072         * BASE-VER: Change to 4.6.0.
13073
13074         PR target/43638
13075         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
13076         handling.
13077
13078 2010-04-06  Richard Guenther  <rguenther@suse.de>
13079
13080         PR middle-end/43661
13081         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
13082
13083 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13084
13085         * doc/invoke.texi (Optimize Options): Document that LTO
13086         won't remove object access purely due to incompatible
13087         declarations.
13088
13089 2010-04-04  Matthias Klose  <doko@ubuntu.com>
13090
13091         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
13092         Initialize variable.
13093
13094 2010-04-03  Richard Guenther  <rguenther@suse.de>
13095
13096         PR middle-end/42509
13097         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
13098         require a non-NULL MEM_OFFSET.
13099
13100 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
13101
13102         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
13103         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
13104         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
13105         config/alpha/predicates.md, config/arm/arm.md,
13106         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
13107         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
13108         config/darwin9.h, config/darwin.c, config/darwin.h,
13109         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
13110         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
13111         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
13112         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
13113         config/mips/mips.md, config/mn10300/mn10300.c,
13114         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
13115         config/rs6000/aix.h, config/rs6000/dfp.md,
13116         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
13117         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
13118         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
13119         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
13120         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
13121         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
13122         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
13123         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
13124         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
13125         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
13126         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
13127         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
13128         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
13129         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
13130         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
13131         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
13132         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
13133         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
13134         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
13135         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
13136         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
13137         opt-functions.awk, opth-gen.awk, params.def, passes.c,
13138         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
13139         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
13140         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
13141         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
13142         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
13143         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
13144         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
13145         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
13146         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
13147         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
13148         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
13149         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
13150         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
13151         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
13152
13153 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13154
13155         PR other/43620
13156         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
13157         * aclocal.m4: Regenerate.
13158
13159 2010-04-02  Richard Guenther  <rguenther@suse.de>
13160
13161         PR tree-optimization/43629
13162         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
13163         if we have seen a constant value.
13164
13165 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
13166
13167         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
13168
13169 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
13170
13171         PR target/43469
13172         * arm.c (legitimize_tls_address): Adjust call to
13173         gen_tls_load_dot_plus_four.
13174         (arm_note_pic_base): New function.
13175         (arm_cannot_copy_insn_p): Use it.
13176         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
13177         constraint.
13178
13179 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13180
13181         PR bootstrap/43531
13182
13183         Revert:
13184         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13185
13186         * Makefile.in ($(out_object_file)): Depend on
13187         gt-$(basename $(notdir $(out_file))).h.
13188
13189 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
13190
13191         * config.gcc (lm32-*-rtems*): Add t-lm32.
13192
13193 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
13194
13195         * config.gcc: Add lm32-*-rtems*.
13196         * config/lm32/rtems.h: New file.
13197
13198 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
13199
13200         PR target/42609
13201         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
13202
13203 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
13204
13205         * dwarf2out.c (output_compilation_unit_header): For
13206         -gdwarf-4 use version 4 instead of version 3.
13207         (output_line_info): For version 4 and above emit additional
13208         maximum ops per insn header field.
13209         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
13210
13211         * dwarf2out.c (is_c_family, is_java): Remove.
13212         (lower_bound_default): New function.
13213         (add_bound_info, gen_descr_array_type_die): Use it.
13214
13215 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
13216
13217         PR debug/43325
13218         * dwarf2out.c (gen_variable_die): Allow debug info for variable
13219         re-declaration when it happens in a function.
13220
13221 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
13222
13223         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
13224         (cgraph_remove_function_insertion_hook): Same.
13225         (cgraph_call_function_insertion_hooks): Same.
13226
13227 2010-04-01  Richard Guenther  <rguenther@suse.de>
13228
13229         PR middle-end/43614
13230         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
13231         and TREE_THIS_VOLATILE.
13232         (copy_ref_info): Likewise.
13233         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
13234         * tree.c (build6_stat): Ignore side-effects of all but arg5
13235         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
13236         TARGET_MEM_REF.
13237
13238 2010-04-01  Richard Guenther  <rguenther@suse.de>
13239
13240         PR tree-optimization/43607
13241         * ipa-type-escape.c (check_call): Do not access non-existing
13242         arguments.
13243
13244 2010-04-01  Richard Guenther  <rguenther@suse.de>
13245
13246         PR middle-end/43602
13247         Revert
13248         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
13249                     Jack Howarth  <howarth@bromo.med.uc.edu>
13250
13251         * tree-profile.c (tree_init_ic_make_global_vars): Make static
13252         variables TLS.
13253
13254 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13255
13256         * doc/install.texi (Prerequisites): Document libelf usability on
13257         IRIX 5/6 and Solaris 2.
13258         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
13259         Update GNU as, GNU ld requirements.
13260         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
13261         Document Sun Studio compiler download.
13262         Update and simplify as, ld recommendations.
13263         (Specific, *-*-solaris2.7): Note obsoletion, removal.
13264
13265 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13266
13267         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
13268         with_tune_32 to pentium4.
13269
13270 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
13271
13272         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
13273
13274 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13275
13276         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
13277         obsoletion, removal.
13278         Update IDO URL.
13279         Document GNU as requirement.
13280         Update configure requirements.
13281         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
13282         Recomment IRIX 6.5.18+.
13283         Document IDF/IDL requirement.
13284         Document GNU as requirement.
13285         Document GNU ld bootstrap failure.
13286         Remove freeware.sgi.com reference.
13287
13288 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13289
13290         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
13291         UNIX V4.0, V5.0 obsoletion, removal.
13292         Remove --with-gc=simple reference.
13293         Update VM requirements during bootstrap.
13294         Remove -oldas bootstrap description.
13295         Update binutils reference.
13296         Remove comparison failure note.
13297
13298 2010-03-31  Richard Guenther  <rguenther@suse.de>
13299             Zdenek Dvorak  <ook@ucw.cz>
13300             Sebastian Pop  <sebastian.pop@amd.com>
13301
13302         PR middle-end/43464
13303         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
13304         with multiple arguments.
13305         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
13306
13307 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13308
13309         * graphite-dependences.c (print_pddr): Call print_pdr with an
13310         extra argument.
13311         * graphite-poly.c (debug_pdr): Add an extra argument for the
13312         verbosity level.
13313         (print_pdr): Same.
13314         (print_pbb_domain): Same.
13315         (print_pbb): Same.
13316         (print_scop_context): Same.
13317         (print_scop): Same.
13318         (print_cloog): Same.
13319         (debug_pbb_domain): Same.
13320         (debug_pbb): Same.
13321         (print_pdrs): Same.
13322         (debug_pdrs): Same.
13323         (debug_scop_context): Same.
13324         (debug_scop): Same.
13325         (debug_cloog): Same.
13326         (print_scop_params): Same.
13327         (debug_scop_params): Same.
13328         (print_iteration_domain): Same.
13329         (print_iteration_domains): Same.
13330         (debug_iteration_domain): Same.
13331         (debug_iteration_domains): Same.
13332         (print_scattering_function): Same.
13333         (print_scattering_functions): Same.
13334         (debug_scattering_function): Same.
13335         (debug_scattering_functions): Same.
13336         * graphite-poly.h (debug_pdr): Update declaration.
13337         (print_pdr): Same.
13338         (print_pbb_domain): Same.
13339         (print_pbb): Same.
13340         (print_scop_context): Same.
13341         (print_scop): Same.
13342         (print_cloog): Same.
13343         (debug_pbb_domain): Same.
13344         (debug_pbb): Same.
13345         (print_pdrs): Same.
13346         (debug_pdrs): Same.
13347         (debug_scop_context): Same.
13348         (debug_scop): Same.
13349         (debug_cloog): Same.
13350         (print_scop_params): Same.
13351         (debug_scop_params): Same.
13352         (print_iteration_domain): Same.
13353         (print_iteration_domains): Same.
13354         (debug_iteration_domain): Same.
13355         (debug_iteration_domains): Same.
13356         (print_scattering_function): Same.
13357         (print_scattering_functions): Same.
13358         (debug_scattering_function): Same.
13359         (debug_scattering_functions): Same.
13360
13361 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13362
13363         * graphite-poly.c (print_scattering_function_1): New.
13364         (print_scattering_function): Call it.
13365         (print_scop_params): Remove spaces at the end of lines.
13366         (print_cloog): New.
13367         (debug_cloog): New.
13368         * graphite-poly.h (print_cloog): Declared.
13369         (debug_cloog): Declared.
13370
13371 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13372
13373         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
13374         in loop->header.
13375         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
13376         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
13377         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
13378         to switch between adding the IV bump in loop->latch or in loop->header.
13379
13380 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13381
13382         * graphite-poly.c (print_scattering_function): Pretty print following
13383         the scoplib format.
13384         (print_pdr): Same.
13385         (print_pbb_domain): Same.
13386         (dump_gbb_cases): Same.
13387         (dump_gbb_conditions): Same.
13388         (print_pdrs): Same.
13389         (print_pbb): Same.
13390         (print_scop_params): Same.
13391         (print_scop_context): Same.
13392         (print_scop): Same.
13393         (print_pbb_body): New.
13394         (lst_indent_to): New.
13395         (print_lst): Start new lines with a #.
13396         * graphite-poly.h (pbb_bb): New.
13397         (pbb_index): Use pbb_bb.
13398         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
13399         disjuncts.
13400         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
13401
13402 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
13403
13404         * dwarf2out.c (size_of_die): For -gdwarf-4 use
13405         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
13406         and 0 instead of 1 for dw_val_class_flag.
13407         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
13408         dw_val_class_range_list, dw_val_class_loc_list,
13409         dw_val_class_lineptr and dw_val_class_macptr, use
13410         DW_FORM_flag_present for dw_val_class_flag and
13411         DW_FORM_exprloc for dw_val_class_loc.
13412         (output_die): For -gdwarf-4 print dw_val_class_loc
13413         size as uleb128 instead of 1 or 2 bytes and don't print
13414         anything for dw_val_class_flag.
13415
13416         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
13417         instead of cselib_lookup following by tweaking locs->setting_insn.
13418
13419         PR bootstrap/43596
13420         * cselib.c (cselib_process_insn): Clear cselib_current_insn
13421         even before returning from label, setjmp call or volatile asm
13422         handling.
13423
13424 2010-03-31  Richard Guenther  <rguenther@suse.de>
13425
13426         PR middle-end/43600
13427         * cgraphunit.c (cgraph_output_in_order): Do not allocate
13428         temporary data on stack.
13429
13430 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13431
13432         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
13433         (PUSHSECTION_ASM_OP): Remove.
13434         (POPSECTION_ASM_OP): Remove.
13435         (PUSHSECTION_FORMAT): Remove.
13436         * config/sol2.h (PUSHSECTION_FORMAT): Define.
13437         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
13438         * config/sol2.c (solaris_output_init_fini): Use it.
13439
13440 2010-03-31  Jie Zhang  <jie@codesourcery.com>
13441
13442         PR 43574
13443         * opt-functions.awk (var_type_struct): Use signed char type
13444         for simple variables.
13445
13446 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13447
13448         * config/sol2.c: Include output.h.
13449         (solaris_assemble_visibility): New function.
13450         * config/t-sol2 (sol2.o): Add output.h dependency.
13451         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
13452         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
13453         Redefine.
13454
13455 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
13456
13457         PR target/43580
13458         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
13459         V2SImode or XFmode on PRE_DEC.
13460
13461         PR debug/43557
13462         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
13463         BLKmode.
13464
13465 2010-03-31  Jie Zhang  <jie@codesourcery.com>
13466
13467         PR 43562
13468         * reload.h (caller_save_initialized_p): Declare.
13469         * toplev.c (backend_init_target): Don't call
13470         init_caller_save but set caller_save_initialized_p to false.
13471         * caller-save.c (caller_save_initialized_p): Define.
13472         (init_caller_save): Check caller_save_initialized_p.
13473         * ira.c (ira): Call init_caller_save if flag_caller_saves.
13474
13475 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13476
13477         PR target/39048
13478         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
13479         and soft-fp/t-softfp to tmake_file.
13480         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
13481         (LIBGCC2_TF_CEXT): Define.
13482         (TF_SIZE): Define.
13483
13484 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
13485
13486         PR debug/42977
13487         * cselib.c (n_useless_values): Document handling of debug locs.
13488         (n_useless_debug_values, n_debug_values): New variables.
13489         (new_elt_loc_list): Don't add to debug values, keep count.
13490         (promote_debug_loc): New.
13491         (cselib_reset_table): Zero new variables.
13492         (entry_and_rtx_equal_p): Promote debug locs.
13493         (discard_useless_locs): Increment n_useless_debug_values for
13494         debug values.
13495         (remove_useless_values): Adjust n_useless_values and n_debug_values
13496         with n_useless_debug_values.
13497         (add_mem_for_addr): Promote debug locs.
13498         (cselib_lookup_mem): Likewise.
13499         (cselib_lookup_addr): Renamed to...
13500         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
13501         (cselib_log_lookup): ... this.  Turn into...
13502         (cselib_lookup_addr): ... new wrapper.
13503         (cselib_lookup_from_insn): New.
13504         (cselib_invalidate_regno): Increment n_useless_debug_values for
13505         debug values.
13506         (cselib_invalidate_mem): Likewise.
13507         (cselib_process_insn): Take n_deleted and n_debug_values into
13508         account to guard remove_useless_value call.
13509         (cselib_finish): Zero n_useless_debug_values.
13510         * cselib.h (cselib_lookup_from_insn): Declare.
13511         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
13512         (sched_analyze_2): Likewise.
13513
13514 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
13515
13516         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
13517         functions.
13518         (adjust_mems): Replace narrowing SUBREG of expression containing
13519         just PLUS, MINUS, MULT and ASHIFT of registers and constants
13520         with operations in the narrower mode.
13521
13522         PR debug/43593
13523         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
13524         regs_invalidated_by_call instead all call_used_reg_set registers.
13525
13526 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
13527
13528         PR middle-end/43430
13529         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
13530         pointer comparisons with types_compatible_p.
13531         * tree-vect-stmts.c (vectorizable_call): Same.
13532         (vectorizable_condition): Same.
13533
13534 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13535
13536         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
13537         stack check if the mask would be zero.
13538
13539 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
13540             Jack Howarth  <howarth@bromo.med.uc.edu>
13541
13542         * tree-profile.c (tree_init_ic_make_global_vars): Make static
13543         variables TLS.
13544
13545 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
13546
13547         PR other/25232
13548         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
13549         and __unordtf2.
13550         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
13551         Include ___unordxf2 and ___unordtf2.
13552         * config/i386/libgcc-glibc.ver: Do not define inheritance from
13553         GCC_4.4.0 here.
13554
13555 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
13556
13557         * config/lm32/t-lm32: New file.
13558         * config.gcc: Use the above file when targetting lm32.
13559
13560 2010-03-28  Duncan Sands  <baldrick@free.fr>
13561
13562         * Makefile.in (PLUGIN_HEADERS): Add except.h.
13563
13564 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
13565
13566         PR middle-end/43431
13567         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
13568         Improve vectorization cost model diagnostic.
13569
13570 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
13571
13572         PR middle-end/43436
13573         * tree-vect-data-refs.c (vect_analyze_data_refs): When
13574         compute_data_dependences_for_loop returns false, early exit
13575         and output an extra diagnostic for the failed data reference
13576         analysis.
13577
13578 2010-03-29  Richard Guenther  <rguenther@suse.de>
13579
13580         PR tree-optimization/43560
13581         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
13582         (can_sm_ref_p): Treat stores to readonly locations as trapping.
13583
13584 2010-03-29  Jie Zhang  <jie@codesourcery.com>
13585
13586         PR 43564
13587         * toplev.c (process_options): Set optimization_default_node
13588         and optimization_current_node.
13589         * opts.c (decode_options): Don't set optimization_default_node
13590         and optimization_current_node.
13591
13592 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
13593
13594         * config/rtems.h: Abandon -qrtems_debug.
13595
13596 2010-03-28  Jan Hubicka  <jh@suse.cz>
13597
13598         PR tree-optimization/43505
13599         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
13600         map should not be copied.
13601
13602 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13603
13604         PR middle-end/41674
13605         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
13606         cdtors, set DECL_PRESERVE_P.
13607         * ipa.c (cgraph_externally_visible_p): Return true if declaration
13608         should be preseved.
13609
13610 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
13611
13612         PR tree-optimization/43528
13613         * stor-layout.c (place_field): Check that constant fits into
13614         unsigned HWI when skipping calculation of MS bitfield layout.
13615
13616 2010-03-27  Jan Hubicka  <jh@suse.cz>
13617
13618         PR middle-end/43391
13619         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
13620         notice_global_symbol work.
13621
13622 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
13623
13624         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
13625         instead of dwarf2out_decl.
13626         (struct var_loc_node): Remove section_label field.
13627         (dwarf2out_function_decl): New function.
13628         (dwarf2out_var_location): Don't set section_label field.
13629         (dwarf2out_begin_function): Don't empty decl_loc_table here.
13630
13631 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13632
13633         PR tree-optimization/43544
13634         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
13635         First argument for builtin vectorized function hook is now a
13636         tree to be able to distinguish between machine specific and
13637         standard builtins.
13638         * targhooks.c (default_builtin_vectorized_function): Ditto.
13639         * targhooks.h (default_builtin_vectorized_function): Ditto.
13640         * target.h (struct gcc_target): Ditto.
13641         * tree-vect-stmts.c (vectorizable_function): Ditto.
13642         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
13643         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
13644         Ditto.
13645
13646 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
13647
13648         PR c/43381
13649         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
13650         nested binding iff it is a FUNCTION_DECL.
13651         (store_parm_decls_newstyle): Pass nested=true to bind for
13652         FUNCTION_DECLs amongst parameters.
13653
13654 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
13655
13656         * var-tracking.c (vt_expand_loc_callback): Don't run
13657         cselib_expand_value_rtx_cb in dummy mode if
13658         cselib_dummy_expand_value_rtx_cb returned false.
13659
13660         * var-tracking.c (emit_note_insn_var_location): For one part
13661         notes with offset 0, don't add EXPR_LIST around the location.
13662         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
13663         add_location_or_const_value_attribute): Adjust for that change.
13664
13665         PR debug/43540
13666         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
13667         into first operand and location into second.
13668         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
13669         dw_cfi_oprnd_loc for DW_CFA_expression.
13670         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
13671         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
13672         assume first argument is regnum and second argument is location.
13673
13674 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
13675
13676         PR target/42113
13677         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
13678         of scratch register to DImode.  Split to DImode comparison operator.
13679         Use SImode subreg of scratch register in the multiplication.
13680         (*cmp_sadd_sidi): Ditto.
13681         (*cmp_ssub_si): Ditto.
13682         (*cmp_ssub_sidi): Ditto.
13683
13684 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
13685
13686         PR target/43524
13687         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
13688         Remove invalid assert and wrong comment.
13689
13690 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
13691
13692         PR debug/43516
13693         * flags.h (final_insns_dump_p): New extern.
13694         * final.c (final_insns_dump_p): New variable.
13695         (rest_of_clean_state): Set it before -fdump-final-insns=
13696         dumping, clear afterwards.
13697         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
13698         MEM_ALIAS_SET on MEMs.
13699
13700 2010-03-26  David S. Miller  <davem@davemloft.net>
13701
13702         * configure.ac: Fix sparc GOTDATA_OP bug check.
13703         * configure: Rebuild.
13704
13705 2010-03-26  Alan Modra  <amodra@gmail.com>
13706
13707         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
13708
13709 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13710
13711         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
13712         TLS_SECTION_ASM_FLAG.
13713
13714 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
13715
13716         PR bootstrap/43511
13717         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
13718         Clear first_function_block_is_cold.
13719
13720         PR c/43385
13721         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
13722         argument if the argument is truth_value_p.
13723
13724 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13725
13726         * config/rs6000/constraints.md: Update copyright year for my changes.
13727
13728         PR target/43484
13729         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
13730         used in reg+reg addressing, swap registers.
13731
13732 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
13733
13734         PR debug/43293
13735         * target.h (struct gcc_target): Add code_end hook.
13736         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
13737         if not yet defined.
13738         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
13739         * toplev.c (compile_file): Call targetm.asm_out.code_end
13740         hook before unwind info/debug info output.
13741         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
13742         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
13743         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
13744         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
13745         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
13746         * config/i386/i386.c (ix86_file_end): Renamed to...
13747         (ix86_code_end): ... this.  Make static.  Don't call
13748         file_end_indicate_exec_stack.  Emit unwind info using
13749         final_start_function/final_end_function.
13750         (darwin_x86_file_end): Remove.
13751         (TARGET_ASM_CODE_END): Define.
13752         * config/i386/i386.h (TARGET_ASM_FILE_END,
13753         NEED_INDICATE_EXEC_STACK): Don't define.
13754         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
13755         (TARGET_ASM_FILE_END): Define to darwin_file_end.
13756         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
13757         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
13758
13759         PR target/43498
13760         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
13761         at the beginning and final_end_function at the end.
13762         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
13763
13764 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13765
13766         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
13767         and Sun as TLS syntax.
13768         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
13769         * configure: Regenerate.
13770         * config.in: Regenerate.
13771         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
13772         (default_elf_asm_named_section): Use it.
13773         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
13774         (i386_output_dwarf_dtprel): Likewise.
13775         (output_addr_const_extra): Likewise.
13776         (output_pic_addr_const): Lowercase @GOTTPOFF.
13777         (output_addr_const_extra): Likewise.
13778         (output_pic_addr_const): Lowercase @GOTNTPOFF.
13779         (output_addr_const_extra): Likewise.
13780         (output_pic_addr_const): Lowercase @INDNTPOFF.
13781         (output_addr_const_extra): Likewise.
13782         (output_pic_addr_const): Lowercase @NTPOFF.
13783         (output_addr_const_extra): Likewise.
13784         (output_pic_addr_const): Lowercase @TPOFF.
13785         (output_addr_const_extra): Likewise.
13786         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
13787         (*tls_global_dynamic_64): Likewise.
13788         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
13789         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
13790
13791         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
13792         (ASM_OUTPUT_TLS_COMMON): Use it.
13793         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
13794
13795         PR target/38118
13796         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
13797         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
13798         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
13799         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
13800         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
13801         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
13802
13803 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13804
13805         * config/i386/i386.c (override_options): Don't accept
13806         -mtls-dialect=sun any longer.
13807         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
13808         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
13809         (*tls_local_dynamic_base_32_sun): Likewise.
13810         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
13811
13812 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
13813
13814         PR debug/43508
13815         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13816         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
13817
13818         PR debug/43479
13819         * ira.c (adjust_cleared_regs): New function.
13820         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
13821
13822         PR debug/19192
13823         PR debug/43479
13824         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
13825         from gimple_block.
13826         * expr.c (expand_expr_real): Restore previous
13827         curr_insn_source_location and curr_insn_block after
13828         expand_expr_real_1 call.
13829         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
13830         instead of expand_expr_real_1.
13831
13832 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
13833
13834         PR rtl-optimization/43413
13835         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
13836         hard regs too.
13837
13838 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
13839
13840         PR target/43348
13841         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
13842         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
13843
13844 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
13845
13846         * config/i386/i386.c (ix86_target_string): Add -mfma.
13847         Fix a typo in comment.
13848
13849 2010-03-22  Mike Stump  <mikestump@comcast.net>
13850
13851         PR target/23071
13852         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
13853         Don't overly align based upon packed packed fields.
13854
13855 2010-03-22  Jason Merrill  <jason@redhat.com>
13856
13857         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
13858         Use () rather than [], and move before the element type.
13859
13860 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13861
13862         * doc/configfiles.texi (Configuration Files): Removed
13863         fixinc/Makefile*, intl/Makefile.*.
13864         * doc/makefile.texi: Fixed markup. Abstract from version
13865         control system used.
13866         (Makefile): Removed obsolete gcc/java/parse.y example.
13867         * doc/sourcebuild.texi: Likewise.
13868         (Top Level): Added config, gnattools, libdecnumber, libgcc,
13869         libgomp, libssp.  Removed fastjar.
13870         (Miscellaneous Docs): Clarify location.
13871         Added COPYING3, COPYING3.LIB.
13872         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
13873
13874 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13875
13876         PR target/38085
13877         * config/i386/i386.c (x86_function_profiler)
13878         [!NO_PROFILE_COUNTERS]: Fix typo.
13879         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
13880         instead of callq.
13881
13882 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
13883             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13884
13885         * doc/sourcebuild.texi (Test Directives): Split into six
13886         subsections, with most of the current text in new subsections
13887         Directives, Selectors, and Final Actions.
13888         (Directives): Split list of test directives into multiple
13889         subsubsections.
13890         (Selectors): Describe use and syntax of selectors.
13891         (Effective-Target Keywords): Describe all existing keywords.
13892         (Add Options): Describe features for dg-add-options.
13893         (Require Support): Describe variants of dg-require-support.
13894         (Final Actions): Describe commands to use in dg-final.
13895
13896 2010-03-22  Michael Matz  <matz@suse.de>
13897
13898         PR middle-end/43475
13899         * recog.c (validate_replace_rtx_group): Replace also in
13900         REG_EQUAL and REG_EQUIV notes.
13901
13902 2010-03-22  Richard Guenther  <rguenther@suse.de>
13903
13904         PR tree-optimization/43390
13905         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
13906         sure vector extracts are type correct.
13907
13908 2010-03-22  Richard Guenther  <rguenther@suse.de>
13909
13910         PR middle-end/40106
13911         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
13912         x * sqrt (x) even when optimizing for size if the target
13913         has native support for sqrt.
13914
13915 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
13916
13917         * varasm.c (make_decl_rtl_for_debug): Also clear
13918         flag_mudflap for the duration of make_decl_rtl call.
13919
13920         PR debug/43443
13921         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
13922         locs from preserved VALUEs.
13923
13924 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13925
13926         PR middle-end/42718
13927         * pa.md (movmemsi): Set align to one if zero.
13928         (movmemdi): Likewise.
13929
13930 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
13931
13932         PR target/42321
13933         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
13934         with their corresponding prologue pushes.
13935
13936 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
13937
13938         PR target/43156
13939         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
13940         at the begining or end.
13941         (spu_expand_epilogue): Likewise.
13942
13943 2010-03-20  Richard Guenther  <rguenther@suse.de>
13944
13945         PR rtl-optimization/43438
13946         * combine.c (make_extraction): Properly zero-/sign-extend an
13947         extraction of the low part of a CONST_INT.  Also handle
13948         CONST_DOUBLE.
13949
13950 2010-03-19  Mike Stump  <mikestump@comcast.net>
13951
13952         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
13953         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
13954         (override_options): Use SUBTARGET32_DEFAULT_CPU.
13955
13956 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
13957
13958         PR c/43211
13959         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
13960         an error.
13961
13962 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
13963
13964         PR rtl-optimization/42258
13965         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
13966         use that may match DEF.
13967
13968         PR target/40697
13969         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
13970         the cost of loading the constant rather than assuming
13971         COSTS_N_INSNS (1).
13972         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
13973         outer code is AND, do the same tests as the andsi3 expander and
13974         return COSTS_N_INSNS (1) if and is cheap.
13975
13976         * optabs.c (avoid_expensive_constant): Fix formatting.
13977
13978 2010-03-19  Michael Matz  <matz@suse.de>
13979
13980         PR c++/43116
13981         * attribs.c (decl_attributes): When rebuilding a function pointer
13982         type use the same qualifiers as the original pointer type.
13983
13984 2010-03-19  Martin Jambor  <mjambor@suse.cz>
13985
13986         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
13987         and is_gimple_ip_invariant_address.
13988
13989 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13990
13991         Revert
13992         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13993
13994         * config/arm/arm.c (arm_override_options): Turn off
13995         flag_dwarf2_cfi_asm for AAPCS variants.
13996
13997 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13998
13999         PR target/43399
14000         * config/arm/arm.c (emit_multi_reg_push): Update comments.
14001         Use PRE_MODIFY instead of PRE_DEC.
14002         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
14003         (vfp_emit_fstmd): Likewise.
14004
14005 2010-03-19  Michael Matz  <matz@suse.de>
14006
14007         PR target/43305
14008         * builtins.c (expand_builtin_interclass_mathfn,
14009         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
14010         if that fails.
14011
14012 2010-03-19  Richard Guenther  <rguenther@suse.de>
14013
14014         PR tree-optimization/43415
14015         * tree-ssa-pre.c (phi_translate): Split out worker to ...
14016         (phi_translate_1): ... this.
14017         (phi_translate): Move all caching here.  Cache all NARY
14018         and REFERENCE translations.
14019
14020 2010-03-19  David S. Miller  <davem@davemloft.net>
14021
14022         With help from Eric Botcazou.
14023         * config/sparc/sparc.c: Include dwarf2out.h.
14024         (emit_pic_helper): Delete.
14025         (pic_helper_symbol_name): Delete.
14026         (pic_helper_emitted_p): Delete.
14027         (pic_helper_needed): New.
14028         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
14029         (get_pc_thunk_name): New.
14030         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
14031         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
14032         Set pic_helper_needed to true.  Don't call emit_pic_helper.
14033         (sparc_expand_prologue): Update load_pic_register call.
14034         (sparc_output_mi_thunk): Likewise.
14035         (sparc_file_end): Emit a hidden comdat symbol for the PIC
14036         thunk if possible.  Output CFI information as needed.
14037
14038 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14039             Jack Howarth  <howarth@bromo.med.uc.edu>
14040
14041         PR target/36399
14042         * config/i386/i386.h: Fix ABI on darwin x86-32.
14043
14044 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
14045
14046         * tree.h: Declare make_decl_rtl_for_debug.
14047         * varasm.c (make_decl_rtl_for_debug): New.
14048         * dwarf2out.c (rtl_for_decl_location): Call it.
14049         * cfgexpand.c (expand_debug_expr): Call it.
14050
14051 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
14052
14053         PR bootstrap/43399
14054         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
14055         mem_mode.
14056
14057         PR bootstrap/43403
14058         * var-tracking.c (vt_init_cfa_base): Do nothing if
14059         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
14060
14061 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
14062
14063         PR debug/42873
14064         * var-tracking.c (canonicalize_vars_star): New.
14065         (dataflow_post_merge_adjust): Use it.
14066
14067 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
14068
14069         PR debug/43058
14070         * var-tracking.c (non_suitable_const): New function.
14071         (add_uses): For DEBUG_INSNs with constants, don't record any
14072         value, instead just the constant value itself.
14073         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
14074         is not VAR_LOC_UNKNOWN_P, set var to the constant.
14075         (emit_notes_in_bb): Likewise.
14076         (emit_note_insn_var_location): For onepart variables if
14077         cur_loc is a VOIDmode constant, use DECL_MODE.
14078
14079 2010-03-18  Martin Jambor  <mjambor@suse.cz>
14080
14081         PR middle-end/42450
14082         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
14083         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
14084         all non-clones.  Moved call redirection...
14085         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
14086         (cgraph_materialize_all_clones): Dispose of all
14087         combined_args_to_skip bitmaps.
14088         (verify_cgraph_node): Do not check for edges pointing to wrong
14089         nodes in inline clones.
14090         * tree-inline.c (copy_bb): Call
14091         cgraph_redirect_edge_call_stmt_to_callee.
14092         * ipa.c (cgraph_remove_unreachable_nodes): Call
14093         cgraph_node_remove_callees even when there are used clones.
14094
14095 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
14096
14097         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
14098
14099 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
14100
14101         PR target/43383
14102         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
14103         for 32bit.
14104
14105 2010-03-18  Michael Matz  <matz@suse.de>
14106
14107         PR middle-end/43419
14108         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
14109         into sqrt(x) if we need to preserve signed zeros.
14110
14111 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
14112             Eric Botcazou  <ebotcazou@adacore.com>
14113
14114         PR rtl-optimization/43360
14115         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
14116         note if we don't know its invariant status.
14117
14118 2010-03-18  Michael Matz  <matz@suse.de>
14119
14120         PR tree-optimization/43402
14121         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
14122         PHI chains of ssa names registered for update.
14123
14124 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
14125
14126         PR target/42427
14127         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
14128         non-offsettable and pre_modify update addressing.
14129         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
14130         and "2" alternatives "#".
14131         (*movdd_softfloat32): Make all alternatives "#";
14132         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
14133         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
14134         (*movdf_softfloat32): Make all alternatives "#";
14135         (movdi): Use the new DIFD mode iterator to create a common splitter
14136         for movdi, movdf and movdd patterns.
14137
14138 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
14139
14140         * common.opt (dumpdir): Remove redundant tab.
14141
14142 2010-03-17  Martin Jambor  <mjambor@suse.cz>
14143
14144         PR tree-optimization/43347
14145         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
14146         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
14147
14148 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
14149
14150         PR rtl-optimization/42216
14151         * regrename.c (create_new_chain): New function, broken out from...
14152         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
14153         appending a use to an empty chain.
14154         (build_def_use): Remove previous changes that convert OP_INOUT to
14155         OP_OUT operands; instead detect the case where an OP_INOUT operand
14156         uses a previously untracked register and create an empty chain for it.
14157
14158 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14159
14160         * doc/extend.texi (Function Attributes): Rewrite unfinished
14161         sentence in ms_abi documentation.
14162
14163 2010-03-17  Alan Modra  <amodra@gmail.com>
14164
14165         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
14166         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
14167         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
14168         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
14169
14170 2010-03-16  Richard Henderson  <rth@redhat.com>
14171
14172         PR middle-end/43365
14173         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
14174         (lower_try_finally): Save and restore eh_seq around the expansion
14175         of the try-finally.
14176
14177 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
14178
14179         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
14180         statements before splitting block.
14181
14182 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14183
14184         * doc/sourcebuild.texi (Testsuites): Fix markup.
14185         Use pathnames relative to gcc/testsuite.
14186         (Test Directives): Move description of how timeout is determined.
14187         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
14188         (C Tests): Correct gcc.misc-tests directory.
14189         Framework tests now live in gcc.test-framework.
14190
14191 2010-03-16  Richard Guenther  <rguenther@suse.de>
14192
14193         PR middle-end/43379
14194         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
14195         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
14196
14197 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
14198             Alexandre Oliva  <aoliva@redhat.com>
14199
14200         PR tree-optimization/42917
14201         * lambda-code.c (remove_iv): Skip debug statements.
14202         (lambda_loopnest_to_gcc_loopnest): Likewise.
14203         (not_interesting_stmt): Debug statements are not interesting.
14204
14205 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
14206
14207         PR debug/43051
14208         PR debug/43092
14209         * cselib.c (cselib_preserve_constants,
14210         cfa_base_preserved_val): New static variables.
14211         (preserve_only_constants): New function.
14212         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
14213         clear its REG_VALUES.  If cselib_preserve_constants, don't
14214         empty the whole hash table, but preserve there VALUEs with constants,
14215         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
14216         (cselib_preserve_cfa_base_value): New function.
14217         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
14218         (cselib_init): Change argument to int bitfield.  Set
14219         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
14220         is in it.
14221         (cselib_finish): Clear cselib_preserve_constants and
14222         cfa_base_preserved_val.
14223         * cselib.h (enum cselib_record_what): New enum.
14224         (cselib_init): Change argument to int.
14225         (cselib_preserve_cfa_base_value): New prototype.
14226         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
14227         * dse.c (dse_step1): Likewise.
14228         * cfgcleanup.c (thread_jump): Likewise.
14229         * sched-deps.c (sched_analyze): Likewise.
14230         * gcse.c (local_cprop_pass): Likewise.
14231         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
14232         If FN is non-NULL, call the callback always and whenever it returns
14233         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
14234         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
14235         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
14236         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
14237         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
14238         * var-tracking.c: Include recog.h.
14239         (bb_stack_adjust_offset): Remove.
14240         (vt_stack_adjustments): Don't call it, instead just gather the
14241         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
14242         (adjust_stack_reference): Remove.
14243         (compute_cfa_pointer): New function.
14244         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
14245         (struct adjust_mem_data): New type.
14246         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
14247         functions.
14248         (get_address_mode): New function.
14249         (replace_expr_with_values): Use it.
14250         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
14251         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
14252         (adjust_sets): Remove.
14253         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
14254         Use get_address_mode.
14255         (get_adjusted_src): Remove.
14256         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
14257         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
14258         (add_with_sets): Don't call adjust_sets.
14259         (fp_setter, vt_init_cfa_base): New functions.
14260         (vt_initialize): Change return type to bool.  Move most of pool etc.
14261         initialization to the beginning of the function from end.  Pass
14262         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
14263         If !frame_pointer_needed, call vt_stack_adjustment before mos
14264         vector is filled, call vt_init_cfa_base if argp/framep has been
14265         eliminated to sp.  If frame_pointer_needed and argp/framep has
14266         been eliminated to hard frame pointer, set
14267         hard_frame_pointer_adjustment and call vt_init_cfa_base after
14268         encountering fp setter in the prologue.  For MO_ADJUST, call
14269         log_op_type before pusing the op into mos vector, not afterwards.
14270         Call adjust_insn before cselib_process_insn/add_with_sets,
14271         call cancel_changes (0) afterwards.
14272         (variable_tracking_main_1): Adjust for vt_initialize calling
14273         vt_stack_adjustments and returning whether it succeeded or not.
14274
14275 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
14276
14277         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
14278         debug statements.
14279
14280 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
14281
14282         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
14283         has been set.
14284         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
14285         drap_reg has not been set.
14286
14287 2010-03-15  Michael Matz  <matz@suse.de>
14288
14289         PR middle-end/43300
14290         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
14291         use it to expand block copies.
14292         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
14293         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
14294         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
14295
14296 2010-03-15  Richard Guenther  <rguenther@suse.de>
14297
14298         PR tree-optimization/43367
14299         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
14300         elimination check.
14301
14302 2010-03-15  Richard Guenther  <rguenther@suse.de>
14303
14304         PR tree-optimization/43317
14305         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
14306
14307 2010-03-15  Martin Jambor  <mjambor@suse.cz>
14308
14309         PR tree-optimization/43141
14310         * tree-sra.c (create_abstract_origin): New function.
14311         (modify_function): Call create_abstract_origin.
14312
14313 2010-03-15  Chris Demetriou  <cgd@google.com>
14314
14315         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
14316         wasn't copied.
14317
14318 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14319
14320         PR middle-end/43354
14321         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
14322         call insert_out_of_ssa_copy for default definitions.
14323
14324 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14325
14326         * graphite-clast-to-gimple.c (my_long_long): Defined.
14327         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
14328         * graphite-sese-to-poly.c (my_long_long): Defined.
14329         (scop_ivs_can_be_represented): Use it.
14330
14331 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14332
14333         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
14334         graphite-max-bbs-per-function, and loop-block-tile-size.
14335         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
14336         with "maximum".
14337         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
14338
14339 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14340
14341         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
14342         forward declaration.
14343         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
14344         (add_upper_bounds_from_estimated_nit): New.
14345         (build_loop_iteration_domains): Use it.
14346
14347 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14348
14349         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
14350
14351 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14352
14353         PR middle-end/43306
14354         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
14355         should be an INTEGER_CST.  Also handle CASE_CONVERT.
14356
14357 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14358
14359         * graphite.c (graphite_initialize): To bound the number of bbs per
14360         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
14361         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
14362         * doc/invoke.texi: Document it.
14363
14364 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14365
14366         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
14367         * graphite-sese-to-poly.h (build_poly_scop): Same.
14368
14369 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14370
14371         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
14372         the number of parameters in the scop.  Use as an upper bound
14373         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
14374         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
14375         * doc/invoke.texi: Document it.
14376
14377 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
14378
14379         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
14380         * doc/c-tree.texi: Remove.
14381         * doc/generic.texi: Merge c-tree.texi here.
14382         * doc/gccint.texi (Trees): Remove menu entry.
14383         (c-tree.texi): Remove @include.
14384         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
14385         * doc/languages.texi (Reading RTL): Ditto.
14386
14387 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
14388
14389         PR target/42869
14390         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
14391
14392 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
14393
14394         PR middle-end/42431
14395         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
14396         code added to work around reload clobbering CONST insns.
14397
14398 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
14399
14400         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
14401         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
14402         (cselib_preserve_only_values): Remove retain argument, don't
14403         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
14404         * cselib.h (cselib_preserve_only_values): Remove retain argument.
14405         * var-tracking.c (micro_operation): Move insn field before union.
14406         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
14407         (struct variable_tracking_info_def): Remove n_mos field, change
14408         mos into a vector of micro_operations.
14409         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
14410         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
14411         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
14412         changing into a vector.
14413         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
14414         come before all other uops generated by add_stores.
14415         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
14416         argument removal.
14417         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
14418         a vector.  Run just one pass over the bbs instead of separate counting
14419         and computation phase.
14420         (vt_finalize): Free VTI (bb)->mos vector instead of array.
14421
14422         PR debug/43329
14423         * tree-inline.c (remap_decls): Put old_var rather than origin_var
14424         into *nonlocalized_list vector.
14425         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
14426         even if origin is non-NULL.
14427         (gen_variable_die): Likewise.
14428         (process_scope_var): Don't change origin.
14429         (gen_decl_die): Likewise.
14430         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
14431         before adding new edges instead of after it, fix moving over
14432         debug stmts.
14433
14434 2010-03-11  David S. Miller  <davem@davemloft.net>
14435
14436         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
14437         of four.
14438         * configure: Rebuild.
14439
14440 2010-03-11  Martin Jambor  <mjambor@suse.cz>
14441
14442         PR tree-optimization/43257
14443         * tree.c (assign_assembler_name_if_neeeded): New function.
14444         (free_lang_data_in_cgraph): Assembler name assignment moved to the
14445         above new function.
14446         * tree.h (assign_assembler_name_if_neeeded): Declare.
14447         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
14448         the function if needed.
14449
14450 2010-03-11  Chris Demetriou  <cgd@google.com>
14451
14452         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
14453         include/stdint-gcc.h, and include/stdint.h world-readable.
14454
14455 2010-03-11  Richard Guenther  <rguenther@suse.de>
14456
14457         PR tree-optimization/43255
14458         * tree-vrp.c (process_assert_insertions_for): Do not insert
14459         asserts for trivial conditions.
14460
14461 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14462
14463         PR tree-optimization/43280
14464         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
14465         generation.  Move calculation of size out of the if branch.
14466         (find_bswap): Modify compare number generation.
14467
14468 2010-03-11  Richard Guenther  <rguenther@suse.de>
14469
14470         PR lto/43200
14471         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
14472         (input_gimple_stmt): Fixup handled component types during
14473         operand read.  Also fix up decls in ADDR_EXPRs.
14474
14475 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
14476
14477         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
14478         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
14479
14480 2010-03-10  Jan Hubicka  <jh@suse.cz>
14481
14482         PR c/43288
14483         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
14484         * varasm.c (get_variable_section): Don't do that here...
14485         (make_decl_rtl): ... and here.
14486         (do_assemble_alias): Produce decl RTL.
14487         (assemble_alias): Likewise.
14488
14489 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
14490
14491         PR debug/43290
14492         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
14493         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
14494         of fde->vdrap_reg.
14495         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
14496         (based_loc_descr): Only express drap or vdrap regno based expressions
14497         using DW_OP_fbreg when not optimizing.
14498         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
14499         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
14500         REG_CFA_SET_VDRAP note.
14501
14502 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
14503
14504         PR tree-optimization/43236
14505         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
14506         error in calculation of base address in reverse iteration case.
14507         (generate_builtin): Take number of latch executions if the statement
14508         is in the latch.
14509
14510 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
14511
14512         PR middle-end/42859
14513         * tree-eh.c: Include pointer-set.h.
14514         (lower_eh_dispatch): Filter out duplicate case labels and
14515         remove the unneeded edge when the label is unused.  Return
14516         true when some edges are removed.
14517         (execute_lower_eh_dispatch): When any lowering resulted in
14518         removing an edge, also delete unreachable blocks.
14519
14520 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
14521
14522         PR bootstrap/43287
14523         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14524         UNSPEC_MACHOPIC_OFFSET.
14525
14526 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
14527
14528         PR target/43294
14529         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
14530         (m68k_delegitimize_address): New function.
14531
14532 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
14533
14534         PR debug/43299
14535         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
14536
14537         PR debug/43299
14538         * var-tracking.c (adjust_sets): New function.
14539         (count_with_sets, add_with_sets): Use it.
14540         (get_adjusted_src): New inline function.
14541         (add_stores): Use it.
14542
14543         PR debug/43304
14544         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
14545         call cselib_dummy_expand_value_rtx_cb instead of
14546         cselib_expand_value_rtx_cb.
14547
14548         PR debug/43293
14549         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
14550         * config/i386/i386.c: Include debug.h and dwarf2out.h.
14551         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
14552         and .cfi_endproc around the pic thunks.
14553         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
14554         all queued unwind info register saves are saved before the call.
14555         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
14556         considered as sp-=4 for unwind info and the pop as sp+=4 which
14557         also clobbers dest, but doesn't actually restore it.
14558
14559         PR debug/43290
14560         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
14561         RTX_FRAME_RELATED_P.
14562
14563 2010-03-09  Jie Zhang  <jie@codesourcery.com>
14564
14565         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
14566         whitespaces in output template.
14567
14568 2010-03-09  Jie Zhang  <jie@codesourcery.com>
14569
14570         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
14571         out array boundary.
14572
14573 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
14574
14575         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
14576         builtins.exp in a separate job.
14577
14578 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14579
14580         * graphite-sese-to-poly.c (add_param_constraints): Use
14581         lower_bound_in_type and upper_bound_in_type.
14582
14583 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14584
14585         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
14586         instead of unsigned_type_node.
14587
14588 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14589             Reza Yazdani  <reza.yazdani@amd.com>
14590
14591         PR middle-end/43065
14592         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
14593         on pointer type parameters.
14594
14595 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
14596
14597         PR middle-end/42644
14598         PR middle-end/42130
14599         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
14600         handle conversions from pointer to integers.
14601         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
14602         induction variable, to be able to work with code generated by CLooG.
14603         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
14604         (build_poly_scop): Bail out if we cannot codegen a loop.
14605
14606 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
14607
14608         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
14609         code generation with gloog_error.
14610
14611 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14612
14613         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
14614         Call fold_convert on all the returned values.
14615         (expand_scalar_variables_expr): Pass to
14616         expand_scalar_variables_ssa_name the type of the resulting expression.
14617
14618 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14619
14620         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
14621         ppl_min_for_le_pointset.
14622         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
14623         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
14624
14625 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14626
14627         * graphite-dependences.c (map_into_dep_poly): Removed.
14628         (dependence_polyhedron_1): Use combine_context_id_scat.
14629
14630 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14631
14632         * graphite-poly.h (struct poly_scattering): Add layout documentation.
14633         (struct poly_bb): Same.
14634         (combine_context_id_scat): New.
14635
14636 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14637
14638         PR middle-end/42326
14639         * sese.c (name_defined_in_loop_p): Return false for default
14640         definitions.
14641
14642 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14643
14644         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
14645         and clean up the logic.
14646
14647 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14648
14649         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
14650         early return.
14651
14652 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
14653
14654         * var-tracking.c (remove_cselib_value_chains): Define only for
14655         ENABLE_CHECKING.
14656         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
14657         delete_slot_part, emit_notes_for_differences_1): Don't call
14658         remove_cselib_value_chains here.
14659         (set_slot_part, emit_notes_for_differences_2): Don't call
14660         add_cselib_value_chains here.
14661         (preserved_values): New vector.
14662         (preserve_value): New function.
14663         (add_uses, add_stores, vt_add_function_parameters): Use it
14664         instead of cselib_preserve_value.
14665         (changed_values_stack): New vector.
14666         (check_changed_vars_0): New function.
14667         (check_changed_vars_1, check_changed_vars_2): Use it.
14668         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
14669         changed_values_stack VALUEs.
14670         (vt_emit_notes): For all preserved_values call
14671         add_cselib_value_chains.  If ENABLE_CHECKING call
14672         remove_cselib_value_chains before verifying value_chains is empty.
14673         Initialize and free changed_values_stack.
14674         (vt_initialize): Initialize preserved_values.
14675         (vt_finalize): Free preserved_values.
14676
14677 2010-03-08  Richard Guenther  <rguenther@suse.de>
14678
14679         PR tree-optimization/43269
14680         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
14681         region detection.
14682
14683 2010-03-08  Martin Jambor  <mjambor@suse.cz>
14684
14685         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
14686         (ipa_is_param_called): Removed.
14687         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
14688         (ipa_print_node_params): Do not print the called flag.
14689         (ipa_write_node_info): Do not stream the called flag.
14690         (ipa_read_node_info): Likewise.
14691
14692 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
14693
14694         PR debug/43176
14695         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
14696         * cselib.c (struct expand_value_data): Add dummy field.
14697         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
14698         dummy to false.
14699         (cselib_dummy_expand_value_rtx_cb): New function.
14700         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
14701         any rtl.
14702         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
14703         * var-tracking.c: Include pointer-set.h.
14704         (variable): Change n_var_parts to char from int.  Add
14705         cur_loc_changed and in_changed_variables fields.
14706         (variable_canonicalize): Remove.
14707         (shared_var_p): New inline function.
14708         (unshare_variable): Maintain cur_loc_changed and
14709         in_changed_variables fields.  If var was in changed_variables,
14710         replace it there with new_var.  Just copy cur_loc instead of
14711         resetting it to something else.
14712         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
14713         (dataflow_set_union): Don't call variable_canonicalize.
14714         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
14715         of their DEBUG_EXPR_TREE_DECLs.
14716         (canonicalize_loc_order_check): Verify that cur_loc is NULL
14717         and in_changed_variables and cur_loc_changed is false.
14718         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
14719         and cur_loc_changed.  Don't update cur_loc here.
14720         (variable_merge_over_src): Don't call variable_canonicalize.
14721         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
14722         removing loc that is equal to cur_loc, clear cur_loc,
14723         set cur_loc_changed and ensure variable_was_changed is called.
14724         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
14725         compare pointers in cur_loc check, if it is equal to loc,
14726         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
14727         (variable_different_p): Remove compare_current_location argument,
14728         don't compare cur_loc.
14729         (dataflow_set_different_1): Adjust variable_different_p caller.
14730         (variable_was_changed): If dv had some var in changed_variables
14731         already, reset in_changed_variables flag for it and propagate
14732         cur_loc_changed over to the new variable.  On empty var
14733         always set cur_loc_changed.  Set in_changed_variables on whatever
14734         var is added to changed_variables.
14735         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
14736         Use shared_var_p.  When removing loc that is equal to cur_loc,
14737         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
14738         end, don't set it to something else, just call variable_was_changed.
14739         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
14740         loc being removed, clear cur_loc and set cur_loc_changed.
14741         Set cur_loc_changed if all locations have been removed.
14742         (struct expand_loc_callback_data): New type.
14743         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
14744         allocated.  Always create SUBREGs if simplify_subreg failed.
14745         Prefer to use cur_loc, when that fails and still in
14746         changed_variables (and seen first time) recompute it.  Set
14747         cur_loc_changed of variables which had to change cur_loc and
14748         compute elcd->cur_loc_changed if any of the subexpressions used
14749         had to change cur_loc.
14750         (vt_expand_loc): Adjust to pass arguments in
14751         expand_loc_callback_data structure.
14752         (vt_expand_loc_dummy): New function.
14753         (emitted_notes): New variable.
14754         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
14755         that weren't used for any other decl in current
14756         emit_notes_for_changes call call vt_expand_loc_dummy to update
14757         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
14758         first loc_chain location if NULL before.  Always use just
14759         cur_loc instead of first loc_chain location.  When cur_loc_changed
14760         is false, when not --enable-checking=rtl just don't emit any note.
14761         When rtl checking, compute the note and assert it is the same
14762         as previous note.  Clear cur_loc_changed and in_changed_variables
14763         at the end before removing from changed_variables.
14764         (check_changed_vars_3): New function.
14765         (emit_notes_for_changes): Traverse changed_vars to call
14766         check_changed_vars_3 on each changed var.
14767         (emit_notes_for_differences_1): Clear cur_loc_changed and
14768         in_changed_variables.  Recompute cur_loc of new_var.
14769         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
14770         (vt_emit_notes): Initialize and destroy emitted_notes.
14771
14772 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
14773
14774         PR rtl-optimization/42220
14775         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
14776         Use verify_reg_tracked to determine if we should use OP_OUT rather
14777         than OP_INOUT.
14778         (build_def_use): If we see an in-out operand for a register that we
14779         know nothing about, treat is an output if possible, fail the block if
14780         not.
14781
14782 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14783
14784         PR debug/42897
14785         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
14786         permanently.
14787
14788 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14789
14790         PR debug/42897
14791         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
14792         uses of relevant DEFs that are dead outside the loop too.
14793
14794 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14795
14796         * var-tracking.c (dataflow_set_merge): Swap src and src2.
14797         Reverted:
14798         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
14799         PR debug/41371
14800         * var-tracking.c (values_to_unmark): New variable.
14801         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
14802         values_to_unmark vector.  Moved body to...
14803         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
14804         instead queue it into values_to_unmark vector.
14805         (vt_find_locations): Free values_to_unmark vector.
14806
14807 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
14808
14809         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
14810         (site.exp): Export them when plugins are enabled.
14811
14812 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
14813
14814         PR middle-end/42326
14815         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
14816         that contain scevs.
14817         (chrec_fold_multiply): Same.
14818
14819 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
14820
14821         PR c/43248
14822         * c-decl.c (build_compound_literal): Return early if init is
14823         an error_mark_node.
14824
14825 2010-03-04  Martin Jambor  <mjambor@suse.cz>
14826
14827         PR tree-optimization/43164
14828         PR tree-optimization/43191
14829         * tree-sra.c (type_consists_of_records_p): Reject records with
14830         zero-size bit-fields at the end.
14831
14832 2010-03-04  Mike Stump  <mikestump@comcast.net>
14833
14834         * Makefile.in (TAGS): Remove *.y.
14835
14836 2010-03-04  Richard Guenther  <rguenther@suse.de>
14837
14838         PR tree-optimization/40761
14839         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
14840         in reverse order.
14841         (my_rev_post_order_compute): New function.
14842         (init_pre): Call it.
14843
14844 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
14845
14846         PR middle-end/43209
14847         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
14848         decrease the cost of an IV candidate when the cost is infinite.
14849
14850 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14851
14852         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
14853         Use '3DNow!' for the extension of that name, ensure normal space
14854         after the string.
14855         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
14856
14857 2010-03-03  Jeff Law  <law@redhat.com>
14858
14859         * PR middle-end/32693
14860         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
14861         than gen_rtx_SUBREG.
14862         (extract_bit_field_1): Likewise.
14863
14864 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
14865
14866         * doc/sourcebuild.texi (Test directives): Document that arguments
14867         include-opts and exclude-opts are now optional for dg-skip-if,
14868         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
14869
14870 2010-03-03  Jason Merrill  <jason@redhat.com>
14871
14872         PR c++/12909
14873         * cgraph.h (varpool_node): Add extra_name field.
14874         * varpool.c (varpool_extra_name_alias): New.
14875         (varpool_assemble_decl): Emit extra name aliases.
14876         (varpool_mark_needed_node): Look past an extra name alias.
14877         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
14878         * lto-streamer-in.c (lto_input_tree): Read it.
14879         * lto-streamer-out.c (output_unreferenced_globals): Write it.
14880
14881 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
14882
14883         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
14884         (sparc*-*-solaris2*): ...this.
14885
14886 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
14887
14888         PR debug/43229
14889         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
14890         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
14891         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
14892         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
14893
14894         PR debug/43237
14895         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
14896         fallthrough to default handling, just with want_address 0 instead of 2.
14897         For single element lists, add_AT_loc directly, otherwise create an
14898         artificial variable DIE and stick location list to it.
14899
14900         PR debug/43177
14901         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
14902         (VAL_EXPR_HAS_REVERSE): Define.
14903         (reverse_op): New function.
14904         (add_stores): For reversible operations add an extra MO_VAL_USE.
14905
14906 2010-03-02  Jason Merrill  <jason@redhat.com>
14907
14908         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
14909
14910 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
14911
14912         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
14913         (sparc64-*-linux*): Likewise.
14914         (sparc64-*-solaris2*): Include assembler files before linker ones.
14915         (sparc-*-solaris2*): Simplify and reorder to match previous case.
14916         * config/sparc/gas.h: Delete.
14917         * config/sparc/sol2-64.h: Add copyright notice.
14918         * config/sparc/sol2-gas-bi.h: Likewise.
14919         * config/sparc/sol2-gld.h: Likewise.
14920         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
14921         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
14922         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
14923         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
14924         (sparc_elf_asm_named_section): Rename into...
14925         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
14926
14927 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
14928
14929         * config/alpha/alpha.c (override_options): Fix -mtune error message.
14930
14931 2010-03-02  Jeff Law  <law@redhat.com>
14932
14933         PR middle-end/42431
14934         * reload1.c (rtx_p, substitute_stack): Declare.
14935         (substitute): Record addresses of changed rtxs.
14936         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
14937         Restore the original rtx when complete.
14938         (reload): Free subsitute_stack when complete.
14939
14940 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
14941
14942         * doc/gccint.texi (menu): Add Testsuites as a chapter.
14943         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
14944         new chapter.
14945         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
14946         LTO Testing, gcov Testing, profopt Testing, compat Testing,
14947         Torture Tests): Change from subsection to section.
14948
14949 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
14950             Steven Bosscher  <steven@gcc.gnu.org>
14951
14952         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
14953         instead of bb.
14954
14955 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
14956
14957         PR middle-end/42640
14958         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
14959         the assignment from the new induction variable to the assignment
14960         of the value from the original loop PHI function.
14961
14962 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
14963             Daniel Jacobowitz  <dan@codesourcery.com>
14964
14965         * doc/sourcebuild.texi (Test directives): Clarify options to
14966         dg-skip-if.
14967
14968 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14969
14970         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
14971         Disable cfi directives unless GCC and gas agree on using read-only
14972         .eh_frame sections for 64-bit.
14973         * configure: Regenerate.
14974
14975 2010-03-01  Richard Guenther  <rguenther@suse.de>
14976
14977         PR tree-optimization/43220
14978         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
14979         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
14980
14981 2010-03-01  Richard Guenther  <rguenther@suse.de>
14982             Martin Jambor  <mjambor@suse.cz>
14983
14984         PR middle-end/41250
14985         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
14986         gimplified parameters.
14987
14988 2010-03-01  Christian Bruel  <christian.bruel@st.com>
14989
14990         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
14991
14992 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
14993
14994         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
14995
14996 2010-03-01  Richard Guenther  <rguenther@suse.de>
14997
14998         PR middle-end/43213
14999         * expr.c (expand_assignment): Use the alias-oracle to tell
15000         if the rhs aliases the result decl.
15001
15002 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15003
15004         PR pch/14940
15005         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
15006         to sol_gt_pch_get_address.
15007         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
15008         64-bit, SPARC and x86.
15009         (sol_gt_pch_get_address): New function.
15010
15011 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
15012
15013         * toplev.h (inform_n, error_n): Declare.
15014         * diagnostic.c (inform_n, error_n): New function.
15015
15016 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
15017
15018         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
15019         has no rtl yet when processing local_decls, queue it and recheck
15020         if deferred stack allocation hasn't assigned it rtl.
15021
15022 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
15023
15024         * config/sh/sh.c (unspec_bbr_uid): New.
15025         (gen_block_redirect): Use it instead of INSN_UID.
15026         (gen_far_branch): Likewise.
15027
15028 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
15029
15030         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
15031         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
15032
15033 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15034
15035         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
15036         (Warning Options): -Wno-conversion-null is valid for
15037         Objective-C++ as well.
15038         * doc/tm.texi (Named Address Spaces): Likewise.
15039         * doc/plugins.texi (Plugins): Replace TABs with spaces.
15040         * doc/tree-ssa.texi (Tree SSA): Likewise.
15041
15042 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
15043
15044         PR bootstrap/43202
15045         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
15046         by default.  Don't set the default arch for
15047         i[34567]86-*-darwin*|x86_64-*-darwin*.
15048
15049 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
15050
15051         PR bootstrap/43202
15052         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
15053         default.  Set the default 32bit/64bit archs with $with_arch
15054         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
15055
15056 2010-02-27  Richard Guenther  <rguenther@suse.de>
15057
15058         PR tree-optimization/43186
15059         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
15060         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
15061         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
15062         unroller iterations.
15063
15064 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
15065
15066         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
15067         required and i[34567]86-*-* targets don't support 64bit ISA.
15068
15069 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
15070
15071         PR ada/43096
15072         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
15073         the same alias set.
15074
15075 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
15076
15077         * config.gcc: Set the default arch at least to Prescott for
15078         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
15079         if SSE math is enabled.
15080
15081 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15082
15083         * diagnostic.c (diagnostic_initialize): Update.
15084         (diagnostic_report_diagnostic): Test inhibit_notes_p for
15085         informative notes.
15086         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
15087         (diagnostic_inhibit_notes): New.
15088         * toplev.c (process_options): inhibit notes with -fcompare-debug.
15089
15090 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15091
15092         PR c/20631
15093         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
15094         * doc/standards.texi: Likewise.
15095         * doc/extend.texi: Likewise.
15096         * doc/trouble.texi: Likewise.
15097         * doc/cppopts.texi: Likewise.
15098         * doc/install.texi: Likewise.
15099         * c.opt (std=c90,std=gnu90): New options.
15100         * c-opts.c (c_common_handle_option): Handle them.
15101
15102 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15103
15104         PR c/24577
15105         * c-decl.c (undeclared_variable): Use an informative note.
15106
15107 2010-02-26  Richard Guenther  <rguenther@suse.de>
15108
15109         PR tree-optimization/43186
15110         * gimple.h (gimple_fold): Remove.
15111         * gimple.c (gimple_fold): Remove.  Inline into single user ...
15112         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
15113         Try harder for conditions.
15114
15115 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
15116
15117         PR debug/43190
15118         * function.c (used_types_insert): Don't skip through named pointer
15119         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
15120         and it is different from the main variant's type.
15121
15122 2010-02-26  Nick Clifton  <nickc@redhat.com>
15123
15124         * config/rx/rx.md (sminsi3): Remove bogus alternative.
15125
15126 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
15127
15128         * config.gcc: Support --with-fpmath=sse for x86.
15129
15130         * config/i386/ssemath.h: New.
15131
15132         * doc/install.texi (--with-fpmath=sse): Documented.
15133
15134 2010-02-26  Richard Guenther  <rguenther@suse.de>
15135
15136         PR tree-optimization/43188
15137         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
15138         vector types of over-aligned element type.
15139
15140 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
15141
15142         PR target/43175
15143         * config/i386/i386.c (expand_vec_perm_blend): Use correct
15144         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
15145
15146 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
15147
15148         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
15149
15150 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
15151
15152         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
15153         * var-tracking.c: Include diagnostic.h.
15154         (debug_dv): New function.
15155         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
15156
15157         PR debug/43160
15158         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
15159         (add_value_chain, add_value_chains, remove_value_chain,
15160         remove_value_chains): Handle DEBUG_EXPRs.
15161         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
15162
15163         PR debug/43161
15164         * regcprop.c (struct queued_debug_insn_change): New type.
15165         (struct value_data_entry): Add debug_insn_changes field.
15166         (struct value_data): Add n_debug_insn_changes field.
15167         (debug_insn_changes_pool): New variable.
15168         (free_debug_insn_changes, apply_debug_insn_changes,
15169         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
15170         (kill_value_one_regno): Call free_debug_insn_changes if needed.
15171         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
15172         fields.
15173         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
15174         changes for them.
15175         (copyprop_hardreg_forward_1): Don't call apply_change_group for
15176         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
15177         changes, call cprop_find_used_regs via note_stores.
15178         (copyprop_hardreg_forward): When copying vd from predecessor
15179         which has any queued DEBUG_INSN changes, make sure the pointers are
15180         cleared.  At the end call df_analyze and then if there are any
15181         DEBUG_INSN changes queued at the end of some basic block for still
15182         live registers, apply them.
15183         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
15184
15185 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
15186
15187         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
15188         (arm*-*-*): Ditto.
15189
15190 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
15191
15192         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
15193         targets.  Set the default with_cpu/with_arch from arch/cpu.
15194         Allow x86-64 and native for with_cpu/with_arch.
15195
15196 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
15197
15198         * ebitmap.c: Change calls to verify_popcount with calls to
15199         sbitmap_verify_popcount.
15200         (ebitmap_clear_bit): Fixed map->cacheindex test and
15201         map>cache update when bit clearing results in an empty
15202         element.
15203
15204 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
15205
15206         PR target/43154
15207         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
15208         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
15209         and support both V2DF and V2DI modes.
15210         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
15211         support both V2DF and V2DI modes.
15212         (general): Delete trailing whitespace from a few patterns.
15213
15214         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15215         V2DF/V2DI interleave high/low builtins.
15216
15217         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
15218         new VSX builtins.
15219
15220         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
15221         interleave high/low functions.
15222
15223 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
15224
15225         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
15226         #pragma extern_prefix.
15227
15228 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
15229
15230         PR debug/43166
15231         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
15232         BLKmode, assert op0 is a MEM and just adjust its mode.
15233
15234         PR debug/43165
15235         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
15236         if bitpos isn't multiple of mode's bitsize.
15237
15238 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15239
15240         * c.opt (-ftemplate-depth=): New.
15241         (-ftemplate-depth-): Deprecate.
15242         * optc-gen.awk: Handle -ftemplate-depth=.
15243         * opth-gen.awk: Likewise.
15244         * c-opts.c (c_common_handle_option): Likewise.
15245         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
15246
15247 2010-02-24  Jason Merrill  <jason@redhat.com>
15248
15249         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
15250
15251 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15252
15253         * cfg.c (alloc_aux_for_block): Remove inline.
15254         (alloc_aux_for_edge): Likewise.
15255
15256 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15257
15258         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
15259
15260 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15261
15262         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
15263         * config/i386/sol2-gas.h: New file.
15264         * config.gcc (i[34567]86-*-solaris2*): Use it.
15265
15266 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15267
15268         PR c/43128
15269         * c-typeck.c (ep_convert_and_check): New.
15270         (build_conditional_expr): Use it.
15271         (build_binary_op): Likewise.
15272
15273 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
15274
15275         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
15276
15277         PR debug/43150
15278         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
15279         bounds even for -O+.
15280         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
15281         expr needs to have DECL_NAME set.
15282
15283 2010-02-24  Nick Clifton  <nickc@redhat.com>
15284
15285         * config/mep/mep.c: Include gimple.h.
15286         (mep_function_uses_sp): Delete unused function.
15287         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
15288         parameters.  Use unsigned integers to count args.  Return a
15289         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
15290
15291 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
15292
15293         PR target/43107
15294         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
15295         greater or equal to nelt instead of 2 * nelt.
15296         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
15297         with nelt - 1.
15298
15299 2010-02-23  Jason Merrill  <jason@redhat.com>
15300
15301         PR debug/42800
15302         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
15303         in cfun->local_decls even if they have register types.
15304
15305         PR c++/42837
15306         * stor-layout.c (place_field): Don't warn about unnecessary
15307         DECL_PACKED if the type is packed.
15308
15309 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
15310
15311         PR target/43139
15312         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
15313         GOTOFF relocs, even when the base reg isn't pic pointer.
15314
15315 2010-02-23  Michael Matz  <matz@suse.de>
15316
15317         PR debug/43077
15318         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
15319         (expand_gimple_basic_block): Generate and use debug temps if there
15320         are debug uses left after the last real use of TERed ssa names.
15321         Unlink debug immediate uses when they are expanded.
15322
15323 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15324
15325         PR 43123
15326         * config/i386/i386.c (override_options): Reorganise to provide
15327         better error messages.
15328
15329 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15330
15331         PR middle-end/43083
15332         * graphite-scop-detection.c (create_single_exit_edge): Move
15333         the call to find_single_exit_edge to....
15334         (create_sese_edges): ...here.  Don't handle multiple edges
15335         exiting the function.
15336         (build_graphite_scops): Don't handle multiple edges
15337         exiting the function.
15338
15339 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15340
15341         PR middle-end/43097
15342         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
15343         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
15344
15345 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15346
15347         PR middle-end/43026
15348         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
15349
15350 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15351
15352         PR c++/43126
15353         * c-typeck.c (convert_arguments): Print declaration location.
15354         * c-common.c (validate_nargs): Rename as
15355         builtin_function_validate_nargs.
15356         (check_builtin_function_arguments): Update.
15357
15358 2010-02-22  Richard Guenther  <rguenther@suse.de>
15359
15360         PR lto/43045
15361         * tree-inline.c (declare_return_variable): Use the type of
15362         the call stmt lhs if available.
15363
15364 2010-02-22  Duncan Sands  <baldrick@free.fr>
15365
15366         * passes.c (register_pass): Always consider all pass lists when
15367         ref_pass_instance_number is zero.
15368
15369 2010-02-22  Richard Guenther  <rguenther@suse.de>
15370
15371         PR tree-optimization/42749
15372         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
15373         parameter.  Do arithmetic in the original type.
15374         (update_accumulator_with_ops): Likewise.
15375         (adjust_accumulator_values): Adjust.
15376
15377 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15378
15379         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
15380         (QI to BLKmode splitter): New splitter.
15381
15382 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
15383
15384         * config/i386/i386.c (initial_ix86_tune_features): Turn on
15385         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
15386
15387 2010-02-22  Richard Guenther  <rguenther@suse.de>
15388
15389         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
15390
15391 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
15392
15393         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
15394         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
15395         ($(T)crti.o, $(T)crtn.o): Remove rules.
15396
15397 2010-02-21  Tobias Burnus  <burnus@net-b.de>
15398
15399         PR fortran/35259
15400         * doc/invoke.texi (-fassociative-math): Document that this
15401         option is automatically enabled for Fortran.
15402
15403 2010-02-20  David S. Miller  <davem@davemloft.net>
15404
15405         * configure.ac: Test if linker and assembler properly support
15406         GOTDATA_OP relocations.
15407         * configure: Rebuild.
15408         * config.in: Likewise.
15409         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
15410         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
15411         (movsi_high_pic): Likewise.
15412         (movdi_lo_sum_pic): Likewise.
15413         (movdi_high_pic): Likewise.
15414         (movsi_pic_gotdata_op): New pattern.
15415         (movdi_pic_gotdata_op): Likewise.
15416         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
15417         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
15418
15419 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
15420
15421         PR target/43067
15422         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
15423         attribute to ssemul.
15424         (xop_mulv2div2di3_high): Ditto.
15425
15426 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15427
15428         PR c++/35669
15429         * c.opt (Wconversion-null): New option.
15430         * doc/invoke.texi (Wconversion-null): Document.
15431
15432 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15433
15434         * common.opt (Wlarger-than-): Add Undocumented.
15435
15436 2010-02-19  Mike Stump  <mikestump@comcast.net>
15437
15438         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
15439
15440 2010-02-19  Jason Merrill  <jason@redhat.com>
15441
15442         PR target/40332
15443         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
15444         * configure: Likewise.
15445
15446 2010-02-20  Alan Modra  <amodra@gmail.com>
15447
15448         PR middle-end/42344
15449         * cgraph.h (cgraph_make_decl_local): Declare.
15450         * cgraph.c (cgraph_make_decl_local): New function.
15451         (cgraph_make_node_local): Use it.
15452         * cgraphunit.c (cgraph_function_versioning): Likewise.
15453         * ipa.c (function_and_variable_visibility): Likewise.
15454
15455 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15456
15457         PR bootstrap/43121
15458         * except.c (sjlj_emit_function_enter): Don't call
15459         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
15460         directly.
15461         * rtl.h (add_reg_br_prob_note): Remove prototype.
15462
15463 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15464
15465         PR 41779
15466         * c-common.c (conversion_warning): Remove widening conversions
15467         before checking the conversion of integers to reals.
15468
15469 2010-02-19  Mike Stump  <mikestump@comcast.net>
15470
15471         PR middle-end/43125
15472         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
15473
15474         PR objc/43061
15475         * cgraphunit.c (process_function_and_variable_attributes): Check
15476         DECL_PRESERVE_P instead of looking up attribute "used".
15477         * ipa-pure-const.c (check_decl): Likewise.
15478         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
15479         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
15480         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
15481         instead of attribute "used".
15482         * config/sol2-c.c (solaris_pragma_init): Likewise.
15483         (solaris_pragma_fini): Likewise.
15484
15485 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15486
15487         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
15488         Use XCNEW instead of xcalloc.
15489         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
15490         XNEW instead of xmalloc.
15491         (get_fields): Use XNEWVEC instead of xmalloc.
15492
15493         PR debug/43084
15494         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
15495         populate vars array.
15496         (create_new_general_access): For debug stmts just reset value.
15497         (get_stmt_accesses): For accesses within debug stmts just record them
15498         using add_access_to_acc_sites instead of preventing the peeling or
15499         counting them as accesses.
15500
15501         PR middle-end/42233
15502         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
15503
15504 2010-02-19  Richard Guenther  <rguenther@suse.de>
15505
15506         PR tree-optimization/42916
15507         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
15508         instructions.
15509
15510 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
15511
15512         * configure.ac: Replace all uses of changequote in macro arguments
15513         with proper quoting.
15514
15515 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15516
15517         PR middle-end/42233
15518         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
15519
15520 2010-02-19  Richard Guenther  <rguenther@suse.de>
15521
15522         PR tree-optimization/42944
15523         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
15524         test for aliasing with errno.
15525
15526 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15527
15528         PR middle-end/42233
15529         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
15530         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
15531         * dojump.c: Include output.h.
15532         (inv): New inline function.
15533         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
15534         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
15535         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
15536         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
15537         argument, pass it down to other calls.
15538         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
15539         add REG_BR_PROB note to the conditional jump.
15540         * cfgexpand.c (add_reg_br_prob_note): Removed.
15541         (expand_gimple_cond): Don't call it, add the probability
15542         as last argument to jumpif_1/jumpifnot_1.
15543         * Makefile.in (dojump.o): Depend on output.h.
15544         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
15545         callers.
15546         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
15547         * stmt.c (do_jump_if_equal): Likewise.
15548         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
15549         * loop-unswitch.c (compare_and_jump_seq): Likewise.
15550         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
15551         Likewise.
15552         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
15553         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
15554         jumpifnot_1 callers.
15555         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
15556         callers.
15557         (store_expr): Adjust jumpifnot caller.
15558         (store_constructor): Adjust jumpif caller.
15559
15560         PR middle-end/42233
15561         * gimplify.c (gimple_boolify): For __builtin_expect call
15562         gimple_boolify also on its first argument.
15563
15564 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
15565
15566         * configure.ac (gnu-unique-object): Wrap regexps using [] in
15567         changequote block.
15568         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
15569         * configure: Regenerated.
15570
15571 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15572
15573         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
15574         lang_hooks.types_compatible_p instead of comptypes.
15575
15576 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15577
15578         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
15579         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
15580         if __prefer_thumb__ is defined.
15581
15582 2010-02-18  Martin Jambor  <mjambor@suse.cz>
15583
15584         PR tree-optimization/43066
15585         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
15586         array with zero-sized element type.
15587
15588 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
15589
15590         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
15591         rtx, allocate struct var_loc_node here and return it to the
15592         caller, and only if it is actually needed.
15593         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
15594         move it earlier and return immediately if it returns NULL.
15595
15596 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
15597
15598         * config/sparc/gas.h: New file.  Restore
15599         TARGET_ASM_NAMED_SECTION to its ELF default.
15600         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
15601         check !HAVE_GNU_AS.
15602         * config/sparc/sparc.c (sparc_elf_asm_named_section):
15603         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
15604         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
15605         after sparc/sysv4.h.
15606
15607 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
15608
15609         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
15610
15611 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
15612
15613         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
15614         patterns from predicated pattern.
15615
15616 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
15617
15618         PR target/43103
15619         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
15620         for insn mnemonic suffix.
15621
15622 2010-02-17  Richard Guenther  <rguenther@suse.de>
15623
15624         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
15625         to loop PHI nodes.
15626
15627 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
15628
15629         PR debug/42918
15630         * caller-save.c (save_call_clobbered_regs): If BB ends with
15631         a DEBUG_INSN, move any notes in between last real insn and the last
15632         DEBUG_INSN after the last DEBUG_INSN.
15633
15634 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
15635
15636         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
15637         Fix return type.  Fix argument type.  Explain meaning of return value.
15638
15639 2010-02-16  Richard Guenther  <rguenther@suse.de>
15640
15641         PR tree-optimization/41043
15642         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
15643         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
15644         statements ...
15645         (vrp_visit_phi_node): ... but only for loop PHI nodes.
15646
15647 2010-02-16  Ira Rosen  <irar@il.ibm.com>
15648
15649         PR tree-optimization/43074
15650         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
15651         * tree-vect-loop.c (vect_analyze_loop_operations): Add
15652         vectorizable cycles in hybrid SLP check.
15653         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
15654
15655 2010-02-16  Richard Guenther  <rguenther@suse.de>
15656
15657         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
15658         (true_dependence): If memrefs_conflict_p computes must-alias
15659         trust it.  Move TBAA check after offset-based disambiguation.
15660         (canon_true_dependence): Likewise.
15661
15662 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
15663
15664         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
15665         * doc/invoke.texi: Document it.
15666         * var-tracking.c: Include toplev.h and params.h.
15667         (vt_find_locations): Return bool indicating success.  Compute
15668         hash sizes unconditionally.  Check new parameter, report.
15669         (variable_tracking_main_1): Check vt_find_locations results and
15670         retry.  Renamed from...
15671         (variable_tracking_main): ... this.  New wrapper to preserve
15672         flag_var_tracking_assignments.
15673         * Makefile.in (var-tracking.o): Adjust dependencies.
15674
15675 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
15676             Jakub Jelinek  <jakub@redhat.com>
15677
15678         PR target/42854
15679         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
15680         if weak_import attribute is present.
15681         * config/darwin.c (machopic_select_section): Likewise.
15682
15683 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
15684
15685         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
15686         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
15687         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
15688         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
15689
15690         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
15691         types.
15692
15693         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
15694         Fix argument types.
15695
15696         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
15697         Rewrite text to refer to the names.
15698
15699 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
15700
15701         * config/i386/i386-builtin-types.def
15702         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
15703         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
15704         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
15705         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
15706         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
15707         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
15708         IX86_BUILTIN_VPERMIL2PS256.
15709         (MULTI_ARG_4_DF2_DI_I): Defined.
15710         (MULTI_ARG_4_DF2_DI_I1): Defined.
15711         (MULTI_ARG_4_SF2_SI_I): Defined.
15712         (MULTI_ARG_4_SF2_SI_I1): Defined.
15713         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
15714         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
15715         __builtin_ia32_vpermil2ps256.
15716         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
15717         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
15718         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
15719         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
15720         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
15721         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
15722         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
15723         CODE_FOR_xop_vpermil2v8sf3.
15724         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
15725         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
15726         * config/i386/xopintrin.h (_mm_permute2_pd): New.
15727         (_mm256_permute2_pd): New.
15728         (_mm_permute2_ps): New.
15729         (_mm256_permute2_ps): New.
15730
15731 2010-02-15  Nick Clifton  <nickc@redhat.com>
15732
15733         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
15734         boolean parameters.  Use emit_jump_insn when emitting a pop
15735         instruction containing a return insn.
15736         (push): Use 'true' rather than '1' as second parameter to F.
15737         (h8300_expand_prologue): Likewise.
15738         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
15739         (h8300_expand_epilogue): Likewise.
15740
15741 2010-02-15  Richard Guenther  <rguenther@suse.de>
15742
15743         PR middle-end/43068
15744         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
15745         if that is zero.
15746
15747 2010-02-15  Nick Clifton  <nickc@redhat.com>
15748
15749         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
15750         delta.
15751
15752 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
15753
15754         * intl.c (fake_ngettext): New function.
15755         * intl.h (fake_ngettext): Declare.
15756         (ngettext): Define macro.
15757         * collect2.c (notice_translated): New function.
15758         (main): Use notice_translated and ngettext.
15759         * collect2.h (notice_translated): Declare.
15760
15761 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
15762
15763         * reorg.c (delete_computation): Comment fixes.
15764         * caller-save.c (setup_save_areas): Idem.
15765         * sel-sched-dump.c (dump_lv_set): Idem.
15766         * rtl.def: Idem.
15767
15768 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15769
15770         * config/s390/s390.c (s390_sched_init): New function.
15771         (TARGET_SCHED_INIT): Target hook defined.
15772
15773 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
15774             Jack Howarth  <howarth@bromo.med.uc.edu>
15775             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
15776
15777         PR target/42982
15778         Partial revert of unintended change in fix for PR41605.
15779         * config/darwin.h: Fix typo.
15780         * config/darwin9.h: Same.
15781
15782 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
15783
15784         * c-pch.c (pch_init): Clear v.
15785
15786 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15787
15788         PR middle-end/42930
15789         * graphite-scop-detection.c (graphite_can_represent_scev): Call
15790         graphite_can_represent_init for MULT_EXPR.
15791
15792 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15793
15794         PR middle-end/42914
15795         PR middle-end/42530
15796         * graphite-sese-to-poly.c (remove_phi): New.
15797         (translate_scalar_reduction_to_array): Call remove_phi.
15798
15799 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15800
15801         PR middle-end/42771
15802         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
15803         * graphite-clast-to-gimple.h (gloog): Update declaration.
15804         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
15805         * graphite-poly.h (struct poly_bb): Add missing comments.
15806         (struct scop): Add poly_scop_p field.
15807         (POLY_SCOP_P): New.
15808         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
15809         * graphite.c (graphite_transform_loops): Build the polyhedral
15810         representation for each scop before code generation.
15811         * sese.c (rename_variables_in_operand): Removed.
15812         (rename_variables_in_expr): Return the renamed expression.
15813         (rename_sese_parameters): New.
15814         * sese.h (rename_sese_parameters): Declared.
15815
15816 2010-02-11  Richard Guenther  <rguenther@suse.de>
15817
15818         PR tree-optimization/42998
15819         * tree-ssa-pre.c (create_expression_by_pieces): Treat
15820         POINTER_PLUS_EXPR properly.
15821
15822 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15823             Changpeng Fang  <changpeng.fang@amd.com>
15824
15825         PR middle-end/40886
15826         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
15827         the cost of an IV candidate when the IV is used in a test against zero.
15828
15829         * gcc.dg/tree-ssa/ivopts-3.c: New.
15830
15831 2010-02-11  Richard Guenther  <rguenther@suse.de>
15832
15833         PR lto/41664
15834         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
15835         pointer-vs-decl case by swapping refs.  Handle some cases
15836         of pointer-vs-decl disambiguations more conservatively.
15837         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
15838         to false after expanding.
15839
15840 2010-02-11  Richard Guenther  <rguenther@suse.de>
15841
15842         PR driver/43021
15843         * gcc.c (process_command): Handle LTO file@offset case more
15844         appropriately.
15845
15846 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
15847
15848         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
15849         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
15850         of DEBUG_INSNs.
15851         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
15852
15853         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
15854         if MEM's mode size isn't DWARF2_ADDR_SIZE.
15855         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
15856         Optimize eq/ne comparisons when both arguments are known to be
15857         zero-extended.
15858         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
15859         Don't mask operands unnecessarily if they are known to be already
15860         zero-extended.
15861
15862 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
15863
15864         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
15865         instead of loop.
15866
15867 2010-02-10  Richard Guenther  <rguenther@suse.de>
15868
15869         PR tree-optimization/43017
15870         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
15871         for wrapping signed arithmetic.
15872
15873 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
15874
15875         PR debug/43010
15876         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
15877         if no debug info should be emitted for it.
15878
15879 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
15880
15881         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
15882         note when flag_exceptions is set.
15883
15884 2010-02-10  Duncan Sands  <baldrick@free.fr>
15885
15886         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
15887
15888 2010-02-10  Richard Guenther  <rguenther@suse.de>
15889
15890         PR c/43007
15891         * tree.c (get_unwidened): Handle constants.
15892         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
15893
15894 2010-02-10  Martin Jambor  <mjambor@suse.cz>
15895
15896         PR lto/42985
15897         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
15898         check for variable argument counts independently.
15899
15900 2010-02-10  Christian Bruel  <christian.bruel@st.com>
15901
15902         PR target/42841
15903         * config/sh/sh.c (find_barrier): Increase length for non delayed
15904         conditional branches.
15905
15906 2010-02-10  Christian Bruel  <christian.bruel@st.com>
15907
15908         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
15909
15910 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
15911
15912         * builtins.c (set_builtin_user_assembler_name): Also handle
15913         ffs if int is smaller than word.
15914
15915 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
15916
15917         PR middle-end/42973
15918         * ira-conflicts.c (get_dup): Remove.
15919         (process_reg_shuffles): Add new parameter.  Use it as an
15920         additional guard for copy generation.
15921         (add_insn_allocno_copies): Rewrite.
15922
15923 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
15924
15925         * common.opt (fsched2-use-traces): Preserved for backward
15926         compatibility.
15927         * doc/invoke.texi: Remove the documentation about option
15928         -fsched2-use-traces.
15929         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
15930         flag_sched2_use_traces.
15931         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
15932         the backward compatibility flag section.
15933
15934 2010-02-09  Richard Guenther  <rguenther@suse.de>
15935
15936         PR tree-optimization/43008
15937         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
15938         make HEAP variables initialized from global memory if they
15939         are not known builtin functions.
15940         (find_func_aliases): Adjust.
15941
15942 2010-02-09  Richard Guenther  <rguenther@suse.de>
15943
15944         PR tree-optimization/43000
15945         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
15946         arithmetic manually.
15947
15948 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
15949
15950         PR tree-optimization/42931
15951         * tree-loop-linear.c (try_interchange_loops): Don't call
15952         double_int_mul if estimated_loop_iterations failed.
15953
15954 2010-02-08  Martin Jambor  <mjambor@suse.cz>
15955
15956         PR middle-end/42898
15957         * tree-sra.c (build_accesses_from_assign): Do not mark in
15958         should_scalarize_away_bitmap if stmt has volatile ops.
15959         (sra_modify_assign): Do not process assigns piecemeal if if stmt
15960         has volatile ops.
15961
15962 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15963
15964         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
15965
15966 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
15967
15968         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
15969         before the pattern.
15970
15971 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
15972
15973         PR middle-end/42946
15974         * df-core.c (df_finish_pass): Change type of saved_flags to int.
15975
15976 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
15977
15978         PR middle-end/42988
15979         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
15980         to unknown_dependence.
15981         (graphite_legal_transform_dr): Handle the unknown_dependence.
15982         (graphite_carried_dependence_level_k): Same.
15983
15984 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
15985
15986         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
15987
15988 2010-02-07  Richard Guenther  <rguenther@suse.de>
15989
15990         PR middle-end/42991
15991         * expr.c (get_inner_reference): Always initialize *pbitsize.
15992
15993 2010-02-07  Richard Guenther  <rguenther@suse.de>
15994
15995         PR middle-end/42956
15996         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
15997         new ARRAY_REFs on variable size element or minimal index arrays.
15998         Complete.
15999         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
16000         gimple_fold_indirect_ref.
16001
16002 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
16003
16004         PR target/42957
16005         * arm.c (arm_override_options): Just return if the user has specified
16006         an invalid fpu name.
16007
16008 2010-02-03  Jason Merrill  <jason@redhat.com>
16009
16010         PR c++/42870
16011         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
16012         i386_pe_maybe_record_exported_symbol.
16013
16014 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
16015
16016         PR target/42924
16017         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
16018         (pa_delegitimize_address): New function.
16019
16020 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
16021
16022         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
16023         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
16024
16025 2010-02-05  Richard Guenther  <rguenther@suse.de>
16026
16027         PR lto/42762
16028         * lto-streamer-in.c (get_resolution): Deal with references
16029         to undefined functions.
16030
16031 2010-02-05  Richard Guenther  <rguenther@suse.de>
16032
16033         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
16034         (fold_const_aggregate_ref): Likewise.
16035         (ccp_fold_stmt): Substitute loads.
16036         (maybe_fold_reference): Verify types before substituting.
16037         Unshare properly.
16038         (fold_gimple_assign): Unshare properly.
16039         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
16040
16041 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
16042
16043         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
16044         for rs6000_gen_cell_microcode.
16045
16046 2010-02-04  Richard Guenther  <rguenther@suse.de>
16047
16048         PR rtl-optimization/42952
16049         * dse.c (const_or_frame_p): Remove MEM handling.
16050
16051 2010-02-04  Nick Clifton  <nickc@redhat.com>
16052
16053         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
16054         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16055         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
16056         (mn10300_asm_output_mi_thunk): New function.
16057         (mn10300_can_output_mu_thunk): New function.
16058         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
16059         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
16060         (FUNCTION_ARG): Delete incorrect comment.
16061
16062 2010-02-03  Jason Merrill  <jason@redhat.com>
16063
16064         PR c++/40138
16065         * fold-const.c (operand_equal_p): Handle erroneous types.
16066
16067 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16068
16069         * config/h8300/h8300.md (can_delay): Fix attibute condition.
16070
16071 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
16072
16073         PR rtl-optimization/42941
16074         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
16075         of xmalloc.
16076
16077 2010-02-03  Jason Merrill  <jason@redhat.com>
16078
16079         PR c++/35652
16080         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
16081
16082 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
16083
16084         PR debug/42896
16085         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
16086         (cselib_reset_table): Renamed from...
16087         (cselib_reset_table_with_next_value): ... this.
16088         (cselib_get_next_uid): Renamed from...
16089         (cselib_get_next_unknown_value): ... this.
16090         * cselib.c (next_uid): Renamed from...
16091         (next_unknown_value): ... this.
16092         (cselib_clear_table): Adjust.
16093         (cselib_reset_table): Adjust.  Renamed from...
16094         (cselib_reset_table_with_next_value): ... this.
16095         (cselib_get_next_uid): Adjust.  Renamed from...
16096         (cselib_get_next_unknown_value): ... this.
16097         (get_value_hash): Use hash.
16098         (cselib_hash_rtx): Likewise.
16099         (new_cselib_val): Adjust.  Set and dump uid.
16100         (cselib_lookup_mem): Pass next_uid as hash.
16101         (cselib_subst_to_values): Likewise.
16102         (cselib_log_lookup): Dump uid.
16103         (cselib_lookup): Pass next_uid as hash.  Adjust.
16104         (cselib_process_insn): Adjust.
16105         (cselib_init): Initialize next_uid.
16106         (cselib_finish): Adjust.
16107         (dump_cselib_table): Likewise.
16108         * dse.c (canon_address): Dump value uid.
16109         * print-rtl.c (print_rtx): Print value uid.
16110         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
16111         (dvuid): New type.
16112         (dv_uid): New function, sort of renamed from...
16113         (dv_htab_hash): ... this, reimplemented in terms of it and...
16114         (dv_uid2hash): ... this.  New.
16115         (variable_htab_eq): Drop excess assertions.
16116         (tie_break_pointers): Removed.
16117         (canon_value_cmp): Compare uids.
16118         (variable_post_merge_New_vals): Print uids.
16119         (vt_add_function_parameters): Adjust.
16120         (vt_initialize): Reset table.  Adjust.
16121
16122 2010-02-03  Richard Guenther  <rguenther@suse.de>
16123
16124         PR tree-optimization/42944
16125         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
16126         (call_may_clobber_ref_p_1): Likewise.  Properly handle
16127         malloc and calloc clobbering errno.
16128
16129 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
16130
16131         * doc/invoke.texi: Fix name of sched1 dump.
16132
16133         * opts.c (decode_options): Set flag_tree_switch_conversion
16134         only conditionally on optimize >= 2.
16135
16136         * gcse.c: Assorted comment fixes in pass description.
16137
16138 2010-02-03  Anthony Green  <green@moxielogic.com>
16139
16140         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
16141         nop padding in order to maintain alignment of storage location of
16142         target function address.
16143         (moxie_trampoline_init): Store target function address at newly
16144         aligned location.
16145         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
16146         to 32.
16147         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
16148
16149 2010-02-03  Richard Guenther  <rguenther@suse.de>
16150
16151         PR middle-end/42927
16152         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
16153
16154 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16155
16156         * config.gcc: Reenable check for obsolete targets.
16157         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
16158         mips-sgi-irix6.[0-4]*.
16159
16160 2010-02-02  Nick Clifton  <nickc@redhat.com>
16161
16162         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
16163         constant size of 4 as being the same as 0.
16164         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
16165         can take values in the range 0..4.
16166
16167 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
16168
16169         PR java/41991
16170         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
16171         as _darwin10_Unwind_FindEnclosingFunction().
16172         * libgcc-libsystem.ver: New.
16173
16174 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
16175
16176         PR target/41399
16177         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
16178         implicitly set registers.
16179
16180 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
16181
16182         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
16183         (arm_override_options): Allow automatic selection of the thread
16184         pointer register if thumb2.
16185         (legitimize_pic_address): Improve code sequences for Thumb2.
16186         (arm_call_tls_get_addr): Likewise.
16187         (legitimize_tls_address): Likewise.
16188         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
16189         (pic_load_addr_32bit): ... this.  New named pattern.
16190         * thumb2.md (pic_load_addr_thumb2): Delete.
16191         (pic_load_dot_plus_four): Delete.
16192         (tls_load_dot_plus_four): New named pattern.
16193
16194 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16195
16196         PR libgomp/29986
16197         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
16198         Document fix for TLS bug.
16199
16200 2010-01-31  Richard Guenther  <rguenther@suse.de>
16201
16202         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
16203         conservatively correct.
16204
16205 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16206
16207         PR target/42850
16208         Revert:
16209         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16210
16211         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
16212
16213 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16214
16215         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
16216
16217 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
16218
16219         * config.gcc: Adjust order of makefile fragments for mingw targets.
16220
16221 2010-01-31  Richard Guenther  <rguenther@suse.de>
16222
16223         PR middle-end/42898
16224         * gimplify.c (gimplify_init_constructor): For volatile LHS
16225         initialize a temporary.
16226
16227 2010-01-31  Matthias Klose  <doko@ubuntu.com>
16228
16229         * configure.ac: Fix __stack_chk_fail check for cross builds configured
16230         --with-headers
16231         * configure: Regenerate.
16232
16233 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
16234
16235         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
16236         the same alias set and their sizes different constantness.
16237         (aliasing_component_refs_p): Revert 2009-10-24 change.
16238
16239 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16240
16241         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
16242         unused.
16243
16244 2010-01-29  Richard Guenther  <rguenther@suse.de>
16245
16246         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
16247         Assert we successfully updated the call.
16248
16249 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
16250
16251         PR rtl-optimization/42889
16252         * df.h (df_set_bb_dirty_nonlr): New prototype.
16253         * df-core.c (df_set_bb_dirty_nonlr): New function.
16254         * df-scan.c (df_insn_rescan): Call it instead of
16255         df_set_bb_dirty for DEBUG_INSNs.
16256
16257 2010-01-29  Richard Guenther  <rguenther@suse.de>
16258
16259         PR middle-end/37448
16260         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
16261         quadratic behavior in most cases.
16262
16263 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
16264
16265         PR target/42891
16266         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
16267         in the call to gen_x86_movsicc_0_m1.
16268
16269 2010-01-28  Richard Guenther  <rguenther@suse.de>
16270
16271         PR tree-optimization/42871
16272         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
16273
16274 2010-01-28  Richard Guenther  <rguenther@suse.de>
16275
16276         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
16277         into call arguments.
16278
16279 2010-01-28  Richard Guenther  <rguenther@suse.de>
16280
16281         PR middle-end/42883
16282         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
16283         the forwarder if the destination is an EH landing pad.
16284
16285 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
16286
16287         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
16288         block list passed to gimple_duplicate_sese_tail.
16289         (parallelize_loops): Avoid parallelization when the function
16290         has_nonlocal_label.
16291         Avoid parallelization when the preheader is IRREDUCIBLE.
16292         Try to optimize when estimated_loop_iterations_int is unresolved.
16293         Add the loop's location to the dump file.
16294         * tree-cfg.c (add_phi_args_after_redirect): Remove.
16295         (gimple_duplicate_sese_tail): Remove the check for the latch.
16296         Redirect nexits to the exit block.
16297         Remove handling of the incoming edges to the latch.
16298         Redirect the backedge from the copied latch to the exit bb.
16299
16300 2010-01-28  Michael Matz  <matz@suse.de>
16301
16302         PR target/42881
16303         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
16304         Wrap force_reg into a sequence, emit it before user.
16305
16306 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
16307
16308         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
16309         (arm_rev): New.
16310         (arm_legacy_rev): Likewise.
16311         (thumb_legacy_rev): Likewise.
16312
16313 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
16314
16315         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
16316         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
16317         on MEM's address failed, try avoid_constant_pool_reference and
16318         recurse if it returned something different.
16319         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
16320         address, try avoid_constant_pool_reference and recurse if it
16321         returned something different.
16322         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
16323         address and avoid_constant_pool_reference returned something
16324         different, don't set have_address.
16325
16326 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
16327
16328         PR debug/42861
16329         * var-tracking.c (val_store): Add modified argument, obey it.
16330         Adjust callers.
16331         (count_uses): Move down logging of main.
16332         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
16333         don't need resolution.
16334         (emit_notes_in_bb): Likewise.
16335
16336 2010-01-27  Richard Guenther  <rguenther@suse.de>
16337
16338         PR middle-end/42878
16339         * tree-inline.c (remap_decl): Delay remapping of SSA name
16340         default definitions until we need them.
16341
16342 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
16343
16344         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
16345         (rs6000_delegitimize_address): New function.
16346
16347         * config/s390/s390.c (s390_delegitimize_address): Call
16348         delegitimize_mem_from_attrs.
16349
16350         PR middle-end/42874
16351         * tree-inline.c (cannot_copy_type_1): Removed.
16352         (copy_forbidden): Don't forbid copying of functions containing
16353         records/unions with variable length fields.
16354
16355 2010-01-27  Christian Bruel  <christian.bruel@st.com>
16356
16357         Revert:
16358         PR target/42841
16359         * config/sh/sh.c (find_barrier): Increase length for non delayed
16360         conditional branches.
16361
16362 2010-01-27  Matthias Klose  <doko@ubuntu.com>
16363
16364         * configure.ac (gnu-unique-object): Fix ldd version check.
16365         * configure: Regenerate.
16366
16367 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16368
16369         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
16370         HAVE_GNU_AS value.
16371         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
16372         Test for HAVE_GNU_AS value.
16373
16374 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16375
16376         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
16377         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
16378         INT64_TYPE): Define.
16379         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
16380         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16381         INT_LEAST64_TYPE): Define.
16382         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
16383         UINT_LEAST64_TYPE): Define.
16384         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
16385         INT_FAST64_TYPE): Define.
16386         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16387         UINT_FAST64_TYPE): Define.
16388         (INTMAX_TYPE, UINTMAX_TYPE): Define.
16389         (INTPTR_TYPE, UINTPTR_TYPE): Define.
16390         (SIG_ATOMIC_TYPE): Define.
16391
16392 2010-01-26  Richard Guenther  <rguenther@suse.de>
16393
16394         * df-scan.c (df_scan_set_bb_info): Remove assert.
16395         (df_insn_rescan_debug_internal): Merge asserts.
16396         (df_install_ref): Likewise.
16397         (df_mark_reg): Use bitmap_set_range.
16398         (df_hard_reg_used_p): Remove assert.
16399         (df_hard_reg_used_count): Likewise.
16400
16401 2010-01-26  Richard Guenther  <rguenther@suse.de>
16402
16403         PR rtl-optimization/42685
16404         * web.c (web_main): Ignore DEBUG_INSNs.
16405
16406 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
16407
16408         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
16409
16410         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
16411         Fix types of fndecl and arglist parameters.
16412
16413 2010-01-26  Richard Guenther  <rguenther@suse.de>
16414
16415         PR middle-end/42806
16416         * tree-eh.c (unsplit_eh): Skip debug insns.
16417
16418 2010-01-26  Richard Guenther  <rguenther@suse.de>
16419
16420         PR tree-optimization/42250
16421         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
16422
16423 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
16424
16425         PR fortran/42866
16426         * omp-low.c (expand_omp_sections): Only use single_pred if
16427         l2_bb is single_pred_p.
16428
16429 2010-01-25  Christian Bruel  <christian.bruel@st.com>
16430
16431         PR target/42841
16432         * config/sh/sh.c (find_barrier): Increase length for non delayed
16433         conditional branches.
16434         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
16435
16436 2010-01-24  David S. Miller  <davem@davemloft.net>
16437
16438         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
16439         define if not using GAS.
16440         * config/sparc/sparc.c (sparc_elf_asm_named_section):
16441         Likewise.  Delete SECTION_MERGE code, which is only applicable
16442         when using GAS.
16443
16444 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
16445
16446         PR c++/42748
16447         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
16448         mangling of va_list in system headers.
16449
16450 2010-01-23  Toon Moene  <toon@moene.org>
16451
16452         * tree-predcom.c (combine_chains): Return NULL, not false.
16453
16454 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
16455
16456         * tree-loop-distribution.c (distribute_loop): Fix declaration and
16457         initialization of variable res to agree with return type.
16458
16459 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
16460
16461         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
16462         * tree-sra.c: Add include of expr.h.
16463
16464 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
16465
16466         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
16467         insert the debug stmt on the single non-EH edge from the stmt.
16468
16469 2010-01-22  Richard Henderson  <rth@redhat.com>
16470
16471         PR tree-opt/42833
16472         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
16473         the RHS until after generate_subtree_copies has insertted its
16474         code before the current statement.
16475
16476 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
16477
16478         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
16479
16480         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
16481
16482 2010-01-21  Martin Jambor  <mjambor@suse.cz>
16483
16484         PR tree-optimization/42585
16485         * tree-sra.c (struct access): New field grp_total_scalarization.
16486         (dump_access): Dump the new field.
16487         (should_scalarize_away_bitmap): New variable.
16488         (cannot_scalarize_away_bitmap): Likewise.
16489         (sra_initialize): Allocate new bitmaps.
16490         (sra_deinitialize): Free new bitmaps.
16491         (create_access_1): New function.
16492         (create_access): Parts moved to create_access_1.
16493         (type_consists_of_records_p): New function.
16494         (completely_scalarize_record): Likewise.
16495         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
16496         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
16497         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
16498         access.
16499         (analyze_all_variable_accesses): Completely scalarize small eligible
16500         records.
16501
16502 2010-01-21  Martin Jambor  <mjambor@suse.cz>
16503
16504         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
16505
16506 2010-01-21  Andrew Haley  <aph@redhat.com>
16507
16508         * gcc.c (process_command): Move lang_specific_driver before
16509         setting cc_libexec_prefix.
16510
16511 2010-01-21  Richard Guenther  <rguenther@suse.de>
16512
16513         PR middle-end/19988
16514         * fold-const.c (negate_expr_p): Pretend only negative
16515         real constants are easily negatable.
16516
16517 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
16518             Jason Merrill  <jason@redhat.com>
16519
16520         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
16521         (TYPE_TRANSPARENT_AGGR): this, for union and record.
16522         * calls.c (initialize argument_information): Handle it.
16523         * c-common.c (handle_transparent_union_attribute): Use new name.
16524         * c-decl.c (finish_struct): Ditto.
16525         * c-typeck.c (type_lists_compatible_p): Ditto.
16526         (convert_for_assignment): Use new name and also handle record.
16527         * function.c (aggregate_value_p): Handle it.
16528         (pass_by_reference): Ditto.
16529         (assign_parm_data_types): Ditto.
16530         * print-tree.c (print_node): Ditto.
16531         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
16532         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
16533         * tree.c (first_field): New fn.
16534
16535 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
16536
16537         PR target/42818
16538         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
16539         even when linking statically, for now.
16540
16541 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
16542
16543         PR debug/42715
16544         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
16545         without a cselib val.
16546         (count_uses): Accept MO_VAL_SET with no val on stores.
16547         (add_stores): Likewise.
16548
16549 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16550
16551         * var-tracking.c (check_value_val): Add a compile time assertion.
16552         (dv_is_decl_p): Simplify.
16553         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
16554         gcc_assert if ENABLE_CHECKING.
16555
16556 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
16557
16558         PR debug/42782
16559         * var-tracking.c: Include tree-flow.h.
16560         (mem_dies_at_call): New.
16561         (dataflow_set_preserve_mem_locs): Use it.
16562         (dataflow_set_remove_mem_locs): Likewise.
16563         (dump_var): Renamed from dump_variable.  Adjust all callers.
16564         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
16565         * Makefile.in (var-tracking.o): Adjust deps.
16566
16567 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
16568
16569         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
16570
16571 2010-01-20  Richard Guenther  <rguenther@suse.de>
16572
16573         PR tree-optimization/42717
16574         * tree-ssa-dce.c (get_live_post_dom): Remove.
16575         (forward_edge_to_pdom): Take an arbitrary edge to copy
16576         degenerate PHI args from.
16577         (remove_dead_stmt): Use the first post-dominator even if it
16578         does not contain live statements as redirection destination.
16579
16580 2010-01-20  Richard Guenther  <rguenther@suse.de>
16581
16582         * tree-inline.c (estimate_num_insns): Handle EH builtins.
16583
16584 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16585
16586         * sel-sched.c (create_speculation_check): Remove set but not used
16587         variable twin.
16588         (try_transformation_cache): Remove set but not used variable ds.
16589         (calculate_privileged_insns): Remove set but not used variables
16590         cur_insn and min_spec_insn.
16591         (find_best_expr): Remove set but not used variable avail_n.
16592         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
16593         variable e.
16594         * cgraphunit.c (assemble_thunk): Remove set but not used variable
16595         false_label.
16596         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
16597         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
16598         new_scop_exit_edge.
16599
16600 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
16601
16602         PR bootstrap/42786
16603         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
16604         cpu types.  Add support for *-sse3 cpu types.
16605         (x86_64-*-*): Ditto.
16606
16607 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16608
16609         PR middle-end/42803
16610         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
16611         argument, call initializer_constant_valid_p_1 instead of
16612         initializer_constant_valid_p, pass CACHE to it, return NULL
16613         immediately if first call returns NULL.
16614         (initializer_constant_valid_p_1): New function.
16615         (initializer_constant_valid_p): Use it.
16616
16617 2010-01-20  Thomas Quinot  <quinot@adacore.com>
16618
16619         * tree.def (PLACEHOLDER_EXPR): Fix comment.
16620
16621 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16622
16623         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
16624         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
16625         (loc_list_from_tree): Don't handle unsigned division.  Handle
16626         signed modulo using DW_OP_{over,over,div,mul,minus}.
16627         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
16628         modulo instead of signed.
16629
16630 2010-01-20  DJ Delorie  <dj@redhat.com>
16631
16632         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
16633         (Fpa): Pass it
16634         (h8300_emit_stack_adjustment): Propogate it.
16635         (push): Pass it.
16636         (h8300_expand_prologue): Likewise.
16637         (h8300_expand_epilogue): Likewise.
16638
16639 2010-01-19  Michael Matz  <matz@suse.de>
16640
16641         PR tree-optimization/41783
16642         * tree-data-ref.c (toplevel): Include flags.h.
16643         (dump_data_dependence_relation):  Also dump the inputs if the
16644         result will be unknown.
16645         (split_constant_offset_1): Look through some conversions.
16646         * tree-predcom.c (determine_roots_comp): Restart a new chain if
16647         the offset from last element is too large.
16648         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
16649         (reassociate_to_the_same_stmt): Handle vector registers.
16650         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
16651         (e.g. conversions).
16652         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
16653         wide_prolog_niters argument, emit widening instructions.
16654         (vect_do_peeling_for_alignment): Adjust caller, use widened
16655         variant of the iteration cound.
16656         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
16657
16658 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16659
16660         PR target/38697
16661         * config/arm/neon-testgen.m (emit_automatics): New parameter
16662         features. Adjust for Fixed_return_reg feature.
16663         (test_intrinsic): Call emit_automatics with new feature.
16664         * config/arm/neon.ml: Update copyright years.
16665         (features): New Fixed_return_reg feature.
16666         (ops): Update feature for Vget_low.
16667
16668 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
16669
16670         PR tree-optimization/42719
16671         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
16672         stmt uses.
16673
16674         PR debug/42728
16675         * fwprop.c (all_uses_available_at): Return false if def_set dest
16676         is a REG that is used in def_insn.
16677
16678 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
16679
16680         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
16681
16682         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
16683         Add argument names.
16684
16685         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
16686
16687         * target.h (struct gcc_target) <secondary_reload>: Change type
16688         of last argument to secondary_reload_info *.
16689
16690 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
16691
16692         PR target/42774
16693         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
16694         memory references with unaligned offsets.  Remove CQImode handling.
16695         (unaligned_memory_operand): Return 1 for memory references with
16696         unaligned offsets.  Remove CQImode handling.
16697
16698 2010-01-18  Richard Guenther  <rguenther@suse.de>
16699
16700         PR middle-end/39954
16701         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
16702         builtin calls.
16703
16704 2010-01-18  Richard Guenther  <rguenther@suse.de>
16705
16706         PR tree-optimization/42781
16707         * tree-ssa-structalias.c (find_what_var_points_to): Skip
16708         restrict processing only if the original variable was artificial.
16709
16710 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
16711
16712         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
16713         find number of popped argument bytes.
16714
16715         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
16716         Fix the text that describes the return value for invalid insns.
16717
16718         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
16719
16720         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
16721         Clarify what 'cost of the -dependence' is.  Fix quoting.
16722
16723         * toplev.c (default_get_pch_validity): Rename argument to "sz".
16724         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
16725
16726 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
16727
16728         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
16729         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
16730
16731 2010-01-17  Richard Guenther  <rguenther@suse.de>
16732
16733         PR middle-end/42248
16734         * function.c (split_complex_args): Take a VEC to modify.
16735         (assign_parms_augmented_arg_list): Build a VEC instead of
16736         a chain of PARM_DECLs.
16737         (assign_parms_unsplit_complex): Take a VEC of arguments.
16738         Do not fixup unmodified parms.
16739         (assign_parms): Deal with the VEC.
16740         (gimplify_parameters): Likewise.
16741
16742 2010-01-17  Richard Guenther  <rguenther@suse.de>
16743
16744         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
16745         node existence check.
16746         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
16747         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
16748         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
16749         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
16750         (gimple_execute_on_growing_pred): Likewise.
16751
16752 2010-01-17  Richard Guenther  <rguenther@suse.de>
16753
16754         PR tree-optimization/42773
16755         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
16756         (compute_antic_aux): Likewise.
16757         (compute_partial_antic_aux): Likewise.
16758
16759 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
16760
16761         PR debug/42767
16762         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
16763         and US_TRUNCATE.
16764
16765 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
16766
16767         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
16768         appearance.
16769
16770         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
16771         Fix markup for strict argument.
16772
16773         (TARGET_SCHED_REORDER2): Fix argument types.
16774
16775         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
16776         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
16777
16778         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
16779         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
16780
16781         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
16782         Add argument name.
16783
16784         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
16785         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
16786         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
16787         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
16788         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
16789
16790         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
16791
16792         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
16793
16794         (TARGET_ASM_RELOC_RW_MASK): Add return type.
16795         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
16796
16797         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
16798
16799         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
16800         Use prototype.
16801
16802         (TARGET_ASM_NAMED_SECTION): Fix argument list.
16803
16804         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
16805         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
16806
16807         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
16808
16809         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
16810
16811         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
16812         referring to it.  Fix language.
16813
16814         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
16815
16816         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
16817
16818         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
16819
16820         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
16821
16822         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
16823         '@var{stream}.  Remove stray 'and'.
16824
16825         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
16826
16827         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
16828
16829         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
16830
16831         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
16832         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
16833
16834         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
16835         Fix description of return value.
16836         Rename argument "sz" to "len."
16837
16838         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
16839         Clarify meaning of 'true' return value.
16840
16841         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
16842
16843         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
16844         rep_mode versus mode_rep.
16845
16846         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
16847
16848         (TARGET_BUILTIN_DECL): Fix name.
16849
16850         (TARGET_COMMUTATIVE_P): Fix type of first argument.
16851
16852         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
16853
16854         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
16855
16856         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
16857
16858         (TARGET_RELAXED_ORDERING): Use @deftypevr.
16859
16860         (TARGET_GET_DRAP_RTX): Note that this is a hook.
16861         Clarify language.
16862
16863         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
16864         Rename argument tm_fn to md_fn.
16865
16866         (TARGET_OPTION_PRINT): Fix argument list.
16867
16868 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
16869
16870         PR target/42664
16871         * config/i386/i386.c (ix86_fixup_binary_operands):
16872         Revert FMA4 fixup of operands.
16873
16874 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16875
16876         PR gcc/42525
16877         * Makefile.in (write_entries_to_file, install-plugin):
16878         Use \012 instead of \n with tr.
16879
16880 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
16881
16882         * configure.ac (HAVE_AS_REF): New C macro.
16883         * configure: Regenerate.
16884         * config.in: Likewise.
16885         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
16886         if HAVE_AS_REF.
16887         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
16888         if HAVE_AS_REF.
16889
16890 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
16891
16892         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
16893
16894         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
16895
16896         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
16897
16898         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
16899
16900         (TARGET_IN_SMALL_DATA_P): Fix argument type.
16901
16902         (TARGET_BINDS_LOCAL_P): Fix argument type.
16903
16904         (TARGET_ASM_FILE_END): Use prototype.
16905
16906         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
16907
16908         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
16909
16910         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
16911
16912         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
16913
16914         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
16915         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
16916
16917         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
16918         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
16919
16920         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
16921         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
16922         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
16923         (TARGET_ADDR_SPACE_CONVERT): Likewise.
16924
16925         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
16926
16927         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
16928
16929         (TARGET_INIT_BUILTINS): Use prototype.
16930
16931         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
16932         Put 'const char *' in braces.  Fix parameter types.
16933         (TARGET_INVALID_CONVERSION): Fix parameter types.
16934         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
16935         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
16936
16937         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
16938         Fix argument type.
16939
16940         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
16941
16942         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
16943
16944 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
16945
16946         * doc/tm.texi (TARGET_HELP): Fix return type.
16947
16948         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
16949         in braces.  Fix argument types.
16950
16951         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
16952
16953         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
16954
16955         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
16956
16957         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
16958         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
16959
16960         (TARGET_MANGLE_TYPE): Fix argument types.
16961
16962         (TARGET_IRA_COVER_CLASSES): Use prototype.
16963
16964         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
16965
16966         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
16967
16968         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
16969
16970         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
16971
16972         (TARGET_CALLEE_COPIES): Fix argument types.
16973
16974         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
16975
16976         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
16977
16978         (TARGET_FUNCTION_VALUE): Fix argument types.
16979
16980         (TARGET_RETURN_IN_MSB): Fix argument type.
16981
16982         (TARGET_RETURN_IN_MEMORY): Fix argument types.
16983
16984         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
16985
16986         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
16987
16988         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
16989         agree with return type.
16990
16991         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
16992
16993 2010-01-15  Jing Yu  <jingyu@google.com>
16994
16995         PR rtl-optimization/42691
16996         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
16997         a pseudo to a constant and are merged, and adjust comments.
16998
16999 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
17000
17001         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
17002
17003 2010-01-15  Richard Guenther  <rguenther@suse.de>
17004
17005         PR middle-end/42739
17006         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
17007         labels of computed or non-local gotos to the destination.
17008         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
17009         landing pad label is the first label.
17010
17011 2010-01-15  Richard Guenther  <rguenther@suse.de>
17012
17013         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
17014
17015 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17016
17017         PR target/42747
17018         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
17019         to allow generation of the xssqrtdp instruction on power7.
17020         (sqrtdf2_fpr): Ditto.
17021
17022 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
17023
17024         PR middle-end/42674
17025         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
17026         functions with noreturn attribute.
17027
17028         PR c++/42608
17029         * varasm.c (declare_weak): Add weak attribute to decl if it
17030         doesn't have one already.
17031         (assemble_external): Only add decls to weak_decls if they also
17032         have weak attribute.
17033
17034 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
17035
17036         * var-tracking.c (var_reg_delete): Don't delete the association
17037         between REGs and values or one-part variables if the register
17038         isn't clobbered.
17039
17040 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
17041
17042         PR debug/42657
17043         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
17044         because its first operand is a non-localized variable.
17045
17046 2010-01-14  Martin Jambor  <mjambor@suse.cz>
17047
17048         PR tree-optimization/42706
17049         * tree-sra.c (encountered_recursive_call): New variable.
17050         (encountered_unchangable_recursive_call): Likewise.
17051         (sra_initialize): Initialize both new variables.
17052         (callsite_has_enough_arguments_p): New function.
17053         (scan_function): Call decl and flags check only for IPA-SRA, check
17054         whether there is a recursive call and whether it has enough arguments.
17055         (all_callers_have_enough_arguments_p): New function.
17056         (convert_callers): Look for recursive calls only when
17057         encountered_recursive_call is set.
17058         (ipa_early_sra): Bail out either if
17059         !all_callers_have_enough_arguments_p or
17060         encountered_unchangable_recursive_call.
17061
17062 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17063
17064         * sel-sched.c: Add 2010 to copyright years.
17065         * sel-sched-ir.c: Likewise.
17066         * sel-sched-ir.h: Likewise.
17067
17068 2010-01-14  Martin Jambor  <mjambor@suse.cz>
17069
17070         PR tree-optimization/42714
17071         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
17072         constructors specially.
17073
17074 2010-01-14  Andi Kleen  <ak@linux.intel.com>
17075
17076         * config/i386/drivers-i386.c (detect_caches_intel):
17077         Add l2sizekb parameter and fill in.
17078         (host_detect_local_cpu): Add l2sizekb, fill in.
17079         Add Atom small cache heuristic.
17080
17081 2010-01-14  Andi Kleen  <ak@linux.intel.com>
17082
17083         * config/i386/drivers-i386.c (detect_caches_cpuid4):
17084         Add level3 parameter and fill in.
17085         (detect_caches_intel): Handle level3 cache.
17086
17087 2010-01-14  Andi Kleen  <ak@linux.intel.com>
17088
17089         * config/i386/drivers-i386.c (host_detect_local_cpu):
17090         Fix core duo detection.
17091
17092 2010-01-14  Andi Kleen  <ak@linux.intel.com>
17093
17094         * config/i386/drivers-i386.c (host_detect_local_cpu):
17095         Fix Atom detection.
17096
17097 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17098
17099         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
17100         (rs6000_variable_issue_1): this.  Use...
17101         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
17102
17103 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17104
17105         * sel-sched-ir.c (sel_restore_other_notes): Rename to
17106         sel_restore_notes.  Update all callers.  Call reemit_notes
17107         for all insns.
17108
17109 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17110
17111         PR rtl-optimization/42246
17112         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
17113         loops.
17114
17115 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17116
17117         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
17118         all successors is the same as number of successors in current region.
17119
17120 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17121
17122         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
17123         to rename is not separable.  Otherwise check that its LHS is not NULL.
17124
17125 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17126
17127         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
17128
17129 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17130
17131         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
17132         available registers when failed to discover LHS register class.
17133         Fix indentation.  Update comment.
17134
17135 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17136             Alexander Monakov  <amonakov@ispras.ru>
17137
17138         PR rtl-optimization/42389
17139         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
17140         to can_issue_more.
17141         (advance_state_on_fence): Likewise.
17142         (sel_target_adjust_priority): Print debug output only when
17143         sched_verbose >= 4, not 2.
17144         (get_expr_cost): Do not issue all unique insns on the next cycle.
17145         (fill_insns): Initialize can_issue_more from the value saved
17146         with the fence.
17147         * sel-sched-ir.c (flist_add): New parameter issue_more.
17148         Init FENCE_ISSUE_MORE with it.
17149         (merge_fences): Likewise.
17150         (init_fences): Update call to flist_add.
17151         (add_to_fences, add_clean_fence_to_fences)
17152         (add_dirty_fence_to_fences): Likewise.
17153         (move_fence_to_fences): Update call to merge_fences.
17154         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
17155         sched groups.
17156         * sel-sched-ir.h (struct _fence): New field issue_more.
17157         (FENCE_ISSUE_MORE): New accessor macro.
17158
17159 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17160
17161         PR rtl-optimization/42388
17162         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
17163         that have no predecessors nor successors.  Do not call move_bb_info
17164         for empty blocks outside of current region.
17165
17166 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17167
17168         PR rtl-optimization/42294
17169         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
17170         * sel-sched.c (move_exprs_to_boundary): Transitively add all
17171         originators' originators.
17172
17173 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
17174
17175         PR rtl-optimization/39453
17176         PR rtl-optimization/42246
17177         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
17178         for pipelining_p.
17179         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
17180
17181 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17182             Alexander Monakov  <amonakov@ispras.ru>
17183
17184         PR middle-end/42245
17185         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
17186         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
17187         argument.  Update all callers.
17188         (tidy_control_flow): ... and here.  Recompute topological order
17189         of basic blocks in region if necessary.
17190         (sel_redirect_edge_and_branch): Change return type.  Return true
17191         if topological order might have been invalidated.
17192         (purge_empty_blocks): Export and move from...
17193         * sel-sched.c (purge_empty_blocks): ... here.
17194         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
17195         (maybe_tidy_empty_bb): Delete prototype.
17196         (purge_empty_blocks): Declare.
17197
17198 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
17199
17200         PR rtl-optimization/42249
17201         * sel-sched.c (try_replace_dest_reg): When chosen register
17202         and original register is the same, do not bail out early, but
17203         still check all original insns for validity of replacing destination
17204         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
17205         in this case.
17206
17207 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
17208
17209         PR c/42721
17210         Port from no-undefined-overflow branch:
17211         2009-03-09  Richard Guenther  <rguenther@suse.de>
17212
17213         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
17214
17215 2010-01-14  Richard Guenther  <rguenther@suse.de>
17216
17217         PR lto/42665
17218         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
17219
17220 2010-01-14  Ira Rosen  <irar@il.ibm.com>
17221
17222         PR tree-optimization/42709
17223         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
17224         as scalar type in creation of constant vector operand.
17225
17226 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17227
17228         PR testsuite/42414
17229         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
17230         (check-parallel-%): Match `testsuite' directory component only
17231         at the end.
17232
17233 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
17234
17235         PR translation/39521
17236         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
17237         strings with _().
17238
17239 2010-01-13  Richard Guenther  <rguenther@suse.de>
17240
17241         PR tree-optimization/42730
17242         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
17243         offset zero.
17244
17245 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
17246
17247         PR target/pr42542
17248         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
17249         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
17250         them signed.
17251
17252 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
17253
17254         * config/bfin/libgcc-bfin.ver: Regenerate based on current
17255         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
17256         ___umulsi3_highpart.
17257
17258         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
17259         rather than schedule_insns if the pass is enabled.
17260
17261 2010-01-13  Martin Jambor  <mjambor@suse.cz>
17262
17263         PR tree-optimization/42704
17264         * tree-sra.c (sra_modify_assign): Do not delete assignments to
17265         SSA_NAMEs.
17266
17267 2010-01-13  Martin Jambor  <mjambor@suse.cz>
17268
17269         PR tree-optimization/42703
17270         * tree-sra.c (analyze_access_subtree): Check that we can build a
17271         reference to the original data within the aggregate.
17272
17273 2010-01-13  Richard Guenther  <rguenther@suse.de>
17274
17275         PR tree-optimization/42705
17276         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
17277
17278 2010-01-13  Richard Guenther  <rguenther@suse.de>
17279
17280         PR middle-end/42716
17281         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
17282
17283 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
17284
17285         PR debug/41371
17286         * var-tracking.c (values_to_unmark): New variable.
17287         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
17288         values_to_unmark vector.  Moved body to...
17289         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
17290         instead queue it into values_to_unmark vector.
17291         (vt_find_locations): Free values_to_unmark vector.
17292
17293 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
17294
17295         * config/s390/s390.c (override_options): Set
17296         default of max-pending-list-length to 256
17297
17298 2010-01-13  Richard Guenther  <rguenther@suse.de>
17299
17300         PR lto/42678
17301         * tree-pass.h (PROP_gimple_lcx): New.
17302         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
17303         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
17304         before the final cleanup_eh.
17305         (dump_properties): Dump PROP_gimple_lcx.
17306         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
17307         (tree_lower_complex_O0): Remove.
17308         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
17309         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
17310         tree_lower_complex, schedule TODO_update_ssa.
17311         * lto-streamer-out.c (output_function): Stream the functions
17312         properties.
17313         * lto-streamer-in.c (input_function): Likewise.
17314         (lto_read_body): Do not override them here.
17315
17316 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
17317
17318         PR c/42708
17319         * c-typeck.c (build_c_cast): Fold value cast to union type before
17320         wrapping it in a CONSTRUCTOR.
17321
17322 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
17323
17324         PR rtl-optimization/42699
17325         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
17326         involved.
17327
17328 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17329
17330         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
17331         SUBTARGET_WARN_UNUSED_SPEC): Move ...
17332         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
17333         SUBTARGET_WARN_UNUSED_SPEC): ... here
17334         * config/mips/iris5.h (LIBGCC_SPEC): Define.
17335
17336 2010-01-12  Julian Brown  <julian@codesourcery.com>
17337
17338         * config/arm/neon-schedgen.ml (Utils): Don't try to
17339         open missing module.
17340         (find_with_result): New.
17341
17342 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
17343
17344         PR debug/42662
17345         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
17346         sharing when canonicalizing ({lt,ge}u (plus a b) b).
17347
17348         PR tree-optimization/42645
17349         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
17350         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
17351         decl_map, set processing_debug_stmt to -1 and return name without
17352         any remapping.
17353
17354 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
17355
17356         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
17357         binutils version, and reword target configuration description.
17358
17359 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
17360
17361         * config/avr/avr.h (LINKER_NAME): Remove.
17362
17363 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
17364
17365         PR target/42416
17366         * config/rs6000/rs6000.c (rs6000_override_options): On targets
17367         that support VSX, warn for -mno-altivec if vsx is not disabled,
17368         and disable vsx.
17369
17370 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
17371             Shujing Zhao  <pearly.zhao@oracle.com>
17372
17373         PR translation/42469
17374         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
17375         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
17376         character between option name and help text.
17377         * c.opt (imultilib): Likewise.
17378
17379 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
17380
17381         * lto-streamer-out.c (output_unreferenced_globals): Output static
17382         variables.
17383
17384 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
17385
17386         PR rtl-optimization/42621
17387         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
17388         optimizing for size.
17389         (duplicate_computed_gotos): Remove now-redundant check.
17390
17391 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
17392
17393         PR target/37454
17394         * configure.ac: Save and restore LDFLAGS and LIBS
17395         * configure: Regenerate.
17396
17397 2010-01-10  Richard Guenther  <rguenther@suse.de>
17398
17399         PR middle-end/42667
17400         * builtins.c (fold_builtin_strlen): Add type argument and
17401         convert the resulting length to it.
17402         (fold_builtin_1): Adjust.
17403
17404 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
17405
17406         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
17407         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
17408         1 insn.
17409         (num_insns_constant_wide): Adjust for that change.
17410
17411 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17412
17413         PR debug/42631
17414         * web.c (union_defs): Add used argument, to combine uses of
17415         uninitialized regs.
17416         (entry_register): Adjust type and tests of used argument.
17417         (web_main): Widen used for new use.  Pass it to union_defs.
17418         * df.h (union_defs): Adjust prototype.
17419
17420 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17421
17422         PR debug/42630
17423         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
17424         uses in new incoming argument.  Free body.
17425         (reset_debug_uses_in_loop): New.
17426         (analyze_insn_to_expand_var): Call the latter if the former found
17427         anything.  Fix whitespace.  Reject invalid dest overlaps before
17428         going through all insns in the loop.
17429
17430 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17431
17432         PR debug/42629
17433         * haifa-sched.c (dying_use_p): Debug insns don't count.
17434
17435 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17436
17437         PR middle-end/42363
17438         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
17439         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
17440         (verify_gimple_call): Reject LHS in noreturn calls.
17441
17442 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17443
17444         PR debug/42604
17445         PR debug/42395
17446         * tree-vect-loop-manip.c (adjust_info): New type.
17447         (adjust_vec): New pointer to vector.
17448         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
17449         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
17450         (slpeel_update_phis_for_duplicate_loop): Use them.
17451         (slpeel_update_phi_nodes_for_guard1): Likewise.
17452         (slpeel_update_phi_nodes_for_guard2): Likewise.
17453         (slpeel_tree_peel_loop_to_edge): Likewise.
17454         (vect_update_ivs_after_vectorizer): Likewise.
17455
17456 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17457
17458         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
17459         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
17460
17461 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17462
17463         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
17464         bogus uninitialized warning.
17465
17466 2010-01-09  Richard Guenther  <rguenther@suse.de>
17467
17468         PR middle-end/42512
17469         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
17470         the evolution is compatible with the initial condition.
17471
17472 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
17473
17474         * gcc.c (process_command): Update copyright notice dates.
17475         * gcov.c (print_version): Likewise.
17476         * gcov-dump.c (print_version): Likewise.
17477         * mips-tfile.c (main): Likewise.
17478         * mips-tdump.c (main): Likewise.
17479
17480 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
17481
17482         PR target/41885
17483         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
17484         (rotlhi3): Delete.
17485         (rotlhi3_8): Delete.
17486         (rotlsi3): Delete.
17487         (rotlsi3_8): Delete.
17488         (rotlsi3_16): Delete.
17489         (rotlsi3_24): Delete.
17490         (rotl<mode>3): New.
17491         (*rotw<mode>3): New.
17492         (*rotb<mode>3): New.
17493         * config/avr/avr.c (avr_rotate_bytes): New function.
17494         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
17495
17496 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
17497
17498         PR target/37454
17499         * configure.ac: Modify -rdynamic check.
17500         * configure: Regenerate.
17501
17502 2010-01-08  DJ Delorie  <dj@redhat.com>
17503
17504         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
17505         register popping order.
17506
17507 2010-01-08  Richard Guenther  <rguenther@suse.de>
17508
17509         PR lto/42528
17510         * c.opt (fsigned-char): Also let LTO handle this option.
17511         (funsigned-char): Likewise.
17512
17513 2010-01-07  Richard Guenther  <rguenther@suse.de>
17514
17515         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
17516         (gimple_op): Likewise.
17517         (gimple_op_ptr): Likewise.
17518         (gimple_assign_set_lhs): Remove gcc_assert.
17519         (gimple_assign_set_rhs1): Likewise.
17520         (gimple_assign_set_rhs2): Likewise.
17521         (gimple_call_set_lhs): Likewise.
17522         (gimple_call_set_fn): Likewise.
17523         (gimple_call_set_fndecl): Likewise.
17524         (gimple_call_fndecl): Likewise.
17525         (gimple_call_return_type): Likewise.
17526         (gimple_call_set_chain): Likewise.
17527         (gimple_call_num_args): Likewise.
17528         (gimple_call_set_arg): Likewise.
17529         (gimple_cond_set_code): Likewise.
17530         (gimple_cond_set_lhs): Likewise.
17531         (gimple_cond_set_rhs): Likewise.
17532         (gimple_cond_set_true_label): Likewise.
17533         (gimple_cond_set_false_label): Likewise.
17534         (gimple_label_set_label): Likewise.
17535         (gimple_goto_set_dest): Likewise.
17536         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
17537         (gimple_debug_bind_get_value): Likewise.
17538         (gimple_debug_bind_get_value_ptr): Likewise.
17539         (gimple_debug_bind_set_var): Likewise.
17540         (gimple_debug_bind_set_value): Likewise.
17541         (gimple_debug_bind_reset_value): Likewise.
17542         (gimple_debug_bind_has_value_p): Likewise.
17543         (gimple_return_retval_ptr): Remove gcc_assert.
17544         (gimple_return_retval): Likewise.
17545         (gimple_return_set_retval): Likewise.
17546         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
17547         (safe_referenced_var_iterator): Remove.
17548         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
17549         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
17550         (fill_referenced_var_vec): Remove.
17551         (first_readonly_imm_use): Remove redundant gcc_assert.
17552         (phi_arg_index_from_use): Combine gcc_asserts.
17553         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
17554         (first_imm_use_stmt): Remove redundant gcc_assert.
17555         * tree-cfg.c (verify_gimple_call): Verify function and chain
17556         operands.  Verify arguments.
17557         (verify_types_in_gimple_stmt): Verify condition code and labels.
17558
17559 2010-01-07  Richard Guenther  <rguenther@suse.de>
17560
17561         PR tree-optimization/42641
17562         * sese.c (rename_map_elt_info): Use the SSA name version, do
17563         not hash pointers.
17564
17565 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
17566
17567         PR tree-optimization/42625
17568         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
17569         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
17570
17571 2010-01-07  Duncan Sands  <baldrick@free.fr>
17572
17573         * Makefile.in (PLUGIN_HEADERS): Add version.h.
17574
17575 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
17576
17577         PR target/42511
17578         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
17579         note itself is not function_invariant_p.
17580
17581 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
17582
17583         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
17584         Do not add the DF_NOTE problem.
17585         * store-motion.c (execute_rtl_store_motion): Likewise.
17586
17587 2010-01-07  Martin Jambor  <mjambor@suse.cz>
17588
17589         PR tree-optimization/42157
17590         * tree-sra.c (compare_access_positions): Stabilize sort if both
17591         accesses have integer types, return zero immediately if they are the
17592         same.
17593
17594 2010-01-06  Richard Henderson  <rth@redhat.com>
17595
17596         PR middle-end/41883
17597         * haifa-sched.c (add_to_note_list): Merge into ...
17598         (concat_note_lists): ... here, and ...
17599         (unlink_other_notes, rm_other_notes): Merge into...
17600         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
17601         NOTE_INSN_EPILOGUE_BEG.
17602
17603 2010-01-06  Richard Guenther  <rguenther@suse.de>
17604
17605         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
17606         not inline regular functions into always-inline functions.
17607
17608 2010-01-06  Nick Clifton  <nickc@redhat.com>
17609
17610         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
17611         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
17612         used together.
17613         (OVERRIDE_OPTIONS): Delete.
17614         (OPTIMIZATION_OPTIONS): Define.
17615         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
17616         * config/rx/rx.c (rx_handle_option): Issue an error message if
17617         -mcpu=rx200 and -fpu are used together.
17618         (rx_set_optimization_options): New function.  Issue an error
17619         message if an optimization attribute attempts to reset the FPU/
17620         math optimization pairing.
17621         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
17622         * config/rx/rx.opt: Set the default to 32-bit doubles.
17623         * config/rx/t-rx: Add multilibs for -nofpu option.
17624         * doc/invoke.texi: Update documentation of RX options.
17625
17626 2010-01-06  Richard Guenther  <rguenther@suse.de>
17627
17628         * tree-ssa-pre.c (name_to_id): New global.
17629         (alloc_expression_id): Simplify SSA name handling.
17630         (lookup_expression_id): Likewise.
17631         (init_pre): Zero name_to_id.
17632         (fini_pre): Free it.
17633
17634 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
17635
17636         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
17637
17638 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17639
17640         PR target/42542
17641         * config/i386/sse.md (smaxv2di3): New.
17642         (umaxv2di3): Likewise.
17643         (sminv2di3): Likewise.
17644         (uminv2di3): Likewise.
17645
17646 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
17647
17648         PR target/42564
17649         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
17650         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
17651         (legitimize_tls_address): Likewise.
17652         (sparc_tls_referenced_p): Likewise.
17653         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
17654         and adjust calls to legitimize_pic_address.
17655         (legitimate_constant_p) Use sparc_tls_referenced_p.
17656         (legitimate_pic_operand_p): Likewise.
17657         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
17658         (sparc_tls_symbol_ref_1): Delete.
17659         (sparc_tls_referenced_p): Make static, recognize specific patterns.
17660         (legitimize_tls_address): Make static, handle CONST patterns.
17661         (legitimize_pic_address): Make static, remove unused parameter and
17662         adjust recursive calls.
17663         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
17664         and adjust call to legitimize_pic_address.
17665         (sparc_output_mi_thunk): Likewise.
17666
17667 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
17668             H.J. Lu  <hongjiu.lu@intel.com>
17669
17670         PR target/42542
17671         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
17672         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
17673         operands to make them signed.
17674
17675         Revert:
17676         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17677
17678         PR target/42542
17679         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
17680         GTU to GT for V4SI and V2DI.
17681
17682         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
17683         (umin<mode>3): Removed.
17684         (uminv8hi3): New.
17685         (uminv4si3): Likewise.
17686
17687 2010-01-05  Martin Jambor  <mjambor@suse.cz>
17688
17689         PR tree-optimization/42462
17690         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
17691         current_function_decl to helper functions and macros.
17692
17693 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17694
17695         PR bootstrap/41771
17696         * flags.h: Don't include real.h.
17697         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
17698         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
17699         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
17700         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
17701         * dominance.c: Update copyright.
17702         * gimple.c (walk_gimple_op): Remove inline.
17703         * tree-ssa-reassoc.c: Include real.h.
17704         * Makefile.in (FLAGS_H): Remove $(REAL_H).
17705         (tree-ssa-reassoc.o): Depend on $(REAL_H).
17706
17707 2010-01-05  Nick Clifton  <nickc@redhat.com>
17708
17709         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
17710         register to push into the stack frame when the accumulator has to
17711         be saved during interrupts.
17712
17713 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
17714
17715         * doc/invoke.texi: Remove the documentation about option
17716         -Wunreachable-code.
17717         * common.opt (Wunreachable-code):  Preserved for backward
17718         compatibility.
17719         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
17720         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
17721         the backward compatibility flag section.
17722
17723 2010-01-05  Richard Guenther  <rguenther@suse.de>
17724
17725         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
17726
17727 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
17728
17729         PR other/42611
17730         * cfgexpand.c (expand_one_var): Diagnose too large variables.
17731
17732         PR tree-optimization/42508
17733         * tree-sra.c (convert_callers): Check for recursive call
17734         by comparing cgraph nodes instead of decls.
17735         (modify_function): Call ipa_modify_formal_parameters also
17736         on all same_body aliases.
17737
17738         * cgraphunit.c (cgraph_materialize_all_clones): Compare
17739         cgraph nodes when checking for same_body aliases.
17740
17741 2010-01-05  Richard Guenther  <rguenther@suse.de>
17742
17743         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
17744         allocation and lookup.
17745         (get_or_alloc_expr_for_constant): Likewise.
17746         (phi_translate): Sink allocation.
17747
17748 2010-01-04  Richard Guenther  <rguenther@suse.de>
17749
17750         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
17751         a new entry only if needed.
17752         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
17753         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
17754         hashtable lookup.
17755         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
17756         the result array.
17757         (phi_translate): Handle CONSTANTs early.
17758
17759 2010-01-04  Martin Jambor  <mjambor@suse.cz>
17760
17761         PR tree-optimization/42398
17762         * tree-sra.c (struct access): Removed flag grp_different_types.
17763         (dump_access): Do not dump the removed flag.
17764         (sort_and_splice_var_accesses): Do not set the removed flag.
17765         (sra_modify_expr): Check for type compatibility directly.
17766
17767 2010-01-04  Martin Jambor  <mjambor@suse.cz>
17768
17769         PR tree-optimization/42366
17770         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
17771         edges with variable number of parameters.
17772         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
17773         flag instead of asserting it.
17774         (ipa_read_node_info): Read uses_analysis_done flag.
17775
17776 2010-01-04  Richard Guenther  <rguenther@suse.de>
17777
17778         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
17779         iterative_hash_* as intended.
17780         (vn_reference_compute_hash): Likewise.  Simplify hashing
17781         SSA names.
17782         (vn_reference_lookup_2): Likewise.
17783         (vn_nary_op_compute_hash): Likewise.
17784         (vn_phi_compute_hash): Likewise.
17785         (expressions_equal_p): Remove strange code.
17786         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
17787         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
17788         (bitmap_insert_into_set_1): Take value-id as parameter.
17789         (add_to_value): Pass it.
17790         (bitmap_insert_into_set): Likewise.
17791         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
17792
17793 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
17794
17795         PR driver/42442
17796         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
17797         (do_self_spec): For switches with SWITCH_IGNORE set set also
17798         SWITCH_IGNORE_PERMANENTLY.
17799         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
17800         of SWITCH_IGNORE.
17801
17802 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
17803
17804         * lto-streamer-out.c (output_unreferenced_globals): Output the full
17805         tree of an unreferenced global var.
17806
17807 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17808
17809         PR target/42542
17810         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
17811         GTU to GT for V4SI and V2DI.
17812
17813         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
17814         (umin<mode>3): Removed.
17815         (uminv8hi3): New.
17816         (uminv4si3): Likewise.
17817
17818 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17819
17820         PR lto/42581
17821         * collect2.c (main): Turn on trace in collect2 if -v is passed
17822         to gcc with LTO.
17823
17824 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
17825
17826         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
17827         description of expression operand.
17828
17829 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
17830
17831         * configure.ac: Add install-html to target_list for Make-hooks.
17832         * configure: Regenerate.
17833         * fortran/Make-lang.in (F95_HTMLFILES): New.
17834         (fortran.html): Use it.
17835         (fortran.install-html): New.
17836         * Makefile.in (install-html): Add lang.install-html.
17837         * java/Make-lang.in (JAVA_HTMLFILES): New.
17838         (java.html): Use it.
17839         (java.install-html): New.
17840         * objc/Make-lang.in (objc.install-html): New.
17841         * objcp/Make-lang.in (obj-c++.install-html): New.
17842         * cp/Make-lang.in (c++.install-html): New.
17843         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
17844         * lto/Make-lang.in (lto.install-html): New.
17845
17846 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
17847
17848         PR lto/42520
17849         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
17850
17851 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
17852
17853         PR rtl-optimization/41862
17854         * store-motion.c (store_killed_in_insn, compute_store_table,
17855         remove_reachable_equiv_notes, replace_store_insn,
17856         build_store_vectors): Ignore all DEBUG_INSNs.
17857
17858 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
17859
17860         PR lto/41564
17861         * common.opt: Add dumpdir.
17862
17863         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
17864         isn't specified.
17865         (option_map): Add --dumpdir.
17866
17867         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
17868
17869         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
17870
17871         * opts.c (decode_options): Try dump_dir_name first if
17872         dump_base_name isn't an absolute path.
17873         (common_handle_option): Handle OPT_dumpdir.
17874
17875         * toplev.c (dump_dir_name): New.
17876         (print_switch_values): Also ignore -dumpdir.
17877
17878         * toplev.h (dump_dir_name): New.
17879
17880 2010-01-03  Richard Guenther  <rguenther@suse.de>
17881
17882         PR tree-optimization/42589
17883         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
17884         double-word expansion of bswap32.
17885
17886 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
17887
17888         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
17889         with BLOCK_FOR_INSN.
17890         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
17891         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
17892         noce_process_if_block): Likewise.
17893         * gcse.c (compute_local_properties, insert_expr_in_table,
17894         insert_set_in_table, canon_list_insert, find_avail_set,
17895         pre_insert_copy_insn): Likewise.
17896
17897         * basic-block.h (BLOCK_NUM): Move from here...
17898         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
17899
17900 2010-01-03  Richard Guenther  <rguenther@suse.de>
17901
17902         PR tree-optimization/42438
17903         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
17904         contains_may_not_return_call flag.
17905         (BB_MAY_NOTRETURN): New.
17906         (valid_in_sets): Trapping nary operations are not valid
17907         in blocks that may not return.
17908         (insert_into_preds_of_block): Remove check for trapping expressions.
17909         (compute_avail): Compute also BB_MAY_NOTRETURN.
17910
17911 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
17912
17913         * doc/invoke.texi: Add 2010 to copyright years.
17914
17915 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
17916
17917         * config/sparc/sparc.c: Fix formatting nits.
17918
17919 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
17920             Alexander Monakov  <amonakov@ispras.ru>
17921
17922         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
17923
17924 2010-01-02  Richard Guenther  <rguenther@suse.de>
17925
17926         PR middle-end/42577
17927         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
17928         (simplify_switch_using_ranges): Mark to be removed edges
17929         as non-executable.
17930
17931 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17932
17933         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
17934
17935         * collect2.c (scan_libraries): Add missing argument in call to
17936         scan_prog_file.
17937
17938 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
17939
17940         PR target/42448
17941         * config/alpha/predicates.md (aligned_memory_operand): Return false
17942         for CQImode.
17943         (unaligned_memory_operand): Return true for CQImode.
17944         * config/alpha/alpha.c (get_aligned_mem): Assert that location
17945         doesn not cross aligned SImode word boundary.
17946
17947 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
17948
17949         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
17950         Remove.
17951         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
17952         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
17953
17954 2010-01-02  Richard Guenther  <rguenther@suse.de>
17955
17956         PR lto/41597
17957         * toplev.c (compile_file): Emit LTO marker properly.  Change
17958         it to __gnu_lto_v1.
17959         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
17960
17961 2010-01-01  Richard Guenther  <rguenther@suse.de>
17962
17963         PR debug/42455
17964         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
17965
17966 2010-01-01  Richard Guenther  <rguenther@suse.de>
17967
17968         PR c/42570
17969         * c-decl.c (grokdeclarator): For zero-size arrays force
17970         structural equality checks as layout_type does.
17971
17972 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
17973
17974         * builtins.c: Update copyright to 2010.
17975
17976 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
17977
17978         PR lto/42531
17979         * lto-streamer-out.c (produce_asm): Revert the last change.
17980         (copy_function): Likewise.
17981
17982         * lto-streamer.c (lto_get_section_name): Skip any leading
17983         asterisk in name.
17984
17985 2010-01-01  Richard Guenther  <rguenther@suse.de>
17986
17987         PR middle-end/42559
17988         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
17989         for LABEL_DECLs.
17990
17991 \f
17992 Copyright (C) 2010 Free Software Foundation, Inc.
17993
17994 Copying and distribution of this file, with or without modification,
17995 are permitted in any medium without royalty provided the copyright
17996 notice and this notice are preserved.