OSDN Git Service

* gfortran.dg/char_bounds_check_fail_1.f90: Correct dg-output string.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-07-02  Le-Chun Wu  <lcwu@google.com>
2
3         PR/44128
4         * doc/invoke.texi: Update documentation of -Wshadow.
5
6 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
7             Julian Brown  <julian@codesourcery.com>
8             Sandra Loosemore <sandra@codesourcery.com>
9
10         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11         comparisons.  Adjust to take both operands.
12         (arm_select_cc_mode): Handle DImode comparisons.
13         (arm_gen_compare_reg): Generate a scratch register for DImode
14         comparisons which require one.  Use xor for Thumb equality checks.
15         (arm_const_double_by_immediates): New.
16         (arm_print_operand): Allow 'Q' and 'R' for constants.
17         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
18         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
19         arm_canonicalize_comparison.
20         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22         prototype.
23         (arm_const_double_by_immediates): Declare.
24         * config/arm/constraints.md (Di): New constraint.
25         * config/arm/predicates.md (arm_immediate_di_operand)
26         (arm_di_operand, cmpdi_operand): New.
27         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
28         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
29         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
30         (cstoredi4): Handle non-Cirrus also.
31
32 2010-07-02  Julian Brown  <julian@codesourcery.com>
33             Sandra Loosemore <sandra@codesourcery.com>
34
35         PR target/43703
36
37         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
38         (smax<mode>3): Disable for NEON float modes when
39         flag_unsafe_math_optimizations is false.
40         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
41         (*mul<mode>3_neon)
42         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
43         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
44         for NEON float modes when flag_unsafe_math_optimizations is false.
45         (quad_halves_<code>v4sf): Only enable if flag_unsafe_math_optimizations
46         is true.
47         * doc/invoke.texi (ARM Options): Add note about floating point
48         vectorization requiring -funsafe-math-optimizations.
49
50 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
51             Julian Brown  <julian@codesourcery.com>
52
53         * config/arm/neon.md (UNSPEC_VABA): Delete.
54         (UNSPEC_VABAL): Delete.
55         (UNSPEC_VABS): Delete.
56         (UNSPEC_VMUL_N): Delete.
57         (adddi3_neon): New.
58         (subdi3_neon): New.
59         (mul<mode>3add<mode>_neon): Make the pattern named.
60         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
61         (neon_vadd<mode>): Replace with define_expand, and move the remaining
62         unspec parts...
63         (neon_vadd<mode>_unspec): ...to this.
64         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
65         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
66         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
67         (neon_vaba<mode>): Rewrite in terms of vabd.
68         (neon_vabal<mode>): Rewrite in terms of vabdl.
69         (neon_vabs<mode>): Rewrite without unspec.
70         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
71         (*arm_subdi3): Likewise.
72         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
73         No_op attribute to disable assembly output checks.
74         * config/arm/arm_neon.h: Regenerated.
75         * doc/arm-neon-intrinsics.texi: Regenerated.
76
77 2010-07-02  Jan Hubicka  <jh@suse.cz>
78
79         * ipa-split.c (split_function): For aggregate values set return_slot_opt;
80         when passing DECL_BY_REFERENCE produce *<retval> = fncall.part ()
81         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
82
83 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
84
85         * config/arm/neon.md (UNSPEC_VAND): Delete.
86         (UNSPEC_VBIC): Delete.
87         (UNSPEC_VCLZ): Delete.
88         (UNSPEC_VCNT): Delete.
89         (UNSPEC_VEOR): Delete.
90         (UNSPEC_VORN): Delete.
91         (UNSPEC_VORR): Delete.
92         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
93         core registers too.
94         (anddi3_neon): Likewise.
95         (orndi3_neon): Likewise.
96         (bicdi3_neon): Likewise.
97         (xordi3_neon): Likewise.
98         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
99         rid of unspec and handle unused operand.
100         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
101         * config/arm/predicates.md (imm_for_neon_logic_operand):
102         Require TARGET_NEON.
103         (imm_for_neon_inv_logic_operand): Likewise.
104         * config/arm/arm.md (define_split for logical_binary_operator): 
105         Disable for NEON registers.
106         (anddi3): Add new define_expand, and rename the insn.  Disable
107         this insn for NEON, where anddi3_neon now applies.
108         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
109         (iordi3): As for anddi3.
110         (xordi3): Likewise.
111         * config/arm/neon.ml (Vand): Split DImode variants and mark them
112         as No_op to disable testing for exact instruction match.
113         (Vorr): Likewise.
114         (Veor): Likewise.
115         (Vbic): Likewise.
116         (Vorn): Likewise.
117         * config/arm/arm_neon.h: Regenerated.
118         * doc/arm-neon-intrinsics.texi: Regenerated.
119
120 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
121
122         * expr.h (emit_stack_probe): Declare.
123         * explow.c (emit_stack_probe): Make global.
124         (anti_adjust_stack_and_probe): Fix comments.
125         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
126         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
127         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
128         * config/sparc/sparc.c: Include except.h.
129         (sparc_emit_probe_stack_range): New function.
130         (output_probe_stack_range): Likewise.
131         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
132         built-in stack checking is enabled.
133         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
134         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
135         (probe_stack_range): New insn.
136
137 2010-07-02  Richard Guenther  <rguenther@suse.de>
138
139         PR target/43958
140         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
141         for argument alignment.
142
143 2010-07-02  Jan Hubicka  <jh@suse.cz>
144
145         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS walk
146         backwards from entry_bb to check only those basic block of header
147         that might lead to execution of split part.
148         (consider_split) ... here.
149         (find_return_bb): Allow assignment in return BB.
150         (find_retval): New.
151         (split_function): Fix name of cloned function; take care of updating
152         return value in return_bb containing move.
153
154 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
155
156         PR target/44771
157         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
158         used variable insn.
159
160 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
161
162         * implicit-zee.c (combine_reaching_defs): Fix long lines.
163         (is_set_with_extension_DI): Delete.
164         (struct zero_extend_info): New structure.
165         (add_removable_zero_extend): New function.
166         (find_removable_zero_extends): Use note_stores to find SETs.
167         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
168
169 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
170
171         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
172         is_miss_rate_acceptable. Pull total_positions computation
173         out of the loops.  Early return if miss_positions exceeds
174         the acceptable threshold.
175         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
176         is_miss_rate_acceptable after renaming of compute_miss_rate.
177
178 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
179
180         PR middle-end/44576
181         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
182         of 1000) for miss rate if the address diference is greater than or
183         equal to the cache line size (the two reference will never hit the
184         same cache line).
185
186 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
187
188         PR target/42835
189         * config/arm/arm-modes.def (CC_NOTB): New mode.
190         * config/arm/arm.c (get_arm_condition_code): Handle it.
191         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
192         * config/arm/arm.md (subsi3_compare0_c): New pattern.
193         (compare_scc): Now a define_and_split.  Add a number of extra
194         splitters before it.
195
196         PR target/42172
197         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
198         and ZERO_EXTEND.
199         (arm_rtx_costs_1): Likewise.
200         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
201         * config/arm/arm.md (is_arch6): New attribute.
202         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
203         extendqisi2): Tighten the code somewhat, avoiding invalid
204         RTL to occur in the expander patterns.
205         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
206         (thumb1_zero_extendhisi2_v6): Delete.
207         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
208         (thumb1_extendhisi2_v6): Delete.
209         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
210         (thumb1_extendqisi2_v6): Delete.
211         (zero_extendhisi2 for register input splitter): New.
212         (zero_extendqisi2 for register input splitter): New.
213         (thumb1_extendhisi2 for register input splitter): New.
214         (extendhisi2 for register input splitter): New.
215         (extendqisi2 for register input splitter): New.
216         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
217         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
218         and add support for a register alternative requiring a split.
219         (thumb1_zero_extendqisi2): Likewise.
220         (arm_zero_extendqisi2): Likewise.
221         (arm_extendhisi2): Likewise.
222         (arm_extendqisi2): Likewise.
223
224 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
225
226         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
227         instead of an unspec.
228         (neon_expand_vector_init): Likewise.
229         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
230         (UNSPEC_VDUP_LANE): Delete.
231         (UNSPEC VDUP_N): Delete.
232         (UNSPEC_VGET_HIGH): Delete.
233         (UNSPEC_VGET_LANE): Delete.
234         (UNSPEC_VGET_LOW): Delete.
235         (UNSPEC_VMVN): Delete.
236         (UNSPEC_VSET_LANE): Delete.
237         (V_double_vector_mode): New.
238         (vec_set<mode>_internal): Make code emitted match that for the
239         corresponding intrinsics.
240         (vec_setv2di_internal): Likewise.
241         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
242         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
243         (neon_vset_lane<mode>): Combine double and quad patterns and
244         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
245         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
246         (neon_vdup_n<mode>): Rewrite RTL without unspec.
247         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
248         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
249         with neon_vdup_lanev2di, adjusting the pattern from the latter
250         to be predicable for consistency.
251         (neon_vdup_lane<mode>_internal): New.
252         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
253         to avoid using an unspec.
254         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
255         (neon_vdup_lanev2di): Turn into a define_expand.
256         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
257         (neon_vget_high<mode>): Replace with....
258         (neon_vget_highv16qi): New pattern using canonical RTL.
259         (neon_vget_highv8hi): Likewise.
260         (neon_vget_highv4si): Likewise.
261         (neon_vget_highv4sf): Likewise.
262         (neon_vget_highv2di): Likewise.
263         (neon_vget_low<mode>): Replace with....
264         (neon_vget_lowv16qi): New pattern using canonical RTL.
265         (neon_vget_lowv8hi): Likewise.
266         (neon_vget_lowv4si): Likewise.
267         (neon_vget_lowv4sf): Likewise.
268         (neon_vget_lowv2di): Likewise.
269
270         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
271         test for this emitting vmov.
272         (Vset_lane): Likewise.
273         (Vdup_n): Likewise.
274         (Vmov_n): Likewise.
275
276         * doc/arm-neon-intrinsics.texi: Regenerated.
277
278 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
279
280         * config/arm/neon.md (vec_extractv2di): Correct error in register
281         numbering to reconcile with neon_vget_lanev2di.
282
283 2010-07-02  Richard Guenther  <rguenther@suse.de>
284
285         * tree-ssa-structalias.c (pt_solution_set_var): New function.
286         * tree-ssa-alias.h (pt_solution_set_var): Declare.
287         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
288         points-to information.
289
290 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
291
292         * config/s390/s390.c (override_options): Adopt prefetching
293         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
294
295 2010-07-02  Jan Hubicka  <jh@suse.cz>
296
297         * df-problems.c (df_kill_notes): Do not collect dead  notes.
298         (df_set_note): Just call add_reg_note.
299         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
300         df_create_unused_note): Do not deal with lists of old notes.
301         (df_note_bb_compute): Likewise.
302
303 2010-07-02  Richard Guenther  <rguenther@suse.de>
304
305         * tree-ssa-structalias.c (find_func_aliases): Handle
306         pointer alignment via BIT_AND_EXPR.
307         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
308
309 2010-07-02  Richard Guenther  <rguenther@suse.de>
310
311         * tree-data-ref.c (initialize_data_dependence_relation): Handle
312         mismatching number of dimensions properly.
313
314 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
315
316         PR target/44707
317         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
318         (lo_sum (high ...) ...) patterns generated by earlier passes.
319
320 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
321
322         * doc/install.texi (Prerequisites): Document Perl requirement on
323         Solaris 2.
324         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
325
326 2010-07-02  Richard Guenther  <rguenther@suse.de>
327
328         PR middle-end/44777
329         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
330
331 2010-07-02  Jan Hubicka  <jh@suse.cz>
332
333         PR middle-end/44706
334         * predict.c (predict_paths_for_bb): Handle case when control dependence
335         BB has only abnormal edges.
336
337 2010-07-02  Richard Guenther  <rguenther@suse.de>
338
339         PR tree-optimization/44748
340         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
341         the embedded conversion in MEM_REFs.
342
343 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
344
345         * reload.c: Include toplev.h.
346         * recog.c:  Likewise.
347         * Makefile.in: Adjust dependencies.
348
349 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
350
351         PR debug/44694
352         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
353         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
354
355 2010-07-01  Richard Guenther  <rguenther@suse.de>
356
357         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
358         types for offsets.
359
360 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
361
362         PR target/44732
363         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
364
365         * config/ia64/ia64.c (ia64_register_move_cost): Fix argument types.
366
367 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
368
369         PR target/44727
370         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
371         Make sure operand 0 dies.
372
373 2010-07-01  Richard Guenther  <rguenther@suse.de>
374
375         PR middle-end/42834
376         PR middle-end/44468
377         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
378         * doc/generic.texi (References to storage): Document MEM_REF.
379         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
380         (print_call_name): Likewise.
381         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
382         (build_simple_mem_ref_loc): New function.
383         (mem_ref_offset): Likewise.
384         * tree.h (build_simple_mem_ref_loc): Declare.
385         (build_simple_mem_ref): Define.
386         (mem_ref_offset): Declare.
387         * fold-const.c: Include tree-flow.h.
388         (operand_equal_p): Handle MEM_REF.
389         (build_fold_addr_expr_with_type_loc): Likewise.
390         (fold_comparison): Likewise.
391         (fold_unary_loc): Fold
392         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
393         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
394         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
395         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
396         (ptr_deref_may_alias_ref_p_1): Likewise.
397         (ao_ref_base_alias_set): Properly differentiate base object for
398         offset and TBAA.
399         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
400         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
401         (indirect_refs_may_alias_p): Likewise.
402         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
403         chasing code.
404         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
405         (call_may_clobber_ref_p_1): Likewise.
406         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
407         * expr.c (expand_assignment): Handle MEM_REF.
408         (store_expr): Handle MEM_REFs from STRING_CSTs.
409         (store_field): If expanding a MEM_REF of a non-addressable
410         decl use bitfield operations.
411         (get_inner_reference): Handle MEM_REF.
412         (expand_expr_addr_expr_1): Likewise.
413         (expand_expr_real_1): Likewise.
414         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
415         * alias.c (ao_ref_from_mem): Handle MEM_REF.
416         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
417         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
418         (dr_analyze_indices): Likewise.
419         (dr_analyze_alias): Likewise.
420         (object_address_invariant_in_loop_p): Likewise.
421         * gimplify.c (mark_addressable): Handle MEM_REF.
422         (gimplify_cond_expr): Build MEM_REFs.
423         (gimplify_modify_expr_to_memcpy): Likewise.
424         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
425         (gimple_fold_indirect_ref): Adjust.
426         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
427         * tree.def (MEM_REF): New tree code.
428         * tree-dfa.c: Include toplev.h.
429         (get_ref_base_and_extent): Handle MEM_REF.
430         (get_addr_base_and_unit_offset): New function.
431         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
432         * gimple-fold.c (may_propagate_address_into_dereference): Handle
433         MEM_REF.
434         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
435         accesses if the array has just one dimension.  Remove always true
436         parameter.  Do not require type compatibility here.
437         (maybe_fold_offset_to_component_ref): Remove.
438         (maybe_fold_stmt_indirect): Remove.
439         (maybe_fold_reference): Remove INDIRECT_REF handling.
440         Fold back to non-MEM_REF.
441         (maybe_fold_offset_to_address): Simplify.  Deal with type
442         mismatches here.
443         (maybe_fold_reference): Likewise.
444         (maybe_fold_stmt_addition): Likewise.  Also handle
445         &ARRAY + I in addition to &ARRAY[0] + I.
446         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
447         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
448         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
449         * tree-ssa.c (useless_type_conversion_p): Make most pointer
450         conversions useless.
451         (warn_uninitialized_var): Handle MEM_REF.
452         (maybe_rewrite_mem_ref_base): New function.
453         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
454         to SSA form.
455         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
456         INDIRECT_REF handling.
457         (copy_tree_body_r): Handle MEM_REF.
458         * gimple.c (is_gimple_addressable): Adjust.
459         (is_gimple_address): Likewise.
460         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
461         invariant base are invariant.
462         (is_gimple_min_lval): Adjust.
463         (is_gimple_mem_ref_addr): New function.
464         (get_base_address): Handle MEM_REF.
465         (count_ptr_derefs): Likewise.
466         (get_base_loadstore): Likewise.
467         * gimple.h (is_gimple_mem_ref_addr): Declare.
468         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
469         * tree-cfg.c (verify_address): New function, split out from ...
470         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
471         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
472         INDIRECT_REFs.
473         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
474         INDIRECT_REF.  Allow conversions.
475         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
476         a register does not change its size.
477         (verify_types_in_gimple_reference): Verify MEM_REF.
478         (verify_gimple_assign_single): Disallow INDIRECT_REF.
479         Handle MEM_REF.
480         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
481         New.
482         (mark_address_taken): Handle MEM_REF.
483         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
484         (get_asm_expr_operands): Pass opf_not_non_addressable.
485         (get_expr_operands): Handle opf_[not_]non_addressable.
486         Handle MEM_REF.  Remove INDIRECT_REF handling.
487         * tree-vrp.c: (check_array_ref): Handle MEM_REF.
488         (search_for_addr_array): Likewise.
489         (check_array_bounds): Likewise.
490         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
491         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
492         (ref_always_accessed_p): Likewise.
493         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
494         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
495         Handle MEM_REF.
496         * cgraphbuild.c (mark_load): Properly check for NULL result
497         from get_base_address.
498         (mark_store): Likewise.
499         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
500         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
501         handling for MEM_REF.
502         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
503         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
504         * builtins.c (stabilize_va_list_loc): Use the function ABI
505         valist type if we couldn't canonicalize the argument type.
506         Always dereference with the canonical va-list type.
507         (maybe_emit_free_warning): Handle MEM_REF.
508         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
509         memmove to memcpy.
510         * builtins.c (fold_builtin_memory_op): Use ref-all types
511         for all memcpy foldings.
512         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
513         (build_outer_var_ref): Likewise.
514         (scan_omp_1_op): Likewise.
515         (lower_rec_input_clauses): Likewise.
516         (lower_lastprivate_clauses): Likewise.
517         (lower_reduction_clauses): Likewise.
518         (lower_copyprivate_clauses): Likewise.
519         (expand_omp_atomic_pipeline): Likewise.
520         (expand_omp_atomic_mutex): Likewise.
521         (create_task_copyfn): Likewise.
522         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
523         Remove old union trick.  Initialize constant offsets.
524         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
525         INDIRECT_REF.  Init base_alias_set properly.
526         (vn_reference_lookup_3): Replace INDIRECT_REF handling with
527         MEM_REF.
528         (vn_reference_fold_indirect): Adjust for MEM_REFs.
529         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
530         for ARRAY_REFs.
531         (may_insert): Remove.
532         (visit_reference_op_load): Do not test may_insert.
533         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
534         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
535         a field to store the constant offset this op applies.
536         (run_scc_vn): Adjust prototype.
537         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
538         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
539         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
540         bother about volatile qualifiers on pointers.
541         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
542         * tree-ssa-loop-ivopts.c
543         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust
544         for MEM_REF.
545         (strip_offset_1): Likewise.
546         (find_interesting_uses_address): Replace INDIRECT_REF handling with
547         MEM_REF handling.
548         (get_computation_cost_at): Likewise.
549         * ipa-pure-const.c (check_op): Handle MEM_REF.
550         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
551         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
552         and constants.
553         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
554         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
555         (eliminate_local_variables_1): Likewise.
556         (create_call_for_reduction_1): Likewise.
557         (create_loads_for_reductions): Likewise.
558         (create_loads_and_stores_for_name): Likewise.
559         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
560         (ssa_accessed_in_tree): Handle MEM_REF.
561         (ssa_accessed_in_assign_rhs): Likewise.
562         (update_type_size): Likewise.
563         (analyze_accesses_for_call_stmt): Likewise.
564         (analyze_accesses_for_assign_stmt): Likewise.
565         (transform_access_sites): Likewise.
566         (transform_allocation_sites): Likewise.
567         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
568         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
569         not handle INDIRECT_REF.
570         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
571         (cond_store_replacement): Likewise.
572         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
573         MEM_REF, no not handle INDIRECT_REFs.
574         (insert_into_preds_of_block): Properly initialize avail.
575         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
576         for ARRAY_REFs.  Properly handle reference lookups that
577         require a bit re-interpretation.
578         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
579         * tree-sra.c
580         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
581         (build_ref_for_offset_1): Remove.
582         (build_ref_for_offset): Build MEM_REFs.
583         (gate_intra_sra): Disable for now.
584         (sra_ipa_modify_expr): Handle MEM_REF.
585         (ipa_early_sra_gate): Disable for now.
586         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
587         MEM_REF handling.
588         (disqualify_base_of_expr): Likewise.
589         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
590         MEM_REF handling.
591         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
592         Use mem_ref_offset.  Remove bogus folding.
593         (build_access_from_expr_1): Properly handle MEM_REF for
594         non IPA-SRA.
595         (make_fancy_name_1): Add support for MEM_REF.
596         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
597         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
598         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
599         (compute_complex_ancestor_jump_func): Likewise.
600         (ipa_analyze_virtual_call_uses): Likewise.
601         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
602         INDIRECT_REF folding with more generalized MEM_REF folding.
603         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
604         (forward_propagate_addr_into_variable_array_index): Also handle
605         &ARRAY + I in addition to &ARRAY[0] + I.
606         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
607         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
608         creates assignments with overlap.
609         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
610         (get_frame_field): Likewise.
611         (get_nonlocal_debug_decl): Likewise.
612         (convert_nonlocal_reference_op): Likewise.
613         (struct nesting_info): Add mem_refs pointer-set.
614         (create_nesting_tree): Allocate it.
615         (convert_local_reference_op): Insert to be folded mem-refs.
616         (fold_mem_refs): New function.
617         (finalize_nesting_tree_1): Perform defered folding of mem-refs 
618         (free_nesting_tree): Free the pointer-set.
619         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
620         (vectorizable_load): Likewise.
621         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
622         (propagate_with_phi): Likewise.
623         * tree-object-size.c (addr_object_size): Handle MEM_REFs
624         instead of INDIRECT_REFs.
625         (compute_object_offset): Handle MEM_REF.
626         (plus_stmt_object_size): Handle MEM_REF.
627         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
628         for &MEM_REF.
629         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
630         (symbol_marked_for_renaming): Likewise.
631         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
632         (fold-const.o): Add $(TREE_FLOW_H).
633         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
634         (find_func_clobbers): Likewise.
635         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
636         (decompose_access): Likewise.
637         (replace_field_acc): Likewise.
638         (replace_field_access_stmt): Likewise.
639         (insert_new_var_in_stmt): Likewise.
640         (get_stmt_accesses): Likewise.
641         (reorg_structs_drive): Disable.
642         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
643         (ix86_canonical_va_list_type): Likewise.
644
645 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
646
647         PR other/44566
648         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
649         * target.def (struct gcc_target): Replace enum reg_class with
650         reg_class_t in hook argument / return types.
651         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
652         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
653         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
654         * targhooks.h (default_branch_target_register_class): Likewise.
655         (default_ira_cover_classes, default_secondary_reload): Likewise.
656         (default_memory_move_cost, default_register_move_cost): Likewise.
657         * targhooks.c (default_branch_target_register_class): Likewise.
658         (default_ira_cover_classes, default_secondary_reload): Likewise.
659         (default_memory_move_cost, default_register_move_cost): Likewise.
660         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
661         * bt-load.c (branch_target_load_optimize): Likewise.
662         * ira.c (setup_cover_and_important_classes): Likewise.
663         * ira-costs.c (copy_cost): Likewise.
664         * reload1.c (emit_input_reload_insns): Likewise.
665         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
666         * config/frv/frv.c (frv_secondary_reload): Likewise.
667         * config/s390/s390.c (s390_secondary_reload): Likewise.
668         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
669         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
670         (ix86_register_move_cost): Likewise.
671         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
672         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
673         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
674         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
675         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
676         (rs6000_ira_cover_classes): Likewise.
677         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
678         * config/picochip/picochip-protos.h (picochip_secondary_reload):
679         Likewise.
680         * config/pa/pa.c (pa_secondary_reload): Likewise.
681         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
682         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
683         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
684         * doc/tm.texi: Regenerate.
685
686 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
687
688         PR bootstrrap/44726
689         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
690         use.
691         (build_alias_set_optimal_p): Likewise.
692         (build_base_obj_set_for_drs): Likewise.
693
694 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
695
696         * target.def: Remove comment about licensing problems of function
697         declarations.
698
699         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
700         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
701         * doc/tm.texi: Regenerate.
702
703         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
704         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
705
706         * target.def (enum_va_list_p): Use DEFHOOK.
707         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
708         Rename ptype to ptree.
709         * doc/tm.texi: Regenerate.
710
711         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
712         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
713         * doc/tm.texi: Regenerate.
714
715         * target.def (memory_move_cost): Use DEFHOOK.
716         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
717         Rename regclass AKA class to rclass.
718         * doc/tm.texi: Regenerate.
719
720         * target.def (pragma_parse): Use DEFHOOK.
721         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
722         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
723         * doc/tm.texi: Regenerate.
724
725         * target.def (pass_by_reference): Use DEFHOOK.
726         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
727         * doc/tm.texi: Regenerate.
728
729         * target.def (resolve_overloaded_builtin): Rename params to arglist.
730         Use DEFHOOK.
731         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
732         * doc/tm.texi: Regenerate.
733
734         * target.def (return_pops_args): Use DEFHOOK.
735         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
736         Rename stack-size to size.
737         * doc/tm.texi: Regenerate.
738
739         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
740         last-sched_cycle to last_clock, cur_cycle to clock.
741         * doc/tm.texi.in: Use @hook.
742         * doc/tm.texi: Regenerate.
743
744         * target.def (print_operand, print_operand_address): Update comment.
745         (print_operand_punct_valid_p): Likewise.
746
747 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
748
749         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
750         to rtl.h.
751         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
752         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
753         here.
754         * rtl-error.h: New.
755         * regrename.c: Do not include toplev.h. Include rtl-error.h.
756         * rtl-error.c: Likewise.
757         * reload.c: Likewise.
758         * recog.c:  Likewise.
759         * sel-sched.c: Likewise.
760         * function.c: Likewise.
761         * reg-stack.c: Likewise.
762         * cfgrtl.c: Likewise.
763         * reload1.c: Likewise.
764         * final.c: Include rtl-error.
765         * Makefile.in: Adjust dependencies.
766
767 2010-06-30  Jan Hubicka  <jh@suse.cz>
768
769         PR middle-end/PR44706
770         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
771         to return the value.
772
773 2010-06-30  Michael Matz  <matz@suse.de>
774
775         PR bootstrap/44699
776         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
777         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
778         a gimple reg, attach the original VDEF to the last store in the
779         sequence.
780
781 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
782
783         PR other/44034
784         * config/darwin.c (darwin_override_options): Use renamed
785         targetm.asm_out.emit_unwind_label.
786
787 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
788
789         PR tree-optimization/39799
790         * tree-inline.c (remap_ssa_name): Initialize variable only if
791         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
792
793 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
794
795         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
796
797 2010-06-30  Richard Guenther  <rguenther@suse.de>
798
799         PR target/44722
800         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
801         against oscillation with reverse peephole2.
802
803 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
804
805         PR target/44721
806         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
807         Fix last commit.
808
809 2010-06-30  Nick Clifton  <nickc@redhat.com>
810
811         * config/rx/rx-modes.def: New file.
812         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
813         (CC_REGNUM): Define.
814         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
815         register.
816         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
817         (SELECT_CC_MODE): Define.
818         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
819         (reg:CC CC_REG) instead of (cc0).
820         (attr "cc"): Delete.
821         (cbranchsi4): Do not split compare and branch here. Instead move
822         it to...
823         (cbranchsi4_<code>): ... here.  New patterns.
824         (cmpsi): Call rx-compare_redundant to find out if it is necessary
825         to emit the compare instruction.
826         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
827         cc_status flags.
828         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
829         FIRST_PSEUDO_REGNUM.
830         (rx_expand_prologue, rx_expand_epilogue): Likewise.
831         (rx_notice_update_cc): Delete.
832         (rx_cc_modes_compatible): New function.
833         (flags_needed_for_conditional): New function.
834         (flags_from_mode): New function.
835         (rx_compare_redundant): New function - scans backwards through
836         insn list to find out if condition flags are already set
837         correctly.
838         (TARGET_CC_MODES_COMPATIBLE): Define.
839         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
840
841         * config/rx/rx.h (BRANCH_COST): Define.
842         (REGISTER_MOVE_COST): Define.
843         * config/rx/predicates (rx_source_operand): Allow all constant
844         types.
845         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
846         (tstsi4): New pattern.
847         * config/rx/rx.c (rx_memory_move_cost): Define.
848         (TARGET_MEMORY_MOVE_COST): Define.
849
850 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
851
852         * tree.h (block_may_fallthru): Declare here.
853         * tree-flow.h (block_may_fallthru): Do not declare here.
854         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
855         bitmap.h
856         * Makefile.in (c-typeck.o): Update dependencies.
857
858 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
859
860         PR debug/44694
861         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
862         * cselib.c (cfa_base_preserved_regno): New static variable.
863         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
864         of REGNO (cfa_base_preserved_val->locs->loc).
865         (cselib_preserve_cfa_base_value): Add regno argument, set
866         cfa_base_preserved_regno to it.
867         (cselib_invalidate_regno): Allow removal of registers other than
868         cfa_base_preserved_regno from cfa_base_preserved_val.
869         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
870         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
871         of MEM addresses, if not on LHS.
872         (reverse_op): Don't add reverse ops for cfa_base_rtx.
873         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
874
875 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
876
877         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
878         static variables.
879         (peep2_buf_position): New static function.
880         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
881         peephole2_optimize): Use it.
882         (peep2_attempt, peep2_update_life): New static functions, broken out
883         of peephole2_optimize.
884         (peep2_fill_buffer): New static function.
885         (peephole2_optimize): Change the main loop to try to fill the buffer
886         with the maximum number of insns before matching them against
887         peepholes.  Use a forward scan.  Remove special case for targets with
888         conditional execution.
889         * genrecog.c (change_state): Delete dead code.
890         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
891         Rewrite so as not to expect the second insn to have had a peephole
892         applied yet.
893
894 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
895
896         * genhooks.c (emit_findices): Cast field precision to int.
897         (emit_documentation): Likewise.
898
899 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
900
901         PR tree-optimization/43801
902         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
903         if old_decl was DECL_ONE_ONLY.
904
905         PR debug/44668
906         * dwarf2out.c (add_accessibility_attribute): New function.
907         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
908         instead of adding DW_AT_accessibility manually.
909         (gen_enumeration_type_die, gen_struct_or_union_type_die,
910         gen_typedef_die): Use it.
911
912 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
913
914         * vmsdbgout.c (full_name): Just output the file name if not native.
915
916 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
917
918         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
919         (funcnam_table): New static table.
920         (funcnum_table): New static table.
921         (write_rtnbeg): Write value saved in funcnum_table.
922         (write_rtnend): Write value saved in funcnum_table.
923         (vmsdbgout_begin_function): Save current function info in
924         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
925         (vmsdbgout_finish): Iterate over funcnum_table.
926
927 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
928
929         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
930         (vmsdbgout_type_decl): Declare
931         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
932         (FUNC_EPILOGUE_LABEL): New macro
933         (vmsdbgout_begin_epilogue): New function.
934         (vmsdbgout_type_decl): New function.
935
936 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
937
938         * vmsdbg.h: Update copyright.
939
940 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
941
942         * vmsdbg.h (DST_K_TBG): New DST constant.
943         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
944         (write_modbeg): Cast module_language to avoid warning.
945         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
946
947 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
948
949         PR other/44034
950         * target.def, doc/tm.texi.in, genhooks.c: New files.
951         * target.h: Instead of defining individual hook members,
952         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
953         include target.def.
954         * target-def.h: Instead of defining individual hook initializers,
955         include target-hooks-def.h.
956         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
957         targetm.live_on_entry -> targetm.extra_live_on_entry
958         targetm.sched.md_finish ->targetm.sched.finish
959         targetm.sched.md_init -> targetm.sched.init
960         targetm.sched.md_init_global -> targetm.sched.init_global
961         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
962         targetm.asm_out.except_table_label ->
963           targetm.asm_out.emit_except_table_label
964         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
965         targetm.target_help -> targetm.help
966         targetm.vectorize.builtin_support_vector_misalignment ->
967           targetm.vectorize.support_vector_misalignment
968         targetm.file_start_app_off -> targetm.asm_file_start_app_off
969         targetm.file_start_file_directive ->
970          targetm.asm_file_start_file_directive
971         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
972         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
973         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
974         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
975           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
976         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
977           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
978         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
979         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
980         * Makefile.in (TARGET_H): Depend on target.def.
981         (TARGET_DEF_H): Depend on target-hooks-def.h.
982         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
983         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
984         * doc/tm.texi: Regenerate.
985
986         * Makefile.in (s-tm-texi): Remove stray tab / rule.
987
988         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
989         (targetm.sched.init): Likewise.
990
991 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
992
993         PR bootstrap/44713
994         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
995         (function_arg_advance_32): Const-ify TYPE parameter.
996         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
997         (ix86_function_arg_advance): Change type of NAMED to bool.
998         (function_arg_32): Const-ify CUM and TYPE parameters.
999         (function_arg_64): Likewise.  Change type of NAMED to bool.
1000         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
1001         to bool.
1002         (ix86_function_arg): Change type of NAMED to bool.
1003         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
1004         last argument as a bool.
1005
1006 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
1007
1008         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
1009         (OVERRIDE_OPTIONS): Add note of obsolescence.
1010         Replace references with references to TARGET_OPTION_OVERRIDE.
1011         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
1012          the macro).
1013         * targhooks.c (default_target_option_override): New function.
1014         * targhooks.h (default_target_option_override): Declare.
1015         * target.h (struct gcc_target): Add override member to
1016         target_option member.
1017         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
1018         targetm.target_option.override call.
1019         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
1020         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
1021
1022 2010-06-29  Jan Hubicka  <jh@suse.cz>
1023
1024         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
1025
1026 2010-06-29  Jan Hubicka  <jh@suse.cz>
1027
1028         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
1029         unreachable.
1030         (rebuild_frequencies): New function.
1031         * predict.h (rebuild_frequencies): Declare.
1032         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
1033         entry block and edge reaching new_entry.
1034         (tree_function_versioning): When doing partial cloning, rebuild frequencies
1035         when done.
1036         * passes.c (execute_function_todo): Use rebild_frequencies.
1037
1038 2010-06-29  Richard Guenther  <rguenther@suse.de>
1039
1040         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
1041         * tree-flow.h (enum noalias_state): Remove.
1042         (struct var_ann_d): Remove noalias_state member.
1043
1044 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
1045
1046         PR target/43902
1047         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
1048         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
1049         (maddhidi4): Likewise.
1050
1051         Revert parts of the change for PR25130.
1052         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1053         MEM_ALIAS_SET.
1054
1055 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1056
1057         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
1058         targetm.calls.function_incoming_arg, and
1059         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
1060         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
1061         * target.h (struct gcc_target): Add function_arg_advance,
1062         function_arg, and function_incoming_arg fields.
1063         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
1064         (TARGET_FUNCTION_INCOMING_ARG): Define.
1065         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
1066         and TARGET_FUNCTION_INCOMING_ARG.
1067         * targhooks.h (default_function_arg_advance): Declare.
1068         (default_function_arg, default_function_incoming_arg): Declare.
1069         * targhooks.c (default_function_arg_advance): New function.
1070         (default_function_arg, default_function_incoming_arg): New function.
1071         * config/i386/i386.c (function_arg_advance): Rename to...
1072         (ix86_function_arg_advance): ...this.  Make static.
1073         (function_arg): Rename to...
1074         (ix86_function_arg): ...this.  Make static.
1075         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1076         (TARGET_FUNCTION_ARG): Define.
1077         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
1078         (FUNCTION_ARG): Delete.
1079         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
1080         (function_arg): Delete prototype.
1081
1082 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
1083
1084         * reginfo.c (init_reg_sets_1): Adjust comments.
1085         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
1086         * calls.c (prepare_call_address): Likewise.
1087         (emit_call_1): Use targetm.calls.return_pops_args.
1088         (expand_call): Likewise.
1089         * function.c (assign_parms): Likewise.
1090         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
1091         * target.h (struct gcc_target) [struct calls]: Add
1092         return_pops_args field.
1093         * targhooks.h (default_return_pops_args): Declare.
1094         * targhooks.c (default_return_pops_args): Define.
1095         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
1096         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
1097         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
1098         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
1099         documentation.
1100         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
1101         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
1102         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
1103         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
1104         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
1105         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
1106         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
1107         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
1108         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
1109         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
1110         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
1111         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
1112         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
1113         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
1114         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
1115         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
1116         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
1117         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
1118         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
1119         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
1120         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
1121         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
1122         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
1123         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
1124         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
1125         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
1126         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
1127         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
1128         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
1129         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
1130         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
1131         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
1132         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
1133         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
1134         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
1135         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
1136         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
1137         * config/i386/i386.c (ix86_return_pops_args): Make static.
1138         Constify arguments.
1139         (TARGET_RETURN_POPS_ARGS): Define.
1140         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
1141         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
1142         (TARGET_RETURN_POPS_ARGS): Define.
1143         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
1144         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
1145         (TARGET_RETURN_POPS_ARGS): Define.
1146
1147 2010-06-29  Richard Guenther  <rguenther@suse.de>
1148
1149         PR middle-end/44667
1150         * tree-inline.c (initialize_inlined_parameters): Make sure
1151         to remap the inlined parameter variable substitutions types.
1152
1153 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1154
1155         PR rtl-optimization/44659
1156         * combine.c (make_compound_operation) <SUBREG>: Do not return the
1157         result of force_to_mode if it partially re-expanded the compound.
1158
1159 2010-06-28  Jan Hubicka  <jh@suse.cz>
1160
1161         PR middle-end/44671
1162         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
1163         RESULT_DECL.
1164
1165 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
1166
1167         * double-int.h (force_fit_type_double): Remove declaration.
1168         * double-int.c (force_fit_type_double): Move to tree.c.
1169         * tree.h (force_fit_type_double): Declare.
1170         * tree.h (force_fit_type_double): Moved from double-int.c. Use
1171         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
1172         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
1173         * convert.c (convert_to_pointer): Adjust call to
1174         force_fit_type_double.
1175         * tree-vrp.c (extract_range_from_assert,
1176         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
1177         * fold-const.c: Update comment.
1178         (int_const_binop, fold_convert_const_int_from_int,
1179         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
1180         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
1181         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
1182         round_up_loc): Adjust call to force_fit_type_double.
1183
1184 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1185
1186         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
1187
1188 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1189
1190         * tree-sra.c (convert_callers): New parameter, change fndecls of
1191         recursive calls.
1192         (modify_function): Pass the old decl to convert_callers.
1193
1194 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1195
1196         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
1197         ipa_check_create_node_params and ipa_initialize_node_params with
1198         checking asserts they are not necessary.
1199
1200 2010-06-28  Jan Hubicka  <jh@suse.cz>
1201
1202         PR tree-optimization/44687
1203         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
1204
1205 2010-06-28  Martin Jambor  <mjambor@suse.cz>
1206
1207         PR c++/44535
1208         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
1209         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
1210         instead of BINFO_BASE_BINFO.
1211
1212 2010-06-28  Michael Matz  <matz@suse.de>
1213
1214         PR middle-end/44592
1215         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
1216         proper VDEF chain for intermediate stores in the sequence.
1217
1218 2010-06-28  Jan Hubicka  <jh@suse.cz>
1219
1220         PR tree-optimization/44357
1221         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
1222         functions.
1223
1224 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
1225
1226         * config.gcc (powerpc*-*-*): Handle titan.
1227         * config/rs6000/rs6000.c (titan_cost): New costs.
1228         (rs6000_override_options): Add "titan" to processor_target_table.
1229         Add Titan to branch alignment logic.
1230         Correctly set rs6000_cost for titan.
1231         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
1232         * config/rs6000/titan.md: New file.
1233         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
1234         
1235 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1236
1237         * tree-browser.c (TB_history_stack): Convert to a VEC.
1238         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
1239         (TB_history_prev): Likewise.
1240
1241 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1242
1243         * vec.h (vec_heap_free): Add parentheses around free.
1244
1245 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1246
1247         * system.h: Poison GCC_EXCEPT_H for front-end files.
1248
1249         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
1250         langhook.
1251         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
1252         Define to NULL by default.
1253         * except.h: Define GCC_EXCEPT_H.
1254         (doing_eh): Remove prototype.
1255         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
1256         (lang_protect_cleanup_actions): Remove.
1257         * except.c (lang_protect_cleanup_actions): Remove.
1258         (doing_eh): Remove.
1259         (gen_eh_region): Don't check doing_eh here.
1260         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
1261         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
1262         instead of lang_protect_cleanup_actions.
1263         * omp-low.c (maybe_catch_exception): Likewise.
1264         * Makefile.in: Update dependencies.
1265
1266 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
1267
1268         * cgraph.h (struct varpool_node): new used_from_object_file flag.
1269         (struct cgraph_local_info): new used_from_object_file flag.
1270         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
1271         (cgraph_clone_node): initialize used_from_object_file.
1272         (cgraph_create_virtual_clone): initialize used_from_object_file.
1273         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
1274         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
1275         when compiling with -fwhole-program.
1276         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
1277         internal resolver.
1278         * ipa.c (function_and_variable_visibility): Set externally_visible
1279         flag of varpool_node if used_from_object_file flag is set.
1280         (cgraph_externally_visible_p): check used_from_object_file flag.
1281         * doc/invoke.texi (-fwhole-program option): Change description of
1282         externally_visible attribute accordingly.
1283         * doc/extend.texi (externally_visible): Ditto.
1284
1285 2010-06-27  Jan Hubicka  <jh@suse.cz>
1286
1287         * params.def (max-inline-insns-auto): Default to 40.
1288         * doc/invoke.texi (max-inline-insns-auto): Document the change.
1289
1290 2010-06-27  Jan Hubicka  <jh@suse.cz>
1291
1292         PR middle-end/44671
1293         PR middle-end/44686
1294         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
1295         signature change.
1296         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
1297         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
1298
1299 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
1300
1301         * target.h (struct gcc_target): Add register_move_cost field.
1302         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
1303         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
1304         * targhooks.c (default_register_move_cost): New function.
1305         * targhooks.h (default_register_move_cost): Declare function.
1306         * defaults.h (REGISTER_MOVE_COST): Delete.
1307         * ira-int.h (ira_register_move_cost): Update comment.
1308         * ira.c: (ira_register_move_cost): Update comment.
1309         * reload.h (register_move_cost): Declare.
1310         * reginfo.c (register_move_cost): New function.
1311         (move_cost): Update comment.
1312         (init_move_cost, memory_move_secondary_cost): Replace
1313         REGISTER_MOVE_COST with register_move_cost.
1314         * postreload.c (reload_cse_simplify_set): (Ditto.).
1315         * reload.c (find_valid_class, find_reloads): (Ditto.).
1316         * reload1.c (choose_reload_regs): (Ditto.).
1317         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
1318         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
1319         * doc/md.texi (can_create_pseudo_p): Update documentation.
1320
1321         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1322         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1323         * config/i386/i386.h (ix86_memory_move_cost): Make static.
1324         (TARGET_MEMORY_MOVE_COST): Define.
1325
1326         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
1327         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
1328         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
1329         (TARGET_MEMORY_MOVE_COST): Define.
1330
1331 2010-06-27  Richard Guenther  <rguenther@suse.de>
1332
1333         PR tree-optimization/44683
1334         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
1335         false edge from the inverted condition.
1336
1337 2010-06-27  Richard Guenther  <rguenther@suse.de>
1338
1339         PR middle-end/44684
1340         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
1341         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
1342         for register LHS.  Or non-store assignments.
1343
1344 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
1345
1346         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
1347         (sparc_emit_set_const64): Likewise.  Remove disabled code.
1348         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
1349         (sparc_emit_set_const64): Likewise.
1350
1351 2010-06-26  Catherine Moore  <clm@codesourcery.com>
1352
1353         * config/mips/mips.md (alu_type): New attribute.
1354         (type): Infer type from alu_type.
1355         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
1356         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
1357         *subsi3_extended, negsi2, negdi2, *low<mode>,
1358         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
1359         xor<mode>3, *nor<mode>3,
1360         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
1361         *zero_extendhi_truncqi):  Set alu_type instead of type.
1362
1363 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
1364
1365         * config/alpha/alpha.c (alpha_need_linkage): Adjust
1366         splay_tree_new_ggc call.
1367         (alpha_use_linkage): Likewise.
1368
1369 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
1370
1371         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
1372         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
1373         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
1374         (static_specs): Remove switches_need_spaces.
1375         (process_command, do_self_spec): Hardcode handling "-o" instead of
1376         checking switches_need_spaces.
1377         * system.h (SWITCHES_NEED_SPACES): Poison.
1378
1379 2010-06-26  Richard Guenther  <rguenther@suse.de>
1380
1381         PR tree-optimization/44393
1382         * tree-loop-distribution.c (generate_loops_for_partition): Fix
1383         stmt removal and VOP renaming.
1384         (generate_memset_zero): Remove redundant stmt updating.
1385         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
1386         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
1387
1388 2010-06-26  Jan Hubicka  <jh@suse.cz>
1389
1390         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
1391         edges comming from header are equivalent.
1392         (visit_bb): Handle PHIs correctly.
1393         * tree-inline.c (copy_phis_for_bb): Be able to copy
1394         PHI from entry edge.
1395         (copy_cfg_body): Produce edge from entry BB before copying
1396         PHIs.
1397
1398 2010-06-26  Richard Guenther  <rguenther@suse.de>
1399
1400         PR middle-end/44674
1401         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
1402         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
1403
1404 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
1405
1406         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
1407         add_infile, alloc_switch): New.
1408         (process_command): Remove variable lang_n_infiles.  Process
1409         options in a single pass.  Use new functions for allocating
1410         infiles and switches arrays.  Properly skip operands of
1411         -Xpreprocessor and -Xassembler.
1412
1413 2010-06-26  Jan Hubicka  <jh@suse.cz>
1414
1415         PR middle-end/44671
1416         * cgraphunit.c (cgraph_function_versioning): Remove wrong
1417         cgraph_make_decl_local call; fix typo copying RTL data.
1418
1419 2010-06-25  DJ Delorie  <dj@redhat.com>
1420
1421         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
1422         (m32c_output_aligned_common): Likewise.
1423         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1424         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1425         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
1426         (m32c_register_pragmas): Register it.
1427         * config/m32c/m32c.c (m32c_get_pragma_address): New.
1428         (m32c_insert_attributes): Set #pragma address decls volatile.
1429         (pragma_entry_eq): New.
1430         (pragma_entry_hash): New.
1431         (m32c_note_pragma_address): New.
1432         (m32c_get_pragma_address): New.
1433         (m32c_output_aligned_common): New.
1434         * doc/extend.texi: Document the new pragma.
1435
1436         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
1437         also.
1438         * config/m32c/predicates.md (m32c_any_operand): Check the code
1439         instead of memory_operand so as to allow matching volatile MEMs.
1440         (m32c_nonimmediate_operand): Likewise.
1441         (mra_operand): Allow volatiles.
1442
1443 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
1444
1445         PR debug/44610
1446         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
1447         address if the offset is unknown.
1448
1449 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
1450
1451         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
1452         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
1453         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
1454         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
1455         to ia64_start_function. Invoke it.
1456         * config/ia64/ia64.c (ia64_start_function): Call new function
1457         dwarf2out_vms_debug_main_pointer.
1458
1459 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1460
1461         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
1462         statements computing the true predicate.
1463
1464 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1465
1466         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
1467         to boolean_true_node.
1468         (reset_bb_predicate): New.
1469         (predicate_bbs): Call reset_bb_predicate.
1470
1471 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1472
1473         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
1474         (tree_if_conversion): Returns true when something has been changed.
1475         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
1476         changed something.
1477
1478 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
1479
1480         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
1481         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
1482         * tree-if-conv.c: Include dbgcnt.h.
1483         (tree_if_conversion): Use if_conversion_tree to count the number of
1484         if-convertible loops.
1485
1486 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
1487
1488         * common.opt (fprefetch-loop-arrays): Re-define
1489         -fprefetch-loop-arrays as a tri-state option with the initial
1490         value of -1.
1491         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
1492         pass only when flag_prefetch_loop_arrays > 0.
1493         * toplev.c (process_options): Note that, with tri-states,
1494         flag_prefetch_loop_arrays>0 means prefetching is enabled.
1495         * config/i386/i386.c (override_options): Enable prefetching at -O3
1496         for a set of CPUs that sw prefetching is helpful.
1497         (software_prefetching_beneficial_p): New.  Return TRUE if software
1498         prefetching is beneficial for the given CPU.
1499
1500 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
1501
1502         PR rtl-optimization/44326
1503         * implicit-zee.c (find_removable_zero_extends): Replace
1504         INSN_P with NONDEBUG_INSN_P.
1505
1506 2010-06-25  Martin Jambor  <mjambor@suse.cz>
1507
1508         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
1509         (struct ipa_node_params): Removed the modification_analysis_done flag.
1510         (ipa_is_param_modified): Removed.
1511         (ipa_analyze_node): Declare.
1512         (ipa_compute_jump_functions): Remove declaration.
1513         (ipa_count_arguments): Likewise.
1514         (ipa_detect_param_modifications): Likewise.
1515         (ipa_analyze_params_uses): Likewise.
1516         * ipa-prop.c (struct param_analysis_info): New type.
1517         (visit_store_addr_for_mod_analysis): Removed.
1518         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
1519         moved down in the file.
1520         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
1521         (ipa_count_arguments): Made static.
1522         (mark_modified): New function.
1523         (is_parm_modified_before_call): New function.
1524         (compute_pass_through_member_ptrs): New parameter parms_info, call
1525         is_parm_modified_before_call instead of ipa_is_param_modified.
1526         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
1527         it to compute_pass_through_member_ptrs.
1528         (ipa_compute_jump_functions): New parameter parms_info, pass it to
1529         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
1530         on the callee if it is analyzed.  Made static.
1531         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
1532         is_parm_modified_before_call instead of ipa_is_param_modified.
1533         (ipa_analyze_call_uses): New parameter parms_info, pass it to
1534         ipa_analyze_indirect_call_uses.
1535         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
1536         ipa_analyze_call_uses.
1537         (ipa_analyze_params_uses): New parameter parms_info, pass it to
1538         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
1539         (ipa_analyze_node): New function.
1540         (ipa_print_node_params): Do not dump the modified flag.
1541         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
1542         it.  Do not stream the modified parameter flag.
1543         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
1544         it.  Do not stream the modified parameter flag.
1545         * ipa-cp.c (ipcp_analyze_node): Removed.
1546         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
1547         with only a call to ipa_analyze_node.
1548         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
1549         node with only a call to ipa_analyze_node.
1550
1551 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1552
1553         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
1554
1555 2010-06-25  Jan Hubicka  <jh@suse.cz>
1556
1557         * tree-pass.h (pass_split_functions): Declare.
1558         * opts.c (decode_options): Enable function splitting at -O2
1559         * timevar.def (TV_IPA_FNSPLIT): New macro.
1560         * ipa-split.c: New file.
1561         * common.opt (-fpartial-inlining): New flag.
1562         * Makefile.in (ipa-split.o): New object file.
1563         * passes.c (init_optimization_passes): Add ipa-split.
1564         * params.def (partial-inlining-entry-probability): New parameters.
1565         * doc/invoke.texi (-fpartial-inlining): New.
1566
1567 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1568
1569         PR 44665
1570         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
1571         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
1572         (gimplify_expr): Likewise.
1573
1574 2010-06-25  Martin Jambor  <mjambor@suse.cz>
1575
1576         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
1577         statements instead of bailing out on them.
1578         (ipa_analyze_indirect_call_uses): Do not require that loads from the
1579         parameter are in the same BB as the condition.  Update comments.
1580
1581 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
1582
1583         PR middle-end/43866
1584         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
1585         true or always false, return NULL_TREE.
1586         (tree_unswitch_single_loop): Optimize conditions even when reaching
1587         max-unswitch-level parameter.  If num > 0, optimize first all conditions
1588         using entry checks, then do still reachable block discovery and consider
1589         only conditions in still reachable basic blocks in the loop.
1590
1591         PR tree-optimization/44539
1592         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
1593         the call doesn't have LHS, but has VDEF.
1594
1595 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
1596
1597         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
1598         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
1599         * gcc.c (enum add_del, struct modify_target, modify_target):
1600         Remove.
1601         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
1602         * system.h (MODIFY_TARGET_NAME): Poison.
1603
1604 2010-06-25  Alan Modra  <amodra@gmail.com>
1605
1606         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
1607         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
1608         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1609         CMODEL_LARGE as default.
1610         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
1611         (offsettable_ok_by_alignment): Delete.
1612         (rs6000_emit_move): Remove mcmodel=medium optimization.
1613
1614 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
1615
1616         With large parts from Jim Wilson:
1617         PR target/43902
1618         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
1619         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
1620         * optabs.c (optab_for_tree_code): Likewise.
1621         (expand_widen_pattern_expr): Likewise.
1622         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
1623         out of execute_optimize_widening_mul.
1624         (convert_plusminus_to_widen): New function.
1625         (execute_optimize_widening_mul): Use the two new functions.
1626         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
1627         Remove code to generate widening multiply-accumulate.  Add support
1628         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
1629         * gimple-pretty-print.c (dump_ternary_rhs): New function.
1630         (dump_gimple_assign): Call it when appropriate.
1631         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
1632         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1633         (expand_gimple_stmt_1): Likewise.
1634         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
1635         WIDEN_MULT_MINUS_EXPR.
1636         * tree-ssa-operands.c (get_expr_operands): Likewise.
1637         * tree-inline.c (estimate_operator_cost): Likewise.
1638         * gimple.c (extract_ops_from_tree_1): Renamed from
1639         extract_ops_from_tree.  Add new arg for a third operand; fill it.
1640         (gimple_build_assign_stat): Support operations with three operands.
1641         (gimple_build_assign_with_ops_stat): Likewise.
1642         (gimple_assign_set_rhs_from_tree): Likewise.
1643         (gimple_assign_set_rhs_with_ops_1): Renamed from
1644         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
1645         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
1646         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
1647         WIDEN_MULT_MINUS_EXPR.
1648         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
1649         (extract_ops_from_tree_1): Adjust declaration.
1650         (gimple_assign_set_rhs_with_ops_1): Likewise.
1651         (gimple_build_assign_with_ops): Pass NULL for last operand.
1652         (gimple_build_assign_with_ops3): New macro.
1653         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
1654         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
1655         functions.
1656         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
1657         (verify_gimple_assign): Call it.
1658         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
1659         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
1660         functions for dealing with three-operand statements.
1661         * tree.c (commutative_ternary_tree_code): New function.
1662         * tree.h (commutative_ternary_tree_code): Declare it.
1663         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
1664         ternary statements.
1665         (gimple_assign_nonzero_warnv_p): Likewise.
1666         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
1667         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
1668         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
1669         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
1670         (struct hashtable_expr): New member ternary in the union.
1671         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
1672         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
1673         (iterative_hash_hashable_expr): Likewise.
1674         (print_expr_hash_elt): Handle EXPR_TERNARY.
1675         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
1676         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
1677         statements.  Handle GIMPLE_TERNARY_RHS.
1678
1679 2010-06-25  Jan Hubicka  <jh@suse.cz>
1680
1681         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
1682
1683 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
1684
1685         PR c/44517
1686         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
1687         parameters are not good.
1688         (c_parser_parameter_declaration): Error unknown type name if the type
1689         name can't start declaration specifiers.
1690
1691 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
1692
1693         * gcc.c (translate_options): Don't mention +e in comment.
1694         (process_command): Don't handle +e specially.
1695
1696 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
1697
1698         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
1699
1700         * ira-build.c (merge_hard_reg_conflicts): New function.
1701         (create_cap_allocno, copy_info_to_removed_store_destinations,
1702         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
1703         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
1704         (remove_unnecessary_allocnos, remove_low_level_allocnos)
1705         copy_nifo_to_removed_store_destination): Use them.
1706         * ira-lives.c (make_hard_regno_born): New function, split out of
1707         make_regno_born.
1708         (make_allocno_born): Likewise.
1709         (make_hard_regno_dead): New function, split out of make_regno_dead.
1710         (make_allocno_dead): Likewise.
1711         (inc_register_pressure): New function, split out of set_allocno_live.
1712         (dec_register_pressure): New function, split out of clear_allocno_live.
1713         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
1714         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
1715         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
1716         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
1717         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
1718         mark_pseudo_regno_live.
1719         (process_bb_node_lives): Use mark_pseudo_regno_live,
1720         make_hard_regno_born and make_allocno_dead.
1721         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
1722         set_allocno_live, clear_allocno_live): Delete functions.
1723
1724         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
1725         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
1726         functions.
1727         (ira_flattening): Use ira_parent_allocno.
1728         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
1729         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
1730
1731         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
1732         statement.
1733
1734         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
1735         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
1736         minmax_set_iter_cond, minmax_set_iter_next,
1737         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
1738         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
1739         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
1740         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
1741         uses changed.
1742
1743         * ira-int.h (struct live_range, live_range_t): Renamed from struct
1744         ira_allocno_live_range and allocno_live_range_t; all uses changed.
1745         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
1746         All uses changed.
1747
1748 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
1749
1750         * thumb2.md (thumb2_tlobits_cbranch): Delete.
1751         (peephole2 to convert zero_extract/compare of single bit to
1752          lshift/compare): New.
1753
1754 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
1755
1756         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
1757         recursive call and call to 'int_const_binop'.
1758         (build_range_check, fold_cond_expr_with_comparison, unextend,
1759         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
1760         multiple_of_p): Adjust call to const_binop.
1761
1762 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
1763
1764         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
1765         determine size of XFmode operand.
1766         (XFmode extended DFmode push splitter): Ditto.
1767         (XFmode extended SFmode push splitter): Ditto.
1768
1769 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1770
1771         PR target/44588
1772         * config/i386/i386.md (extract_code): New.
1773         (<u>divmodqi4): Likewise.
1774         (divmodhiqi3): Likewise.
1775         (udivmodhiqi3): Likewise.
1776         (<u>divqi3): Remvoved.
1777
1778 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
1779
1780         PR middle-end/44492
1781         * recog.h (struct recog_data): Add is_asm field.
1782         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
1783         present in constraints of inline-asm operand and memory operand
1784         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
1785         (extract_insn): Initialize recog_data.is_asm.
1786         * doc/md.texi (Constraints): Document operand side-effect rules.
1787
1788 2010-06-24  Andi Kleen  <ak@linux.intel.com>
1789
1790         * c-parser.c (c_parser_conditional_expression): Call
1791         warn_for_omitted_condop.
1792         * doc/invoke.texi: Document omitted condop warning.
1793
1794 2010-06-24  Nick Clifton<nickc@redhat.com>
1795
1796         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
1797         insn in the sequence is a jump insn before setting its label.
1798
1799 2010-06-24  Alan Modra  <amodra@gmail.com>
1800
1801         * collect2.c (main): Match exactly --version and --help.
1802
1803 2010-06-24  DJ Delorie  <dj@redhat.com>
1804
1805         * config/m32c/m32c-pragma.c: Don't include rtl.h.
1806
1807 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
1808
1809         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
1810         using X87MODEF mode iterator.
1811         (pushsf splitter): Macroize splitter using P mode iterator.
1812         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
1813         mode iterator.
1814
1815         (*movxf_internal): Rename from *movxf_integer.
1816         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
1817         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
1818         (*movdf_internal): Rename from *movdf_integer.
1819         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
1820         (*movsf_internal): Rename from *movdf_1.
1821
1822 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
1823
1824         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
1825         (const_gimple_seq_node): Removed typedefs.
1826
1827         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
1828         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
1829
1830 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1831
1832         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
1833         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
1834         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
1835         and CODE_FOR_vec_extract_lo_v4df.
1836
1837         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
1838         Changed to define_insn_and_split.
1839         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
1840         (vec_extract_lo_v16hi): Likewise.
1841         (vec_extract_lo_v32qi): Likewise.
1842         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
1843         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
1844
1845 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
1846
1847         PR target/44640
1848         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
1849         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
1850         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
1851         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
1852         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
1853
1854         PR target/44640
1855         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
1856
1857         PR other/44644
1858         * df-core.c (struct df): Rename to df_d.
1859         * df.h (struct df): Likewise.
1860         * dse.h (struct df): Remove forward declaration.
1861         * recog.h (struct insn_data): Rename to:
1862         (struct_insn_data_d).  Adjusted all users.
1863
1864 2010-06-23  Arnaud Charlet  <charlet@adacore.com
1865
1866         PR ada/22220
1867         * doc/install.texi: Update requirements to build GNAT.
1868
1869 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
1870
1871         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
1872         enum type.
1873         (m68k_sched_attr_opx_type): Remove unreachable return.
1874         (m68k_sched_attr_opy_type): Likewise.
1875         (m68k_sched_attr_size): Likewise.
1876         (sched_get_opxy_mem_type): Likewise.
1877         (m68k_sched_attr_op_mem): Likewise.
1878
1879 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1880
1881         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
1882         new statement and adjust VDEF only if necessary.  Remove superfluous
1883         call to maybe_clean_or_replace_eh_stmt.
1884         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
1885         copy the flags.
1886         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
1887         * tree-inline.c (copy_bb): ...and not there.
1888
1889 2010-06-22  Cary Coutant  <ccoutant@google.com>
1890
1891         * dwarf2out.c (is_nested_in_subprogram): New function.
1892         (should_move_die_to_comdat): Use it.
1893         (copy_ancestor_tree): Don't mark DIEs here.
1894         (copy_decls_walk): Start walk from root of newly-added tree;
1895         mark DIEs here instead.
1896
1897 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
1898
1899         * config/i386/i386.md (unit): Also check sseishft1.
1900
1901 2010-06-22  Jan Hubicka  <jh@suse.cz>
1902
1903         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
1904         enabled.
1905
1906 2010-06-22  Jan Hubicka  <jh@suse.cz>
1907
1908         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
1909         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
1910         Return true if something changed.
1911         * df.h (df_confluence_function_n): Return bool.
1912         * df-core.c (df_worklist_propagate_forward,
1913         df_worklist_propagate_backward): Track changes and ages.
1914         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
1915         track ages.
1916         * dse.c (dse_confluence_n): Return always true.
1917
1918 2010-06-22  Jan Hubicka  <jh@suse.cz>
1919
1920         * bitmap.c (bitmap_clear_bit): Micro optimize.
1921
1922 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
1923
1924         * config/i386/i386.md (SWI1248x): New mode iterator.
1925         (SWI48x): Ditto.
1926         (SWI12): Ditto.
1927         (SWI24): Ditto.
1928
1929         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
1930         SWI1248x mode iterator.
1931         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
1932         using SWI124 mode iterator.
1933         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
1934         mode iterator.
1935         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
1936         *pushdi2_prologue_rex64 using P mode iterator.
1937         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
1938         using SWI48 mode iterator.
1939         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
1940         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
1941         using SWI1248x mode iterator.
1942         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
1943         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
1944         SWI48 mode iterator.
1945         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
1946         iterator.
1947         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
1948         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
1949         SWI12 mode iterator.
1950         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
1951         SWI12 mode iterator.
1952         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
1953         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
1954         SWI24 mode iterator.
1955         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
1956         SWI48 mode iterator.
1957         (mov<mode>_insn_1): New expander.
1958         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
1959         using SWI48x mode iterator.
1960
1961         (*movoi_internal_avx): Rename from *movoi_internal.
1962         (*movti_internal_rex64): Rename from *movti_rex64.
1963         (*movti_internal_sse): Rename from *movti_sse.
1964         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
1965         (*movdi_internal): Rename from *movdi_2.
1966         (*movsi_internal): Rename from *movsi_1.
1967         (*movhi_internal): Rename from *movhi_1.
1968         (*movqi_internal): Rename from *movqi_1.
1969
1970         (insv): Update the call to gen_movsi_insv_1 for rename.
1971         * config/i386/i386.c (promote_duplicated_reg): Ditto.
1972
1973 2010-06-22  Jan Hubicka  <jh@suse.cz>
1974
1975         * passes.c (execute_function_todo): Move call of statistics_fini_pass
1976         to ...
1977         (execute_todo) ... this one.
1978
1979 2010-06-22  Alan Modra  <amodra@gmail.com>
1980
1981         PR target/44364
1982         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
1983         * caller-save.c (insert_restore, insert_save): Use non-validate
1984         form of adjust_address.
1985
1986 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1987
1988         PR target/39690
1989         * config/pa/pa.c (override_options): Disable
1990         -freorder-blocks-and-partition.
1991
1992 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1993
1994         PR target/44615
1995         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
1996
1997         * config/i386/i386.md (type): Add sseishft1
1998
1999         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
2000         (ppro_insn_load): Likewise.
2001         (ppro_insn_store): Likewise.
2002         (ppro_insn_both): Likewise.
2003
2004         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
2005         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
2006         for type.
2007         (*vec_extractv2di_1_avx): Likewise.
2008         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
2009         type.  Remove atom_unit.
2010         (*vec_extractv2di_1_sse2): Likewise.
2011
2012 2010-06-21  DJ Delorie  <dj@redhat.com>
2013
2014         * diagnostic.h (diagnostic_classification_change_t): New.
2015         (diagnostic_context): Add history and push/pop list.
2016         (diagnostic_push_diagnostics): Declare.
2017         (diagnostic_pop_diagnostics): Declare.
2018         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
2019         from pragmas in a history chain instead of the global table.
2020         (diagnostic_push_diagnostics): New.
2021         (diagnostic_pop_diagnostics): New.
2022         (diagnostic_report_diagnostic): Scan history chain to find state
2023         of diagnostics as of the diagnostic location.
2024         * opts.c (set_option): Pass UNKNOWN_LOCATION to
2025         diagnostic_classify_diagnostic.
2026         (enable_warning_as_error): Likewise.
2027         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
2028         use in the history chain.
2029         * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
2030         allow these pragmas anywhere.
2031         * doc/extend.texi: Document pragma GCC diagnostic changes.
2032
2033 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
2034
2035         * dwarf2out.c (add_linkage_name): New function.  Don't add
2036         anything to DW_TAG_member DIEs.
2037         (add_name_and_src_coords_attributes): Use it.
2038         (gen_variable_die): Call it for C++ static data members if
2039         specification is DW_TAG_member.
2040
2041         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
2042         C++ char16_t and char32_t.
2043
2044         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
2045         * genattrtab.c: Include vecprim.h.
2046         (cached_attrs, cached_attr_count, attrs_seen_once,
2047         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
2048         attrs_cached_after): New variables.
2049         (find_attrs_to_cache): New function.
2050         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
2051         (write_test_expr): Add attrs_cached argument, return it too,
2052         attempt to cache non-const attributes used more than once in
2053         a single case handling.
2054         (write_attr_get): Use find_attrs_to_cache, for caching candidates
2055         emit cached_* variables.  Adjust write_attr_set callers.
2056         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
2057         to find attributes that should be cached in this block.  Adjust
2058         write_test_expr callers.
2059         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
2060         callers.
2061         (make_automaton_attrs): Adjust write_test_expr caller.
2062
2063         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
2064         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
2065         (make_automaton_attrs): If find_tune_attr returns non-NULL,
2066         write separate internal_dfa_insn_code_* and insn_default_latency_*
2067         functions for each attribute's value and emit init_sched_attrs
2068         function and function pointers.
2069         * genattr.c (const_attrs, reservations): New variables.
2070         (gen_attr): Add const attributes to const_attrs vector.
2071         (check_tune_attr, find_tune_attr): New functions.
2072         (main): Add reservations to reservations vector.  If find_tune_attr
2073         returns true, add prototype for init_sched_attrs and make
2074         internal_dfa_insn_code and insn_default_latency function pointers,
2075         otherwise define init_sched_attrs as dummy macro.
2076         * cfgexpand.c: Include insn-attr.h.
2077         (gimple_expand_cfg): Call init_sched_attrs.
2078
2079         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
2080
2081         PR target/44575
2082         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
2083         va_arg from a set of register save slots into a temporary,
2084         if the container is bigger than type size, do the copying
2085         using smaller mode or using memcpy.
2086
2087         PR bootstrap/44426
2088         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
2089         prototype.
2090         (sel_print_to_dot): Remove macro.
2091         (sel_print): Likewise.  New prototype.
2092         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
2093         (sel_print): New function.
2094
2095 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2096
2097         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
2098         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
2099
2100 2010-06-21  Nick Clifton  <nickc@redhat.com>
2101
2102         * config/rx/rx.h (PTRDIFF_TYPE): Define.
2103         (SMALL_REGISTER_CLASS): Define (to zero).
2104         (PRINT_OPERAND): Delete.
2105         (PRINT_OPERAND_ADDRESS): Delete.
2106         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
2107         (rx_print_operand_address): Delete prototype.
2108         * config/rx/rx.c (rx_print_operand): Make static.
2109         Allow %H and %L to handle CONST_DOUBLEs.
2110         (rx_print_operand_address): Make static.
2111         (rx_gen_move_template): Rename local variable 'template' to
2112         out_template.
2113         (rx_function_arg): Do not pass unknown sized objects in registers.
2114         (TARGET_PRINT_OPERAND): Define.
2115         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2116
2117 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
2118
2119         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
2120
2121 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
2122
2123         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
2124         stack-alignment for simple leaf-functions.
2125
2126 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
2127
2128         * doc/install.texi: Document bootstrap-lto.
2129
2130 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
2131
2132         PR debug/44248
2133         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
2134         (input_function): Drop them here, if VTA is disabled.
2135
2136 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
2137
2138         PR target/44546
2139         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
2140         New predicate.
2141         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
2142         ix86_swapped_fp_comparsion_operator instead of
2143         ix86_fp_comparison_operator.
2144
2145         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
2146         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
2147         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
2148         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
2149         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
2150         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
2151
2152 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2153
2154         PR other/32998
2155         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
2156         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
2157         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
2158         (decode_cmdline_option): Update for this return value.  Set
2159         orig_option_with_args_text field.  Set arg field for unknown
2160         options.  Make static.
2161         (decode_cmdline_options_to_array): New.
2162         (prune_options): Update handling of find_opt return value.
2163         * opts.c (read_cmdline_option): Take decoded option.  Return void.
2164         (read_cmdline_options): Take decoded options.
2165         (decode_options): Add parameters for decoded options.  Use
2166         decode_cmdline_options_to_array.  Use decoded options for -O
2167         scan.  Use integral_argument for -O parameters.  Update call to
2168         read_cmdline_options.
2169         (enable_warning_as_error): Update handling of find_opt return value.
2170         * opts.h: Update comment on unknown options.
2171         (struct cl_decoded_option): Update comments on opt_index and arg.
2172         Add orig_option_with_args_text.
2173         (decode_cmdline_option): Remove.
2174         (decode_cmdline_options_to_array): Declare.
2175         (decode_options): Update prototype.
2176         * toplev.c (save_argv): Remove.
2177         (save_decoded_options, save_decoded_options_count): New.
2178         (read_integral_parameter): Remove.
2179         (print_switch_values): Use decoded options.
2180         (toplev_main): Don't set save_argv.  Update call to decode_options.
2181         * toplev.h (read_integral_parameter): Remove.
2182         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
2183
2184 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
2185
2186         PR target/44072
2187         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
2188         immediate.
2189         * constraints.md (Pw, Px): New constraints.
2190         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
2191
2192 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
2193
2194         * config/i386/sse.md (fma4modesuffixf4): Removed.
2195         (ssemodesuffixf2s): Likewise.
2196         (ssemodesuffixf4): Likewise.
2197         (ssemodesuffixf2c): Likewise.
2198         (ssescalarmodesuffix2s): Likewise.
2199         (avxmodesuffixf2c): Likewise.
2200         (ssemodesuffix): New.
2201         (ssescalarmodesuffix): Likewise.
2202         Update patterns with ssemodesuffix and ssescalarmodesuffix.
2203
2204 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
2205
2206         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
2207
2208 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2209
2210         * stor-layout.c (debug_rli): Remove unused local variables.
2211
2212 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         PR rtl-optimization/40900
2215         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
2216         original expression for later reuse.
2217         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
2218         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
2219
2220 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
2221
2222         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
2223         double_int_fits_in_uhwi_p): Implement as static inline.
2224         (double_int_xor): New inline function.
2225         (double_int_lrotate, double_int_rrotate, double_int_max,
2226         double_int_umax, double_int_smax, double_int_min, double_int_umin,
2227         double_int_smin): Declare.
2228         (lrotate_double, rrotate_double): Remove declaration.
2229         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
2230         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
2231         (double_int_lrotate, double_int_rrotate, double_int_max,
2232         double_int_umax, double_int_smax, double_int_min, double_int_umin,
2233         double_int_smin): New function.
2234         * fold-const.c (int_const_binop): Clean up, use double_int_*
2235         functions.
2236         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
2237         double_int_* and immed_double_int_const functions.
2238
2239 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
2240
2241         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
2242         * function.c (types_used_by_cur_var_decl): Likewise.
2243         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
2244
2245 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
2246
2247         * tree.h (record_layout_info): Change type of pending_statics field
2248         to a VEC.
2249         * stor-layout.c (start_record_layout): Store NULL into
2250         pending_statics.
2251         (debug_rli): Call debug_vec_tree instead of debug_tree.
2252         (place_field): Likewise.
2253         (finish_record_layout): Likewise.
2254
2255 2010-06-18  Alan Modra  <amodra@gmail.com>
2256
2257         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
2258
2259 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2260
2261         PR target/43740
2262         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
2263         for SET source operand from SET destination operand.
2264
2265 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
2266
2267         PR rtl-optimization/39871
2268         * reload1.c (init_eliminable_invariants): For flag_pic, disable
2269         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
2270         (function_invariant_p): Rule out a plus of frame or arg pointer with
2271         a SYMBOL_REF.
2272         * ira.c (find_reg_equiv_invariant_const): Likewise.
2273
2274 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
2275
2276         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
2277         print_operand_address and puts to output the operand for CONST.
2278
2279 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
2280
2281         PR debug/44572
2282         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
2283         hook.
2284
2285 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2286
2287         * v850-protos.h (print_operand): Delete.
2288         (print_operand_address): Delete.
2289         * v850.h (PRINT_OPERAND): Delete.
2290         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2291         (PRINT_OPERAND_ADDRESS): Delete.
2292         * v850.c (print_operand_address): Rename to...
2293         (v850_print_operand_address): ...this.  Make static. Call
2294         v850_print_operand.
2295         (print_operand): Rename to...
2296         (v850_print_operand): ...this.  Make static.  Call
2297         v850_print_operand_address.
2298         (v850_print_operand_punct_valid_p): New function.
2299         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2300         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2301
2302 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2303
2304         * config/sh/sh-protos.h (print_operand): Delete.
2305         (print_operand_address): Delete.
2306         * config/sh/sh.h (PRINT_OPERAND): Delete.
2307         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2308         (PRINT_OPERAND_ADDRESS): Delete.
2309         * config/sh/sh.c (sh_print_operand_address): Make static.
2310         (sh_print_operand): Make static.  Call sh_print_operand_address
2311         and sh_print_operand.
2312         (sh_print_operand_punct_valid_p): New function.
2313         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2314         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2315
2316 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2317
2318         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
2319         (mcore_print_operand_address): Delete.
2320         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
2321         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2322         (PRINT_OPERAND_ADDRESS): Delete.
2323         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
2324         (mcore_print_operand): Make static.
2325         (mcore_print_operand_punct_valid_p): New function.
2326         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
2327         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2328
2329 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2330
2331         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
2332         (print_operand_address): Delete.
2333         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
2334         (PRINT_OPERAND_ADDRESS): Delete.
2335         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
2336         static.
2337         (m68hc11_print_operand): Make static.
2338         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2339
2340 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2341
2342         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
2343         (m32r_print_operand_address): Delete.
2344         * config/m32r/m32r.h (m32r_punct_chars): Delete.
2345         (PRINT_OPERAND): Delete.
2346         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2347         (PRINT_OPERAND_ADDRESS): Delete.
2348         * config/m32r/m32r.c (m32r_punct_chars): Make static.
2349         (m32r_print_operand_address): Make static.
2350         (m32r_print_operand): Make static.
2351         (m32r_print_operand_punct_valid_p): New function.
2352         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2353         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2354
2355 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2356
2357         * config/iq2000/iq2000-protos.h (print_operand): Delete.
2358         (print_operand_address): Delete.
2359         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
2360         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2361         (PRINT_OPERAND_ADDRESS): Delete.
2362         (iq2000_print_operand_punct): Delete.
2363         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
2364         (iq2000_print_operand_address): Make static.
2365         (iq2000_print_operand): Make static.
2366         (iq2000_print_operand_punct_valid_p): New function.
2367         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2368         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2369
2370 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2371
2372         * config/frv/frv-protos.h (frv_print_operand): Delete.
2373         (frv_print_operand_address): Delete.
2374         * config/frv/frv.h (PRINT_OPERAND): Delete.
2375         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2376         (PRINT_OPERAND_ADDRESS): Delete.
2377         * config/frv/frv.c (frv_print_operand_address): Make static.
2378         (frv_print_operand): Make static.
2379         (frv_print_operand_punct_valid_p): New function.
2380         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2381         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2382
2383 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
2384
2385         * tree.h (vec_member): Declare.
2386         * tree.c (vec_member): Define.
2387
2388 2010-06-17  Richard Guenther  <rguenther@suse.de>
2389
2390         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
2391         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
2392
2393 2010-06-17  Richard Guenther  <rguenther@suse.de>
2394
2395         * tree-inline.c (declare_return_variable): Remove bogus code.
2396
2397 2010-06-17  Richard Guenther  <rguenther@suse.de>
2398
2399         * gimplify.c (gimplify_bind_expr): Always promote complex
2400         and vector variables to registers if possible.
2401
2402 2010-06-17  Richard Guenther  <rguenther@suse.de>
2403
2404         * expr.c (get_inner_reference): Use double_int for bit_offset
2405         calculation.
2406
2407 2010-06-16  DJ Delorie  <dj@redhat.com>
2408
2409         * common.opt (-fstrict-volatile-bitfields): new.
2410         * doc/invoke.texi: Document it.
2411         * fold-const.c (optimize_bit_field_compare): For volatile
2412         bitfields, use the field's type to determine the mode, not the
2413         field's size.
2414         * expr.c (expand_assignment): Likewise.
2415         (get_inner_reference): Likewise.
2416         (expand_expr_real_1): Likewise.
2417         * expmed.c (store_fixed_bit_field): Likewise.
2418         (extract_bit_field_1): Likewise.
2419         (extract_fixed_bit_field): Likewise.
2420
2421 2010-06-16  Richard Guenther  <rguenther@suse.de>
2422
2423         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
2424
2425 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
2426
2427         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
2428         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
2429         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
2430         * debug.c: Likewise.
2431         * sdbout.c: Likewise.
2432         * vmsdbgout.c: Likewise.
2433         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
2434         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
2435         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
2436         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
2437         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
2438         * dwarf2out.c (dw_fde_struct): New fields
2439         dw_fde_vms_{end,begin}_prologue.
2440         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
2441         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
2442         (dwarf2out_vms_end_prologue): New function.
2443         (dwarf2out_vms_begin_epilogue): New function.
2444         (dw_val_struct): New value dw_val_class_vms_delta.
2445         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
2446         begin_epilogue for VMS.
2447         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
2448         new static functions.
2449         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
2450         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
2451         static functions.
2452         (print_die): New case dw_val_class_vms_delta.
2453         (attr_checksum): Likewise.
2454         (same_dw_val_p: Likewise.
2455         (size_of_die): Likewise.
2456         (value_format): Likewise.
2457         (output_die): Likewise.
2458         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
2459         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
2460         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
2461         dwarf2out_cfi_begin_epilogue
2462         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
2463
2464 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
2465
2466         * config/cris/cris-protos.h (cris_print_operand): Delete.
2467         (cris_print_operand_address): Delete.
2468         * config/cris/cris.h (PRINT_OPERAND): Delete.
2469         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2470         (PRINT_OPERAND_ADDRESS): Delete.
2471         * config/cris/cris.c (cris_print_operand_address): Make static.
2472         (cris_print_operand): Make static.
2473         (cris_print_operand_punct_valid_p): New function.
2474         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2475         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2476
2477 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
2478
2479         * config/arm/arm-protos.h (arm_print_operand): Delete.
2480         (arm_print_operand_address): Delete.
2481         * config/arm/arm.h (PRINT_OPERAND): Delete.
2482         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2483         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
2484         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
2485         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
2486         (arm_print_operand): Make static.
2487         (arm_print_operand_punct_valid_p): New function.
2488         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
2489         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2490
2491 2010-06-16  Nick Clifton  <nickc@redhat.com>
2492
2493         * config/rx/constraints.md (NEGint4): New constraint.
2494         * config/rx/rx.md (attr cc): Add set_zsc.
2495         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
2496         initialised.
2497         (cmpsf): Likewise.
2498         (call_internal): Clobber the cc0 register.
2499         (call_value_internal): Likewise.
2500         (cstoresi4): Likewise.
2501         (movsieq): Likewise.
2502         (movsine): Likewise.
2503         (addsi3): Add alternative to handle small negative constants.
2504         (sunsi3): Likewise.
2505         (addsi3): Do not set the O bit in the cc0 register.
2506         (adddi3): Likewise.
2507         (subsi3): Likewise.
2508         (subdi3): Likewise.
2509         (andsi3): Reorder alternatives to prefer shorter forms.
2510         (mulsi3): Likewise.
2511         (iorsi3): Likewise.
2512         (negsi2): Note that the cc0 flags are set.
2513         (rotlsi3): Note that only the Z and S bits are set in cc0.
2514         (lshrsi3): Likewise.
2515         (ashlsi3): Likewise.
2516         (subsf3): Use %Q for the MEM operand.
2517         (fix_truncsfsi2): Likewise.
2518         (floatsisf2): Likewise.
2519         (bitset): Remove early clobber from destination.
2520         (bitset_in_memory): Likewise.
2521         (lrintsf2): Clobber the cc0 register.
2522         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
2523         (rx_print_operand): Handle %N.
2524
2525 2010-06-16  Jan Hubicka  <jh@suse.cz>
2526
2527         * df-core.c (df_compact_blocks): Free problem_temps vector.
2528
2529 2010-06-16  Martin Jambor  <mjambor@suse.cz>
2530
2531         PR tree-optimization/43905
2532         * tree-sra.c: Include tree-inline.h.
2533         (create_abstract_origin): Removed.
2534         (modify_function): Version the call graph node instead of creating
2535         abstract origins and dealing with same_body aliases.
2536         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
2537         function is versionable.
2538         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
2539
2540 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
2541
2542         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
2543         (CHOOSE_DYNAMIC_LINKER): Update.
2544
2545 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
2546
2547         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
2548         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
2549         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
2550         *prefetch_3dnow_rex.
2551
2552 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
2553
2554         * target.h (struct asm_out):Add declare_constant_name field.
2555         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
2556         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
2557         * output.h (default_asm_declare_constant_name): Declare.
2558         (assemble_label): Update prototype.
2559         * varasm.c (assemble_constant_contents): Use
2560         targetm.asm_out.declare_constant_name target hook.
2561         (assemble_label): Add 'file' argument.
2562         (default_asm_declare_constant_name): New function.
2563         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
2564         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
2565         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
2566
2567         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
2568         * config/darwin.c (darwin_asm_declare_constant_name): New function.
2569         (machopic_output_indirection): Update assemble_label argument list.
2570         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
2571         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
2572
2573 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
2574
2575         PR middle-end/44391
2576         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2577         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
2578
2579 2010-06-15  Richard Guenther  <rguenther@suse.de>
2580
2581         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
2582
2583 2010-06-15  Paul Brook  <paul@codesourcery.com>
2584
2585         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
2586         hard-float ABI.
2587
2588 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
2589
2590         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
2591         don't get a vector type for output.
2592
2593 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2594
2595         PR fortran/44536
2596         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
2597         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
2598         (LANG_HOOKS_DECLS): Add it.
2599         * gimplify.c (omp_notice_variable): Call
2600         lang_hooks.decls.omp_report_decl.
2601
2602 2010-06-15  Martin Jambor  <mjambor@suse.cz>
2603
2604         PR lto/44464
2605         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
2606         on the newly dead SSA name.
2607
2608 2010-06-15  Alan Modra  <amodra@gmail.com>
2609
2610         * doc/invoke.texi: Add mcmodel to powerpc options.
2611         * configure.ac: Add HAVE_LD_LARGE_TOC test.
2612         * configure: Regenerate.
2613         * config.in: Regenerate.
2614         * config/rs6000/linux64.opt (mcmodel): New.
2615         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
2616         (TARGET_CMODEL, SET_CMODEL): Define.
2617         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
2618         select CMODEL_MEDIUM default.
2619         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
2620         (TARGET_CMODEL): Define default.
2621         * config/rs6000/rs6000.c (cmodel): New variable.
2622         (rs6000_explicit_options): Add cmodel field.
2623         (rs6000_handle_option): Handle -mcmodel.
2624         (create_TOC_reference): Add largetoc_reg param.  Generate high,
2625         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
2626         (rs6000_delegitimize_address): Recognise new toc reference rtl
2627         and minimal-toc rtl.
2628         (rs6000_legitimize_reload_address): Handle new toc references.
2629         (print_operand_address): Handle legitimate_constant_pool_address_p
2630         match before lo_sum.
2631         (rs6000_eliminate_indexed_memrefs): Tidy.
2632         (rs6000_emit_move): Tweak threshold for inlining constants.
2633         Keep rs6000_emit_allocate_stack large stack frame offsets
2634         loaded into r0 inline.
2635         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
2636         (tocrel_base, tocrel_offset): New variables.
2637         (toc_relative_expr_p): Set them here.
2638         (print_operand_address): Skip over any offset on constant pool address.
2639         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
2640         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
2641         (offsettable_ok_by_alignment): New function.
2642         (rs6000_emit_move): Address suitably aligned local symbol_refs
2643         relative to the toc pointer for -mcmodel=medium.
2644         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
2645         strict param.  Allow lo_sum version of addressing.  Verify reg
2646         used for -mminimal-toc and -mcmodel != small.  Update all callers.
2647         * config/rs6000/constraints.md: Update for above change.
2648         * config/rs6000/predicates.md: Likewise.
2649         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
2650         code.
2651         (tls_gd): Split for -mcmodel=medium/large.
2652         (tls_gd_high, tls_gd_low): New.
2653         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
2654         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
2655         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
2656         (largetoc_high, largetoc_low): New.
2657         (cmptf_internal2): Add clobber.
2658         * config/rs6000/rs6000-protos.h: Update.
2659
2660 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
2661
2662         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
2663         true if no prefetch is going to be generated for a given group.
2664         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
2665         estimate the prefetch_count.
2666         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
2667         prefetch count by considering the unroll_factor and prefetch_mod
2668         for is_loop_prefetching_profitable.
2669
2670 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
2671
2672         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
2673         anything if the argument is not a MEM.
2674
2675 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
2676
2677         PR debug/43650
2678         PR debug/44181
2679         PR debug/44247
2680         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
2681         debug stmts.
2682         (canonicalize_loop_ivs): Likewise.
2683
2684 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
2685
2686         PR debug/43656
2687         * haifa-sched.c (setup_insn_reg_pressure_info,
2688         update_register_pressure): Reject debug insns.
2689         (ready_sort): Don't setup reg pressure for debug insns.
2690         (schedule_insn): Don't update reg pressure for debug insns.
2691
2692 2010-06-14  Richard Guenther  <rguenther@suse.de>
2693
2694         * lto-streamer.c (cached_bp): Remove.
2695         (bitpack_delete): Likewise.
2696         (bitpack_create): Likewise.
2697         (bp_get_next_word): Likewise.
2698         (bp_pack_value, bp_unpack_value): Move ...
2699         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
2700         Re-implement.
2701         (struct bitpack_d): Likewise.
2702         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
2703         New inline functions.
2704         * lto-streamer-out.c (lto_output_bitpack): Remove.
2705         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
2706         (pack_value_fields): Adjust.
2707         (lto_write_tree): Likewise.
2708         (output_gimple_stmt): Likewise.
2709         (output_function): Likewise.
2710         * lto-streamer-in.c (input_gimple_stmt): Adjust.
2711         (input_function): Likewise.
2712         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
2713         (lto_input_bitpack): Remove.
2714         (lto_materialize_tree): Adjust.
2715         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
2716         * lto-cgraph.c (lto_output_edge): Adjust.
2717         (lto_output_node): Likewise.
2718         (lto_output_varpool_node): Likewise.
2719         (lto_output_ref): Likewise.
2720         (input_node): Likewise.
2721         (input_varpool_node): Likewise.
2722         (input_ref): Likewise.
2723         (input_edge): Likewise.
2724         (output_node_opt_summary): Likewise.
2725         (input_node_opt_summary): Likewise.
2726         * ipa-pure-const.c (pure_const_write_summary): Likewise.
2727         (pure_const_read_summary): Likewise.
2728         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
2729         (ipa_read_indirect_edge_info): Likewise.
2730         (ipa_write_node_info): Likewise.
2731         (ipa_read_node_info): Likewise.
2732
2733 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
2734
2735         PR target/44534
2736         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
2737         (vec_extract_lo_v16hi): Likewise.
2738         (vec_extract_lo_v32qi): Likewise.
2739
2740 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
2741
2742         PR bootstrap/44426
2743         * tree.h (build_call_expr): Don't define as vararg macro, instead
2744         add a prototype.
2745         * builtins.c (build_call_nofold): Remove.
2746         (expand_builtin_int_roundingfn, expand_builtin_pow,
2747         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
2748         expand_builtin_memset_args, expand_builtin_strcmp,
2749         expand_builtin_strncmp, expand_builtin_memory_chk): Use
2750         build_call_nofold_loc instead of build_call_nofold.
2751         (build_call_expr): New function.
2752
2753         PR tree-optimization/44508
2754         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
2755         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
2756         don't eliminate trivially dead stmts.
2757         * tree-vrp.c (vrp_finalize): Pass false as last argument
2758         to substitute_and_fold.
2759         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
2760         to substitute_and_fold.
2761         * tree-ssa-ccp.c (ccp_finalize): Likewise.
2762
2763         PR bootstrap/44509
2764         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
2765         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
2766         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
2767         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
2768         ggc_strdup instead of xstrdup.
2769
2770 2010-06-14  Ira Rosen  <irar@il.ibm.com>
2771
2772         PR tree-optimization/44507
2773         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
2774         to build initial vector for BIT_AND_EXPR.
2775         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2776
2777 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
2778
2779         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
2780         adjust z10prop set_attr.
2781
2782 2010-06-13  Jan Hubicka  <jh@suse.cz>
2783
2784         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
2785         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
2786         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
2787         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
2788         datastructure checks into checking asserts.
2789         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
2790         * tree-ssa-sccvn.c (VN_INFO): Likewise.
2791         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
2792         df_ref_create_structure): Likewise.
2793         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
2794         pool_free): Use gcc_checking_assert.
2795         * alias.c (get_alias_set): Likewise.
2796         * var-tracking.c (variable_htab_free, shared_hash_copy,
2797         canonicalize_values_mark, variable_merge_over_cur): Likewise.
2798         * lto-streamer.c (bp_unpack_value): Likewise.
2799
2800 2010-06-13  Richard Guenther  <rguenther@suse.de>
2801
2802         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
2803         Do not stream but initialize TYPE_CANONICAL to NULL.
2804         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
2805         * gimple.c (gimple_types_compatible_p): Disregard
2806         TYPE_STRUCTURAL_EQUALITY_P.
2807         (gimple_register_type): Use TYPE_CANONICAL as cache.
2808         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
2809         before registering common types.
2810         * config/i386/i386.c (ix86_function_arg_boundary): Do not
2811         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
2812         * tree.h (TYPE_CANONICAL): Clarify documentation.
2813
2814 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
2815
2816         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2817         LIBCALL_VALUE): Remove macros.
2818         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
2819         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2820         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2821         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
2822         (ia64_function_value): Make static. Handle receiving the function
2823         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
2824
2825 2010-06-12  Jan Hubicka  <jh@suse.cz>
2826
2827         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
2828         at correct place.
2829
2830 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
2831
2832         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
2833
2834 2010-06-12  Jan Hubicka  <jh@suse.cz>
2835
2836         * df-core.c (df_clear_bb_info): New function.
2837         (df_set_blocks): bb_info is always allocated.
2838         (df_get_bb_info): Use block_info_elt_size.
2839         (df_set_bb_info): Likewise.
2840         (df_compact_blocks): Update for new block_info.
2841         (grow_bb_info): New function.
2842         * df-problems.c (df_grow_bb_info): Move to df-core.c
2843         (df_rd_set_bb_info): Remove.
2844         (df_rd_free_bb_info): Do not free block pool.
2845         (df_rd_alloc): Do not create pool, use check for
2846         obstack presence instead of NULL pointer for new blocks.
2847         (df_rd_free): DO not free alloc pool; clear block_info.
2848         (problem_RD): Add size of block info structure.
2849         (df_lr_set_bb_info): Remove.
2850         (df_lr_free_bb_info): Do not free block pool.
2851         (df_lr_alloc): Do not create pool, use check for
2852         obstack presence instead of NULL pointer for new blocks.
2853         (df_lr_free): DO not free alloc pool; clear block_info.
2854         (problem_LR): Add size of block info structure.
2855         (df_live_set_bb_info): Remove.
2856         (df_live_free_bb_info): Do not free block pool.
2857         (df_live_alloc): Do not create pool, use check for
2858         obstack presence instead of NULL pointer for new blocks.
2859         (df_live_free): DO not free alloc pool; clear block_info.
2860         (problem_LIVE): Add size of block info structure.
2861         (problem_CHAIN): Add size of block info structure.
2862         (df_byte_lr_set_bb_info): Remove.
2863         (df_byte_lr_free_bb_info): Do not free block pool.
2864         (df_byte_lr_alloc): Do not create pool, use check for
2865         obstack presence instead of NULL pointer for new blocks.
2866         (df_byte_lr_free): DO not free alloc pool; clear block_info.
2867         (problem_BYTE_LR): Add size of block info structure.
2868         (problem_NOTE): Add size of block info structure.
2869         (df_byte_MD_set_bb_info): Remove.
2870         (df_byte_MD_free_bb_info): Do not free block pool.
2871         (df_byte_MD_alloc): Do not create pool, use check for
2872         obstack presence instead of NULL pointer for new blocks.
2873         (df_byte_MD_free): DO not free alloc pool; clear block_info.
2874         (problem_BD): Add size of block info structure.
2875         * df-scan.c (df_scan_free_internal): Free block pool.
2876         (df_scan_set_bb_info): Remove.
2877         (df_scan_free_bb_info): Check for artificial_defs instead
2878         of bb_info being non-NULL.
2879         (df_scan_alloc): DO not create df_scan_block pool.
2880         (problem_SCAN): Set size of block info.
2881         (df_bb_refs_record): Do not allocate bb_info.
2882         * df.h (df_problem): Add block_info_elt_size.
2883         (struct dataflow): Change block_info to void *.
2884         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
2885         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
2886         in-line structures.
2887
2888 2010-06-12  Jan Hubicka  <jh@suse.cz>
2889
2890         PR tree-optimize/44485
2891         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
2892         containing use of return value of noreturn function.
2893
2894 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
2895
2896         * targhooks.c (default_function_value): Don't use
2897         FUNCTION_OUTGOING_VALUE.
2898         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
2899         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
2900
2901 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
2902
2903         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
2904         Add crtfastmath.o to extra_parts.
2905         * config/mips/crtfastmath.c: New.
2906         * config/mips/linux.h (ENDFILE_SPEC): New.
2907
2908 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
2909
2910         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
2911         old_type in parameter.
2912         (gcc_type_for_value): Update call to gcc_type_for_interval.
2913         (compute_type_for_level_1): Renamed compute_type_for_level.
2914         Update call to gcc_type_for_interval.
2915
2916 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
2917
2918         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
2919         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
2920
2921 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
2922
2923         * opts-common.c: Include options.h.
2924         (integral_argument): Move from opts.c.
2925         (decode_cmdline_option): New.  Based on read_cmdline_option.
2926         * opts.c (integral_argument): Move to opts-common.c.
2927         (read_cmdline_option): Move most contents to
2928         decode_cmdline_option.  Use %qs in diagnostics.
2929         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
2930         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
2931         decode_cmdline_option): New.
2932
2933 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
2934
2935         PR target/44481
2936         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
2937         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
2938         (partiysi2_cmp): Ditto.
2939         (*partiyhi2_cmp): Ditto.
2940         (*parityqi2_cmp): Remove.
2941
2942 2010-06-11  Jan Hubicka  <jh@suse.cz>
2943
2944         * bitmap.h (bmp_iter_next_bit): New.
2945         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
2946
2947 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
2948             Eric Botcazou  <ebotcazou@adacore.com>
2949
2950         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
2951         computed cost.
2952
2953 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
2954
2955         * config/i386/i386.md (unspec): New define_c_enum.
2956         (unspecv): Ditto.
2957
2958 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
2959
2960         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
2961         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
2962         (lazy_hex_fp_value): New function.
2963         (builtin_define_with_hex_fp_value): Provide definitions lazily.
2964         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
2965
2966 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
2967
2968         PR middle-end/44483
2969         * tree-if-conv.c (bb_predicate_s): New struct.
2970         (bb_predicate_p): New.
2971         (bb_has_predicate): New.
2972         (bb_predicate): New.
2973         (set_bb_predicate): New.
2974         (bb_predicate_gimplified_stmts): New.
2975         (set_bb_predicate_gimplified_stmts): New.
2976         (add_bb_predicate_gimplified_stmts): New.
2977         (init_bb_predicate): New.
2978         (free_bb_predicate): New.
2979         (is_predicated): Use bb_predicate.
2980         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
2981         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
2982         before processing their successors.
2983         (clean_predicate_lists): Removed.
2984         (find_phi_replacement_condition): Use bb_predicate.
2985         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
2986         computations.
2987         (insert_gimplified_predicates): New.
2988         (combine_blocks): Call insert_gimplified_predicates.
2989         (tree_if_conversion): Call free_bb_predicate instead of
2990         clean_predicate_lists.
2991
2992 2010-10-11  Paul Brook  <paul@codesourcery.com>
2993
2994         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
2995         * config/arm/arm.c (all_architectures): Change v7e-m default to
2996         cortexm4.
2997         * config/arm/arm-cores.def: Add cortex-m4.
2998         * config/arm/arm-tune.md: Regenerate.
2999
3000 2010-06-11  Jan Hubicka  <jh@suse.cz>
3001
3002         * ipa-pure-const.c (special_builtlin_state): New function.
3003         (check_call): Use it instead of special casign BUILT_IN_RETURN.
3004         (propagate_pure_const): Use it.
3005
3006 2010-06-11  Jan Hubicka  <jh@suse.cz>
3007
3008         * df-problems.c (df_live_scratch): Convert to bitmap_head.
3009         (df_live_alloc): Initialize df_live_scratch when initializing
3010         problem_data.
3011         (df_live_transfer_function): Update uses of df_live_scratch.
3012         (df_live_free): Free problem_data; clear df_live_scratch before
3013         releasing the obstack.
3014         (df_md_free): Free problem data.
3015
3016 2010-06-11  Jan Hubicka  <jh@suse.cz>
3017
3018         * doc/invoke.texi (Wsuggest-attribute): Document.
3019         (Wmissing-noreturn): Remove.
3020         * ipa-pure-const.c (warn_function_noreturn): New function.
3021         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
3022         warn_missing_noreturn.
3023         * common.opt (Wsuggest-attribute=noreturn): New.
3024         * tree-flow.h (warn_function_noreturn): Declare.
3025         * tree-cfg.c (execute_warn_function_noreturn): Use
3026         warn_function_noreturn.
3027         (gate_warn_function_noreturn): New.
3028         (pass_warn_function_noreturn): Update.
3029
3030 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3031
3032         * c-typeck.c (handle_warn_cast_qual): Add loc
3033         parameter. Improve warning message.
3034         (build_c_cast): Pass location to handle_warn_cast_qual.
3035
3036 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
3037
3038         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
3039         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
3040         insn mnemonic.
3041         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
3042
3043 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
3044
3045         Fix bootstap on mips
3046         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
3047         be naming typedefs.
3048
3049 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
3050
3051         * system.h (helper_const_non_const_cast): New inline for
3052         gcc version <= 4.0.
3053         (CONST_CAST2): For gcc version <= 4.0 use
3054         new helper to do const/non-const casting.
3055
3056 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3057
3058         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
3059         * Makefile.in (OBJS-common): Include insn-enums.o.
3060         (insn-enums.o): New rule.
3061         (simple_generated_c): Add insn-enums.c.
3062         (build/genenums.o): New rule.
3063         (genprogmd): Add "enums".
3064         * genconstants.c (print_enum_type): Declare a C string array
3065         for each enum.
3066         * genenums.c: New file.
3067         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
3068         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
3069         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
3070
3071 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3072
3073         * doc/md.texi (define_enum_attr): Document.
3074         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
3075         * read-md.h (lookup_enum_type): Declare.
3076         * read-md.c (lookup_enum_type): New function.
3077         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
3078         * genattrtab.c (attr_desc): Add an enum_name field.
3079         (evaluate_eq_attr): Take the associated attribute as argument.
3080         Get the enum prefix from the enum_name field, if defined.
3081         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
3082         (simplify_test_exp): Pass attr to evaluate_eq_attr.
3083         (add_attr_value): New function, split out from...
3084         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
3085         (write_test_expr): Pass attr to evaluate_eq_attr.
3086         (write_attr_get): Use the enum_name as the enum tag, if defined.
3087         (write_attr_valueq): Use the enum_name as a prefix, if defined.
3088         (find_attr): Initialize enum_name.
3089         (main): Handle DEFINE_ENUM_ATTR.
3090         * gensupport.c (process_rtx): Likewise.
3091         * config/mips/mips.h (mips_tune_attr): Delete.
3092         * config/mips/mips.md (cpu): Use define_attr_enum.
3093
3094 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3095
3096         * doc/md.texi (define_c_enum, define_enum): Document.
3097         * read-md.h (md_constant): Add a parent_enum field.
3098         (enum_value, enum_type): New structures.
3099         (upcase_string, traverse_enum_types): Declare.
3100         * read-md.c (enum_types): New variable.
3101         (upcase_string, add_constant): New functions.
3102         (handle_constants): Don't create the hash table here.
3103         Use add_constant.
3104         (traverse_md_constants): Don't check for a null md_constants.
3105         (decimal_string, handle_enum, traverse_enum_types): New functions.
3106         (read_md_files): Initialize md_constants and md_enums.
3107         * genconstants.c (print_md_constant): Ignore info argument.
3108         Only print constants that belong to no enum.
3109         (print_enum_type): New function.
3110         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
3111         for each defined enum type.
3112         * config/mips/mips.md (processor): New define_enum.
3113         (unspec): New define_c_enum.
3114         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
3115         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
3116         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
3117         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
3118         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
3119         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
3120         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
3121         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
3122         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
3123         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
3124         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
3125         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
3126         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
3127         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
3128         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
3129         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
3130         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
3131         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
3132         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
3133         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
3134         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
3135         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
3136         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
3137         (UNSPEC_RDDSP): Move to mips-dsp.md.
3138         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
3139         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
3140         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
3141         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
3142         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
3143         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
3144         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
3145         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
3146         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
3147         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
3148         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
3149         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
3150         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
3151         Moved to mips-dspr2.md.
3152         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
3153         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
3154         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
3155         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
3156         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
3157         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
3158         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
3159         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
3160         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
3161         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
3162         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
3163         UNSPEC_LOONGSON_PSADBH)
3164         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
3165         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
3166         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
3167         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3168         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3169         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3170         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
3171         (cpu): Update comment.
3172         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
3173         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
3174         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
3175         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
3176         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
3177         UNSPEC_LOONGSON_PCMPEQ)
3178         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
3179         UNSPEC_LOONGSON_PINSR_0)
3180         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
3181         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
3182         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
3183         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
3184         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
3185         UNSPEC_LOONGSON_PSADBH)
3186         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
3187         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
3188         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
3189         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3190         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3191         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3192         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
3193         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
3194         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
3195         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
3196         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
3197         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
3198         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
3199         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
3200         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
3201         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
3202         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
3203         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
3204         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
3205         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
3206         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
3207         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
3208         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
3209         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
3210         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
3211         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
3212         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
3213         (UNSPEC_RDDSP): Moved from mips.md.
3214         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
3215         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
3216         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
3217         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
3218         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
3219         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
3220         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
3221         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
3222         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
3223         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
3224         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
3225         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
3226         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
3227         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
3228         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
3229         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
3230         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
3231         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
3232         (UNSPEC_SCC): Moved from mips.md.
3233         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
3234         "processor_type" to "processor".
3235         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
3236         * config/mips/mips.h (processor_type): Delete.
3237         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
3238         "processor_type" to "processor".
3239
3240 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3241
3242         * configure.ac (tm_include_list): Add insn-constants.h.
3243         * configure: Regenerate.
3244         * Makefile.in (GTM_H): Move insn-constants.h here from...
3245         (TM_H): ...here.
3246         * mkconfig.sh: Remove special handling for insn-constants.h.
3247
3248 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3249
3250         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
3251         (BUILD_MD): ...this new variable.
3252         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
3253         that include the old contents of simple_generated_h and
3254         simple_generated_c.
3255         (simple_generated_h, simple_generated_c): Include them.  Add
3256         insn-constants.h.
3257         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
3258         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
3259         Remove these dependencies from the main rule and include
3260         insn-conditions.md in the command line only if it appears
3261         in the dependency list.
3262         (insn-constants.h, s-constants): Delete.
3263         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
3264         or gensupport.h.
3265         (build/genmddeps.o): Likewise.
3266         (genprogrtl): New variable that contains everything from genprogmd
3267         except mddeps and constants.
3268         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
3269         depend on $(BUILD_MD)
3270         (genprog): New variable.  Make these programs depend on
3271         $(BUILD_ERRORS).
3272         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
3273         (main): Use read_md_files instead of init_rtx_reader_args.
3274         * genconstants.c: As for genmddeps.c.
3275         * read-md.h (read_skip_construct): Declare.
3276         * read-md.c (read_skip_construct): New function.
3277         (handle_file): Allow a null handle_directive, skipping the
3278         construct if so.
3279         (parse_include): Update the comment accordingly.
3280
3281 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3282
3283         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
3284         * genmddeps.c: Include read-md.h.
3285         (main): Call init_rtx_reader_args instead of init_md_reader_args.
3286         * genattr.c (main): Likewise.
3287         * genattrtab.c (main): Likewise.
3288         * genautomata.c (main): Likewise.
3289         * gencodes.c (main): Likewise.
3290         * genconditions.c (main): Likewise.
3291         * genconfig.c (main): Likewise.
3292         * genconstants.c (main): Likewise.
3293         * genemit.c (main): Likewise.
3294         * genextract.c (main): Likewise.
3295         * genflags.c (main): Likewise.
3296         * genopinit.c (main): Likewise.
3297         * genoutput.c (main): Likewise.
3298         * genpeep.c (main): Likewise.
3299         * genrecog.c (main): Likewise.
3300         * genpreds.c (main): Likewise.
3301         * gensupport.h (in_fname): Move to read-md.h.
3302         (init_md_reader_args_cb): Rename to...
3303         (init_rtx_reader_args_cb): ...this and return a bool.
3304         (init_md_reader_args): Rename to...
3305         (init_rtx_reader_args): ...this and return a bool.
3306         (include_callback): Move to read-md.h.
3307         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
3308         (file_name_list, first_dir_md_include): Move to read-md.c
3309         (first_bracket_include): Delete unused variable.
3310         (last_dir_md_include): Move to read-md.c.
3311         (process_include): Delete, moving code to read-md.c:handle_include.
3312         (process_rtx): Don't handle INCLUDE.
3313         (save_string): Delete.
3314         (rtx_handle_directive): New function.
3315         (init_md_reader_args_cb): Rename to...
3316         (init_rtx_reader_args_cb): ...this and return a boolean success value.
3317         Use read_md_args.
3318         (init_md_reader_args): Rename to...
3319         (init_rtx_reader_args): ...this and return a boolean success value.
3320         * rtl.def (INCLUDE): Delete.
3321         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
3322         argument.
3323         * read-rtl.c (read_conditions): Don't gobble ')' here.
3324         (read_mapping): Likewise.
3325         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
3326         Handle top-level non-rtx constructs here rather than in read_rtx_1.
3327         Store the whole queue in *X.  Remove call to init_md_reader.
3328         (read_rtx_1): Rename to...
3329         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
3330         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
3331         here.
3332         (read_nested_rtx): New function.  Handle (nil) here rather than
3333         in read_rtx_code.
3334         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
3335         gobble ')' here.
3336         * read-md.h (directive_handler_t): New type.
3337         (in_fname, include_callback): Moved from read-md.h.
3338         (read_constants, init_md_reader): Delete.
3339         (read_md_files): Declare.
3340         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
3341         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
3342         from gensupport.c.
3343         (read_constants): Rename to...
3344         (handle_constants): ...this.  Don't gobble ')' here.
3345         (handle_include, handle_file, handle_toplevel_file)
3346         (parse_include): New functions, mostly taken from gensupport.c.
3347         (init_md_reader): Subsume into...
3348         (read_md_files): ...this new function.
3349
3350 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3351
3352         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
3353         (unread_char): Decrement read_md_lineno after putting back '\n'.
3354         * read-md.c (fatal_with_file_and_line): Push back any characters
3355         that we decide not to add to the context.
3356         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
3357         fatal_expected_char in cases where '/' ends a line (for example).
3358         (read_name): Don't increment read_md_lineno here.
3359         (read_escape): Likewise.
3360         (read_quoted_string): Likewise.
3361         (read_braced_string): Likewise.
3362
3363 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3364
3365         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
3366         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
3367         * genconstants.c: Include read-md.h.
3368         * read-rtl.c (md_constants): Move to read-md.c.
3369         (md_name): Move to read-md.h.
3370         (initialize_iterators): Use leading_string_hash instead of def_hash
3371         and leading_string_eq_p instead of def_name_eq_p.
3372         (read_name): Move to read-md.c.
3373         (def_hash, def_name_eq_p): Delete.
3374         (read_constants, traverse_md_constants): Move to read-md.c.
3375         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
3376         * read-md.h: Include hashtab.h.
3377         (md_name): Moved from read-rtl.c.
3378         (md_constant): Moved from read-md.h.
3379         (leading_string_hash, leading_string_eq_p, read_name)
3380         (read_constants, traverse_md_constants): Declare.
3381         * read-md.c (md_constants): Moved from read-rtl.c.
3382         (leading_string_hash, leading_string_eq_p): New functions.
3383         (read_name, read_constants, traverse_md_constants): Moved from
3384         read-rtl.c.
3385
3386 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3387
3388         * read-rtl.c (md_name): New structure.
3389         (read_name): Take an md_name instead of a buffer pointer.
3390         Use the "string" field instead of strcpy when expanding constants.
3391         (read_constants): Remove the tmp_char argument.  Update the calls
3392         to read_name, using two local name buffers instead of the tmp_char
3393         argument.  Merge the constant-creation code.
3394         (read_conditions): Remove the tmp_char argument.  Update the calls
3395         to read_name, using a local name buffer instead of the tmp_char
3396         argument.
3397         (read_mapping): Replace tmp_char variable with a local name buffer.
3398         Update the calls to read_name.
3399         (read_rtx_1): Likewise.  Update the calls to read_constants and
3400         read_conditions.
3401
3402 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3403
3404         * Makefile.in (build/read-md.o): Depend on errors.h.
3405         * read-md.h (error_with_line): Declare.
3406         * read-md.c: Include errors.h.
3407         (message_with_line_1): New function, extracted from...
3408         (message_with_line): ...here.
3409         (error_with_line): New function.
3410         * genattrtab.c: If a call to message_with_line is followed by
3411         "have_error = 1;", replace both statements with a call to
3412         error_with_line.
3413         * genoutput.c: Likewise.
3414         * genpreds.c: Likewise.
3415         * genrecog.c: If a call to message_with_line is followed by
3416         "error_count++;", replace both statements with a call to
3417         error_with_line.
3418         (errorcount): Delete.
3419         (main): Don't check it.
3420         * gensupport.c: If a call to message_with_line is followed by
3421         "errors = 1;", replace both statements with a call to error_with_line.
3422         (errors): Delete.
3423         (process_define_cond_exec): Check have_error instead of errors.
3424         (init_md_reader_args_cb): Likewise.  Don't set errors.
3425
3426 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3427
3428         * read-md.h (read_md_file): Declare.
3429         (read_char, unread_char): New functions.
3430         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
3431         (read_quoted_string, read_string): Remove FILE * argument.
3432         * read-md.c (read_md_file): New variable.
3433         (read_md_filename, read_md_lineno): Update comments and remove
3434         unnecessary initialization.
3435         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
3436         (read_escape, read_quoted_string, read_braced_string, read_string):
3437         Remove FILE * argument.  Update calls accordingly, using read_char
3438         and unread_char instead of getc and ungetc.
3439         * rtl.h (read_rtx): Remove FILE * argument.
3440         * read-rtl.c (iterator_group): Remove FILE * argument from
3441         "find_builtin".
3442         (iterator_traverse_data): Remove "infile" field.
3443         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
3444         (add_mapping, read_name, read_constants, read_conditions)
3445         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
3446         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
3447         Remove file arguments from all calls, using read_char and unread_char
3448         instead of getc and ungetc.
3449         * gensupport.c (process_include): Preserve read_md_file around
3450         the include.  Set read_md_file to the handle of the included file.
3451         Update call to read_rtx.
3452         (init_md_reader_args_cb): Set read_md_file to the handle of the file
3453         and remove local FILE *.  Update calls to read_rtx.
3454
3455 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3456
3457         * read-md.h (read_rtx_lineno): Rename to...
3458         (read_md_lineno): ...this.
3459         (read_rtx_filename): Rename to...
3460         (read_md_filename): ...this.
3461         (copy_rtx_ptr_loc): Rename to...
3462         (copy_md_ptr_loc): ...this.
3463         (print_rtx_ptr_loc): Rename to...
3464         (print_md_ptr_loc): ...this.
3465         * read-md.c: Likewise.  Update references after renaming.
3466         (string_obstack): Replace RTL with MD in comment.
3467         (set_rtx_ptr_loc): Rename to...
3468         (set_md_ptr_loc): ...this.
3469         (get_rtx_ptr_loc): Rename to...
3470         (get_md_ptr_loc): ...this.
3471         * genconditions.c: Update references after renaming.
3472         * genemit.c: Likewise.
3473         * genoutput.c: Likewise.
3474         * genpreds.c: Likewise.
3475         * gensupport.c: Likewise.
3476         * read-rtl.c: Likewise.
3477
3478 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
3479
3480         * Makefile.in (READ_MD_H): New variable.
3481         (BUILD_RTL): Add build/read-md.o.
3482         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
3483         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
3484         (build/genattrtab.o, build/genconditions.o build/genemit.o)
3485         (build/genextract.o, build/genflags.o, build/genoutput.o)
3486         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
3487         (build/read-md.o): New rule.
3488         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
3489         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
3490         * coretypes.h: ...here.
3491         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
3492         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
3493         * genattr.c: Include read-md.h.
3494         * genattrtab.c: Likewise.
3495         * genconditions.c: Likewise.
3496         * genemit.c: Likewise.
3497         * genextract.c: Likewise.
3498         * genflags.c: Likewise.
3499         * genoutput.c: Likewise.
3500         * genpreds.c: Likewise.
3501         * genrecog.c: Likewise.
3502         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3503         (join_c_conditions, print_c_condition, read_rtx_filename)
3504         (read_rtx_lineno): Move to read-md.h.
3505         * read-rtl.c: Include read-md.h.
3506         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
3507         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
3508         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
3509         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
3510         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3511         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
3512         (read_braced_string, read_string): Move to read-md.c.
3513         (read_rtx): Move some initialization to init_md_reader and call
3514         init_md_reader here.
3515         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
3516         Move to read-md.h.
3517         * gensupport.c: Include read-md.h.
3518         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
3519         * read-md.h, read-md.c: New files.
3520
3521 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
3522
3523         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3524         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3525         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
3526         * config/moxie/moxie.c (moxie_function_value): Make static.
3527         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
3528         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
3529
3530 2010-06-10  Martin Jambor  <mjambor@suse.cz>
3531
3532         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
3533         * dbgcnt.def (tree_sra): New counter.
3534         * tree-sra.c: Include dbgcnt.h.
3535         (gate_intra_sra): Check tree_sra debug counter.
3536
3537 2010-06-10  Martin Jambor  <mjambor@suse.cz>
3538
3539         PR tree-optimization/44258
3540         * tree-sra.c (build_access_subtree): Return false iff there is a
3541         partial overlap.
3542         (build_access_trees): Likewise.
3543         (analyze_all_variable_accesses): Disqualify candidates if
3544         build_access_trees returns true for them.
3545
3546 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
3547
3548         PR debug/41371
3549         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
3550         tail-recurse into canonical node.  Fast-forward over
3551         non-canonical VALUEs.
3552
3553 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
3554
3555         PR boostrap/44470
3556         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
3557         (*addsi_1_zext) <TYPE_LEA>: Likewise.
3558         (add lea splitter): Likewise.
3559         (add_zext lea splitter): Likewise.
3560
3561 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
3562
3563         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
3564
3565 2010-06-10  Jan Hubicka  <jh@suse.cz>
3566
3567         * df-problems.c (df_live_problem_data): Add live_bitmaps.
3568         (df_live_alloc): Initialize problem data and live_osbtacks.
3569         (df_live_finalize): Remove obstack, problem data; do not
3570         clear all bitmaps.
3571         (df_live_top_dump, df_live_bottom_dump): Do not dump old
3572         data when not allocated.
3573         (df_live_verify_solution_start): Do not allocate problem data.
3574         (df_live_verify_solution_end): Check if out is allocated.
3575         (struct df_md_problem_data): New structure.
3576         (df_md_alloc): Allocate problem data.
3577         (df_md_free): Free problem data; do not clear bitmaps.
3578
3579 2010-06-10  Jan Beulich  <jbeulich@novell.com>
3580
3581         PR bootstrap/37304
3582         * configure.ac: Replace $() with ${} when intending to expand
3583         variables rather than invoking commands.
3584         * configure: Re-generate.
3585
3586 2010-06-10  Jan Hubicka  <jh@suse.cz>
3587
3588         PR rtl-optimization/44460
3589         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
3590         TYPE_NEEDS_CONSTRUCTING sanity check.
3591
3592 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3593
3594         * doc/include/fdl.texi: Move to GFDL version 1.3.
3595
3596         * doc/cpp.texi: Move to GFDL version 1.3.
3597         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
3598         * doc/gccint.texi: Move to GFDL version 1.3.
3599         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
3600         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
3601         * doc/invoke.texi: Move to GFDL version 1.3.
3602
3603 2010-06-09  Jan Hubicka  <jh@suse.cz>
3604
3605         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
3606         Break out from ...
3607         (propagate) ... here; swap the order.
3608
3609 2010-06-09  Jan Hubicka  <jh@suse.cz>
3610
3611         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
3612         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
3613         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
3614         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
3615
3616 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
3617
3618         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
3619         Do not the gather memory reference in the outer loop if the step
3620         is not a constant.
3621
3622 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
3623
3624         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
3625         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
3626         8 to 4.  Minor change of the related comments.
3627
3628 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3629
3630         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
3631         the scev analysis when the variable is not used outside the loop
3632         in a close phi node: call compute_overall_effect_of_inner_loop.
3633
3634 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3635
3636         * graphite-sese-to-poly.c (single_pred_cond): Renamed
3637         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
3638         (build_sese_conditions_before): Renamed call to single_pred_cond.
3639         (build_sese_conditions_after): Same.
3640
3641 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3642
3643         * graphite-poly.h: Fix comments and indentation.
3644         * graphite-sese-to-poly.c: Same.
3645         (build_sese_conditions_before): Compute stmt and gbb only when needed.
3646         * tree-chrec.c: Fix comments and indentation.
3647         (tree-ssa-loop-niter.c): Same.
3648
3649 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3650
3651         PR rtl-optimization/42461
3652         * dce.c (deletable_insn_p): Return true for const or pure calls again.
3653         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
3654
3655 2010-06-09  Jan Hubicka  <jh@suse.cz>
3656
3657         * bitmap.c (bitmap_and): Walk array forward.
3658         (bitmap_and_compl_into): Likewise.
3659         (bitmap_xor): Likewise.
3660         (bitmap_xor_into):  Likewise.
3661         (bitmap_equal_p): Likewise.
3662         (bitmap_intersect_p): Likewise.
3663         (bitmap_intersect_compl_p): Likewise.
3664         (bitmap_ior_and_into): Likewise.
3665         (bitmap_elt_copy): Likewise.
3666         (bitmap_and_compl): Likewise.
3667         (bitmap_elt_ior): Likewise.
3668
3669 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
3670
3671         * opts-common.c (prune_options): Ensure replacement argv array
3672         is correctly terminated by a NULL entry.
3673
3674 2010-06-09  Jan Hubicka  <jh@suse.cz>
3675
3676         * cgraph.h (varpool_first_static_initializer,
3677         varpool_next_static_initializer): Make checking only when
3678         checking enabled.
3679         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
3680         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
3681         gcc_assert to gcc_checking_assert.
3682         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
3683         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
3684         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
3685         op_iter_init_phiuse, op_iter_init_phidef,
3686         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
3687         gcc_checking_assert.
3688         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
3689         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
3690         partition_is_global, live_on_entry, live_on_exit,
3691         live_merge_and_clear): Likewise.
3692         * system.h (gcc_checking_assert): New macro.
3693         * gimple.h (set_bb_seq): Use gcc_checking_assert.
3694
3695 2010-06-09  Jason Merrill  <jason@redhat.com>
3696
3697         * Makefile.in (TAGS): Collect tags info from c-family.
3698
3699 2010-06-09  Jan Hubicka  <jh@suse.cz>
3700
3701         * gimple.h (gcc_gimple_checking_assert): New macro.
3702         (gimple_set_def_ops, gimple_set_use_ops,
3703         gimple_set_vuse, gimple_set_vdef,
3704         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
3705         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
3706         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
3707         gimple_asm_output_op, gimple_asm_output_op_ptr,
3708         gimple_asm_set_output_op, gimple_asm_clobber_op,
3709         gimple_asm_set_clobber_op, gimple_asm_label_op,
3710         gimple_asm_set_label_op, gimple_try_set_kind,
3711         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
3712         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
3713         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
3714         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
3715         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
3716         gimple_omp_for_set_initial, gimple_omp_for_final,
3717         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
3718         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
3719         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
3720         conditional with ENABLE_GIMPLE_CHECKING.
3721         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
3722
3723 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
3724
3725         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
3726         (get_computation_cost_at): Use it.
3727         (determine_use_iv_cost_condition): Likewise.
3728         (determine_iv_cost): Likewise.
3729
3730 2010-06-09  Richard Guenther  <rguenther@suse.de>
3731
3732         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
3733         replace constants.
3734
3735 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
3736
3737         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
3738
3739 2010-06-09  Martin Jambor  <mjambor@suse.cz>
3740
3741         PR tree-optimization/44423
3742         * tree-sra.c (dump_access): Dump also grp_assignment_read.
3743         (analyze_access_subtree): Pass negative allow_replacements to children
3744         if the current type is scalar.
3745
3746 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
3747
3748         PR testsuite/42843
3749         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
3750         * doc/plugins.texi (Plugin license check): Update information
3751         on type of plugin_is_GPL_compatible.
3752         * Makefile.in (PLUGINCC): Define as $(COMPILER).
3753         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
3754
3755 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
3756
3757         * config/arm/arm.c (thumb2_reorg): New function.
3758         (arm_reorg): Call it.
3759         * config/arm/thumb2.md (define_peephole2 for flag clobbering
3760         arithmetic operations): Delete.
3761
3762 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
3763
3764         PR target/44067
3765         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
3766         e500v2 target.
3767
3768 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
3769
3770         PR plugins/44459
3771         * gcc-plugin.h: Encapsulate all declarations in extern "C".
3772
3773 2010-06-08  Jan Hubicka  <jh@suse.cz>
3774
3775         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
3776         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
3777
3778 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
3779
3780         PR tree-optimization/39874
3781         PR middle-end/28685
3782         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
3783         Declare.
3784         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
3785         same_bool_result_p): New.
3786         (and_var_with_comparison, and_var_with_comparison_1,
3787         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
3788         (or_var_with_comparison, or_var_with_comparison_1,
3789         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
3790         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
3791         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
3792         of combine_comparisons.
3793         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
3794
3795 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
3796
3797         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3798         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3799         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
3800         pdp11_function_value_regno_p): New functions.
3801         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3802         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3803
3804 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
3805
3806         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
3807         Thumb-2 in the MINUS case.
3808
3809 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3810
3811         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
3812
3813         * doc/gty.texi (GTY Options): Document typed GC allocation and
3814         variable_size GTY option.
3815
3816         * ggc-internal.h: New.
3817
3818         * ggc.h: Update copyright year.
3819         (digit_string): Move to stringpool.c.
3820         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
3821         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
3822         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
3823         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
3824         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
3825         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
3826         (ggc_force_collect, ggc_get_size, ggc_statistics)
3827         (ggc_print_common_statistics): Move to ggc-internal.h.
3828         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
3829         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
3830         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
3831         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
3832         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
3833         (ggc_alloc_zone_pass_stat): Remove.
3834         (ggc_internal_alloc_stat, ggc_internal_alloc)
3835         (ggc_internal_cleared_alloc_stat): New.
3836         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
3837         (ggc_internal_vec_alloc_stat)
3838         (ggc_internal_cleared_vec_alloc_stat)
3839         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
3840         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
3841         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
3842         (ggc_cleared_alloc_ptr_array_two_args): New.
3843         (htab_create_ggc, splay_tree_new_ggc): Redefine.
3844         (ggc_splay_alloc): Change the type of the first argument to
3845         enum gt_types_enum.
3846         (ggc_alloc_string): Make macro.
3847         (ggc_alloc_string_stat): New.
3848         (ggc_strdup): Redefine.
3849         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
3850         (ggc_alloc_rtvec_sized): New.
3851         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
3852         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
3853         (ggc_internal_cleared_alloc_zone_stat)
3854         (ggc_internal_zone_alloc_stat)
3855         (ggc_internal_zone_cleared_alloc_stat)
3856         (ggc_internal_zone_vec_alloc_stat)
3857         (ggc_alloc_zone_rtx_def_stat)
3858         (ggc_alloc_zone_tree_node_stat)
3859         (ggc_alloc_zone_cleared_tree_node_stat)
3860         (ggc_alloc_cleared_gimple_statement_d_stat): New.
3861
3862         * ggc-common.c: Include ggc-internal.h.
3863         (ggc_internal_cleared_alloc_stat): Rename from
3864         ggc_alloc_cleared_stat.
3865         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
3866         (ggc_calloc): Remove.
3867         (ggc_cleared_alloc_htab_ignore_args): New.
3868         (ggc_cleared_alloc_ptr_array_two_args): New.
3869         (ggc_splay_alloc): Add obj_type parameter.
3870         (init_ggc_heuristics): Formatting fixes.
3871
3872         * ggc-none.c: Update copyright year.
3873         (ggc_alloc_stat): Rename to ggc_alloc_stat.
3874         (ggc_alloc_cleared_stat): Rename to
3875         ggc_internal_cleared_alloc_stat.
3876         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
3877
3878         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
3879         Remove references to ggc_alloc in comments.
3880         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
3881         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
3882         (new_ggc_zone, destroy_ggc_zone): Remove.
3883         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
3884
3885         * ggc-zone.c: Include ggc-internal.h.  Remove references to
3886         ggc_alloc in comments.
3887         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
3888         (ggc_internal_alloc_zone_pass_stat): New.
3889         (ggc_internal_cleared_alloc_zone_stat): New.
3890         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
3891         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
3892         (new_ggc_zone, destroy_ggc_zone): Remove.
3893
3894         * stringpool.c: Update copyright year.  Include ggc-internal.h
3895         (digit_vector): Make static.
3896         (digit_string): Moved from ggc.h.
3897         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
3898         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
3899
3900         * Makefile.in (GGC_INTERNAL_H): New.
3901         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
3902         $(GGC_INTERNAL_H) to dependencies.
3903
3904         * gentype.c: Update copyright year.
3905         (walk_type): Accept variable_size GTY option.
3906         (USED_BY_TYPED_GC_P): New macro.
3907         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
3908         whitespace at the end of strings.
3909         (get_type_specifier, variable_size_p): New functions.
3910         (alloc_quantity, alloc_zone): New enums.
3911         (write_typed_alloc_def): New function.
3912         (write_typed_struct_alloc_def): Likewise.
3913         (write_typed_typed_typedef_alloc_def): Likewise.
3914         (write_typed_alloc_defns): Likewise.
3915         (output_typename, write_splay_tree_allocator_def): Likewise.
3916         (write_splay_tree_allocators): Likewise.
3917         (main): Call write_typed_alloc_defns and
3918         write_splay_tree_allocators.
3919
3920         * lto-streamer.h (lto_file_decl_data_ptr): New.
3921
3922         * passes.c (order): Define using cgraph_node_ptr.
3923
3924         * strinpool.c (struct string_pool_data): Declare nested_ptr using
3925         ht_identifier_ptr.
3926
3927         * gimple.h (union gimple_statement_d): Likewise.
3928
3929         * rtl.h (struct rtx_def): Likewise.
3930         (struct rtvec_def): Likewise.
3931
3932         * tree.h (union tree_node): Likewise.
3933
3934         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
3935
3936         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
3937
3938         * tree-scalar-evolution.c (scev_initialize): Likewise.
3939
3940         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
3941
3942         * dwarf2asm.c (dw2_force_const_mem): Likewise.
3943
3944         * omp-low.c (lower_omp_critical): Likewise.
3945
3946         * bitmap.h (struct bitmap_head_def): Update comment to not
3947         reference ggc_alloc.
3948
3949         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
3950
3951         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
3952
3953         * ipa-prop.c (duplicate_ggc_array): Rename to
3954         duplicate_ipa_jump_func_array.  Use typed GC allocation.
3955         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
3956
3957         * gimple.c (gimple_alloc_stat): Use
3958         ggc_alloc_cleared_gimple_statement_d_stat.
3959
3960         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
3961
3962         * tree.c (make_node_stat): Use
3963         ggc_alloc_zone_cleared_tree_node_stat.
3964         (make_tree_vec_stat): Likewise.
3965         (build_vl_exp_stat): Likewise.
3966         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
3967         (make_tree_binfo_stat): Likewise.
3968         (tree_cons_stat): Likewise.
3969
3970         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
3971         (shallow_copy_rtx_stat): Likewise.
3972         (make_node_stat): Likewise.
3973
3974         * lto-symtab.c: Fix comment.
3975
3976         * tree-cfg.c (create_bb): Update comment to not reference
3977         ggc_alloc_cleared.
3978         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
3979
3980         * varpool.c (varpool_node): Use typed GC allocation.
3981         (varpool_extra_name_alias): Likewise.
3982
3983         * varasm.c (emutls_decl): Likewise.
3984         (get_unnamed_section): Likewise.
3985         (get_noswitch_section): Likewise.
3986         (get_section): Likewise.
3987         (get_block_for_section): Likewise.
3988         (build_constant_desc): Likewise.
3989         (create_constant_pool): Likewise.
3990         (force_const_mem): Likewise.
3991
3992         * tree.c (build_vl_exp_stat): Likewise.
3993         (build_real): Likewise.
3994         (build_string): Likewise.
3995         (decl_debug_expr_insert): Likewise.
3996         (decl_value_expr_insert): Likewise.
3997         (type_hash_add): Likewise.
3998         (build_omp_clause): Likewise.
3999
4000         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
4001
4002         * tree-ssa.c (init_tree_ssa): Likewise.
4003
4004         * tree-ssa-structalias.c (heapvar_insert): Likewise.
4005
4006         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
4007
4008         * tree-ssa-loop-niter.c (record_estimate): Likewise.
4009
4010         * tree-ssa-alias.c (get_ptr_info): Likewise.
4011
4012         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
4013
4014         * tree-phinodes.c (allocate_phi_node): Likewise.
4015
4016         * tree-iterator.c (tsi_link_before): Likewise.
4017         (tsi_link_after): Likewise.
4018
4019         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
4020
4021         * tree-dfa.c (create_var_ann): Likewise.
4022
4023         * tree-cfg.c (create_bb): Likewise.
4024
4025         * toplev.c (alloc_for_identifier_to_locale): Likewise.
4026         (general_init): Likewise.
4027
4028         * stringpool.c (stringpool_ggc_alloc): Likewise.
4029         (gt_pch_save_stringpool): Likewise.
4030
4031         * sese.c (if_region_set_false_region): Likewise.
4032
4033         * passes.c (do_per_function_toporder): Likewise.
4034
4035         * optabs.c (set_optab_libfunc): Likewise.
4036         (set_conv_libfunc): Likewise.
4037
4038         * lto-symtab.c (lto_symtab_register_decl): Likewise.
4039
4040         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
4041         (input_eh_region): Likewise.
4042         (input_eh_lp): Likewise.
4043         (make_new_block): Likewise.
4044         (unpack_ts_real_cst_value_fields): Likewise.
4045
4046         * lto-section-in.c (lto_new_in_decl_state): Likewise.
4047
4048         * lto-cgraph.c (input_node_opt_summary): Likewise.
4049
4050         * loop-init.c (loop_optimizer_init): Likewise.
4051
4052         * lambda.h (lambda_vector_new): Likewise.
4053
4054         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
4055
4056         * ira.c (update_equiv_regs): Likewise.
4057
4058         * ipa.c (cgraph_node_set_new): Likewise.
4059         (cgraph_node_set_add): Likewise.
4060         (varpool_node_set_new): Likewise.
4061         (varpool_node_set_add): Likewise.
4062
4063         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
4064         (duplicate_ipa_jump_func_array): Likewise.
4065         (ipa_read_node_info): Likewise.
4066
4067         * ipa-cp.c (ipcp_create_replace_map): Likewise.
4068
4069         * integrate.c (get_hard_reg_initial_val): Likewise.
4070
4071         * gimple.c (gimple_alloc_stat): Likewise.
4072         (gimple_build_omp_for): Likewise.
4073         (gimple_seq_alloc): Likewise.
4074         (gimple_copy): Likewise.
4075
4076         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
4077         (gsi_insert_after_without_update): Likewise.
4078
4079         * function.c (add_frame_space): Likewise.
4080         (insert_temp_slot_address): Likewise.
4081         (assign_stack_temp_for_type): Likewise.
4082         (allocate_struct_function): Likewise.
4083         (types_used_by_var_decl_insert): Likewise.
4084
4085         * except.c (init_eh_for_function): Likewise.
4086         (gen_eh_region): Likewise.
4087         (gen_eh_region_catch): Likewise.
4088         (gen_eh_landing_pad): Likewise.
4089         (add_call_site): Likewise.
4090
4091         * emit-rtl.c (get_mem_attrs): Likewise.
4092         (get_reg_attrs): Likewise.
4093         (start_sequence): Likewise.
4094         (init_emit): Likewise.
4095
4096         * dwarf2out.c (new_cfi): Likewise.
4097         (queue_reg_save): Likewise.
4098         (dwarf2out_frame_init): Likewise.
4099         (new_loc_descr): Likewise.
4100         (find_AT_string): Likewise.
4101         (new_die): Likewise.
4102         (add_var_loc_to_decl): Likewise.
4103         (clone_die): Likewise.
4104         (clone_as_declaration): Likewise.
4105         (break_out_comdat_types): Likewise.
4106         (new_loc_list): Likewise.
4107         (loc_descriptor): Likewise.
4108         (add_loc_descr_to_each): Likewise.
4109         (add_const_value_attribute): Likewise.
4110         (tree_add_const_value_attribute): Likewise.
4111         (add_comp_dir_attribute): Likewise.
4112         (add_name_and_src_coords_attributes): Likewise.
4113         (lookup_filename): Likewise.
4114         (store_vcall_insn): Likewise.
4115         (dwarf2out_init): Likewise.
4116
4117         * dbxout.c (dbxout_init): Likewise.
4118
4119         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
4120
4121         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
4122
4123         * config/score/score7.c (score7_output_external): Likewise.
4124
4125         * config/score/score3.c (score3_output_external): Likewise.
4126
4127         * config/s390/s390.c (s390_init_machine_status): Likewise.
4128
4129         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
4130         (rs6000_init_machine_status): Likewise.
4131         (output_toc): Likewise.
4132
4133         * config/pa/pa.c (pa_init_machine_status): Likewise.
4134         (get_deferred_plabel): Likewise.
4135
4136         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
4137
4138         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
4139
4140         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
4141
4142         * config/mep/mep.c (mep_init_machine_status): Likewise.
4143         (mep_note_pragma_flag): Likewise.
4144
4145         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
4146
4147         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
4148
4149         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
4150
4151         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
4152         (i386_pe_maybe_record_exported_symbol): Likewise.
4153
4154         * config/i386/i386.c (get_dllimport_decl): Likewise.
4155         (ix86_init_machine_status): Likewise.
4156         (assign_386_stack_local): Likewise.
4157
4158         * config/frv/frv.c (frv_init_machine_status): Likewise.
4159
4160         * config/darwin.c (machopic_indirection_name): Likewise.
4161
4162         * config/cris/cris.c (cris_init_machine_status): Likewise.
4163
4164         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
4165
4166         * config/avr/avr.c (avr_init_machine_status): Likewise.
4167
4168         * config/arm/arm.c (arm_init_machine_status): Likewise.
4169
4170         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
4171         (alpha_need_linkage): Likewise.
4172         (alpha_use_linkage): Likewise.
4173
4174         * cgraph.c (cgraph_allocate_node): Likewise.
4175         (cgraph_create_edge_1): Likewise.
4176         (cgraph_create_indirect_edge): Likewise.
4177         (cgraph_add_asm_node): Likewise.
4178
4179         * cfgrtl.c (init_rtl_bb_info): Likewise.
4180
4181         * cfgloop.c (alloc_loop): Likewise.
4182         (rescan_loop_exit): Likewise.
4183
4184         * cfg.c (init_flow): Likewise.
4185         (alloc_block): Likewise.
4186         (unchecked_make_edge): Likewise.
4187
4188         * c-parser.c (c_parse_init): Likewise.
4189         (c_parse_file): Likewise.
4190
4191         * c-decl.c (bind): Likewise.
4192         (record_inline_static): Likewise.
4193         (push_scope): Likewise.
4194         (make_label): Likewise.
4195         (lookup_label_for_goto): Likewise.
4196         (finish_struct): Likewise.
4197         (finish_enum): Likewise.
4198         (c_push_function_context): Likewise.
4199
4200         * bitmap.c (bitmap_element_allocate): Likewise.
4201         (bitmap_gc_alloc_stat): Likewise.
4202
4203         * alias.c (record_alias_subset): Likewise.
4204         (init_alias_analysis): Likewise.
4205
4206 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
4207
4208         * fold-const.c (fold_comparison): Remove redundant parenthesis.
4209         * tree-inline.c (expand_call_inline): Pass translated return value of
4210         cgraph_inline_failed_string to diagnostic function.
4211
4212 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
4213             Shujing Zhao  <pearly.zhao@oracle.com>
4214
4215         PR c/37724
4216         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
4217         implicit bad conversions is initialization.
4218         (error_init): Use gmsgid instead of msgid for argument name and change
4219         the call for error.
4220         (pedwarn_init): Use gmsgid instead of msgid for argument name and
4221         change the call for pedwarn.
4222         (warning_init): Use gmsgid instead of msgid for argument name and
4223         change the call for warning.
4224
4225 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
4226
4227         * config/mips/mips-protos.h (mips_print_operand): Delete.
4228         (mips_print_operand_address): Delete.
4229         * config/mips/mips.h (mips_print_operand_punct): Delete.
4230         (PRINT_OPERAND): Delete.
4231         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4232         (PRINT_OPERAND_ADDRESS): Delete.
4233         * config/mips/mips.c (mips_print_operand_punct): Make static.
4234         (mips_print_operand_address): Make static.
4235         (mips_print_operand): Make static.  Call
4236         mips_print_operand_punct_valid_p.
4237         (mips_print_operand_punct_valid_p): New function.
4238         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4239         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4240
4241 2010-06-07  Jan Hubicka  <jh@suse.cz>
4242
4243         PR middle-end/44454
4244         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
4245         are allocated.
4246
4247 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
4248
4249         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
4250         name of RECORD.
4251
4252 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4253
4254         * doc/sourcebuild.texi (Effective-Target Keywords, Other
4255         attributes): Document gas.
4256
4257 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
4258
4259         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
4260         <TYPE_LEA>: Split instruction.
4261         <default>: Remove alternative 2 handling.
4262         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
4263         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
4264         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
4265
4266         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
4267         (ashift_zext lea splitter): Use DImode for multiplication.
4268
4269         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
4270         to generate addition.
4271
4272 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
4273
4274         * common.opt (fira-verbose): Use Var.
4275         (fpcc-struct-return): Use Init instead of VarExists.
4276         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
4277         toplev.c.
4278         * flags.h (flag_signed_char, flag_short_enums,
4279         flag_pcc_struct_return, flag_ira_verbose,
4280         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
4281         * toplev.c (flag_detailed_statistics, flag_signed_char,
4282         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
4283         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
4284         * toplev.h (flag_crossjumping, flag_if_conversion,
4285         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
4286         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
4287         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
4288         flag_cprop_registers, time_report, flag_ira_loop_pressure,
4289         flag_ira_coalesce, flag_ira_move_spills,
4290         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
4291
4292 2010-06-07  Jan Hubicka  <jh@suse.cz>
4293
4294         * df-core.c (df_analyze_problem): Do verification after allocation.
4295
4296         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
4297         (df_lr_alloc): Initialize problem data; move bitmaps to
4298         lr_bitmaps obstack.
4299         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
4300         (df_lr_verify_solution_start): Do not initialize problem data;
4301         allocate bitmaps in lr_bitmaps.
4302         (df_lr_verify_solution_end): Do not free problem data.
4303
4304 2010-06-07  Jan Hubicka  <jh@suse.cz>
4305
4306         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
4307         if caller is noreturn.
4308         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
4309         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
4310         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
4311         * ipa-pure-const.c (check_decl): Add IPA parameter.
4312         (state_from_flags): New function.
4313         (better_state, worse_state): New functions.
4314         (check_call): When in IPA mode, do not care about callees.
4315         (check_load, check_store): Update.
4316         (check_ipa_load, check_ipa_store): New.
4317         (check_stmt): When in IPA mode, use IPA checkers.
4318         (analyze_function): Use state_from_flags.
4319         (propagate): Check indirect edges and references.
4320
4321 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
4322
4323         PR rtl-optimization/44404
4324         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
4325         of count_occurrences to see if it's safe to modify mem_insn.
4326
4327 2010-06-07  Richard Guenther  <rguenther@suse.de>
4328
4329         * gimplify.c (gimplify_cleanup_point_expr): For empty body
4330         and EH-only cleanup drop the cleanup instead of inserting it
4331         unconditionally.
4332
4333 2010-06-07  Ira Rosen  <irar@il.ibm.com>
4334
4335         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
4336         documentation.
4337         * targhooks.c (default_builtin_vectorization_cost): New function.
4338         * targhooks.h (default_builtin_vectorization_cost): Declare.
4339         * target.h (enum vect_cost_for_stmt): Define.
4340         (builtin_vectorization_cost): Change argument and comment.
4341         * tree-vectorizer.h: Remove cost model macros.
4342         * tree-vect-loop.c: Include target.h.
4343         (vect_get_cost): New function.
4344         (vect_estimate_min_profitable_iters): Replace cost model macros with
4345         calls to vect_get_cost.
4346         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
4347         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
4348         default implementation.
4349         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
4350         calls to target hook builtin_vectorization_cost.
4351         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
4352         Likewise.
4353         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
4354         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
4355         implementation to return costs.
4356         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
4357         * config/spu/spu.h: Remove vectorizer cost model macros.
4358         * config/i386/i386.h: Likewise.
4359         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
4360         a call to target hook builtin_vectorization_cost.
4361
4362 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
4363
4364         PR target/44319
4365         * config/i386/i386.c (override_options): Turn zee pass on for level 2
4366         and above and defer till target is known.
4367         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
4368         turn off otherwise.
4369
4370 2010-05-25  Jan Hubicka  <jh@suse.cz>
4371
4372         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
4373         (df_compact_blocks): Likewise.
4374         * df.h (struct df): Turn hardware_regs_used,
4375         regular_block_artificial_uses, eh_block_artificial_uses,
4376         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
4377         bitmap_head.
4378         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
4379         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
4380         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
4381         df_scan_blocks, df_insn_delete, df_insn_rescan,
4382         df_insn_rescan_debug_internal, df_insn_rescan_all,
4383         df_process_deferred_rescans, df_process_deferred_rescans,
4384         df_notes_rescan, df_get_call_refs, df_get_call_refs,
4385         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
4386         df_record_entry_block_defs, df_record_exit_block_uses,
4387         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
4388         df_scan_verify): Update.
4389
4390 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
4391
4392         PR c++/44188
4393         * c-common.c (is_typedef_decl): Move this definition ...
4394         * tree.c (is_typedef_decl): ... here.
4395         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
4396         * c-common.h (is_typedef_decl): Move this declaration ...
4397         * tree.h (is_typedef_decl): ... here.
4398         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
4399         * dwarf2out.c (is_naming_typedef_decl): New function.
4400         (gen_tagged_type_die): Split out of ...
4401         (gen_type_die_with_usage): ... this function. When an anonymous
4402         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
4403         is emitted for the typedef.
4404         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
4405         anonymous tagged types.
4406
4407 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4408
4409         PR c/20000
4410         * c-decl.c (grokdeclarator): Delete warning.
4411
4412 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4413
4414         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
4415         newly built CALL_EXPR.
4416         * tree-profile.c (tree_profiling): Don't profile functions produced
4417         for built-in stuff.
4418
4419 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
4420
4421         PR bootstrap/44427
4422         PR bootstrap/44428
4423         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
4424         endianness-independent.
4425
4426 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
4427
4428         * c-common.c: Move to c-family/.
4429         * c-common.def: Likewise.
4430         * c-common.h: Likewise.
4431         * c-cppbuiltin.c: Likewise.
4432         * c-dump.c: Likewise.
4433         * c-format.c: Likewise.
4434         * c-format.h : Likewise.
4435         * c-gimplify.c: Likewise.
4436         * c-lex.c: Likewise.
4437         * c-omp.c: Likewise.
4438         * c.opt: Likewise.
4439         * c-opts.c: Likewise.
4440         * c-pch.c: Likewise.
4441         * c-ppoutput.c: Likewise.
4442         * c-pragma.c: Likewise.
4443         * c-pragma.h: Likewise.
4444         * c-pretty-print.c: Likewise.
4445         * c-pretty-print.h: Likewise.
4446         * c-semantics.c: Likewise.
4447         * stub-objc.c: Likewise.
4448
4449         * gengtype.c (get_file_langdir): Special-case files in c-family/.
4450         (get_output_file_with_visibility): Fix name for c-common.h.
4451         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
4452
4453         * c-tree.h: Update include path for moved files.
4454         * c-lang.c: Likewise.
4455         * c-lang.h: Likewise.
4456         * c-parser.c: Likewise.
4457         * c-convert.c: Likewise.
4458         * c-decl.c: Likewise.
4459         * c-objc-common.c: Likewise.
4460         * configure.ac: Make sure c-family/ exists in the build directory.
4461         * configure: Regenerate.
4462         * Makefile.in: Update paths for moved files.  Regroup files per
4463         location and update dependencies.  Move generated_files down after
4464         ALL_GTFILES_H.
4465
4466         * config/spu/spu-c.c: Update paths for moved files.
4467         * config/mep/mep-pragma.c: Likewise.
4468         * config/darwin-c.c: Likewise.
4469         * config/i386/msformat-c.c: Likewise.
4470         * config/i386/i386-c.c: Likewise.
4471         * config/avr/avr-c.c: Likewise.
4472         * config/sol2-c.c: Likewise.
4473         * config/ia64/ia64-c.c: Likewise.
4474         * config/rs6000/rs6000-c.c: Likewise.
4475         * config/arm/arm.c: Likewise.
4476         * config/arm/arm-c.c: Likewise.
4477         * config/h8300/h8300.c: Likewise.
4478         * config/v850/v850-c.c: Likewise.
4479
4480         * config/t-darwin: Fix dependencies for moved files.
4481         * config/t-sol2: Fix dependencies for moved files.
4482         * config/mep/t-mep: Fix dependencies for moved files.
4483         * config/ia64/t-ia64: Fix dependencies for moved files.
4484         * config/rs6000/t-rs6000: Fix dependencies for moved files.
4485         * config/v850/t-v850: Fix dependencies for moved files.
4486         * config/v850/t-v850e: Fix dependencies for moved files.
4487
4488         * config/m32c/m32c-pragma.c
4489
4490         * po/exgettext: Look in c-family/ also.
4491
4492 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4493
4494         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
4495         (mark_control_dependent_edges_necessary): Call it instead of marking
4496         the last statement manually.
4497         (propagate_necessity): Likewise.
4498
4499 2010-06-05  Jan Hubicka  <jh@suse.cz>
4500
4501         * basic-block.h (compute_dominance_frontiers): Updated.
4502         (compute_idf): Likewise.
4503
4504         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
4505         for dominance frontiers.
4506         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
4507         (insert_updated_phi_nodes_for): Likewise.
4508         (update_ssa): Likewise.
4509         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4510         (compute_dominance_frontiers): Likewise.
4511         (compute_idf): Likewise.
4512         * df-problems.c (df_md_local_compute): Likewise.
4513
4514 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
4515
4516         * target.h (struct gcc_target): Add memory_move_cost field.
4517         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
4518         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
4519         * targhooks.c (default_memory_move_cost): New function.
4520         * targhooks.h (default_memory_move_cost): Declare function.
4521         * reload.h (memory_move_cost): Declare.
4522         (memory_move_secondary_cost): Change type of 'in' argument to bool.
4523         * reginfo.c (memory_move_cost): New function.
4524         (memory_move_secondary_cost): Change type of 'in' argument to bool.
4525         * ira.h (ira_memory_move_cost): Update comment.
4526         * ira.c: (ira_memory_move_cost): Update comment.
4527         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
4528         with memory_move_cost.
4529         * postreload.c (reload_cse_simplify_set): (Ditto.).
4530         * reload1.c (choose_reload_regs): (Ditto.).
4531         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
4532         (MEMORY_MOVE_COST):  Revise documentation.
4533
4534         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
4535         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
4536         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
4537         type of 'in' argument to bool.
4538         (TARGET_MEMORY_MOVE_COST): Define.
4539
4540 2010-06-05  Jan Hubicka  <jh@suse.cz>
4541
4542         * ipa-pure-const.c (propagate): Fix typo in handling of functions
4543         that cannot return.  Be more careful when merging the results with
4544         previously known ones.
4545
4546 2010-06-05  Matthias Klose  <doko@ubuntu.com>
4547
4548         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
4549         function to add the -iplugindir option.
4550         (find_plugindir_spec_function): Add new declaration and function.
4551         (static_spec_func): Use it for "find-plugindir".
4552
4553 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
4554
4555         PR c++/44361
4556         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
4557         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
4558         statement expression.
4559
4560 2010-06-05  Jan Hubicka  <jh@suse.cz>
4561
4562         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
4563         (df_rd_problem_data): Convert sparse_invalidated_by_call,
4564         dense_invalidated_by_call to bitmap head.
4565         (df_rd_alloc, df_rd_bb_local_compute_process_def,
4566         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
4567         df_rd_start_dump, df_lr_verify_transfer_functions,
4568         df_live_verify_transfer_functions, df_chain_create_bb,
4569         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
4570         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
4571         df_simulate_one_insn_forwards, df_md_alloc,
4572         df_md_bb_local_compute_process_def,
4573         df_md_bb_local_compute_process_def, df_md_local_compute,
4574         df_md_transfer_function df_md_free): Update.
4575
4576 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
4577
4578         PR c/44322
4579         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
4580         target type for ADDR_EXPR; require no changes to qualifiers except
4581         for function types.
4582         * c-tree.h (c_build_type_variant): Remove.
4583
4584 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
4585
4586         * genautomata.c (get_excl_set): Do work per element, not per char.
4587         (check_presence_pattern_sets): Similar.
4588         (check_absence_pattern_sets): Similar.
4589
4590 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
4591
4592         * genautomata.c (curr_state_pass_num): Delete.
4593         (min_issue_delay_pass_states): Delete.
4594         (min_issue_delay): Delete.
4595         (initiate_min_issue_delay_pass_states): Delete.
4596         (output_min_issue_delay_table): Compute min_issue_delay_vect
4597         using a breadth-first search variant.
4598         (output_tables): Don't call initiate_min_issue_delay_pass_states.
4599
4600 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4601
4602         PR boostrap/44421
4603         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
4604         (df_byte_lr_bb_local_compute): Likewise.
4605
4606 2010-06-03  Jason Merrill  <jason@redhat.com>
4607
4608         Implement noexcept operator (5.3.7)
4609         * c-common.c (c_common_reswords): Add noexcept.
4610         * c-common.h (enum rid): Add RID_NOEXCEPT.
4611
4612 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
4613
4614         * config/darwin-driver.c (darwin_default_min_version): Use
4615         GCC-specific formats in diagnostics.
4616         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
4617         diagnostics.
4618         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
4619         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
4620         eval_spec_function, handle_braces, process_brace_body, main,
4621         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
4622         getenv_spec_function, compare_version_strings,
4623         version_compare_spec_function): Use GCC-specific formats in
4624         diagnostics.
4625
4626 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
4627
4628         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
4629         that operand 0 and operand 1 are equal.
4630         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
4631         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
4632         and operand 1 are equal.
4633         <default>: Ditto.  Remove ??? comment.
4634         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
4635         and operand 1 are equal.
4636         <default>: Ditto.  Remove ??? comment.
4637         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
4638         are equal.
4639         (*add<mode>_4) <default>: Ditto.
4640         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
4641
4642 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
4643
4644         * config/i386/i386-protos.h (ix86_print_operand): Declare.
4645         * config/i386/i386.c (ix86_print_operand): Make non-static.
4646         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
4647         * output.h (output_operand): Declare.
4648         * final.c (output_operand): Make non-static.
4649
4650 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
4651
4652         PR rtl-optimization/44013
4653         * sched-deps.c (add_dependence_list_and_free): Don't free lists
4654         when processing debug insns.
4655
4656         PR debug/41371
4657         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
4658         recursing.  Check that recursion is bounded.  Rename inner var
4659         to avoid hiding incoming argument.
4660
4661 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
4662
4663         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
4664         operands[2] == 255.
4665         (*addqi_3): Ditto.
4666         (*addqi_4): Ditto.
4667         (*addqi_5): Ditto.
4668         (*addqi_ext_1_rex64): Ditto.
4669         (*addqi_ext_1): Ditto.
4670
4671         (*addqi_4): Check for incdec_operand in QImode.
4672
4673         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
4674         using SWI mode iterator.
4675         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
4676         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
4677         mode iterator.
4678         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
4679         using SWI mode iterator.
4680
4681 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4682
4683         PR c/25880
4684         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
4685         * c-format.c (gcc_diag_flag_specs): Add hash.
4686         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
4687         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
4688         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
4689         pp_c_cv_qualifiers. Handle qualifiers spelling here.
4690         (pp_c_type_qualifier_list): Call the function above.
4691         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
4692         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
4693         (WARN_FOR_QUALIFIERS): New macro.
4694         (convert_for_assignment): Use it.
4695
4696 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
4697
4698         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
4699
4700 2010-06-04  Jan Hubicka  <jh@suse.cz>
4701
4702         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
4703         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
4704         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
4705         DF_BYTE_LR_OUT): Update for embedded bitmaps.
4706         * fwprop.c (single_def_use_enter_block): Likewise.
4707         * ddg.c (create_ddg_dep_from_intra_loop_link,
4708         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
4709         * loop-iv.c (latch_dominating_def): Likewise.
4710         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
4711         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
4712         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
4713         df_rd_transfer_function, df_rd_top_dump,
4714         df_rd_bottom_dump): Update.
4715         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
4716         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
4717         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
4718         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
4719         df_lr_verify_solution_start, df_lr_verify_solution_end,
4720         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
4721         df_live_free_bb_info, df_live_alloc, df_live_reset,
4722         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
4723         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
4724         df_live_verify_solution_start, df_live_verify_solution_end,
4725         df_live_verify_transfer_functions, df_chain_create_bb,
4726         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
4727         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
4728         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
4729         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
4730         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
4731         df_byte_lr_transfer_function, df_byte_lr_top_dump,
4732         df_byte_lr_bottom_dump, df_create_unused_note,
4733         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
4734         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
4735         df_md_transfer_function, df_md_init, df_md_confluence_0,
4736         df_md_confluence_n,
4737         df_md_top_dump, df_md_bottom_dump): Update.
4738         (struct df_lr_problem_data): Embedd bitmap headers.
4739
4740 2010-06-04  Jan Hubicka  <jh@suse.cz>
4741
4742         * dce.c (dce_process_block): Do not re-scan already marked
4743         instructions.
4744
4745 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
4746
4747         PR rtl-optimization/39871
4748         PR rtl-optimization/40615
4749         PR rtl-optimization/42500
4750         PR rtl-optimization/42502
4751         * ira.c (init_reg_equiv_memory_loc: New function.
4752         (ira): Call it twice.
4753         * reload.h (calculate_elim_costs_all_insns): Declare.
4754         * ira-costs.c: Include "reload.h".
4755         (regno_equiv_gains): New static variable.
4756         (init_costs): Allocate it.
4757         (finish_costs): Free it.
4758         (ira_costs): Call calculate_elim_costs_all_insns.
4759         (find_costs_and_classes): Take estimated elimination costs
4760         into account.
4761         (ira_adjust_equiv_reg_cost): New function.
4762         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
4763         * reload1.c (init_eliminable_invariants, free_reg_equiv,
4764         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
4765         (elim_bb): New static variable.
4766         (reload): Move code out of here into init_eliminable_invariants and
4767         free_reg_equiv.  Call them.
4768         (calculate_elim_costs_all_insns): New function.
4769         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
4770         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
4771         but call note_reg_elim_costly if we turned a valid memory address
4772         into an invalid one.
4773         * Makefile.in (ira-costs.o): Depend on reload.h.
4774
4775 2010-06-04  Julian Brown  <julian@codesourcery.com>
4776
4777         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
4778         for pool ranges.
4779
4780 2010-06-04  Richard Guenther  <rguenther@suse.de>
4781
4782         PR lto/41584
4783         * cgraph.h (struct varpool_node): Add lto_file_data field.
4784         * lto-cgraph.c (input_varpool_node): Initialize it.
4785
4786 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
4787
4788         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
4789         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
4790         predicate in "type" attribute calculation.
4791         (*addsi_1_zext): Ditto.
4792         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
4793         (*addsi_2_zext): Ditto.
4794         (*add<mode>_3): Ditto.
4795         (*addsi_3_zext): Ditto.
4796         (*add<mode>_5): Ditto.
4797
4798 2010-06-03  Jan Hubicka  <jh@suse.cz>
4799
4800         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
4801         of bitmap_bit_p.
4802         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4803
4804 2010-06-03  Jan Hubicka  <jh@suse.cz>
4805
4806         * df-problems.c (df_create_unused_note, df_note_bb_compute):
4807         micro-optimize the checks when to add new note.
4808
4809 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
4810
4811         * final.c (output_asm_insn): Call
4812         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
4813         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
4814         (output_address): Call targetm.asm_out.print_operand_address.
4815         Update comments.
4816         * target.h (struct gcc_target): Add print_operand,
4817         print_operand_address, and print_operand_punct_valid_p fields.
4818         * targhooks.h (default_print_operand): Declare.
4819         (default_print_operand_address): Declare.
4820         (default_print_operand_punct_valid_p): Declare.
4821         * targhooks.c (default_print_operand): Define.
4822         (default_print_operand_address): Define.
4823         (default_print_operand_punct_valid_p): Define.
4824         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
4825         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
4826         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
4827         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
4828         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
4829         * vmsdbgout.c (addr_const_to_string): Update comment.
4830         * config/i386/i386.c (print_operand): Rename to...
4831         (ix86_print_operand): ...this.  Make static.
4832         (print_operand_address): Rename to...
4833         (ix86_print_operand_address): ...this.  Make static.  Call
4834         ix86_print_operand instead of PRINT_OPERAND.
4835         (ix86_print_operand_punct_valid_p): New function.
4836         (TARGET_PRINT_OPERAND): Define.
4837         (TARGET_PRINT_OPERAND_ADDRESS): Define.
4838         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4839         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
4840         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
4841         (PRINT_OPERAND): Delete.
4842         (PRINT_OPERAND_ADDRESS): Delete.
4843         * config/i386/i386-protos.h (print_operand): Delete prototype.
4844         (print_operand_address): Delete prototype.
4845
4846 2010-06-03  Richard Guenther  <rguenther@suse.de>
4847
4848         PR tree-optimization/44403
4849         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
4850         Preserve pointer qualifiers.
4851         (vect_create_data_ref_ptr): Likewise.
4852
4853 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
4854
4855         PR c++/44294
4856         * defaults.h (MAX_FIXED_MODE_SIZE): New.
4857
4858         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
4859
4860 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
4861
4862         PR debug/44375
4863         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
4864         return false if merging the bbs would lead to goto_locus
4865         location being lost from the IL.
4866
4867 2010-06-03  Jan Hubicka  <jh@suse.cz>
4868             Jakub Jelinek  <jakub@redhat.com>
4869
4870         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
4871         set->regs[i] is NULL or has just one entry.
4872
4873 2010-06-03  Jan Hubicka  <jh@suse.cz>
4874
4875         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
4876         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
4877
4878 2010-06-03  Paul Brook  <paul@codesourcery.com>
4879
4880         * config/arm/arm.c (FL_TUNE): Define.
4881         (arm_default_cpu, arm_cpu_select): Remove.
4882         (all_cores): Populate core field.
4883         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
4884         (arm_find_cpu): New function.
4885         (arm_handle_option): Lookup cpu/architecture names.
4886         (arm_override_options): Cleanup mcpu/march/mtune handling.
4887         (arm_file_start): Ditto.
4888
4889 2010-06-03  Alan Modra  <amodra@gmail.com>
4890
4891         PR target/44169
4892         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
4893         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
4894         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
4895         (rs6000_emit_load_toc_table): Likewise.
4896
4897 2010-06-02  Jan Hubicka  <jh@suse.cz>
4898
4899         * passes.c (init_optimization_passes): Put ipa reference
4900         after ipa pure-const.
4901
4902 2010-06-02  Jan Hubicka  <jh@suse.cz>
4903
4904         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
4905         calls_read_all and calls_write_all.
4906         (get_reference_optimization_summary): Fix formatting.
4907         (is_proper_for_analysis): Check that decl is not readonly.
4908         (propagate_bits): Check CONST/PURE/noreturn flags.
4909         (ipa_init): Move all_module_statics to optimization_summary_obstack.
4910         (analyze_function): Ignore indirect edges.
4911         (copy_global_bitmap): For all module statics, do nothing.
4912         (generate_summary): Do not print calls_read_all/calls_write_all.
4913         (read_write_all_from_decl): Take node as argument; check
4914         cgraph_node_cannot_return.
4915         (propagate): Reorganize read_all/write_all computation;
4916         check indirect edges; check ecf flags; use all_module_statics
4917         in the results; do not free all_module_statics.
4918         (stream_out_bitmap): Handle all_module_statics.
4919         (ipa_reference_write_optimization_summary): Likewise; use
4920         varpool/cgraph encoders to get boundaries.
4921         (ipa_reference_read_optimization_summary): Read in all_module_statics;
4922         use it when possible.
4923
4924 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4925
4926         PR target/44218
4927         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
4928         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
4929
4930         * doc/extend.texi (powerpc builtins): Document vec_recip,
4931         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
4932
4933         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
4934         (rs6000_emit_swrsqrt): Ditto.
4935         (rs6000_emit_swdivsf): Delete.
4936         (rs6000_emit_swdivdf): Ditto.
4937         (rs6000_emit_swrsqrtsf): Ditto.
4938
4939         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
4940         describe the reciprocal estimate support for each type.
4941         (recip_options): Map -mrecip=<opt> into option bits.
4942         (gen_2arg_fn_t): New typedef for binary rtx gen function.
4943         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
4944         reciprocal estimate instructions.
4945         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
4946         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
4947         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
4948         cost information if -mdebug=cost or -mdebug=reg.
4949         (rs6000_override_options): Set -mrecip-precision for power6, and
4950         power7 machines.  If -mvsx or -mdfp, enable various options that
4951         came in previous instruction set ISAs, unless the option was
4952         explicitly disabled by the command line option.  Parse
4953         -mrecip=<opt> options.
4954         (rs6000_builtin_vectorized_function): Add support for vectorizing
4955         the reciprocal estimate builtins and expansions.
4956         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
4957         (bdesc_2arg): Add reciprocal estimate builtins.
4958         (bdesc_1arg): Add reciprocal square root estimate builtins.
4959         (rs6000_expand_builtin): Rewrite to use a switch statement,
4960         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
4961         (rs6000_init_builtins): Create declarations for reciprocal
4962         estimate builtins.
4963         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
4964         sized, prefer traditional floating point registers, if integer
4965         vector types, prefer altivec registers.  Don't actually look at
4966         the memory address any more.
4967         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
4968         builtins.
4969         (rs6000_load_constant_and_splat): New helper function to load up
4970         the constant for reciprocal estimate instructions.
4971         (rs6000_emit_madd): New helper function for generating
4972         multiply/add type instructions, based on the current switches.
4973         (rs6000_emit_msub): Ditto.
4974         (rs6000_emit_mnsub): Ditto.
4975         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
4976         replace a divide with a reciprocal estimate and fixup, adding
4977         support for machines with high precision and vectors.
4978         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
4979         low precision machines.
4980         (rs6000_emit_swdiv): New common function to be called to replace a
4981         division with reciprocal estimate and fixup.
4982         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
4983         for double and vector types.  Add support for high precision machines.
4984
4985         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
4986         the reciprocal estimate instructions can be generated.
4987         (TARGET_FRE): Ditto.
4988         (TARGET_FRSQRTES): Ditto.
4989         (TARGET_FRSQRTE): Ditto.
4990         (RS6000_RECIP_*): New macros for reciprocal estimate support.
4991
4992         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
4993         square root estimate on vectors.
4994         (re<mode>2): New insn for reciprocal division estimate on vectors.
4995
4996         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
4997         New builtin.
4998         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
4999         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
5000         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
5001         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
5002         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
5003         (RS6000_BUILTIN_RSQRT): Ditto.
5004         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
5005         floating point builtin.
5006
5007         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5008         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
5009         __RECIP_PRECISION__ based on the command line switches.
5010         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
5011
5012         * config/rs6000/rs6000.opt (-mrecip): Document add support for
5013         replacing division instructions with reciprocal estimate and fixup.
5014         (-mrecip=<opt>): New option.
5015         (-mrecip-precision): Ditto.
5016
5017         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
5018         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
5019         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
5020         precision scalar.
5021
5022         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
5023         (UNSPEC_VREFP): Ditto.
5024         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
5025         conterparts with regard to support of -mno-fused-madd and -ffast-math.
5026         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
5027         reciprocal estimate instructions to be generated.
5028         (altivec_vrefp): Ditto.
5029
5030         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
5031         estimate support.
5032         (rreg): New mode attribute for reciprocal estimate support.
5033         (recip<mode>3): New insn for division using reciprocal estimate
5034         and fixup builtins.
5035         (divide define_split): New define_split to convert floating point
5036         division to use reciprocal estimate if the user used the
5037         appropriate options and the split is run when we can add new
5038         pseudo registers for the fixup.
5039         (rsqrt<mode>2): New insn for reciprocal square root support.
5040         (recipsf3): Move into recip<mode>3.
5041         (recipdf3): Ditto.
5042         (fres): Use TARGET_FRES.
5043         (rsqrtsf2): Move into rsqrt<mode>2.
5044         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
5045         (copysignsf3): Add support for VSX.
5046         (fred): Use TARGET_FRE.
5047         (fred_fpr): Ditto.
5048         (rsqrtdf_internal1): New function for frsqrte instruciton.
5049
5050         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
5051         (vec_rsqrt): Ditto.
5052
5053 2010-06-03  Richard Guenther  <rguenther@suse.de>
5054
5055         PR middle-end/44291
5056         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
5057         (set_user_assembler_libfunc): Likewise.
5058
5059 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5060
5061         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
5062         defaults.h.
5063         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
5064         to defaults.h
5065         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
5066         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
5067         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
5068         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
5069         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
5070         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
5071         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
5072         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
5073         * defaults.h: Updated for above mentioned changes.
5074
5075 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
5076
5077         * c-common.c: Remove header include of tm_p.h.
5078         * Makefile.in (c-common.o): Remove TM_P_H dependency.
5079
5080 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
5081
5082         * tree.h (struct tree_decl_map): New type.
5083         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
5084         (tree_decl_map_hash): New prototype.
5085         (debug_expr_for_decl, value_expr_for_decl): Change into
5086         tree_decl_map hashtab from tree_map.
5087         (init_ttree): Adjust initialization.
5088         (tree_decl_map_hash): New function.
5089         (decl_debug_expr_lookup, decl_debug_expr_insert,
5090         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
5091
5092 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5093
5094         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
5095         linker emulations.
5096         * configure: Regenerate.
5097         * config.in: Regenerate.
5098
5099         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
5100         (X86_64_EMULATION): Define.
5101         (TARGET_LD_EMULATION): Use them.
5102
5103         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
5104         (SPARC64_EMULATION): Define.
5105         (LINK_ARCH_SPEC): Use them.
5106
5107 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5108
5109         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
5110         smallest_mode_for_size for computing the precision types of new
5111         graphite IVs.  Do not call lang_hooks.types.type_for_size.
5112
5113 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5114
5115         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
5116         information.
5117         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
5118
5119 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
5120
5121         PR middle-end/44363
5122         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
5123         return false instead.
5124
5125 2010-06-02  Jan Hubicka  <jh@suse.cz>
5126
5127         PR middle-end/44295
5128         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
5129         create new cgraph node to check callee.
5130
5131 2010-06-02  Richard Guenther  <rguenther@suse.de>
5132
5133         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
5134
5135 2010-06-02  Richard Guenther  <rguenther@suse.de>
5136
5137         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
5138         (lto_wrapper_cleanup): ... this.  Do not exit.
5139         (fatal): Adjust.  Exit here.
5140         (fatal_perror): Likewise.
5141         (fatal_signal): New function.
5142         (main): Set up signal handlers to cleanup temporary files.
5143         * Makefile.in (lto-wrapper.o): Adjust dependencies.
5144
5145 2010-06-02  Richard Guenther  <rguenther@suse.de>
5146
5147         PR tree-optimization/44377
5148         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
5149
5150 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5151
5152         * config/s390/2097.md (z10_fhex): Remove insn reservation.
5153         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
5154         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
5155         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
5156         instruction.
5157         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
5158
5159 2010-06-02  Jan Hubicka  <jh@suse.cz>
5160
5161         * bitmap.c (bitmap_descriptor): Add search_iter.
5162         (bitmap_find_bit): Increment it.
5163         (print_statistics): Print it.
5164
5165 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
5166
5167         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
5168         instead of gimple_build_call_vec.  Delete unnecessary local variable.
5169
5170 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5171
5172         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
5173         change from yesterday.
5174
5175 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
5176
5177         * c-ada-spec.c: Clean up redundant includes.
5178
5179 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
5180
5181         * gimplify.c: Do not include except.h and optabs.h.
5182         (gimplify_body): Do not initialize RTL profiling.
5183         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
5184         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
5185         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
5186         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
5187         langhooks.h.
5188
5189         * tree-pretty-print.h: Include pretty-print.h.
5190         * gimple-pretty-print.h: Include pretty-print.h.
5191
5192         * tree-pretty-print.c: Do not include diagnostic.h.
5193         * tree-vrp.c: Likewise.
5194         * tree-tailcall.c: Likewise
5195         * tree-scalar-evolution.c: Likewise
5196         * tree-ssa-dse.c: Likewise
5197         * tree-chrec.c: Likewise
5198         * tree-ssa-sccvn.c: Likewise
5199         * tree-ssa-copyrename.c: Likewise
5200         * tree-nomudflap.c: Likewise
5201         * tree-call-cdce.c: Likewise
5202         * tree-stdarg.c: Likewise
5203         * tree-ssa-math-opts.c: Likewise
5204         * tree-nrv.c: Likewise
5205         * tree-ssa-sink.c: Likewise
5206         * tree-browser.c: Likewise
5207         * tree-ssa-loop-ivcanon.c: Likewise
5208         * tree-ssa-loop.c: Likewise
5209         * tree-parloops.c: Likewise
5210         * tree-ssa-address.c: Likewise
5211         * tree-ssa-ifcombine.c: Likewise
5212         * tree-if-conv.c: Likewise
5213         * tree-data-ref.c: Likewise
5214         * tree-affine.c: Likewise
5215         * tree-ssa-phiopt.c: Likewise
5216         * tree-ssa-coalesce.c: Likewise
5217         * tree-ssa-pre.c: Likewise
5218         * tree-ssa-live.c: Likewise
5219         * tree-predcom.c: Likewise
5220         * tree-ssa-forwprop.c: Likewise
5221         * tree-ssa-dce.c: Likewise
5222         * tree-ssa-ter.c: Likewise
5223         * tree-ssa-loop-prefetch.c: Likewise
5224         * tree-optimize.c: Likewise
5225         * tree-ssa-phiprop.c: Likewise
5226         * tree-object-size.c: Likewise
5227         * tree-outof-ssa.c: Likewise
5228         * tree-ssa-structalias.c: Likewise
5229         * tree-switch-conversion.c: Likewise
5230         * tree-ssa-reassoc.c: Likewise
5231         * tree-ssa-operands.c: Likewise
5232         * tree-vectorizer.c: Likewise
5233         * tree-vect-data-refs.c: Likewise
5234         * tree-vect-generic.c: Likewise
5235         * tree-vect-stmts.c: Likewise
5236         * tree-vect-patterns.c: Likewise
5237         * tree-vect-slp.c: Likewise
5238         * tree-vect-loop.c: Likewise
5239         * tree-ssa-loop-ivopts.c: Likewise
5240         * tree-ssa-loop-im.c: Likewise
5241         * tree-ssa-loop-niter.c: Likewise
5242         * tree-ssa-loop-unswitch.c: Likewise
5243         * tree-ssa-loop-manip.c: Likewise
5244         * tree-ssa-loop-ch.c: Likewise
5245         * tree-dump.c: Likewise
5246         * tree-complex.c: Likewise
5247
5248         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
5249         * tree-ssa-uninit.c: Likewise
5250         * tree-ssa-threadupdate.c: Likewise
5251         * tree-ssa-uncprop.c: Likewise
5252         * tree-ssa-ccp.c: Likewise
5253         * tree-ssa-dom.c: Likewise
5254         * tree-ssa-propagate.c: Likewise
5255         * tree-ssa-alias.c: Likewise
5256         * tree-dfa.c: Likewise
5257         * tree-cfgcleanup.c: Likewise
5258         * tree-sra.c: Likewise
5259         * tree-ssa-copy.c: Likewise
5260         * tree-ssa.c: Likewise
5261         * tree-profile.c: Likewise
5262         * tree-cfg.c: Likewise
5263         * tree-ssa-threadedge.c: Likewise
5264         * tree-vect-loop-manip.c: Likewise
5265
5266         * tree-inline.c: Do not include diagnostic.h and expr.h.
5267         Include rtl.h.
5268         (copy_decl_for_dup_finish): Do not use NULL_RTX.
5269
5270         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
5271         * tree-loop-distribution.c: Likewise.
5272
5273 2010-06-01  Jan Hubicka  <jh@suse.cz>
5274
5275         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
5276
5277 2010-06-01  Jan Hubicka  <jh@suse.cz>
5278
5279         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
5280         remove return value.
5281         (split_bbs_on_noreturn_calls) .... here.
5282         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
5283         * tree-flow.h (fixup_noreturn_call): New.
5284
5285 2010-06-01  Jan Hubicka  <jh@suse.cz>
5286
5287         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
5288
5289 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
5290
5291         * tree.h (build_nt_call_list): Delete.
5292         * tree.c (build_nt_call_list): Delete.
5293
5294 2010-06-01  Jan Hubicka  <jh@suse.cz>
5295
5296         * fwprop.c: Make emit-rtl.h include last.
5297         * rtlanal.c: Include emit-rtl.h.
5298         * genautomata.c: Output emit-rtl include into insn-automata.c
5299         * df-scan.c: Include emit-rtl.h.
5300         * haifa-sched.c: Indlude emit-rtl.h.
5301         * mode-switching.c: Indlude emit-rtl.h.
5302         * graph.c: Indlude emit-rtl.h.
5303         * sel-sched.c: Include emit-rtl.h.
5304         * sel-sched-ir.c: Include emit-rtl.h.
5305         * ira-build.c: Include emit-rtl.h.
5306         * emit-rtl.c: (first_insn, last_insn): Remove defines.
5307         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
5308         Move to emit-rtl.h.
5309         (set_new_first_and_last_insn, get_last_insn_anywhere,
5310         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
5311         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
5312         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
5313         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
5314         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
5315         Use accessor functions.
5316         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
5317          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
5318         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
5319         mem_expr_equal_p): Move here from rtl.h.
5320         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
5321         Move here from emit-rtl.c; make inline.
5322         * cfglayout.h: Include emit-rtl.h.
5323         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
5324          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
5325         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
5326         mem_expr_equal_p, get_insns, set_first-insn,
5327         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
5328         * reg-stack.c: Include emit-rtl.h.
5329         * dce.c: Likewise.
5330
5331 2010-06-01  Jan Hubicka  <jh@suse.cz>
5332
5333         * cgraph.h (tree_function_versioning): Update prototype.
5334         (cgraph_function_versioning): Update prototype.
5335         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
5336         bitmap.
5337         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
5338         (cgraph_materialize_clone, save_inline_function_body): Update use of
5339         tree_function_versioning.
5340         * tree-inline.c (copy_bb): Look for previous copied block to link
5341         after; fix debug output.
5342         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
5343         (copy_body): Likewise.
5344         (expand_call_inline): Update use of copy_body.
5345         (tree_function_versioning): Update use of copy body; accept
5346         blocks_to_copy and new_entry.
5347
5348 2010-06-01  Jan Hubicka  <jh@suse.cz>
5349
5350         * gegenrtl.c: Remove unnecesary prototypes.
5351         (gendecl): Remove.
5352         (gendef): Produce static inline.
5353         (gencode): Remove.
5354         (main): Do not decode parameters; generate header only.
5355         * Makefile.in (genrtl.c): Remove.
5356
5357 2010-06-01  Jan Hubicka  <jh@suse.cz>
5358
5359         * tree-switch-conversion.c (build_one_array): Make it readonly.
5360
5361 2010-06-01  Richard Guenther  <rguenther@suse.de>
5362
5363         * optabs.c (init_optabs): Guard all accesses to reinit.
5364         * ipa-pure-const.c (propagate): Fix another typo.
5365         * opts.c (common_handle_option): Split assignment to bool.
5366         * c-opts.c (c_common_handle_option): Likewise.
5367
5368 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
5369             Matthew Gingell  <gingell@adacore.com>
5370
5371         * doc/invoke.texi: Mention -fdump-ada-spec.
5372         * tree-dump.c (dump_files): Add ada-spec.
5373         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
5374         * tree-pass.h (tree_dump_index): Add TDI_ada.
5375         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
5376         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
5377         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
5378         * c-decl.c: Include c-ada-spec.h.
5379         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
5380         functions.
5381         (c_write_global_declarations): Add handling of -fdump-ada-spec.
5382         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
5383         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
5384         * c-ada-spec.h, c-ada-spec.c: New files.
5385
5386 2010-06-01  Richard Guenther  <rguenther@suse.de>
5387
5388         PR lto/43853
5389         * ipa-pure-const.c (get_function_state): Hand back varying state
5390         if we do not have one.
5391         (has_function_state): New function.
5392         (duplicate_node_data): Adjust.
5393         (remove_node_data): Likewise.
5394         (pure_const_write_summary): Likewise.
5395         (propagate): Likewise.  Fix typo.
5396
5397 2010-06-01  Jan Hubicka  <jh@suse.cz>
5398
5399         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
5400         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
5401         (execute_all_ipa_transforms): Do not play with the states.
5402
5403 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
5404
5405         * config/arm/t-linux-androideabi: New.
5406         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
5407
5408 2010-06-01  Jan Hubicka  <jh@suse.cz>
5409
5410         * tree-inline.c (estimate_num_insns): For stdarg functions look
5411         into call statement to count cost of argument passing.
5412
5413 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
5414
5415         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
5416         argument for fprintf.
5417         (ix86_output_addr_diff_elt): Likewise.
5418         (x86_function_profiler): Likewise.
5419         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
5420         (LPREFIX): Likewise.
5421         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
5422
5423 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
5424
5425         PR target/44338
5426         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
5427         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
5428         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
5429         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
5430         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
5431         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
5432         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
5433         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
5434         TARGET_FUSED_MADD.
5435
5436 2010-05-31  Jan Hubicka  <jh@suse.cz>
5437
5438         * tree.h (tree_range_check_failed): Declare noreturn.
5439
5440 2010-05-31  Jan Hubicka  <jh@suse.cz>
5441
5442         * gimple.c (gimple_call_builtin_p): New function.
5443         * gimple.h (gimple_call_builtin_p): Declare.
5444         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
5445         to exit.
5446         (execute_warn_function_return): BUILT_IN_RETURN is return.
5447         (split_critical_edges): Return edges are not critical.
5448         (is_ctrl_altering_stmt): Builtin_in_return is altering.
5449         (gimple_verify_flow_info): Handle built_in_return.
5450         (execute_warn_function_return): Handle built_in_return.
5451         * ipa-pure-const.c (check_call): Ignore builtin_return.
5452
5453 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
5454
5455         PR middle-end/44337
5456         * expr.c (expand_assignment): Don't store anything for out-of-bounds
5457         array accesses with non-MEM.
5458
5459         PR tree-optimization/44182
5460         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
5461         newly needs to end a bb is followed by debug stmts, instead return
5462         true from the function at the end.
5463         (maybe_move_debug_stmts_to_successors): New function.
5464         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
5465
5466 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
5467
5468         PR target/44161
5469         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
5470
5471 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
5472
5473         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
5474         for nested functions in non-optimized compilation.
5475
5476 2010-05-31  Richard Guenther  <rguenther@suse.de>
5477
5478         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
5479
5480 2010-05-30  Jan Hubicka  <jh@suse.cz>
5481
5482         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
5483
5484 2010-05-30  Richard Guenther  <rguenther@suse.de>
5485
5486         PR lto/42975
5487         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
5488         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
5489         no longer needed.
5490
5491 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
5492
5493         * config/darwin.c (output_objc_section_asm_op): Add comment.
5494         (name_needs_quotes): Add '_' to list of valid comment chars.
5495         (machopic_output_function_base_name): Remove unneeded quotes.
5496         (darwin_encode_section_info): Adjust asm whitespace.
5497         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
5498         (ASM_OUTPUT_LOCAL): Ditto.
5499         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
5500         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
5501         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
5502
5503 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5504
5505         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
5506         RS6000_OUTPUT_BASENAME unconditionally.
5507         (rs6000_output_function_epilogue): Likewise.
5508
5509 2010-05-30  Jan Hubicka  <jh@suse.cz>
5510
5511         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
5512         nodes.
5513
5514 2010-05-30  Richard Guenther  <rguenther@suse.de>
5515
5516         * tree-cfg.c (verify_gimple_assign_single): Implement
5517         verification for COND_EXPR rhs.
5518
5519 2010-05-30  Jan Hubicka  <jh@suse.cz>
5520
5521         * cgraph.h (cgraph_dump_file): Declare.
5522         * cgraphunit.c (cgraph_dump_file): Export.
5523         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
5524
5525 2010-05-30  Jan Hubicka  <jh@suse.cz>
5526
5527         * dwarf2out.c (reference_to_unused,
5528         premark_types_used_by_global_vars_helper): Avoid creation of new
5529         varpool nodes.
5530
5531 2010-05-30  Jan Hubicka  <jh@suse.cz>
5532
5533         * cgraph.h (cgraph_node_cannot_return,
5534         cgraph_edge_cannot_lead_to_return): New functions.
5535         * cgraph.c (cgraph_node_cannot_return,
5536         cgraph_edge_cannot_lead_to_return): Use them.
5537         * ipa-pure-const.c (pure_const_names): New static var.
5538         (check_call): Handle calls not leading to return.
5539         (pure_const_read_summary): Dump info read.
5540         (propagate): Dump info about propagation process; ignore side effects
5541         of functions not leading to exit; fix handling of pure functions.
5542
5543 2010-05-30  Jan Hubicka  <jh@suse.cz>
5544
5545         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
5546         for tail call epilogues.
5547
5548 2010-05-30  Jan Hubicka  <jh@suse.cz>
5549
5550         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
5551         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
5552         dump files.
5553
5554 2010-05-29  Jan Hubicka  <jh@suse.cz>
5555
5556         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
5557         node; remove references in node we no longer keep in cgrpah but need
5558         body of.
5559
5560 2010-05-29  Jan Hubicka  <jh@suse.cz>
5561
5562         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
5563
5564 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5565
5566         PR target/44165
5567         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
5568
5569 2010-05-29  Jan Hubicka  <jh@suse.cz>
5570
5571         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
5572         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
5573         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
5574         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
5575         debug_names_replaced_by, debug_update_ssa): Likewise.
5576         * sbitmap.c (debug_sbitmap): Likewise.
5577         * genrecog.c (debug_decision, debug_decision_list): Likewise.
5578         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
5579         debug_tree_chain): Likewise.
5580         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
5581         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
5582         * optabs.c  (debug_optab_libfuncs): Likewise.
5583         (verify_loop_closed_ssa): Likewise.
5584         * value-prof.c (verify_histograms): Likewise.
5585         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
5586         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
5587         * cfghooks.c (verify_flow_info): Likewise.
5588         * fold-const.c (debug_fold_checksum): Likewise.
5589         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
5590         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
5591         Likewise.
5592         * omega.c (debug_omega_problem): Likewise.
5593         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
5594         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
5595         * dominance.c (verify_dominators, debug_dominance_info,
5596         debug_dominance_tree): Likewise.
5597         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
5598         * df_regno_debug, df_ref_debug,
5599         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
5600         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
5601         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
5602         * sel-sched.c (debug_state): Likewise.
5603         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
5604         Likewise.
5605         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
5606         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
5607         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
5608         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
5609         Likewise.
5610         * c-pretty-print.c (debug_c_tree): Likewise.
5611         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
5612         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
5613         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
5614         * ebitmap.c (debug_ebitmap): Likewise.
5615         * function.c (debug_find_var_in_block_tree): Likewise.
5616         * print-rtl.c (debug_rtx): Likewise.
5617         (debug_rtx_count): Likewise.
5618         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
5619         * stor-layout.c (debug_rli): Likewise.
5620         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
5621         * tree-data-ref.c (debug_data_references,
5622         debug_data_dependence_relations, debug_data_reference,
5623         debug_data_dependence_relation, debug_rdg_vertex,
5624         debug_rdg_component, debug_rdg): Likewise.
5625         * tree-affine.c (debug_aff): Likewise.
5626         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
5627         Likewise.
5628         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
5629         * emit-rtl.c (verify_rtl_sharing): Likewise.
5630         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
5631         debug_value_expressions): Likewise.
5632         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
5633         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
5634         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
5635         * cfglayout.c (verify_insn_chain): Likewise.
5636         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
5637         debug_clast_stmt, debug_generated_program): Likewise.
5638         * ggc-page.c (debug_print_page_list): Likewise.
5639         * tree-ssa-ter.c (debug_ter): Likewise.
5640         * graphite-dependences.c (debug_pddr): Likewise.
5641         * sched-deps.c (debug_ds): Likewise.
5642         * tree-ssa.c (verify_ssa): Likewise.
5643         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
5644         debug_scattering_functions, debug_iteration_domains, debug_pdr,
5645         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
5646         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
5647         * tree-inline.c (debug_find_tree): Likewise.
5648         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
5649         debug_ppl_powerset_matrix): Likewise.
5650         * var-tracking.c (debug_dv): Likewise.
5651         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
5652         * cfgloop.c (verify_loop_structure): Likewise.
5653         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
5654         * c-common.c (verify_sequence_points): Likewise.
5655         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
5656         debug_candidates, debug_rgn_dependencies): Likewise.
5657         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
5658         * debug_constraint_graph, debug_solution_for_var,
5659         debug_sa_points_to_info): Likewise.
5660         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
5661         Likewie.
5662         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
5663         debug_loops, debug_loop, debug_loop_num): Likewise.
5664         * passes.c (debug_pass): Likewise.
5665         (dump_properties): Likewise; add cfglayout property.
5666         (debug_properties): Likewise.
5667         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
5668         * varpool.c (debug_varpool): Likewise.
5669         * regcprop.c (debug_value_data): Likewise.
5670         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
5671         debug_immediate_uses_for): Likewise.
5672
5673 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5674
5675         PR bootstrap/44315
5676         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
5677         Filter out insn-flags.h.
5678
5679 2010-05-29  Jan Hubicka  <jh@suse.cz>
5680
5681         * cgraph.h (struct varpool_node_set_def,
5682         struct cgraph_node_set_def): Remove unused AUX pointer.
5683         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
5684         VEC_empty macro.
5685
5686 2010-05-29  Jan Hubicka  <jh@suse.cz>
5687
5688         PR middle-end/44324
5689         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
5690
5691 2010-05-29  Richard Guenther  <rguenther@suse.de>
5692
5693         * lto-streamer.c (cached_bp): New global variable.
5694         (bitpack_create): Return the cached bitpack, if available.
5695         (bitpack_delete): Clear and cache the bitpack, if appropriate.
5696         (bp_pack_value): Remove redundant asserts.
5697
5698 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
5699
5700         PR middle-end/44306
5701         * tree-if-conv.c (is_true_predicate): New.
5702         (is_predicated): Use is_true_predicate.
5703         (add_to_predicate_list): Same.  Do not use unshare_expr.
5704         (add_to_dst_predicate_list): Same.
5705
5706 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
5707
5708         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
5709         field on edges.
5710         (predicate_bbs): Same.
5711         (clean_predicate_lists): Same.
5712         (find_phi_replacement_condition): Do not AND the predicate from
5713         edge->aux.
5714
5715 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5716
5717         PR bootstrap/44315
5718         * Makefile.in (build/gencondmd.o): Add a missing `\'.
5719
5720 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5721
5722         PR target/44261
5723         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
5724         (negdf2): Adjust expander pattern and use negdf2_slow.
5725         (negsf2): Likewise.
5726
5727 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
5728
5729         * basic-block.h (struct control_flow_graph): Move last_label_uid field
5730         up.
5731         * df.h (struct df_base_ref): Move regno field up.
5732         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
5733         * expr.h (struct separate_ops): Move location field up.
5734         * optabs.h (struct optab_d): Move libcall_basename field down.
5735         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
5736         * config/i386/i386.h (struct machine_function): Convert call_abi field
5737         into a bitfield.  Move cfa field to the end of the structure.
5738
5739 2010-05-29  Jan Hubicka  <jh@suse.cz>
5740
5741         * varpool.c (varpool_get_node): Fix lookup.
5742
5743 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
5744
5745         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
5746         RTL specific prototypes with #ifdef RTX_CODE.
5747         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
5748         * config/spu/t-spu-elf: Fix dependencies.
5749
5750         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
5751
5752 2010-05-29  Mike Stump  <mikestump@comcast.net>
5753
5754         PR bootstrap/44315
5755         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
5756         TM_H when building to avoid dependency loops.
5757
5758 2010-05-29  Jan Hubicka  <jh@suse.cz>
5759
5760         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
5761         refs and body; not the whole node for masters of materialized clones.
5762
5763 2010-05-29  Mike Stump  <mikestump@comcast.net>
5764
5765         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
5766
5767 2010-05-29  Jan Hubicka  <jh@suse.cz>
5768
5769         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
5770         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
5771         use of clone_function_name.
5772         * cgraph.h (cgraph_create_virtual_clone,
5773         cgraph_function_versioning): update prototypes.
5774         (clone_function_name): Declare.
5775         * ipa-cp.c (ipcp_insert_stage): Update call of
5776         cgraph_create_virtual_clone.
5777         * omp-low.c (create_omp_child_function_name): Use
5778         cgraph_create_virtual_clone.
5779         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
5780         (cgraph_function_versioning): Take SUFFIX argument; produce new name
5781         and make decl local.
5782
5783 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
5784
5785         * vec.h: Include statistics.h
5786         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
5787         with VEC_H.
5788
5789 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
5790
5791         * c-lex.c: Do not include c-tree.h.
5792         * c-pretty-print.c: Likewise.
5793         * c-opts.c: Likewise.
5794         * c-gimplify.c: Likewise.
5795         * c-common.c: Likewise.
5796         * c-dump.c: Likewise.  Include c-common.h.
5797
5798 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
5799
5800         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
5801         before including diagnostic-core.h.
5802         (c_cpp_error): New prototype moved from c-tree.h.
5803         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
5804         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
5805         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
5806         (c_cpp_error): Prototype moved to c-common.h.
5807         * Makefile.in: Update dependency for C_COMMON_H.
5808
5809 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
5810
5811         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
5812         * c-common.c (c_register_addr_space): Remove here.
5813         * c-decl.c (c_register_addr_space): Re-add here.
5814
5815 2010-05-28  Mike Stump  <mikestump@comcast.net>
5816
5817         * config/darwin-c.c: Remove c-tree.h include.
5818
5819 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
5820
5821         * gcc.c: Include diagnostic.h.
5822         (error_count): Remove.  All users changed to use errorcount.
5823         (programname): Remove.  All users changed to use progname.
5824         (fancy_abort, internal_error, fatal_error, error, warning, inform,
5825         fnotice): Remove.
5826         (execute): Don't include "Internal error" and bug reporting
5827         information in argument of internal_error call.
5828         (process_command): Don't increment error_count after calling
5829         perror_with_name.
5830         (input_filename): Rename to gcc_input_filename.  All users
5831         changed.
5832         (main): Call diagnostic_initialize.  Register delete_temp_files
5833         with atexit.  Use seen_error to test for errors.
5834         * gcc.h: Include diagnostic-core.h.
5835         (fatal_error, error, warning): Remove.
5836         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
5837         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
5838         (gcc.o): Update dependencies.
5839
5840 2010-05-28  Jeff Law  <law@redhat.com>
5841
5842         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
5843         functions.
5844         * ira.h (ira_bad_reload_regno): Declare
5845         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
5846
5847         * ira-color.c (update_curr_costs): Free updated hard reg costs.
5848         (ira_reassign_conflict_allocnos): Remove bogus asserts.
5849         (allocno_reload_assign): Likewise.
5850
5851 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
5852
5853         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
5854         build1_stat.
5855
5856 2010-05-28  Richard Guenther  <rguenther@suse.de>
5857
5858         PR lto/44312
5859         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
5860         Stream fixed-point constants mode.
5861         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
5862         and TYPE_PRECISION.
5863         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
5864         Stream fixed-point constants mode.
5865         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
5866         and TYPE_PRECISION.
5867
5868 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
5869
5870         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
5871         only place it was called from.
5872         (number_of_latch_executions): Do not return chrec_dont_know when the
5873         may_be_zero is a runtime condition: instead, return a COND_EXPR
5874         including the may_be_zero condition.
5875         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
5876         of nb_iterations.
5877         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
5878         COND_EXPRs.
5879
5880 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
5881
5882         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
5883         generate COND_EXPRs for degenerate_phi_result.
5884
5885 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
5886
5887         PR middle-end/44293
5888         * tree-if-conv.c (if_convertible_loop_p): Check the
5889         if-convertibility of phi nodes in non predicated BBs.
5890
5891 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
5892
5893         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
5894
5895 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
5896
5897         PR driver/15303
5898         * gcc.c (inform, warning, inform): New functions.
5899         (fatal_ice): Rename to internal_error; change cmsgid parameter to
5900         gmsgid.  All callers changed.
5901         (notice): Rename to fnotice; add parameter fp.  All callers changed.
5902         (fatal_error): Rename to fatal_signal.  All users changed.
5903         (fatal): Rename to fatal_error; change cmsgid parameter to
5904         gmsgid.  All callers changed.
5905         (process_command): Use warning instead of error for warnings.
5906         (end_going_arg): Don't use _() around argument of error.
5907         (do_spec_1): Use inform for message from %n specs.  Use warning
5908         instead of error for warnings.
5909         (main): Use inform for comparison messages.  Use warning for
5910         message about unused linker input.
5911         (error): Increment error_count.  Print "error: ".
5912         * gcc.h (fatal): Change to fatal_error.
5913         (warning): Declare.
5914         * config/darwin-driver.c (darwin_default_min_version): Use warning
5915         instead of fprintf for warnings.
5916         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
5917
5918 2010-05-28  Julian Brown  <julian@codesourcery.com>
5919
5920         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
5921         (*thumb2_addsi3_compare0_scratch): New.
5922         * config/arm/constraints.md (Pv): New.
5923         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
5924         for ARM mode only.
5925         (*addsi3_compare0_scratch): Likewise.
5926
5927 2010-05-28  Jan Hubicka  <jh@suse.cz>
5928
5929         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
5930         check.
5931         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
5932         only on local statics.
5933
5934 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
5935
5936         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
5937
5938 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5939
5940         PR bootstrap/44314
5941         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
5942         (OPTION_GLIBC): Define.
5943
5944 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
5945
5946         PR debug/41048
5947         * dwarf2out.c (double_int_type_size_in_bits): New function.
5948         (round_up_to_align): Change first argument and return value to
5949         double_int.
5950         (field_byte_offset): Work internally on double_ints.
5951
5952         PR target/43636
5953         * builtins.c (expand_movstr): Use a temporary pseudo instead
5954         of target even when target is not NULL and not const0_rtx, but
5955         fails movstr predicate.
5956         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
5957
5958 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
5959
5960         * final.c (rest_of_clean_state): Use %m in errors instead of
5961         strerror (errno).
5962         * gengtype.c (read_input_list, close_output_files): Use xstrerror
5963         instead of strerror.
5964         * toplev.c (process_options): Use %m in errors instead of strerror
5965         (errno).
5966         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
5967         (errno).
5968
5969 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
5970
5971         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
5972         (ix86_canonical_va_list_type): Make static.  Add declaration.
5973         (ix86_enum_va_list): Make static.  Reindent.
5974         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
5975         (ix86_canonical_va_list_type): Ditto.
5976         (ix86_enum_va_list): Ditto.
5977
5978 2010-05-28  Richard Guenther  <rguenther@suse.de>
5979
5980         * lto-wrapper.c (run_gcc): With -save-temps generate a
5981         user-visible ltrans filename.  Fixup ltrans unit numbering.
5982
5983 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
5984
5985         * c-common.c (c_common_nodes_and_builtins): Replace use
5986         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
5987         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
5988         to ix86_enum_va_list.
5989         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
5990         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
5991         (TARGET_ENUM_VA_LIST_P): Add hook description.
5992         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
5993         * target.h (gcc_target): Add enum_va_list hook.
5994
5995         PR bootstrap/44299
5996         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
5997         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
5998         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
5999
6000 2010-05-28  Alan Modra  <amodra@gmail.com>
6001
6002         PR target/44266
6003         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
6004         emit_library_call machinery to set up __tls_get_addr calls.
6005
6006 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6007
6008         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
6009
6010 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
6011
6012         Revert fix for PR c++/44188
6013         * c-common.c (is_typedef_decl): Revert the moving of  this
6014         definition ...
6015         * tree.c (is_typedef_decl): ... here.
6016         (typdef_variant_p): Revert the moving of this  definition
6017         here from gcc/cp/tree.c.
6018         * c-common.h (is_typedef_decl): Revert the moving of this
6019         declaration ...
6020         * tree.h (is_typedef_decl): ... here.
6021         (typedef_variant_p): Revert the moving of this  declaration here
6022         from gcc/cp/cp-tree.h
6023         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
6024         (gen_tagged_type_die): Revert the splitting out of ...
6025         (gen_type_die_with_usage): ... this function. Revert the anonymous
6026         tagged type handling.
6027         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
6028         typedefs naming anonymous tagged types.
6029
6030 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
6031
6032         * config/rs6000/rs6000-modes.def (PSImode): Delete.
6033
6034 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
6035
6036         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
6037         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
6038         throughout.
6039         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
6040         "xer" to "ca".
6041         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
6042         XER_REGS to CA_REGS throughout.
6043         * config/rs6000/rs6000.h: Same.
6044         (ADDITIONAL_REGISTER_NAMES): Add "xer".
6045         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
6046         that mode_iterator "P" is the size for arithmetic carries as well.
6047         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
6048
6049 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
6050
6051         PR bootstrap/44255
6052         * combine.c (struct rtx_subst_pair): Define unconditionally.
6053         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
6054         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
6055         Call make_compound_operation on pair->to.
6056         (propagate_for_debug): Don't call make_compound_operation here.
6057         Always use simplify_replace_fn_rtx.
6058
6059 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
6060
6061         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
6062         * config/xtensa/xtensa.c (override_options): Check
6063           TARGET_FORCE_NO_PIC and set flag_pic.
6064         * config/xtensa/xtensa.opt: Document -mforce-no-pic
6065
6066 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
6067
6068         PR bootstrap/44299
6069         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
6070         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
6071
6072 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
6073
6074         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
6075         toplev.h.
6076         * diagnostic.c: Don't include toplev.h.
6077         (progname): Define.  Moved from toplev.c.
6078         (seen_error): New function.
6079         * diagnostic.h: Include diagnostic-core.h.
6080         (diagnostic_t, emit_diagnostic): Don't declare here.
6081         * toplev.c (progname): Move to toplev.c.
6082         (emit_debug_global_declarations, compile_file, finalize,
6083         do_compile, toplev_main): Use seen_error.
6084         * toplev.h: Include diagnostic-core.h.
6085         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
6086         internal_error, warning, warning_at, error, error_n, error_at,
6087         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
6088         verbatim, fnotice, progname): Move to diagnostic-core.h.
6089         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
6090         (expand_builtin_expect): Use seen_error.
6091         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
6092         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
6093         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
6094         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
6095         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
6096         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
6097         errorcount for errors.
6098         * c-opts.c (c_common_finish): Use seen_error.
6099         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
6100         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
6101         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
6102         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
6103         (get_coverage_counts): Use seen_error.
6104         * dwarf2out.c (dwarf2out_finish): Use seen_error.
6105         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
6106         gimplify_body): Use seen_error.
6107         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
6108         * ipa-pure-const.c (gate_pure_const): Use seen_error.
6109         * ipa-reference.c (gate_reference): Use seen_error.
6110         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
6111         * lambda-code.c: Include diagnostic-core.h instead of
6112         diagnostic.h.
6113         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
6114         * lto-compress.c: Include diagnostic-core.h instead of
6115         diagnostic.h.
6116         * lto-section-in.c: Include diagnostic-core.h instead of
6117         diagnostic.h.
6118         * lto-streamer-out.c: Include diagnostic-core.h instead of
6119         diagnostic.h.
6120         * lto-streamer.c: Include diagnostic-core.h instead of
6121         diagnostic.h.
6122         (gate_lto_out): Use seen_error.
6123         * matrix-reorg.c: Include diagnostic-core.h instead of
6124         diagnostic.h.
6125         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
6126         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
6127         (gate_expand_omp, lower_omp_1): Use seen_error.
6128         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
6129         (rest_of_decl_compilation, rest_of_type_compilation,
6130         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
6131         * tree-cfg.c (label_to_block_fn): Use seen_error.
6132         * tree-inline.c (optimize_inline_calls): Use seen_error.
6133         * tree-mudflap.c (mudflap_finish_file): Use
6134         seen_error.
6135         * tree-optimize.c (gate_all_optimizations,
6136         gate_all_early_local_passes, gate_all_early_optimizations): Use
6137         seen_error.
6138         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
6139         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
6140         (varpool_remove_unreferenced_decls,
6141         varpool_assemble_pending_decls): Use seen_error.
6142         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
6143         (TOPLEV_H, DIAGNOSTIC_H): Update.
6144         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
6145         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
6146         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
6147         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
6148         coverage.o, lambda-code.o): Update dependencies.
6149
6150 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
6151
6152         PR c++/44188
6153         * c-common.c (is_typedef_decl): Move this definition ...
6154         * tree.c (is_typedef_decl): ... here.
6155         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
6156         * c-common.h (is_typedef_decl): Move this declaration ...
6157         * tree.h (is_typedef_decl): ... here.
6158         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
6159         * dwarf2out.c (is_naming_typedef_decl): New function.
6160         (gen_tagged_type_die): Split out of ...
6161         (gen_type_die_with_usage): ... this function. When an anonymous
6162         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
6163         is emitted for the typedef.
6164         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
6165         anonymous tagged types.
6166
6167 2010-05-27  Jason Merrill  <jason@redhat.com>
6168
6169         * print-tree.c (debug_vec_tree): New fn.
6170         (print_vec_tree): New fn.
6171         * tree.h: Declare them.
6172         * gdbinit.in (pvt): New command.
6173
6174         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
6175
6176         * gdbinit.in (pdd): New command.
6177
6178 2010-05-27  Jan Hubicka  <jh@suse.cz>
6179
6180         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
6181         (update_caller_keys): Return early if there are no callers;
6182         only update fibheap when decresing the key.
6183         (update_callee_keys): Avoid recursion.
6184         (decide_inlining_of_small_functions): When badness does not match;
6185         re-insert into fibheap.
6186
6187 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
6188
6189         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
6190         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
6191         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
6192         (ALL_HOST_OBJS): Now a union of the above two.
6193         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
6194         all files in ALL_HOST_FRONTEND_OBJS.
6195         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
6196
6197         * c-common.c: Pretend to be a backend file by undefining
6198         IN_GCC_FRONTEND (still need rtl.h here).
6199
6200 2010-05-27  Jan Hubicka  <jh@suse.cz>
6201
6202         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
6203         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
6204
6205 2010-05-27  Jan Hubicka  <jh@suse.cz>
6206
6207         * sched-ebb.c: Rename struct deps to struct deps_desc.
6208         * ddg.c: Likewise.
6209         * sel-sched-ir.c: Likewise.
6210         * sched-deps.c: Likewise.
6211         * sched-int.h: Likewise.
6212         * sched-rgn.c: Likewise.
6213
6214 2010-05-27  Jon Beniston  <jon@beniston.com>
6215
6216         PR 43726
6217         * config/lm32/lm32.h: Remove definition of
6218         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
6219
6220 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6221
6222         PR lto/44230
6223         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
6224
6225 2010-05-27  Richard Guenther  <rguenther@suse.de>
6226
6227         PR tree-optimization/44284
6228         * tree-vect-stmts.c (vectorizable_assignment): Handle
6229         sign-changing conversions as simple copy.
6230
6231 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6232
6233         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
6234         Bionic C library.
6235         (__gthread_active_p): Check for pthread_create if compiling against
6236         Bionic C library.
6237
6238 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6239
6240         Support compilation for Android platform.  Reimplement -mandroid.
6241
6242         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
6243         (*android*): Set ANDROID_DEFAULT.
6244         (arm*-*-linux*): Include linux-android.h.
6245         (arm*-*-eabi*): Don't include previous -mandroid implementation.
6246         * config/arm/eabi.h: Remove, move Android-specific parts ...
6247         * config/linux-android.h: ... here.  New file.
6248         * config/arm/eabi.opt: Rename to ...
6249         * config/linux-android.opt: ... this.
6250         (mandroid): Allow -mno-android option.  Initialize based on
6251         ANDROID_DEFAULT.
6252         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
6253         Move logic to corresponding LINUX_TARGET_* macros.
6254         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
6255         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
6256         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
6257         Android definitions.
6258         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
6259         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
6260         Document.
6261
6262 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6263
6264         Add support for Bionic C library
6265
6266         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
6267         macro.
6268         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
6269         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
6270
6271         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
6272         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
6273         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
6274         to support multiple C libraries.  Handle Bionic.
6275         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
6276         (BIONIC_DYNAMIC_LINKER64): Define.
6277         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
6278         Update.
6279         (TARGET_HAS_SINCOS): Enable for Bionic.
6280
6281         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
6282         the last option specified on command line take effect.
6283         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
6284         (mbionic): New.
6285         (mglibc, muclibc): Update.
6286
6287         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
6288         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
6289         DEFAULT_LIBC.
6290
6291         * doc/invoke.texi (-mglibc, -muclibc): Update.
6292         (-mbionic): Document.
6293
6294 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6295
6296         * c-common.h (c_register_addr_space): Add prototype.
6297         (ADDR_SPACE_KEYWORD): Remove.
6298         * c-common.c (c_register_addr_space): New function.
6299         (c_addr_space_name): Reimplement.
6300         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
6301
6302         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
6303         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
6304
6305         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
6306         Remove TARGET_ADDR_SPACE_KEYWORDS.
6307
6308 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
6309
6310         * input.c: New file.
6311         * input.h (main_input_filename): Move declaration to toplev.h.
6312         * toplev.c (input_location, line_table): Move to input.c
6313         * toplev.h (main_input_filename): Move declaration from input.h.
6314         * tree.c (expand_location): Move to input.c.
6315         * Makefile.in (OBJS-common): Add input.o.
6316         (input.o): Add dependencies.
6317
6318 2010-05-27  Richard Guenther  <rguenther@suse.de>
6319
6320         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
6321         for non-existant files.
6322         (fork_execute): Mark args_name file as deleted.
6323
6324 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
6325
6326         PR bootstrp/44287
6327         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
6328         (narrow_signed_type): Likewise.
6329
6330 2010-05-26  Jan Hubicka  <jh@suse.cz>
6331
6332         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
6333         edge only when checking is enabled; check using former_clone_of;
6334         check inline clones too.
6335         (cgraph_materialize_clone): Record former_clone_of pointer.
6336         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
6337         combining redirections; dump args_to_skip bitmap
6338         (cgraph_materialize_all_clones): Do no redirection here.
6339         * ipa-inline.c (inline_transform): Do redirection here.
6340         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
6341         cheking only).
6342
6343 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6344
6345         * config/avr/avr-c.c: Do not include regs.h.
6346         Include cpplib.h for cpp_define and tree.h for c-common.h.
6347         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
6348         * config/avr/t-avr: Fix dependencies for avr-c.o.
6349
6350 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6351
6352         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
6353         string instead of SYMBOL_REF rtx.
6354         * rtl.h (set_stack_check_libfunc): Move prototype from here...
6355         * libfuncs.h: ...to here.  Adjust for explow.c change.
6356
6357 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
6358
6359         * pretty-print.c: Don't include ggc.h.
6360         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
6361         (identifier_to_locale): Use them for allocation.
6362         * pretty-print.h (identifier_to_locale_alloc,
6363         identifier_to_locale_free): Declare.
6364         * toplev.c (alloc_for_identifier_to_locale): New.
6365         (general_init): Set identifier_to_locale_alloc and
6366         identifier_to_locale_free.
6367         * Makefile.in (pretty-print.o): Update dependencies.
6368
6369 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6370
6371         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
6372         pointer types if they have different alignment or mode.
6373
6374 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
6375
6376         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6377         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6378         * config/sparc/sparc-protos.h (function_value): Remove declaration.
6379         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
6380         sparc_function_value_regno_p): New functions.
6381         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6382         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6383         (function_value): Rename to...
6384         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
6385         argument to 'outgoing'.
6386         (function_arg_record_value, function_arg_union_value,
6387         function_arg_vector_value): Update comment.
6388
6389 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6390
6391         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
6392         (fde_needed_for_eh_p): New predicate.
6393         (output_call_frame_info): Use it throughout to decide whether FDEs
6394         are needed for EH purpose.
6395         (dwarf2out_begin_prologue): Reorder assignments.
6396
6397 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6398
6399         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
6400         special case loop->header.
6401         (is_predicated): New.
6402         (if_convertible_loop_p): Call it.
6403
6404 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6405
6406         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
6407         iterator in parameter.  Do not generate code during the analysis.
6408         (tree_if_convert_cond_stmt): Removed.
6409         (tree_if_convert_stmt): Removed.
6410         (predicate_bbs): New.
6411         (if_convertible_loop_p): Call predicate_bbs.
6412         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
6413         now contains all the analysis part.
6414
6415 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6416
6417         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
6418         statements in the analysis part.
6419         (tree_if_convert_stmt): Update comment.
6420         (remove_conditions_and_labels): New.
6421         (combine_blocks): Call remove_conditions_and_labels.
6422         (tree_if_conversion): Update comment.
6423
6424 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6425
6426         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
6427         than 2 predecessors or more than 2 successors.
6428
6429 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6430
6431         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
6432         of loops in which the data dependence analysis fails.
6433
6434 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6435
6436         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
6437         CDI_POST_DOMINATORS.
6438         (tree_if_conversion): Same.
6439
6440 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6441
6442         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
6443
6444 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
6445
6446         * tree-if-conv.c: Update copyright years.  Fix comments.
6447         Fix indentation.
6448
6449 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
6450
6451         * builtin-types.def (BT_INT128): New primitive type.
6452         (BT_UINT128): Likewise.
6453         * c-common.c (c_common_r): Add __int128 keyword.
6454         (c_common_type_for_size): Handle __int128.
6455         (c_common_type_for_mode): Likewise.
6456         (c_common_signed_or_unsigned_type): Likewise.
6457         (c_common_nodes_and_builtins): Add builtin type
6458         if target supports 128-bit integer scalar.
6459         * c-common.h (enum rid): Add RID_INT128.
6460         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
6461         if target supports 128-bit integer scalar.
6462         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
6463         (finish_declspecs): Likewise.
6464         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
6465         (c_token_starts_declspecs): Likewise.
6466         (c_parser_declspecs): Likewise.
6467         (c_parser_attributes): Likewise.
6468         (c_parser_objc_selector): Likewise.
6469         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
6470         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
6471         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
6472         * tree.c (make_or_reuse_type): Likewise.
6473         (make_unsigned_type): Likewise.
6474         (build_common_tree_nodes_2): Likewise.
6475         * tree.h (enum integer_type_kind): Add itk_int128 and
6476         itk_unsigned_int128.
6477         (int128_integer_type_node): New define.
6478         (int128_unsigned_type_node): New define.
6479         * doc/extend.texi: Add documentation about __int128 type.
6480
6481 2010-05-26  Richard Guenther  <rguenther@suse.de>
6482
6483         * tree-ssa-sccvn.c (copy_nary): Adjust.
6484         (copy_phis): Rename to ...
6485         (copy_phi): ... this.  Adjust.
6486         (copy_references): Rename to ...
6487         (copy_reference): ... this.  Adjust.
6488         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
6489         result into the valid table.
6490
6491 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6492
6493         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
6494         insn-config.h, insn-codes.h, recog.h, and optabs.h.
6495
6496 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6497
6498         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
6499
6500 2010-05-26  Richard Guenther  <rguenther@suse.de>
6501
6502         * opts.c (common_handle_option): Handle OPT_Ofast.
6503
6504 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
6505
6506         * diagnostic.c: Don't include opts.h.
6507         (permissive_error_option): Define.
6508         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
6509         for classify_diagnostic.  Don't use memset for
6510         classify_diagnostic.  Initialize new and recently added fields.
6511         (diagnostic_classify_diagnostic): Use context->n_opts instead of
6512         N_OPTS.
6513         (diagnostic_report_diagnostic): Pass context parameter to
6514         diagnostic_report_warnings_p.  Use option_enabled and option_name
6515         hooks from context.
6516         (emit_diagnostic): Use permissive_error_option.
6517         (permerror): Likewise.
6518         * diagnostic.h: Don't include options.h.
6519         (struct diagnostic_context): Add n_opts, opt_permissive,
6520         inhibit_warnings, warn_system_headers, option_enabled and
6521         option_name fields.  Change classify_diagnostic to a pointer.
6522         * opts-diagnostic.h: New file.
6523         * opts.c: Include opts-diagnostic.h.
6524         (common_handle_option): Set global_dc fields for -Wfatal-errors,
6525         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
6526         (option_name): New function.
6527         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
6528         (c_common_handle_option): Set global_dc->permissive for
6529         -fpermissive.
6530         * c-common.c (c_cpp_error): Save and restore
6531         global_dc->warn_system_headers, not variable warn_system_headers.
6532         * toplev.c: Include opts-diagnostic.h.
6533         (general_init): Update call to diagnostic_initialize.  Set
6534         global_dc->show_column, global_dc->option_enabled and
6535         global_dc->option_name.
6536         (process_options): Don't set global_dc fields here.
6537         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
6538         (diagnostic.o, opts.o, toplev.o): Update dependencies.
6539
6540 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6541
6542         * config/picochip/picochip.md (movsi): Split a movsi from a
6543         const after reload.
6544
6545 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6546
6547         * ggc-zone.c: Update copyright year.
6548         (poison_region): Mark memory for Valgrind as undefined before
6549         memset () call and inaccessible afterwards.
6550         (ggc_pch_total_size): Change type of i to int.
6551
6552 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6553
6554         * ggc-common.c (ggc_free_overhead): Allow empty slot.
6555
6556 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6557
6558         * ggc-common.c: Update copyright year.
6559         (ggc_rlimit_bound): Remove prototype.  Compile only if
6560         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
6561         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
6562         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
6563         (ggc_min_heapsize_heuristic): Likewise.
6564
6565 2010-05-26  Richard Guenther  <rguenther@suse.de>
6566
6567         PR rtl-optimization/44164
6568         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
6569         no-common access-path disambiguation.
6570         (indirect_ref_may_alias_decl_p): Adjust.
6571         (indirect_refs_may_alias_p): Likewise.
6572         (refs_may_alias_p_1): Likewise.
6573
6574 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6575
6576         * c-typeck.c: Do not include expr.h.
6577
6578 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
6579
6580         * rtl.h (decl_default_tls_model): Move prototype from here...
6581         * output.h: ...to here.
6582         * c-decl.c: Do not include rtl.h.
6583         * c-pragma.c: Likewise.
6584         * c-parser.c: Likewise.
6585         * c-gimplify.c: Likewise.  And also not hard-reg-set.
6586         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
6587         FIXME note for it.  Add a FIXME note for expr.h.
6588         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
6589         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
6590         defined.
6591
6592 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
6593
6594         PR target/44199
6595         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
6596         or total_size is larger than red zone size for non-V4 ABI, emit a
6597         stack_tie resp. frame_tie insn before stack pointer restore.
6598         * config/rs6000/rs6000.md (frame_tie): New insn.
6599
6600 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6601
6602         * function.h (struct function): Add can_throw_non_call_exceptions bit.
6603         * lto-streamer-in.c (input_function): Stream it in.
6604         * lto-streamer-out.c (output_function): Stream it out.
6605         * function.c (allocate_struct_function): Set it.
6606         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
6607         for flag_non_call_exceptions.
6608         * cfgbuild.c (control_flow_insn_p): Likewise.
6609         (make_edges): Likewise.
6610         * cfgexpand.c (expand_stack_alignment): Likewise.
6611         * combine.c (distribute_notes): Likewise.
6612         * cse.c (cse_extended_basic_block): Likewise.
6613         * except.c (insn_could_throw_p): Likewise.
6614         * gcse.c (simple_mem): Likewise.
6615         * ipa-pure-const.c (check_call): Likewise.
6616         (check_stmt ): Likewise.
6617         * lower-subreg.c (lower-subreg.c): Likewise.
6618         * optabs.c (emit_libcall_block): Likewise.
6619         (prepare_cmp_insn): Likewise.
6620         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
6621         * postreload.c (rest_of_handle_postreload): Likewise.
6622         * reload1.c (reload_as_needed): Likewise.
6623         (emit_input_reload_insns): Likewise.
6624         (emit_output_reload_insns): Likewise.
6625         (fixup_abnormal_edges): Likewise.
6626         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
6627         * store-motion.c (find_moveable_store): Likewise.
6628         * tree-eh.c (stmt_could_throw_p): Likewise.
6629         (tree_could_throw_p): Likewise.
6630         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6631         * config/arm/arm.c (arm_expand_prologue): Likewise.
6632         (thumb1_expand_prologue): Likewise.
6633         * config/rx/rx.md (cbranchsf4): Likewise.
6634         (cmpsf): Likewise.
6635         * config/s390/s390.c (s390_emit_prologue): Likewise.
6636         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
6637         (inline_forbidden_into_p): New predicate.
6638         (expand_call_inline): Use it to forbid inlining.
6639         (tree_can_inline_p): Likewise.
6640
6641 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6642
6643         * config/i386/i386-c.c: Do not include rtl.h.
6644         * config/i386/t-i386: Update dependencies.
6645
6646 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6647
6648         * attribs.c: Do not include rtl.h.
6649         * Makefile.in: Update dependencies.
6650
6651 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
6652
6653         * double-int.h (double_int_and): New.
6654         * combine.c (try_combine): Clean up, use double_int_* and
6655         immed_double_int_const functions.
6656
6657 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6658
6659         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
6660         stderr to /dev/null instead of grep -q.
6661         * configure: Regenerate.
6662
6663 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
6664
6665         * Makefile.in (EXCEPT_H): Fix typo.
6666
6667 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
6668
6669         * ira-build.c (update_conflict_hard_reg_costs): New.
6670         (ira_build): Call update_conflict_hard_reg_costs.
6671
6672 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
6673
6674         PR debug/41371
6675         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
6676         ENABLE_CHECKING.
6677         (intersect_loc_chains): Walk the s2var's loc_chain together
6678         with s1node chain as long as the locations are equal, don't
6679         call find_loc_in_1pdv in that case.
6680
6681         PR debug/42801
6682         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
6683         (copy_bind_expr): ... instead of here.
6684         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
6685         if the block hasn't been remapped.
6686         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
6687         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
6688
6689 2010-05-25  Richard Guenther  <rguenther@suse.de>
6690
6691         PR middle-end/44069
6692         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
6693         out-of-bounds array accesses.
6694
6695 2010-05-25  Richard Guenther  <rguenther@suse.de>
6696
6697         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
6698         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
6699         (run_gcc): Re-organize to make cleanup easier.
6700
6701 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6702
6703         * config/s390/s390.c (optimization_options): Fix and move the
6704         flag_prefetch_loop_arrays override ...
6705         (override_options): ... here.
6706
6707 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
6708
6709         * diagnostic.c: Don't include plugin.h.
6710         (diagnostic_report_diagnostic): Don't handle plugins specially
6711         here.  Pass context to internal_error callback.
6712         * diagnostic.h (struct diagnostic_context): Add context parameter
6713         to internal_error callback.
6714         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
6715         * plugin.h (struct diagnostic_context): Declare.
6716         (warn_if_plugins, plugins_internal_error_function): Declare.
6717         * toplev.c (general_init): Set global_dc->internal_error.
6718         * Makefile.in (diagnostic.o): Update dependencies.
6719
6720 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
6721
6722         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
6723         * config/rs6000/t-darwin64: New.
6724         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
6725         build crt2.
6726
6727 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
6728
6729         PR 44203
6730         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
6731         match the original (and intended) behaviour before r159557.  This
6732         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
6733         in two ways.
6734
6735 2010-05-25  Richard Guenther  <rguenther@suse.de>
6736
6737         * doc/invoke.texi: Document -Ofast.
6738         * target.h (struct gcc_target): Add handle_ofast.
6739         * target-def.h (TARGET_HANDLE_OFAST): Add.
6740         (TARGET_INITIALIZER): Adjust.
6741         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
6742         * common.opt (Ofast): Add.
6743
6744 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
6745
6746         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
6747         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
6748
6749 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
6750
6751         PR target/43610
6752         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
6753         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
6754         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
6755         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
6756
6757 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
6758
6759         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
6760         DW_OP_minus with negated offset instead of DW_OP_plus.
6761         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
6762
6763 2010-05-25  Wei Guozhi  <carrot@google.com>
6764
6765         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
6766         tst instruction and a new alternative.
6767         * config/arm/constraints.md (Pu): New constraint.
6768
6769 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
6770
6771         * function.c (assign_stack_local_1): Initialize variable
6772         to avoid warning when bootstrapping at -O3.
6773
6774 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
6775
6776         * configure.ac (all_lang_makefiles): Remove everything related to it.
6777         * configure: Regenerate.
6778         * Makefile.in: Fix reference to ada Make-lang.in.
6779         Remove support for LANG_MAKEFILES.
6780
6781 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
6782             Sandra Loosemore  <sandra@codesourcery.com>
6783
6784         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
6785         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
6786         description.  Add arm_neon_fp16_ok.
6787         (Add Options): Add arm_neon and arm_neon_fp16.
6788
6789 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
6790
6791         * diagnostic.c: Don't include flags.h.
6792         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
6793         context parameters.  Check flags in the context passed as a parameter.
6794         (diagnostic_build_prefix): Add context parameter.  Check
6795         show_column flag in context.
6796         (diagnostic_action_after_output): Check fatal_errors flag in context.
6797         (diagnostic_report_current_module): Check show_column flag in context.
6798         (default_diagnostic_starter): Update call to
6799         diagnostic_build_prefix.
6800         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
6801         (emit_diagnostic): Pass context to permissive_error_kind.
6802         (permerror): Pass context to permissive_error_kind.
6803         * diagnostic.h (struct diagnostic_context): Add show_column,
6804         pedantic_errors, permissive and fatal_errors fields.
6805         (diagnostic_build_prefix): Update prototype.
6806         * langhooks.c
6807         * toplev.c (process_options): Set flags in global_dc from
6808         flag_show_column, flag_pedantic_errors, flag_permissive,
6809         flag_fatal_errors.
6810         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
6811         to diagnostic_build_prefix.
6812         * Makefile.in (diagnostic.o): Update dependencies.
6813
6814 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6815
6816         * config/i386/ia32intrin.h (__crc32q): Define only if
6817         __SSE4_2__ is defined.
6818
6819 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
6820
6821         PR target/44132
6822         PR middle-end/43602
6823         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
6824         DECL_VISIBILITY_SPECIFIED.
6825         (emutls_decl): Set DECL_PRESERVE_P and copy
6826         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
6827         (emutls_finalize_control_var): New callback.
6828         (emutls_finish): Finalize emutls control variables.
6829         * toplev.c (compile_file): Move the call to emutls_finish ()
6830         before varpool_assemble_pending_decls ().
6831
6832 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
6833
6834         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
6835         added to the preprocessor condition.
6836
6837 2010-05-24  Paul Brook  <paul@codesourcery.com>
6838
6839         * gengtype-lex.l: Add HARD_REG_SET.
6840         * expr.c (expand_expr_real_1): Record writes to hard registers.
6841         * function.c (rtl_data): Add asm_clobbers.
6842         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
6843         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
6844         Use crtl->asm_clobbers.
6845
6846 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6847
6848         * doc/makefile.texi (Makefile): Mention stages 'profile'
6849         and 'feedback' for profiledbootstrap.
6850
6851 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
6852
6853         PR target/44245
6854         * config/i386/i386.c (def_builtin): Properly check
6855         OPTION_MASK_ISA_64BIT.
6856
6857 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
6858
6859         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
6860         typedefs with different but compatible types.  Allow duplicate
6861         typedefs with the same type except for pedantic non-C1X, but give
6862         warning for variably modified types.
6863         * c-typeck.c (tagged_types_tu_compatible_p,
6864         function_types_compatible_p, type_lists_compatible_p,
6865         comptypes_internal): Add parameter different_types_p; set
6866         *different_types_p for different but compatible types.  All
6867         callers changed.
6868         (comptypes_check_different_types): New.
6869         * c-tree.h (comptypes_check_different_types): Declare.
6870
6871 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
6872
6873         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
6874         * jump.c: Include basic-block.h.
6875         * profile.c: Likewise.
6876         * tree-profile.c: Likewise.
6877         * coverage.c: Likewise.
6878         * basic-block.h (optimize_function_for_size_p): Move to function.h.
6879         (optimize_function_for_speed_p): Likewise.
6880         * function.h (optimize_function_for_size_p,
6881         optimize_function_for_speed_p): Moved here from basic-block.h.
6882         * Makefile.in: Update dependencies.
6883
6884 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6885
6886         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
6887         before calling make; allow override through $MAKE.
6888         * doc/invoke.texi (Optimize Options): Document override.
6889
6890 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
6891
6892         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
6893         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6894         (rs6000_mode_dependent_address_ptr): Make static.
6895         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6896         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
6897         Remove.
6898
6899 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
6900
6901         PR target/43869
6902         * config/i386/i386.c: Make sure that the correct regparm is passed.
6903
6904 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
6905
6906         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
6907         * sbitmap.c: ...to here to internalize sbitmap element access.
6908         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
6909         Explain why basic-block.h is included.
6910         * function.h: Include tm.h for CUMULATIVE_ARGS.
6911         * Makefile.in: Update dependencies.
6912
6913 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
6914
6915         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
6916         New core types.
6917         * sbitmap.h (struct sbitmap_def): Do not typedef here.
6918         * sbitmap.c: Include sbitmap.h.
6919         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
6920         hard-reg-set.h.  Split everything related to regsets out from here...
6921         * regset.h: ...to here.  New file.
6922         * df.h: Include regset.h and sbitmap.h.
6923         * tree-flow.h: Likewise.
6924         * cfgloop.h: Likewise.
6925         * except.h: Do not include sbitmap.h.  Include hashtab.h.
6926         * cgraph.h: Include vec.h and function.h.
6927         * reload.h (struct insn_chain): Change types of live_throughout
6928         and dead_or_set from regset_head to bitmap_head.
6929         (compute_use_by_pseudos): Be defined also if regset.h is not included.
6930         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
6931         spilled_regs from regset_head to bitmap_head to avoid dependency
6932         in regset.h.
6933         * sel-sched-ir.h: Include regset.h.
6934         * reload.c: Include df.h before reload.h.
6935         * caller-save.c: Likewise.
6936         * reload1.c: Likewise.
6937         * ira.c: Likewise.
6938         (mark_elimination): Update type of r to bitmap, consistent with
6939         DF_LR_IN.
6940         * dominance.c: Include bitmap.h.
6941         * modulo-sched.c: Include df.h.
6942         * cfganal.c: Include bitmap.h and sbitmap.h.
6943         * cfgbuild.c: Include sbitmap.h.
6944         * lcm.c: Include sbitmap.h.
6945         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
6946         * domwalk.c: Include sbitmap.h, exclude ggc.h.
6947         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
6948         * cselib.c: Include bitmap.h.
6949         * tree-optimize.c: Include regset.h.
6950         * stmt.c: Include bitmap.h.
6951         * Makefile.in: Update dependencies.
6952
6953 2010-05-22  Jan Hubicka  <jh@suse.cz>
6954
6955         * cgraph.h (struct varpool_node): Add same_comdat_group.
6956         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
6957         pointer.
6958         (output_varpool): Update call of lto_output_varpool_node.
6959         (input_varpool): Read same_comdat_group pointer.
6960         (input_varpool_1): Fixup same_comdat_group pointer.
6961         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
6962         group is needed, all are.
6963         * varpool.c (varpool_remove_node): Remove node from same comdat group
6964         linklist too.
6965         (varpool_analyze_pending_decls): Walk same comdat groups.
6966
6967 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
6968
6969         * rtl.h (union rtunion_def): Remove rt_bit member.
6970         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
6971         * print-rtl (print_rtx): Do not print the member.
6972         * gengtype.c (adjust_field_rtx_def): Do not handle it.
6973         * gengenrtl.c (type_from_format): Likewise.
6974         (accessor_from_format): Likewise.
6975
6976 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
6977
6978         * dbgcnt.c: Include toplev.h instead of errors.h.
6979         * ira-emit.c: Don't include errors.h.
6980         * ira.c: Include toplev.h instead of errors.h.
6981         * lto-compress.c: Include toplev.h instead of errors.h.
6982         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
6983         ira.o, dbgcnt.o): Update dependencies.
6984
6985 2010-05-22  Richard Guenther  <rguenther@suse.de>
6986
6987         * gimple.c (gimple_types_compatible_p): Check type qualifications
6988         before merging pointer to complete and pointer to incomplete type.
6989         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
6990         we use our own resolution algorithm.  The gold linker plugin
6991         doesn't do the job we want it to do here.
6992
6993 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
6994
6995         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6996         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6997         (sparc_mode_dependent_address_p): New function.
6998
6999 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7000
7001         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
7002
7003         * timevar.c: Do not include any core headers.
7004         (timevar_print): De-i18n-ize.
7005         (print_time): Likewise.
7006         * timevar.h (timevar_push, timevar_pop): Make inline functions.
7007
7008 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
7009
7010         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
7011         langhooks-def.h.
7012         (diagnostic_initialize): Initialize x_data not last_function.
7013         (diagnostic_report_current_function): Move to tree-diagnostic.c.
7014         (default_diagnostic_starter): Call
7015         diagnostic_report_current_module not
7016         diagnostic_report_current_function.
7017         (diagnostic_report_diagnostic): Initialize x_data not
7018         abstract_origin.
7019         (verbatim): Likewise.
7020         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
7021         x_data.
7022         (struct diagnostic_context): Change last_function to x_data.
7023         (diagnostic_auxiliary_data): Replace with
7024         diagnostic_context_auxiliary_data and
7025         diagnostic_info_auxiliary_data.
7026         (diagnostic_last_function_changed, diagnostic_set_last_function,
7027         diagnostic_report_current_function): Move to tree-diagnostic.h.
7028         (print_declaration, dump_generic_node, print_generic_stmt,
7029         print_generic_stmt_indented, print_generic_expr,
7030         print_generic_decl, debug_c_tree, dump_omp_clauses,
7031         print_call_name, debug_generic_expr, debug_generic_stmt,
7032         debug_tree_chain, default_tree_printer): Move to
7033         tree-pretty-print.h.
7034         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
7035         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
7036         gimple-pretty-print.h.
7037         * pretty-print.c: Don't include tree.h
7038         (pp_base_format): Don't handle %K here.
7039         (pp_base_tree_identifier): Move to tree-pretty-print.c.
7040         * pretty-print.h (text_info): Change abstract_origin to x_data.
7041         (pp_tree_identifier, pp_unsupported_tree,
7042         pp_base_tree_identifier): Move to tree-pretty-print.h.
7043         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
7044         tree-pretty-print.h: New files.
7045         * tree-pretty-print.c: Include tree-pretty-print.h.
7046         (percent_K_format): New.  Moved from pretty-print.c.
7047         (pp_base_tree_identifier): Move from pretty-print.c.
7048         * c-objc-common.c: Include tree-pretty-print.h.
7049         (c_tree_printer): Handle %K here.
7050         * langhooks.c: Include tree-diagnostic.h.
7051         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
7052         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
7053         (default_tree_printer): Handle %K using percent_K_format.
7054         (general_init): Use default_tree_diagnostic_starter.
7055         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
7056         (free_lang_data): Use default_tree_diagnostic_starter.
7057         * c-pretty-print.c: Include tree-pretty-print.h.
7058         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7059         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7060         * dwarf2out.c: Include tree-pretty-print.h.
7061         * except.c: Include tree-pretty-print.h.
7062         * gimple-pretty-print.c: Include tree-pretty-print.h and
7063         gimple-pretty-print.h.
7064         * gimplify.c: Include tree-pretty-print.h.
7065         * graphite-poly.c: Include tree-pretty-print.h and
7066         gimple-pretty-print.h.
7067         * ipa-cp.c: Include tree-pretty-print.h.
7068         * ipa-inline.c: Include gimple-pretty-print.h.
7069         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7070         * ipa-pure-const.c: Include gimple-pretty-print.h.
7071         * ipa-struct-reorg.c: Include tree-pretty-print.h and
7072         gimple-pretty-print.h.
7073         * ipa-type-escape.c: Include tree-pretty-print.h.
7074         * print-rtl.c: Include tree-pretty-print.h.
7075         * print-tree.c: Include gimple-pretty-print.h.
7076         * sese.c: Include tree-pretty-print.h.
7077         * tree-affine.c: Include tree-pretty-print.h.
7078         * tree-browser.c: Include tree-pretty-print.h.
7079         * tree-call-cdce.c: Include gimple-pretty-print.h.
7080         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
7081         * tree-chrec.c: Include tree-pretty-print.h.
7082         * tree-data-ref.c: Include tree-pretty-print.h and
7083         gimple-pretty-print.h.
7084         * tree-dfa.c: Include tree-pretty-print.h.
7085         * tree-if-conv.c: Include tree-pretty-print.h and
7086         gimple-pretty-print.h.
7087         * tree-inline.c: Include tree-pretty-print.h.
7088         * tree-into-ssa.c: Include tree-pretty-print.h and
7089         gimple-pretty-print.h.
7090         * tree-nrv.c: Include tree-pretty-print.h.
7091         * tree-object-size.c: Include tree-pretty-print.h and
7092         gimple-pretty-print.h.
7093         * tree-outof-ssa.c: Include tree-pretty-print.h and
7094         gimple-pretty-print.h.
7095         * tree-parloops.c: Include tree-pretty-print.h and
7096         gimple-pretty-print.h.
7097         * tree-predcom.c: Include tree-pretty-print.h and
7098         gimple-pretty-print.h.
7099         * tree-scalar-evolution.c: Include tree-pretty-print.h and
7100         gimple-pretty-print.h.
7101         * tree-sra.c: Include tree-pretty-print.h.
7102         * tree-ssa-address.c: Include tree-pretty-print.h.
7103         * tree-ssa-alias.c: Include tree-pretty-print.h.
7104         * tree-ssa-ccp.c: Include tree-pretty-print.h and
7105         gimple-pretty-print.h.
7106         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
7107         * tree-ssa-copy.c: Include tree-pretty-print.h and
7108         gimple-pretty-print.h.
7109         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
7110         * tree-ssa-dce.c: Include tree-pretty-print.h and
7111         gimple-pretty-print.h.
7112         * tree-ssa-dom.c: Include tree-pretty-print.h and
7113         gimple-pretty-print.h.
7114         * tree-ssa-dse.c: Include gimple-pretty-print.h.
7115         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
7116         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
7117         * tree-ssa-live.c: Include tree-pretty-print.h and
7118         gimple-pretty-print.h.
7119         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
7120         gimple-pretty-print.h.
7121         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
7122         gimple-pretty-print.h.
7123         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
7124         gimple-pretty-print.h.
7125         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
7126         gimple-pretty-print.h.
7127         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
7128         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
7129         * tree-ssa-operands.c: Include tree-pretty-print.h and
7130         gimple-pretty-print.h.
7131         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
7132         gimple-pretty-print.h.
7133         * tree-ssa-pre.c: Include tree-pretty-print.h and
7134         gimple-pretty-print.h.
7135         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
7136         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
7137         gimple-pretty-print.h.
7138         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
7139         gimple-pretty-print.h.
7140         * tree-ssa-sink.c: Include gimple-pretty-print.h.
7141         * tree-ssa-ter.c: Include tree-pretty-print.h and
7142         gimple-pretty-print.h.
7143         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
7144         * tree-ssa.c: Include tree-pretty-print.h and
7145         gimple-pretty-print.h.
7146         * tree-stdarg.c: Include gimple-pretty-print.h.
7147         * tree-switch-conversion.c: Include gimple-pretty-print.h.
7148         * tree-tailcall.c: Include tree-pretty-print.h and
7149         gimple-pretty-print.h.
7150         * tree-vect-data-refs.c: Include tree-pretty-print.h and
7151         gimple-pretty-print.h.
7152         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
7153         gimple-pretty-print.h.
7154         * tree-vect-loop.c: Include tree-pretty-print.h and
7155         gimple-pretty-print.h.
7156         * tree-vect-patterns.c: Include gimple-pretty-print.h.
7157         * tree-vect-slp.c: Include tree-pretty-print.h and
7158         gimple-pretty-print.h.
7159         * tree-vect-stmts.c: Include tree-pretty-print.h and
7160         gimple-pretty-print.h.
7161         * tree-vectorizer.c: Include tree-pretty-print.h.
7162         * tree-vrp.c: Include tree-pretty-print.h and
7163         gimple-pretty-print.h.
7164         * value-prof.c: Include tree-pretty-print.h and
7165         gimple-pretty-print.h.
7166         * var-tracking.c: Include tree-pretty-print.h.
7167         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
7168         (tree-diagnostic.o): New dependencies.
7169         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
7170         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
7171         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
7172         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
7173         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
7174         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
7175         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
7176         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
7177         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
7178         tree-ssa-address.o, tree-ssa-loop-niter.o,
7179         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
7180         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
7181         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
7182         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
7183         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
7184         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
7185         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
7186         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
7187         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
7188         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
7189         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
7190         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
7191         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
7192         tree-switch-conversion.o, var-tracking.o, value-prof.o,
7193         cfgexpand.o, pretty-print.o): Update dependencies.
7194
7195 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
7196
7197         * tree-ssa-structalias.c: Remove tm_p.h from include.
7198
7199 2010-05-21  Jeff Law  <law@redhat.com>
7200
7201         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
7202
7203 2010-05-21  Jason Merrill  <jason@redhat.com>
7204
7205         * tree-eh.c (cleanup_is_dead_in): New.
7206         (lower_try_finally): Don't generate a dead cleanup region.
7207         (lower_cleanup): Likewise.
7208
7209 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
7210
7211         PR debug/44223
7212         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
7213         unchain each use from the cyclic next_regno_use chain first.
7214
7215 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7216
7217         * real: Do not include gmp.h, mpfr.h, and mpc.h.
7218         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
7219         (real_value_negate, real_value_abs): New prototypes.
7220         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
7221         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
7222         new include file for interface between MPFR and REAL_VALUE_TYPE.
7223         * real.c: Include realmpfr.h.
7224         (real_arithmetic2): Remove legacy function.
7225         (real_value_negate): New.
7226         (real_value_abs): New.
7227         (mfpr_from_real, real_from_mpfr): Move from here...
7228         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
7229         * builtins.c: Include realmpfr.h.
7230         * fold-const.c: Include realmpfr.h.
7231         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
7232         (fold_negate_const): Likewise.
7233         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
7234         * toplev.c: Include realmpfr.h.
7235         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
7236         and real_value_negate.
7237         * fixed-value.c (check_real_for_fixed_mode): Likewise.
7238         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
7239         (vfp3_const_double_index): Likewise.
7240         (arm_print_operand): Likewise.
7241         * Makefile.in: Update dependencies.
7242
7243 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7244
7245         * config/s390/s390.c (override_options): Increase the default
7246         of max-completely-peel-times.
7247
7248 2010-05-21  Julian Brown  <julian@codesourcery.com>
7249             Mark Mitchell  <mark@codesourcery.com>
7250
7251         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
7252         sibling calls for Thumb-1.
7253         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
7254         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
7255         Thumb-2.
7256         (*call_insn, *call_value_insn): Don't use for Thumb-2.
7257         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
7258         for Thumb-2.
7259         (return): New expander.
7260         (*arm_return): New name for ARM return insn.
7261         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
7262
7263 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
7264
7265         * config.gcc (sparc64-*-rtems*): New target.
7266
7267 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
7268
7269         * tree.c (build_function_decl_skip_args): Fix grammar.
7270         (build_function_type_list_1): Fix typos, adjust formatting.
7271
7272 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
7273
7274         * tree.h: Include real.h and fixed-value.h as basic datatypes.
7275         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
7276         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
7277         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
7278         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
7279         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
7280         tree-pretty-print.c, tree-loop-distribution.c,
7281         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
7282         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
7283         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
7284         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
7285         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
7286         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
7287         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
7288         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
7289         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
7290         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
7291         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
7292         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
7293         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
7294         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
7295         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
7296         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
7297         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
7298         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
7299         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
7300         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
7301         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
7302         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
7303         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
7304         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
7305         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
7306         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
7307         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
7308         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
7309         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
7310         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
7311         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
7312         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
7313         config/score/score7.c, config/score/score.c, config/arm/arm.c,
7314         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
7315         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
7316         config/bfin/bfin.c: Clean up redundant includes.
7317         * Makefile.in: Update accordingly.
7318
7319 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
7320
7321         PR middle-end/44204
7322         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
7323         statement has no arguments.
7324
7325 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
7326
7327         PR/44139
7328         * varasm.c (emutls_decl): Merge attributes to new decl.
7329
7330 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
7331
7332         PR middle-end/44101
7333         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
7334         around the uniquized constructor if its type requires a conversion.
7335
7336 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
7337
7338         PR debug/44205
7339         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
7340         at -O0 goto_locus of any of the incoming edges differs from
7341         goto_locus of outgoing edge, or gimple_location of any of the
7342         labels differs.
7343
7344 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
7345
7346         * ira.c (ira_non_ordered_class_hard_regs): Define.
7347         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
7348         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
7349         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
7350         cost of unaligned hard regs when allocating multi-reg pseudos.
7351
7352 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
7353
7354         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
7355         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
7356         for TARGET_NO_FLOAT.
7357         * config/mips/mips.c (mips_file_start): Expand conditional expression
7358         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
7359         (mips_override_options): Move -mno-float override -msoft-float and
7360         -mhard-float.
7361         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
7362         Condition(TARGET_SUPPORTS_NO_FLOAT).
7363         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
7364         __mips_no_float here.
7365         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
7366         (TARGET_SUPPORTS_NO_FLOAT): Define.
7367         * config/mips/sdemtk.opt: Delete.
7368
7369 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
7370
7371         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
7372
7373 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
7374
7375         PR target/43733
7376         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
7377         * configure: Regenerate.
7378         * config.in: Regenerate.
7379         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
7380         instead of sahf only for 64bit targets.
7381
7382 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
7383
7384         PR debug/44178
7385         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
7386         setup_ref_regs for DEBUG_INSNs.
7387
7388 2010-05-20  Jan Hubicka  <jh@suse.cz>
7389
7390         PR middle-end/44197
7391         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
7392
7393 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
7394
7395         PR bootstrap/43870
7396         * df-scan.c (df_ref_compare): Stabilize sort.
7397
7398 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
7399
7400         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
7401         argument.  Don't use DW_OP_piece if offset is non-zero,
7402         put offset into second DW_OP_bit_piece argument.
7403         (dw_sra_loc_expr): Adjust callers.  For memory expressions
7404         compute offset.
7405
7406 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
7407
7408         PR target/44202
7409         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
7410         settings for 16-bit-constant "addo" alternative.
7411
7412 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
7413
7414         * config/mips/mips-dsp.md (add<DSPV:mode>3,
7415         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
7416
7417         PR target/43764
7418         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
7419         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
7420         Use it.
7421
7422 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
7423
7424         * diagnostic.c (FLOAT, FFS): Don't undefine.
7425         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
7426         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
7427         include ordering.
7428
7429 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
7430
7431         * combine.c (propagate_for_debug): Call make_compound_operation
7432         on the source value.
7433         (try_combine): When implementing a split chosen by find_split_point,
7434         either copy i2src or set it to null.  Assert that i2src is not null
7435         before substituting into CALL_INSN_FUNCTION_USAGE.
7436
7437 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
7438
7439         * double-int.h (double_int_ior): New function.
7440         * tree.h (build_int_cst_wide_type): Remove.
7441         * tree.c (build_int_cst_wide_type): Remove.
7442         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
7443         of build_int_cst_wide_type.
7444         * stor-layout.c (set_sizetype): (Ditto.).
7445         * dojump.c (do_jump): Use build_int_cstu instead of
7446         build_int_cst_wide_type.
7447
7448 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
7449
7450         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
7451         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
7452         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
7453         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
7454         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
7455         propagate the 'data' argument to copy_tree_r.
7456         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
7457         Propagate 'data' argument to walk_tree.
7458         (copy_if_shared): New function.
7459         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
7460         (unmark_visited): New function.
7461         (unshare_body): Call copy_if_shared instead of doing it manually.
7462         (unvisit_body): Call unmark_visited instead of doing it manually.
7463
7464 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
7465
7466         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
7467         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
7468         * hooks.c: Likewise.
7469         * target-def.h (TARGET_FOLD_BUILTIN): Define to
7470         hook_tree_tree_int_treep_bool_null.
7471         * target.h (struct gcc_target): Update signature of fold_builtin
7472         field.
7473         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
7474         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
7475         instead of the call expression.
7476         (fold_builtin_call_array): Pass n and argarray directly.
7477         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
7478         consing a list.
7479         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
7480         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
7481         `i' and use it in place of `arity'.
7482         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
7483         Dereference `args' directly.
7484         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
7485
7486 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7487
7488         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7489         3dnow, sse3, sse2.
7490         (Directives): Document optional dg-require-effective-target
7491         selector.
7492
7493 2010-05-19  Richard Guenther  <rguenther@suse.de>
7494
7495         PR lto/44196
7496         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
7497
7498 2010-05-19  Richard Guenther  <rguenther@suse.de>
7499
7500         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
7501         * common.opt (fwhopr=): New.
7502         * opts.c (common_handle_option): Handle OPT_fwhopr.
7503         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
7504         * collect2.c (main): Match -fwhopr*.
7505         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
7506         Execute ltrans stage in parallel when jobs is bigger than 1.
7507
7508 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7509
7510         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
7511         pentiumpro on Solaris 8/x86 with Sun as.
7512         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
7513         hidden alias bug.
7514         (gcc_cv_as_ix86_quad): Check for .quad directive.
7515         * configure: Regenerate.
7516         * config.in: Regenerate.
7517         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
7518
7519 2010-05-19  Martin Jambor  <mjambor@suse.cz>
7520
7521         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
7522         also for indirect edges.  Actual printing moved...
7523         (ipa_print_node_jump_functions_for_edge): ...here.
7524         (ipa_compute_jump_functions): Renamed to
7525         ipa_compute_jump_functions_for_edge and made static.
7526         (ipa_compute_jump_functions): New function.
7527         (make_edge_direct_to_target): Check if the number of arguments on
7528         the newly direct edge is the same as the number of parametrs of
7529         the callee.
7530         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
7531         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
7532         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
7533         analysis functions unconditionally, call the new
7534         ipa_analyze_params_uses on the node instead of every edge.
7535
7536 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
7537
7538         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
7539         to tree.
7540         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
7541         also checks for a constant int vs.  non-constant but
7542         loop-invariant steps.
7543         (find_or_create_group): Change the sort algorithm to only consider
7544         steps that are constant ints.
7545         (idx_analyze_ref): Adopt code to handle a tree instead of a
7546         HOST_WIDE_INT for step.
7547         (gather_memory_references_ref): Handle tree instead of int and be
7548         prepared to see a NULL_TREE.
7549         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
7550         prefetches if the step cannot be calculated at compile time.
7551         (issue_prefetch_ref): Issue prefetches for non-constant but
7552         loop-invariant steps.
7553
7554 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7555
7556         Revert:
7557         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7558
7559         * tree.h (build_call_list): Remove.
7560         * tree.c (build_call_list): Remove.
7561
7562 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
7563
7564         * tree.h (build_call_list): Remove.
7565         * tree.c (build_call_list): Remove.
7566
7567 2010-05-18  Jan Hubicka  <jh@suse.cz>
7568
7569         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
7570
7571 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
7572
7573         PR rtl-optimization/43332
7574         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
7575
7576 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
7577
7578         * tree.h (build_int_cstu): Implement as static inline.
7579         * tree.c (build_int_cstu): Remove function.
7580         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
7581         sign extended.
7582
7583 2010-05-18  Richard Guenther  <rguenther@suse.de>
7584
7585         PR lto/44143
7586         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
7587         (debug): Initialize from -save-temps.
7588         (collect_execute): Print command-line when verbose.
7589         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
7590         for ltrans invocation.  Produce -dumpbase flag again.
7591         (process_args): Remove.
7592         (main): Simplify.
7593         * collect2.c (maybe_run_lto_and_relink): Only pass object
7594         files to lto-wrapper.
7595         * gcc.c (LINK_COMMAND_SPEC): Likewise.
7596
7597 2010-05-18  Jan Hubicka  <jh@suse.cz>
7598
7599         * opts.c (decode_options): Do not disable whopr at ipa_cp.
7600         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
7601
7602 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
7603
7604         PR lto/44184
7605         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
7606         in a GIMPLE_ASM.
7607         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
7608         in a GIMPLE_ASM.
7609
7610 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
7611
7612         PR debug/41371
7613         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
7614         rtx_equal_p inline.
7615
7616 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
7617
7618         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
7619         lto-macho as lto_binary_reader.
7620
7621         * darwin.c (darwin_asm_named_section): Do not add assembler comment
7622         after .section directive; just print it before the directive instead.
7623
7624 2010-05-17  Jan Hubicka  <jh@suse.cz>
7625
7626         * cgraph.c (cgraph_create_virtual_clone): Only check
7627         versionable_function_p when not in wpa and checking is enabled.
7628         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
7629         there are no more functions to materialize.
7630
7631 2010-05-17  Jan Hubicka  <jh@suse.cz>
7632
7633         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
7634         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
7635         New functions.
7636         (output_cgraph): Call output_cgraph_opt_summary.
7637         (input_cgrpah): Call input_cgraph_opt_summary.
7638         (output_cgraph_opt_summary_p, output_node_opt_summary,
7639         input_node_opt_summary, input_cgraph_opt_section): New functions.
7640         * lto-section-in.c (lto_section_name): Add cgraphopt.
7641         * tree-inline.c (tree_function_versioning): Handle parm_num.
7642         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
7643         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
7644
7645 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
7646
7647         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
7648         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
7649         the insn to prefetch ratio heuristic to loops with known trip count.
7650
7651 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
7652
7653         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
7654         (schedule_prefetches): Do not generate a prefetch if the unroll factor
7655         is far from what is required by the prefetch.
7656
7657 2010-05-17  Jan Hubicka  <jh@suse.cz>
7658
7659         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
7660         (ipcp_estimate_growth): Likewise.
7661         (ipcp_const_param_count): Likewise.
7662         (ipcp_insert_stage): Likewise.
7663         * ipa-prop.c (visit_load_for_mod_analysis): New function.
7664         (visit_store_addr_for_mod_analysis): Set used flag.
7665         (ipa_detect_param_modifications): Set used flag for SSE params;
7666         update use of walk_stmt_load_store_addr_ops.
7667         (ipa_print_node_params): Print used flag.
7668         (ipa_write_node_info): Stream used flag.
7669         (ipa_read_node_info): Likewise.
7670         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
7671         (ipa_is_param_used): New function.
7672         (lto_ipa_fixup_call_notes): Remove unused declaration.
7673
7674 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7675
7676         PR target/44074
7677         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
7678         * configure: Regenerate.
7679         * config.in: Regenerate.
7680         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
7681         !HAVE_AS_IX86_REP_LOCK_PREFIX.
7682         Don't emit whitespace.
7683         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
7684         (*rep_movsi): Likewise.
7685         (*rep_movsi_rex64): Likewise.
7686         (*rep_movqi): Likewise.
7687         (*rep_movqi_rex64): Likewise.
7688         (*rep_stosdi_rex64): Likewise.
7689         (*rep_stossi): Likewise.
7690         (*rep_stossi_rex64): Likewise.
7691         (*rep_stosqi): Likewise.
7692         (*rep_stosqi_rex64): Likewise.
7693         (*cmpstrnqi_nz_1): Use {%;} after repz.
7694         (*cmpstrnqi_nz_rex_1): Likewise.
7695         (*cmpstrnqi_1): Likewise.
7696         (*cmpstrnqi_rex_1): Likewise.
7697         (*strlenqi_1): Use {%;} after repnz.
7698         (*strlenqi_rex_1): Likewise.
7699         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
7700         (*sync_compare_and_swap<mode>): Likewise.
7701         (sync_double_compare_and_swap<mode>): Likewise.
7702         (*sync_double_compare_and_swapdi_pic): Likewise.
7703         (sync_old_add<mode>): Likewise.
7704         (sync_add<mode>): Likewise.
7705         (sync_sub<mode>): Likewise.
7706         (sync_<code><mode>): Likewise.
7707
7708 2010-05-17  Martin Jambor  <mjambor@suse.cz>
7709
7710         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
7711         otr_token and polymorphic.
7712         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
7713         (cgraph_clone_edge): Copy the above fields.
7714         * tree.c (get_binfo_at_offset): New function.
7715         * tree.h (get_binfo_at_offset): Declare.
7716         * ipa-prop.h (enum jump_func_type): Added known_type jump function
7717         type, reordered items, updated comments.
7718         (union jump_func_value): Added base_type field, reordered fields.
7719         (enum ipa_lattice_type): Moved down in the file.
7720         (struct ipa_param_descriptor): New field polymorphic.
7721         (ipa_is_param_polymorphic): New function.
7722         * ipa-prop.c: Include gimple.h and gimple-fold.h.
7723         (ipa_print_node_jump_functions): Print known type jump functions.
7724         (compute_complex_pass_through): Renamed to...
7725         (compute_complex_assign_jump_func): this.
7726         (compute_complex_ancestor_jump_func): New function.
7727         (compute_known_type_jump_func): Likewise.
7728         (compute_scalar_jump_functions): Create known type and complex ancestor
7729         jump functions.
7730         (ipa_note_param_call): New parameter polymorphic, set the corresponding
7731         flag in the call note accordingly.
7732         (ipa_analyze_call_uses): Renamed to...
7733         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
7734         variable var only in the block where it is used.
7735         (ipa_analyze_virtual_call_uses): New function.
7736         (ipa_analyze_call_uses): Likewise.
7737         (combine_known_type_and_ancestor_jfs): Likewise.
7738         (update_jump_functions_after_inlining): Implemented handling of a
7739         number of new jump function types combination.
7740         (print_edge_addition_message): Removed.
7741         (make_edge_direct_to_target): New function.
7742         (try_make_edge_direct_simple_call): Likewise.
7743         (try_make_edge_direct_virtual_call): Likewise.
7744         (update_call_notes_after_inlining): Renamed to...
7745         (update_indirect_edges_after_inlining): this.  Moved edge creation for
7746         indirect calls to try_make_edge_direct_simple_call, also calls
7747         try_make_edge_direct_virtual_call for virtual calls.
7748         (ipa_print_node_params): Changed the header message.
7749         (ipa_write_jump_function): Stream also known type jump functions.
7750         (ipa_read_jump_function): Likewise.
7751         (ipa_write_indirect_edge_info): Stream new fields in
7752         cgraph_indirect_call_info.
7753         (ipa_read_indirect_edge_info): Likewise.
7754         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
7755         GIMPLE_FOLD_H.
7756
7757 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7758
7759         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
7760
7761 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
7762
7763         * tree.h (CALL_EXPR_ARGS): Delete.
7764         (call_expr_arglist): Delete.
7765         * tree.c (call_expr_arglist): Delete.
7766         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
7767         targetm.fold_builtin.
7768         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
7769         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
7770         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
7771         arglist parameter.  Use CALL_EXPR_ARG.
7772         (picochip_expand_builtin_3op): Likewise.
7773         (picochip_expand_builtin_2opvoid): Likewise.
7774         (picochip_expand_array_get): Likewise.
7775         (picochip_expand_array_put): Likewise.
7776         (picochip_expand_array_testport): Likewise.
7777         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
7778         rather than arglist.
7779         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
7780         CALL_EXPR_ARGS.
7781         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
7782         than TREE_VALUE and TREE_CHAIN.
7783         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
7784         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
7785         the arglist.
7786
7787 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
7788
7789         PR bootstrap/42347
7790         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
7791         to have no fallthru edge.
7792
7793         PR middle-end/44102
7794         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
7795         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
7796         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
7797         add BARRIER after previous bb if needed.
7798
7799 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
7800
7801         * tree.c (build_function_type_list_1): Remove bogus assert condition.
7802
7803 2010-05-17  Alan Modra  <amodra@gmail.com>
7804
7805         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
7806         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
7807         with copy_reg rtx param.
7808         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
7809         Correct cases where code for ABI_V4 did not initialise the reg
7810         used to access frame.  Also leave frame_reg_rtx as sp for large
7811         frames that save no regs.
7812
7813 2010-05-17  Martin Jambor  <mjambor@suse.cz>
7814
7815         PR middle-end/44133
7816         * tree-sra.c (create_access_replacement): New parameter rename, mark
7817         the replaement for renaming only when it is true.
7818         (get_access_replacement): Pass true in the rename parameter of
7819         create_access_replacement.
7820         (get_unrenamed_access_replacement): New function.
7821         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
7822         replacement declaration from it.
7823
7824 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
7825
7826         * function.c (try_fit_stack_local, add_frame_space): New static
7827         functions.
7828         (assign_stack_local_1): Use them.  Look for opportunities to use
7829         space previously wasted on alignment.
7830         * function.h (struct frame_space): New.
7831         (struct rtl_data): Add FRAME_SPACE_LIST member.
7832         * reload1.c (something_was_spilled): New static variable.
7833         (alter_reg): Set it.
7834         (reload): Test it in addition to testing if the frame size changed.
7835
7836 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
7837
7838         * config/s390/s390.c: Define sane prefetch settings and activate
7839         flag_prefetch_loop_arrays on -O3.
7840         * config/s390/s390.h: Declare that read can use write prefetch.
7841
7842 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
7843
7844         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
7845         build.
7846
7847 2010-05-16  Jan Hubicka  <jh@suse.cz>
7848
7849         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
7850         function body; do not check stdarg field of struct function.
7851
7852 2010-05-16  Jan Hubicka  <jh@suse.cz>
7853
7854         * cgraph.c (dump_cgraph_node): Dump versionable flag.
7855         * cgraph.h (cgraph_local_info): Add versionable flag.
7856         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
7857         (ipcp_versionable_function_p): Use it.
7858         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
7859         versionable flag.
7860
7861 2010-05-16  Jan Hubicka  <jh@suse.cz>
7862
7863         * cgraph.c (cgraph_clone_node): Take decl argument and insert
7864         clone into hash when it is different from orig.
7865         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
7866         * cgraph.h (cgraph_clone_node): Update prototype.
7867         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
7868         (lto_cgraph_encoder_delete): Delete body map.
7869         (lto_cgraph_encoder_size): Move to header.
7870         (lto_cgraph_encoder_encode_body_p,
7871         lto_set_cgraph_encoder_encode_body): New.
7872         (lto_output_node): Do not take written_decls argument; output clone_of
7873         pointer.
7874         (add_node_to): Add include_body_argument; call
7875         lto_set_cgraph_encoder_encode_body on master of the clone.
7876         (add_references): Update use of add_node_to.
7877         (compute_ltrans_boundary): Likewise.
7878         (output_cgraph): Do not create written_decls bitmap.
7879         (input_node): Take nodes argument; stream in clone_of correctly.
7880         (input_cgraph_1): Update use of input_node.
7881         * lto-streamer-out.c (lto_output): Use encoder info to decide
7882         what bodies to output.
7883         * ipa-inline.c (cgraph_clone_inlined_nodes,
7884         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
7885         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
7886         (lto_cgraph_encoder_size): Define here.
7887         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
7888         Declare.
7889
7890 2010-05-16  Richard Guenther  <rguenther@suse.de>
7891
7892         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
7893         -fipa-type-escape.
7894         * ipa-type-escape.c (gate_type_escape_vars): Run when
7895         -fipa-struct-reorg runs.
7896         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
7897         * common.opt (fipa-type-escape): Remove.
7898
7899 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
7900
7901         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
7902         (decode_options): Likewise.
7903         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
7904
7905 2010-05-16  Jan Hubicka  <jh@suse.cz>
7906
7907         * ipa.c (function_and_variable_visibility): Also bring local all
7908         aliases.
7909
7910 2010-05-16  Richard Guenther  <rguenther@suse.de>
7911
7912         * alias.c (nonoverlapping_memrefs_p): Remove use of
7913         IPA type-escape information.
7914
7915 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
7916
7917         * c-common.c (c_common_reswords): Add _Static_assert for C.
7918         * c-parser.c (c_token_starts_declaration,
7919         c_parser_next_token_starts_declaration,
7920         c_parser_static_assert_declaration_no_semi,
7921         c_parser_static_assert_declaration): New.
7922         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
7923         Handle static assertions if static_assert_ok.
7924         (c_parser_external_declaration, c_parser_declaration_or_fndef,
7925         c_parser_compound_statement_nostart, c_parser_label,
7926         c_parser_for_statement, c_parser_objc_methodprotolist,
7927         c_parser_omp_for_loop): All callers of
7928         c_parser_declaration_or_fndef changed.
7929         (c_parser_struct_declaration): Handle static assertions.
7930         (c_parser_compound_statement_nostart): Use
7931         c_parser_next_token_starts_declaration and
7932         c_token_starts_declaration to detect start of declarations.
7933         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
7934         Likewise.
7935
7936 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
7937
7938         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
7939         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7940         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7941         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7942         (mmix_function_outgoing_value): Rename to...
7943         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
7944         (mmix_function_value_regno_p): Make static.
7945         (mmix_libcall_value): New function.
7946         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
7947         mmix_function_value_regno_p): Remove declaration.
7948
7949 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
7950
7951         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
7952         BUILT_IN_ALLOCA if stack checking is enabled.
7953
7954 2010-05-16  Richard Guenther  <rguenther@suse.de>
7955
7956         * var-tracking.c (vars_copy_1): Inline ...
7957         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
7958         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
7959         (variable_merge_over_cur): Adjust.  Merge asserts.
7960         (variable_merge_over_src): Likewise.
7961         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
7962         (variable_post_merge_new_vals): Merge asserts.
7963         (variable_post_merge_perm_vals): Likewise.
7964         (find_mem_expr_in_1pdv): Likewise.
7965         (dataflow_set_different_value): Remove.
7966         (onepart_variable_different_p): Merge asserts.
7967         (variable_different_p): Likewise.
7968         (dataflow_set_different_1): Inline ...
7969         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
7970         (emit_notes_for_differences_1): Merge asserts.
7971
7972 2010-05-16  Richard Guenther  <rguenther@suse.de>
7973
7974         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
7975         * optabs.c (libfunc_decl_hash): Likewise.
7976         * varasm.c (emutls_decl): Likewise.
7977
7978 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
7979
7980         * c-decl.c: Don't include gimple.h.
7981         (merge_decls): Do not copy gimple_body.
7982
7983 2010-05-15  Jason Merrill  <jason@redhat.com>
7984
7985         * c.opt: Add -fnothrow-opt.
7986
7987 2010-05-15  Jan Hubicka  <jh@suse.cz>
7988
7989         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
7990         analyzed.
7991         * passes.c (ipa_write_summaries): Write all analyzed nodes.
7992
7993 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
7994
7995         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
7996         * Makefile.in: Add it.
7997         Fix all other Makefile dependencies for changes below.
7998         * tree.h: Include it instead of defining VEC primitives here.
7999         * gimple.h: Likewise.
8000         * rtl.h: Likewise.
8001         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
8002         * except.h: Include vecir.h, break dependence on tree.h.
8003
8004         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
8005         Move from here...
8006         * tree-iterator.c: ...to here.
8007         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
8008
8009         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
8010         tm_p.h.
8011         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
8012         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
8013         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
8014         tree-mudflap.h, and target.h.
8015         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
8016         predict.h, tree-inline.h, gimple.h, and langhooks.h.
8017         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
8018         Add FIXME for why gimple.h is still included (should be unnecessary
8019         since GCC 4.5 gimplification unit-at-a-time).
8020         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
8021         * c-pragma.c: Add FIXME for why function.h needs to be included just
8022         for cfun, at front-end level.
8023         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
8024         Do not include ggc.h, but include vecprim.h for VEC(char).
8025         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
8026         Explain why target.h is included.
8027         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
8028         Explain why gimple.h is included.
8029         * c-ppoutput.c: Do not include tm.h.
8030         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
8031         * c-parses.c: Explain why rtl.h is included, and that this (and only
8032         this) is also why tm.h must be included.
8033         Do not include except.h.
8034         * c-lang.c: Do not include ggc.h.
8035
8036 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
8037
8038         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
8039
8040 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
8041
8042         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
8043         unions by default if those structs and unions have no tags.  Do
8044         not condition anonymous struct and unions handling on flag_iso.
8045         Allow anonymous structs and unions for C1X.
8046         (finish_struct): Do not diagnose lack of named fields when
8047         anonymous structs and unions present for C1X.  Accept flexible
8048         array members in structure with anonymous structs or unions but no
8049         directly named fields.
8050         * doc/extend.texi (Unnamed Fields): Update.
8051
8052 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
8053
8054         * gimple.h (compare_field_offset): Rename into...
8055         (gimple_compare_field_offset): ...this.
8056         * gimple.c (compare_field_offset): Rename into...
8057         (gimple_compare_field_offset): ...this.  Compare the full access if
8058         the offset is self-referential.
8059         (gimple_types_compatible_p): Adjust for above renaming.
8060         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
8061         DECL_NONADDRESSABLE_P flag of fields before merging them.
8062
8063 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
8064
8065         * tree.h (ctor_to_list): Delete.
8066         * tree.c (ctor_to_list): Delete.
8067
8068 2010-05-15  Jan Hubicka  <jh@suse.cz>
8069
8070         * ipa-reference.c: Include toplev.h
8071         (is_proper_for_analysis): Only add to all_module_statics
8072         if it is allocated.
8073         (write_node_summary_p, stream_out_bitmap,
8074         ipa_reference_write_optimization_summary,
8075         ipa_reference_read_optimization_summary): New.
8076         (struct ipa_opt_pass_d pass_ipa_reference): Add
8077         optimization summary streaming.
8078         * lto-cgraph.c (referenced_from_this_partition_p,
8079         reachable_from_this_partition_p): New functions.
8080         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8081         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
8082         * opts.c (decode_options): Enable ipa_reference.
8083         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
8084         * lto-streamer.h (referenced_from_this_partition_p,
8085         reachable_from_this_partition_p): Declare.
8086
8087 2010-05-15  Richard Guenther  <rguenther@suse.de>
8088
8089         PR tree-optimization/44038
8090         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
8091         taking the address of a V_C_E of a constant.
8092
8093 2010-05-14  Jan Hubicka  <jh@suse.cz>
8094
8095         * tree.h (memory_identifier_string): Remove.
8096         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
8097         (ipa_reference_global_vars_info_d): Remove statics_not_read and
8098         statics_not_written.
8099         (ipa_reference_optimization_summary_d): New structure.
8100         (ipa_reference_optimization_summary_t): New type and vector.
8101         (ipa_reference_vars_info_d): Embedd structures instead of using
8102         pointers.
8103         (reference_vars_to_consider): Remove out of GGC space.
8104         (module_statics_escape): Remove.
8105         (global_info_obstack): Rename to ...
8106         (optimization_summary_obstack): ... this one.
8107         (initialization_status_t): Remove.
8108         (memory_identifier_string): Remove.
8109         (get_reference_vars_info): Fix indenting.
8110         (set_reference_vars_info): Likewise.
8111         (get_reference_optimization_summary): New.
8112         (set_reference_optimization_summary): New.
8113         (get_global_reference_vars_info): Remove.
8114         (ipa_reference_get_read_global): Remove.
8115         (ipa_reference_get_written_global): Remove.
8116         (ipa_reference_get_not_read_global): Update.
8117         (ipa_reference_get_not_written_global): Update.
8118         (is_proper_for_analysis): Outlaw addressable.
8119         (propagate_bits): Update for new datastructures.
8120         (analyze_variable): Remove.
8121         (init_function_info): Update for new datastructures.
8122         (clean_function_local_data): Remove.
8123         (clean_function): Remove.
8124         (copy_global_bitmap): Use optimizations_summary_obstack.
8125         (duplicate_node_data): Duplicate optimization summary only.
8126         (remove_node_data): Remove optimization summary only.
8127         (generate_summary): Do not analyze variables; do not compute
8128         module_statics_escape; do not prune solutions by it.
8129         (read_write_all_from_decl): Fix typos in comments.
8130         (propagate): Doscover readonly and nonaddressable first;
8131         update for new datastructures; share global bitmaps.
8132         * ipa-reference.h (ipa_reference_get_read_global,
8133         ipa_reference_get_written_global): Remove.
8134         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
8135         * Makefile.in: Remove ipa-refereference from GT files.
8136
8137 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
8138
8139         PR debug/44112
8140         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
8141         for all SYMBOL_REF_DECLs.
8142
8143 2010-05-14  Jan Hubicka  <jh@suse.cz>
8144
8145         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
8146         (varpool_all_refs_explicit_p): New inline function.
8147         * ipa-reference.c: Update comment.
8148         (module_statics_written): Remove.
8149         (get_static_decl): Remove.
8150         (ipa_init): Do not initialize module_statics_written.
8151         (analyze_function): Likewise.
8152         (generate_summary): Likewise; do not compute module_statics_readonly
8153         and do not update variable flags.
8154         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
8155         * ipa.c: Inlucde flags.h
8156         (cgraph_local_node_p): New.
8157         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
8158         promote functions to local.
8159         (ipa_discover_readonly_nonaddressable_vars): New function.
8160         (function_and_variable_visibility): Use cgraph_local_node_p.
8161         * varpool.c (varpool_finalize_decl): Set force_output for
8162         DECL_PRESERVE_P vars.
8163
8164 2010-05-14  Jan Hubicka  <jh@suse.cz>
8165
8166         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
8167
8168 2010-05-14  Richard Guenther  <rguenther@suse.de>
8169
8170         PR tree-optimization/44119
8171         * tree-ssa-pre.c (eliminate): Properly mark replacement of
8172         a PHI node necessary.
8173
8174 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8175
8176         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
8177
8178 2010-05-14  Jason Merrill  <jason@redhat.com>
8179
8180         PR c++/44127
8181         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
8182         (gimple_call_set_nothrow): New.
8183         * gimple.c (gimple_build_call_from_tree): Call it.
8184         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
8185
8186         PR c++/44127
8187         * gimplify.c (gimplify_seq_add_stmt): No longer static.
8188         * gimple.h: Declare it.
8189         * gimple.c (gimple_build_eh_filter): No ops.
8190
8191 2010-05-14  Jan Hubicka  <jh@suse.cz>
8192
8193         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
8194         nodes already in queue.
8195         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
8196         re-enqueueing node.
8197
8198 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
8199
8200         PR debug/44136
8201         * cfgexpand.c (expand_debug_expr): If non-memory op0
8202         has BLKmode, return NULL.
8203
8204 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
8205
8206         * config.gcc: Add support for --with-cpu option for bdver1.
8207         * config/i386/i386.h (TARGET_BDVER1): New macro.
8208         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
8209         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
8210         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
8211         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
8212         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
8213         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
8214         (processor_type): Add PROCESSOR_BDVER1.
8215         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
8216         processor_type in config/i386/i386.h.
8217         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
8218         movaps <reg, reg> instead of movapd <reg, reg> when replacing
8219         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
8220         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
8221         to emit packed xor instead of packed double/packed integer
8222         xor for SSE and AVX when moving a zero value.
8223         * config/i386/sse.md: Add check for
8224         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
8225         movapd/movdqa for SSE and AVX.
8226         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
8227         single logical operations i.e and, or and xor instead of packed double
8228         logical operations for SSE and AVX.
8229         * config/i386/i386-c.c (ix86_target_macros_internal):
8230         Add PROCESSOR_BDVER1.
8231         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
8232         (has_fma4, has_xop): New.
8233         * config/i386/i386.c (bdver1_cost): New variable.
8234         (m_BDVER1): New macro.
8235         (m_AMD_MULTIPLE): Add m_BDVER1.
8236         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
8237         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
8238         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
8239         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
8240         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
8241         x86_tune_sse_partial_reg_dependency,
8242         x86_tune_sse_unaligned_load_optimal,
8243         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
8244         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
8245         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
8246         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
8247         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
8248         Enable/disable for bdver1.
8249         (processor_target_table): Add bdver1_cost.
8250         (cpu_names): Add bdver1.
8251         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
8252          processor_alias_table.
8253         (ix86_expand_vector_move_misalign): Change.
8254         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
8255         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
8256         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
8257         of movupd/movdqu for SSE and AVX.
8258         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
8259         (ix86_tune_adjust_cost): Add code for bdver1.
8260         (standard_sse_constant_opcode): Add check for
8261         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
8262         of packed double xor for SSE and AVX.
8263
8264 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
8265
8266         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
8267         result to unsigned.
8268
8269 2010-05-14  Tristan Gingold  <gingold@adacore.com>
8270
8271         * toplev.c (default_debug_hooks): Remove this variable.
8272         (process_options): Remove assignments to default_debug_hooks.
8273
8274 2010-05-14  Martin Jambor  <mjambor@suse.cz>
8275
8276         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
8277         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
8278         * langhooks.h (struct lang_hooks_for_decls): Removed field
8279         fold_obj_type_ref.
8280         * tree.c (free_lang_data): Remove assignment to
8281         lang_hooks.fold_obj_type_ref.
8282         * tree.def (OBJ_TYPE_REF): Update comment.
8283
8284 2010-05-14  Richard Guenther  <rguenther@suse.de>
8285
8286         PR tree-optimization/44124
8287         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
8288
8289 2010-05-14  Alan Modra  <amodra@gmail.com>
8290
8291         PR target/44075
8292         * config/rs6000/rs6000.c (struct machine_function): Reorder
8293         fields for better packing.  Add lr_save_state.
8294         (rs6000_ra_ever_killed): Return lr_save_state if set.
8295         (rs6000_emit_eh_reg_restore): Set lr_save_state.
8296
8297 2010-05-13  Jan Hubicka  <jh@suse.cz>
8298
8299         * varpool.c (decide_is_variable_needed): Drop code checking
8300         TREE_SYMBOL_REFERENCED.
8301
8302 2010-05-13  Jan Hubicka  <jh@suse.cz>
8303
8304         * final.c (output_addr_const): Do not call mark_decl_referenced.
8305         * cgraphunit.c (process_function_and_variable_attributes): Use
8306         mark_needed_node dirrectly.
8307         (assemble_thunk): Do not call mark_decl_referenced.
8308
8309 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
8310
8311         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
8312
8313 2010-05-13  Jeff Law  <law@redhat.com>
8314
8315         * ira-conflicts.c (print_allocno_conflicts): New function broken out
8316         from...
8317         (print_conflicts): Call print_allocno_conflicts.
8318
8319 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
8320
8321         PR debug/44104
8322         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
8323         if it is NULL.
8324
8325 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
8326
8327         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
8328         t-mingw-w64 or t-mingw-w32 for multilib configuration.
8329         * config/i386/t-mingw-w32: New.
8330         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
8331
8332 2010-05-13  Martin Jambor  <mjambor@suse.cz>
8333
8334         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
8335         gimple-fold.c).
8336         * gimple-fold.c (get_base_binfo_for_type): New function.
8337         (gimple_get_relevant_ref_binfo): Likewise.
8338         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8339         (gimple_fold_obj_type_ref): Likewise.
8340         (fold_gimple_call): Simplify condition for folding virtual calls
8341         and call gimple_fold_obj_type_ref.
8342         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
8343         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8344
8345 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
8346
8347         * config/rs6000/rs6000-protos.h
8348         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
8349         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
8350         (rs6000_debug_mode_dependent_address)
8351         (rs6000_mode_dependent_address_ptr): Likewise.
8352
8353 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
8354
8355         PR debug/43983
8356         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
8357         by SRA.
8358         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
8359         * tree-sra.c (create_access_replacement): Call unshare_expr before
8360         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
8361         * dwarf2out.c: Include tree-flow.h.
8362         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
8363         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
8364         Handle DW_OP_bit_piece.
8365         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
8366         construct_piece_list, adjust_piece_list): New functions.
8367         (add_var_loc_to_decl): Handle SRA optimized variables.
8368         Adjust for var_loc_note to loc field renaming.
8369         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
8370         in VAR_LOCATION note.
8371         (new_loc_descr_op_bit_piece): New function.
8372         (dw_sra_loc_expr): New function.
8373         (dw_loc_list): Use it.  Don't handle the last range after the
8374         loop, handle it inside of the loop.  Adjust for var_loc_note
8375         to loc field renaming.
8376         (add_location_or_const_value_attribute): Only special case
8377         single entry loc lists if loc is NOTE_P.  Adjust for
8378         var_loc_note to loc field renaming.
8379         (dwarf2out_var_location): Don't set newloc->var_loc_note
8380         and newloc->next here.
8381
8382 2010-05-12  Jan Hubicka  <jh@suse.cz>
8383
8384         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
8385         flag.
8386         * cgraph.h (cgraph_only_called_directly_p,
8387         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
8388         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
8389         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
8390         (assemble
8391         * ipa.c (cgraph_remove_unreachable_nodes): Use
8392         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
8393         flags.
8394         * tree-inline.c (copy_bb): Check address_taken flag.
8395         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
8396         externally_visible flag.
8397
8398 2010-05-12  Jason Merrill  <jason@redhat.com>
8399
8400         PR bootstrap/44048
8401         PR target/44099
8402         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
8403         * sdbout.c (plain_type_1): Likewise.
8404         * dwarf2out.c (is_base_type): Likewise.
8405         (gen_type_die_with_usage): Likewise.  Generate
8406         DW_TAG_unspecified_type for any LANG_TYPE.
8407
8408 2010-05-12  Jan Hubicka  <jh@suse.cz>
8409
8410         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
8411         indrect edges too.
8412         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
8413         (cgraph_clone_edge): Update.
8414         (cgraph_node_remove_callees): Remove indirect calls too.
8415         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
8416         (cgraph_create_indirect_edge): Update prototype.
8417         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
8418         is_proper_for_analysis.
8419         (add_new_function, visited_nodes, function_insertion_hook_holder,
8420         get_local_reference_vars_info, mark_address_taken, mark_address,
8421         mark_load, mark_store, check_asm_memory_clobber, check_call,
8422         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
8423         (ipa_init): Do not initialize visited_nodes;
8424         function_insertion_hook_holder.
8425         (analyze_variable): Rewrite.
8426         (analyze_function): Rewrite.
8427         (copy_local_bitmap): Remove.
8428         (duplicate_node_dat): Do not duplicate local info.
8429         (generate_summary): Simplify to only walk cgraph.
8430         (write_node_summary_p, ipa_reference_write_summary,
8431         ipa_reference_read_summary): Remove.
8432         (propagate): Do not remove function insertion;
8433         generate summary.
8434         (pass_ipa_reference): NULLify summary handling fields.
8435         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
8436         (input_edge): Input ecf_flags.
8437         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
8438         (update_indirect_edges_after_inlining): Ignore edges with unknown
8439         param.
8440
8441 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
8442
8443         * implicit-zee.c: New file.
8444         * tree-pass.h (pass_implicit_zee): Declare.
8445         * passes.c (init_optimization_passes): Add zee pass.
8446         * common.opt (fzee): New flag.
8447         * timevar.def (TV_ZEE): Define.
8448         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
8449         and beyond.
8450         * Makefile.in (implicit-zee.o): Add new build file.
8451
8452 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8453             Nathan Froyd  <froydnj@codesourcery.com>
8454
8455         * c-common.c (sync_resolve_params): Remove write-only variable.
8456
8457 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
8458
8459         * target.h (struct gcc_target): Add mode_dependent_address_p field.
8460         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
8461         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
8462         * targhooks.c (default_mode_dependent_address_p): New function.
8463         * targhooks.h (default_mode_dependent_address_p): Declare function.
8464         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
8465         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
8466         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
8467         target hook. Change return type to bool.
8468         * recog.h (mode_dependent_address_p): Change return type to bool.
8469
8470 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8471             Nathan Froyd  <froydnj@codesourcery.com>
8472
8473         * tree-mudflap.c (build_function_type_0, build_function_type_1,
8474         build_function_type_2, build_function_type_3): Remove.
8475         (mudflap_init): Use build_function_type_list.
8476
8477 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
8478             Nathan Froyd  <froydnj@codesourcery.com>
8479
8480         * coverage.c (build_fn_info_value): Call build_constructor instead of
8481         build_constructor_from_list.
8482         (build_ctr_info_value): Likewise.
8483         (build_gcov_info): Likewise.
8484
8485 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
8486
8487         * tree.c (build_constructor): Compute TREE_CONSTANT for the
8488         resultant constructor.
8489         (build_constructor_single): Don't set TREE_CONSTANT.
8490         (build_constructor_from_list): Don't compute TREE_CONSTANT.
8491
8492 2010-05-12  Jan Hubicka  <jh@suse.cz>
8493
8494         * cgraph.h (struct varpool_node): Add aux.
8495         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
8496         * varpool.c (varpool_remove_node): Do not remove initializer.
8497         (varpool_reset_queue): Export.
8498         (varpool_finalize_decl): Volatile vars are forced to be output.
8499         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
8500         replaced decl.
8501         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
8502         process_references, varpool_can_remove_if_no_refs): New functions.
8503         (cgraph_remove_unreachable_nodes): Handle variables too.
8504
8505 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
8506
8507         PR target/44088
8508         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
8509
8510 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
8511
8512         PR middle-end/44085
8513         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
8514         change value of ORT_TASK.
8515         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
8516         (omp_notice_threadprivate_variable): New function.
8517         (omp_notice_variable): Call it for threadprivate variables.
8518         If enclosing ctx is a task, print enclosing task rather than
8519         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
8520         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
8521         if task has untied clause.
8522
8523         PR debug/42278
8524         * dwarf2out.c (base_type_die): Don't add name attribute here.
8525         (modified_type_die): Instead of sizetype use
8526         its underlying original type.  If a DW_TAG_base_type doesn't
8527         have name added, add __unknown__.
8528         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
8529         always call force_type_die instead.
8530
8531 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
8532
8533         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
8534         for __stack_chk_guard.
8535
8536 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
8537
8538         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
8539         don't call start_source_file debug hook here...
8540         (finish_options): ... but here, after outputting predefined and
8541         command line defines and undefs.
8542
8543         PR middle-end/44071
8544         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
8545         no fallthru edge.
8546         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
8547         optimizing away empty bb with no successors, move over its
8548         footer chain to fallthru predecessor.
8549         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
8550         (rtl_split_edge): For asm goto call patch_jump_insn even if
8551         splitting fallthru edge.
8552
8553         PR c++/44059
8554         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
8555         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
8556         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
8557         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
8558         on DW.ref.* decls.
8559
8560         PR c++/44062
8561         * c-parser.c (c_parser_expression): Mark LHS of a comma
8562         expression as read if it is a decl, handled component or
8563         COMPOUND_EXPR with that on the RHS.
8564         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
8565         if it is a decl or handled component.
8566
8567 2010-05-11  Jan Hubicka  <jh@suse.cz>
8568
8569         * lto-symtab.c (lto_symtab_free): New function.
8570         * lto-streamer.h (lto_symtab_free): Declare.
8571
8572 2010-05-11  Jan Hubicka  <jh@suse.cz>
8573
8574         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
8575         that if function is needed it is reachable.
8576         (lto_output_node): See if it the function is reachable or referenced.
8577         (output_cgraph): Update call of lto_output_node.
8578         * lto-streamer.h (reachable_from_other_partition_p): Declare.
8579
8580 2010-05-11  Jan Hubicka  <jh@suse.cz>
8581
8582         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
8583         Mark as used.
8584
8585 2010-05-11  Jan Hubicka  <jh@suse.cz>
8586
8587         PR tree-optimize/44063
8588         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
8589         queue.
8590         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
8591         limits.
8592         (estimate_function_body_sizes): Compute sizes even when disregarding.
8593
8594 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
8595
8596         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
8597
8598 2010-05-11  Jan Hubicka  <jh@suse.cz>
8599
8600         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
8601         into every boundary.
8602
8603 2010-05-11  Jan Hubicka  <jh@suse.cz>
8604
8605         * matrix-reorg.c (matrix_reorg): Rebuild edges.
8606
8607 2010-05-11  Jan Hubicka  <jh@suse.cz>
8608
8609         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
8610         lto_streamer_cache_delete): Put nodes into heap.
8611         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
8612         heap.
8613
8614 2010-05-11  Jan Hubicka  <jh@suse.cz>
8615
8616         * cgraphbuild.c (cgraph_rebuild_references): New.
8617         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
8618         out extern inlines.
8619         * cgraph.h (cgraph_rebuild_references): Declare.
8620         * tree-inline.c (tree_function_versioning): Use it.
8621         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
8622
8623 2010-05-11  Jan Hubicka  <jh@suse.cz>
8624
8625         * cgraph.c: Include ipa-utils.h
8626         (cgraph_create_virtual_clone): Update references.
8627         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
8628
8629 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
8630
8631         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
8632         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
8633         cache size.
8634
8635 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
8636
8637         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
8638
8639 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
8640
8641         * gcc.c (execute): For -### don't quote arguments that
8642         contain just alphanumerics and _/-. characters.
8643         * doc/invoke.texi: Document that change for -###.
8644
8645         PR debug/44023
8646         * df-problems.c (struct dead_debug): Add to_rescan field.
8647         (dead_debug_init): Clear to_rescan field.
8648         (dead_debug_finish): Rescan all debug insns in to_rescan
8649         bitmap and free the bitmap.
8650         (dead_debug_insert_before): Instead of rescanning debug insns
8651         immediately queue their rescanning until dead_debug_finish.
8652         (df_note_bb_compute): After dead_debug_add do continue instead
8653         of break.
8654
8655 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR debug/44028
8658         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
8659         clear also INSN_REG_USE_LIST.
8660
8661 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8662
8663         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
8664
8665 2010-05-10  Jan Hubicka  <jh@suse.cz>
8666
8667         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
8668         commited change.
8669
8670 2010-05-10  Jan Hubicka  <jh@suse.cz>
8671
8672         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
8673         Allocate encoders.
8674         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
8675         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
8676         (lto_streamer_cache_create): Init alloc pool.
8677         (lto_streamer_cache_delete): Free alloc pool.
8678         * lto-streamer.h: Include alloc pool.
8679         (lto_streamer_cache_d): Use alloc pool.
8680         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
8681
8682 2010-05-10  Jan Hubicka  <jh@suse.cz>
8683
8684         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
8685         * cgraphbuild.c: Include except.h
8686         (record_type_list, record_eh_tables): New function.
8687         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
8688
8689 2010-05-10  Jan Hubicka  <jh@suse.cz>
8690
8691         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
8692         __frame_dummy_init_array_entry, force_to_data): Attribute as used
8693         rather than unused.
8694
8695 2010-05-10  Michael Matz  <matz@suse.de>
8696
8697         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
8698         (can_reassociate_p): Use FLOAT_TYPE_P.
8699         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
8700         (vect_force_simple_reduction): ... this.
8701         * tree-parloops.c (gather_scalar_reductions): Use
8702         vect_force_simple_reduction.
8703         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
8704         vect_is_simple_reduction, add modify argument, if true rewrite
8705         "a-b" into "a+(-b)".
8706         (vect_is_simple_reduction, vect_force_simple_reduction): New
8707         functions.
8708         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
8709
8710 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
8711             Vladimir Makarov  <vmakarov@redhat.com>
8712
8713         PR rtl-optimization/44012
8714         * ira-build.c (remove_unnecessary_allocnos): Nullify
8715         regno_allocno_map of the removed allocno.
8716
8717 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8718
8719         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
8720         to /dev/null.
8721         * configure: Regenerate.
8722
8723 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8724
8725         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
8726         unused.
8727         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
8728         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
8729         support in Sun ld.
8730         * configure: Regenerate.
8731
8732 2010-05-10  Richard Guenther  <rguenther@suse.de>
8733
8734         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
8735         marked if the entry identifier is marked.
8736
8737 2010-05-10  Richard Guenther  <rguenther@suse.de>
8738
8739         * c-common.c (struct c_common_attributes): Add fnspec attribute.
8740         (handle_fnspec_attribute): New function.
8741         * gimple.h (gimple_call_return_flags): Declare.
8742         (gimple_call_arg_flags): Likewise.
8743         * gimple.c (gimple_call_arg_flags): New function.
8744         (gimple_call_return_flags): Likewise.
8745         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
8746         New argument flags.
8747         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
8748         return value flags.
8749         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
8750         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
8751         main work to ...
8752         (make_heapvar_for): ... this new function.
8753         (handle_rhs_call): Handle fnspec attribute argument specifiers.
8754         (handle_lhs_call): Likewise.
8755         (find_func_aliases): Adjust.
8756
8757 2010-05-10  Richard Guenther  <rguenther@suse.de>
8758
8759         PR tree-optimization/44050
8760         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
8761
8762 2010-05-10  Wei Guozhi  <carrot@google.com>
8763
8764         PR target/42879
8765         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
8766
8767 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
8768
8769         PR c/10676
8770         * c-typeck.c (lookup_field): Take a type directly.  Update
8771         recursive calls.
8772         (build_component_ref): Update call to lookup_field.
8773         (set_init_label): Use lookup_field to find initialized field.
8774         Handle returned list of fields like a sequence of designators.
8775
8776 2010-05-09  Richard Guenther  <rguenther@suse.de>
8777
8778         PR middle-end/44024
8779         * fold-const.c (tree_single_nonzero_warnv_p): Properly
8780         handle &FUNCTION_DECL.
8781
8782 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
8783
8784         PR c/4784
8785         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
8786         structures and unions recursively.
8787         (detect_field_duplicates): Move duplicate detection with a hash to
8788         detect_field_duplicates_hash.  Always use a hash if anonymous
8789         structures or unions are present.
8790         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
8791         give errors.
8792
8793 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
8794
8795         PR target/44046
8796         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
8797         detect Atom, Core 2 and Core i7.
8798
8799 2010-05-09  Richard Guenther  <rguenther@suse.de>
8800
8801         * gcc.c (store_arg): Handle temporary file deletion for
8802         joined arguments.
8803
8804 2010-05-09  Richard Guenther  <rguenther@suse.de>
8805
8806         PR middle-end/44043
8807         * ipa-inline.c (estimate_function_body_sizes): Return after
8808         disregarding inline limits.
8809
8810 2010-05-09  Richard Guenther  <rguenther@suse.de>
8811
8812         * gcc.c (store_arg): Revert last change.
8813
8814 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
8815
8816         PR middle-end/28685
8817         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
8818         (optimize_ops_list): Call it.
8819
8820 2010-05-08  Richard Guenther  <rguenther@suse.de>
8821
8822         PR tree-optimization/44030
8823         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
8824         NECESSARY flag if we propagate from a inserted expression.
8825
8826 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
8827
8828         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
8829         domain types as equal if they are both PLACEHOLDER_EXPRs.
8830
8831 2010-05-08  Richard Guenther  <rguenther@suse.de>
8832
8833         * lto-wrapper.c (run_gcc): Remove linker output from
8834         command line for LTRANS invocation.
8835
8836 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
8837
8838         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
8839         lto-macho as lto_binary_reader.
8840         * target.h (struct gcc_target): New hooks lto_start and lto_end.
8841         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
8842         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
8843         in lto_start and lto_end calls.
8844         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
8845         magic numbers.
8846         (scan_prog_file): Update is_elf_or_coff call.
8847         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
8848
8849         * collect2.c (main): Fix enum comparison.
8850
8851         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
8852         Add prototypes.
8853         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
8854         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
8855         and TARGET_ASM_LTO_END.
8856         * darwin.c: Include obstack.h and lto-streamer.h.
8857         (lto_section_names_offset, lto_section_names_obstack,
8858         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
8859         global variables.
8860         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
8861         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
8862         to a temporary file.
8863         (darwin_asm_lto_end): New function.  Restore asm_out_file.
8864         (darwin_asm_named_section): For LTO sections, replace the name with
8865         the offset of the section name in a string table, and build this
8866         table.
8867         (darwin_file_start): Initialize global vars for LTO support.
8868         (darwin_file_end): If output to asm_out_file was redirected, append it
8869         to the proper asm_out_file here.  Add the section names section.
8870
8871 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
8872
8873         * c-pragma.c (pending_weak_d, pending_weak): New.
8874         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
8875         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
8876         handle_pragma_weak): Update the uses of pending_weaks.
8877
8878 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8879
8880         PR documentation/44016
8881         * doc/standards.texi (Standards): Link to unversioned
8882         cxx0x_status.html page.
8883
8884 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
8885
8886         PR target/43708
8887         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
8888         in addition to TREE_USED, to avoid "set but unused" warnings.
8889
8890 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
8891
8892         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
8893         (is_loop_prefetching_profitable): Do not insert prefetches
8894         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
8895         times the prefetch ahead distance.
8896
8897 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
8898
8899         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
8900         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
8901         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
8902         the unroll_factor.
8903
8904 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
8905
8906         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
8907         a diagnostic info when the insn-to-mem ratio is too small.
8908
8909 2010-05-07  Richard Guenther  <rguenther@suse.de>
8910
8911         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
8912         the linker plugin.
8913         (store_arg): Queue temp_filename for deletion instead of
8914         the whole argument.
8915
8916 2010-05-07  Richard Guenther  <rguenther@suse.de>
8917
8918         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
8919         (run_gcc): Handle LTRANS phase invocation.
8920         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
8921
8922 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
8923
8924         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
8925         this is also meaningful on PARM_DECLs and RESULT_DECLs.
8926
8927 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8928
8929         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
8930
8931 2010-05-07  Richard Guenther  <rguenther@suse.de>
8932
8933         PR tree-optimization/44020
8934         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
8935         code when PRE is not yet initialized.
8936
8937 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8938
8939         * config/mips/dbxmdebug.h: Remove.
8940         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
8941
8942 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
8943
8944         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
8945         with null pointer and also warn about ordered comparison of zero with
8946         pointer if -Wextra.
8947
8948 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8949
8950         * graphite-blocking.c
8951         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
8952         * graphite-clast-to-gimple.c
8953         (clast_to_gcc_expression): Same.
8954         (precision_for_value): Same.
8955         (precision_for_interval): Same.
8956         (gcc_type_for_interval): Same.
8957         (graphite_create_new_guard): Same.
8958         (compute_bounds_for_level): Same.
8959         (graphite_create_new_loop_guard): Same.
8960         * graphite-interchange.c
8961         (build_linearized_memory_access): Same.
8962         (pdr_stride_in_loop): Same.
8963         (memory_strides_in_loop_1): Same.
8964         (memory_strides_in_loop): Same.
8965         (extend_scattering): Same.
8966         (psct_scattering_dim_for_loop_depth): Same.
8967         (pbb_number_of_iterations): Same.
8968         * graphite-poly.h
8969         (debug_iteration_domains): Same.
8970         * graphite-ppl.c
8971         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
8972         (ppl_set_inhomogeneous_gmp): Same.
8973         (ppl_strip_loop): Same.
8974         (ppl_lexico_compare_linear_expressions): Same.
8975         (ppl_read_polyhedron_matrix): Same.
8976         (ppl_max_for_le_pointset): Same.
8977         * graphite-ppl.h
8978         (ppl_read_polyhedron_matrix): Same.
8979         (tree_int_to_gmp): Same.
8980         (gmp_cst_to_tree): Same.
8981         (ppl_set_inhomogeneous): Same.
8982         (ppl_set_inhomogeneous_tree): Same.
8983         (ppl_set_coef): Same.
8984         (ppl_set_coef_tree): Same.
8985         * graphite-sese-to-poly.c
8986         (build_pbb_scattering_polyhedrons): Same.
8987         (build_scop_scattering): Same.
8988         (scan_tree_for_params_right_scev): Same.
8989         (scan_tree_for_params): Same.
8990         (find_params_in_bb): Same.
8991         (find_scop_parameters): Same.
8992         (add_upper_bounds_from_estimated_nit): Same.
8993         (build_loop_iteration_domains): Same.
8994         (add_condition_to_domain): Same.
8995         (pdr_add_memory_accesses): Same.
8996
8997 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8998
8999         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
9000         CLooG's value_* macros to their respective mpz_* counterparts.
9001         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
9002         (graphite_create_new_loop_guard): Same.
9003         * graphite-interchange.c (build_linearized_memory_access): Same.
9004         (pdr_stride_in_loop): Same.
9005         (memory_strides_in_loop_1): Same.
9006         (1st_interchange_profitable_p): Same.
9007         * graphite-poly.c (extend_scattering): Same.
9008         (psct_scattering_dim_for_loop_depth): Same.
9009         (pbb_number_of_iterations): Same.
9010         (pbb_number_of_iterations_at_time): Same.
9011         * graphite-poly.h (new_1st_loop): Same.
9012         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
9013         (oppose_constraint): Same.
9014         (insert_constraint_into_matrix): Same.
9015         (ppl_set_inhomogeneous_gmp): Same.
9016         (ppl_set_coef_gmp): Same.
9017         (ppl_strip_loop): Same.
9018         (ppl_lexico_compare_linear_expressions): Same.
9019         (ppl_max_for_le_pointset): Same.
9020         (ppl_min_for_le_pointset): Same.
9021         (ppl_build_realtion): Same.
9022         * graphite-ppl.h (gmp_cst_to_tree): Same.
9023         (ppl_set_inhomogeneous): Same.
9024         (ppl_set_inhomogeneous_tree): Same.
9025         (ppl_set_coef): Same.
9026         (ppl_set_coef_tree): Same.
9027         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
9028         (build_scop_scattering): Same.
9029         (add_value_to_dim): Same.
9030         (scan_tree_for_params_right_scev): Same.
9031         (scan_tree_for_params_int): Same.
9032         (scan_tree_for_params): Same.
9033         (find_params_in_bb): Same.
9034         (find_scop_parameters): Same.
9035         (add_upper_bounds_from_estimated_nit): Same.
9036         (build_loop_iteration_domains): Same.
9037         (create_linear_expr_from_tree): Same.
9038         (add_condition_to_domain): Same.
9039         (pdr_add_memory_accesses): Same.
9040
9041 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
9042             Jason Merrill  <jason@redhat.com>
9043
9044         * c-common.c (c_common_reswords): Add nullptr.
9045         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
9046         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
9047         (gen_type_die_with_usage): Likewise.
9048         * dbxout.c (dbxout_type): Likewise.
9049         * sdbout.c (plain_type_1): Likewise.
9050
9051 2010-05-06  Jason Merrill  <jason@redhat.com>
9052
9053         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
9054         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
9055         ret appropriately.
9056         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
9057
9058         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
9059         stripping WITH_SIZE_EXPR.
9060         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
9061         change.
9062
9063 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9064
9065         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
9066         list of obsolete configurations.
9067         Disabled check for obsolete configurations.
9068         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
9069         Removed support for previous versions.
9070         * config/mips/iris.h: Removed.
9071         * config/mips/iris5.h: Removed.
9072         * config/mips/iris6.h: Merged old iris.h contents.
9073         (TARGET_IRIX): Removed.
9074         (DRIVER_SELF_SPECS): Removed mabi=32.
9075         (IDENT_ASM_OP): Removed undef.
9076         (STARTFILE_SPEC): Removed mabi=32.
9077         (ENDFILE_SPEC): Likewise.
9078         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
9079         (MACHINE_TYPE): Update for IRIX 6.5.
9080         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
9081         TARGET_IRIX by TARGET_IRIX6.
9082         (mips_file_start): Likewise.
9083         (mips_output_external): Remove IRIX 5/6 O32 support.
9084         (mips_output_function_prologue): Likewise.
9085         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
9086         TARGET_IRIX6.
9087         (TARGET_CPU_CPP_BUILTINS): Likewise.
9088         (TARGET_IRIX): Removed.
9089         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
9090         (MULTILIB_DIRNAMES): Removed 32.
9091         (MULTILIB_OSDIRNAMES): Removed ../lib.
9092         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
9093         (Specific, mips-sgi-irix5): Document removal.
9094         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
9095         Remove references to older IRIX 6 releases and the O32 ABI.
9096
9097 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
9098
9099         PR bootstrap/43994
9100         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
9101         instead of DF_REF_REAL_REG.
9102
9103 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
9104
9105         PR target/43888
9106         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
9107         handling to still return true for x64 targets.
9108
9109 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9110
9111         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
9112
9113 2010-05-06  Jan Hubicka  <jh@suse.cz>
9114
9115         PR tree-optimization/43791
9116         * ipa-inline.c (update_caller_keys): Remove bogus
9117         disregard_inline_limits check.
9118
9119 2010-05-06  Michael Matz  <matz@suse.de>
9120
9121         PR tree-optimization/43984
9122         * tree-ssa-pre.c (inserted_phi_names): Remove.
9123         (inserted_exprs): Change to bitmap.
9124         (create_expression_by_pieces): Set bits, don't append to vector.
9125         (insert_into_preds_of_block): Don't handle inserted_phi_names.
9126         (eliminate): Don't look at inserted_phi_names, remove deleted
9127         insns from inserted_exprs.
9128         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
9129         (init_pre, fini_pre): Allocate and free bitmaps.
9130         (execute_pre): Insert insns on edges before elimination.
9131
9132 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
9133
9134         * tree.c (initializer_zerop): Handle STRING_CST.
9135
9136 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9137
9138         PR 40989
9139         * doc/invoke.texi (Wimplicit): Document as C only.
9140         * opts.c (common_handle_option): Add argument kind.
9141         (handle_option): Rename as read_cmdline_option. Factor out code to...
9142         (handle_option): ... here. New.
9143         (handle_options): Rename as read_cmdline_options.
9144         (decode_options): Update call.
9145         (set_option): Use option index instead of option pointer. Classify
9146         diagnostics correctly.
9147         (enable_warning_as_error): Call handle_option.
9148         * opts.h (set_option): Update declaration.
9149         (handle_option): Declare.
9150         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
9151         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
9152         * c-opts.c (set_Wimplicit): Delete.
9153         (c_family_lang_mask): New static constant.
9154         (c_common_handle_option): Add argument kind. Use handle_option
9155         instead of set_Wimplicit.
9156         (c_common_post_options): warn_implicit and warn_implicit_int
9157         are disabled by default.
9158         * c-common.c (warn_implicit): Do not define here.
9159         * c-common.h (warn_implicit): Do not declare here.
9160         (c_common_handle_option): Update declaration.
9161         * lto-opts.c (lto_reissue_options): Update call to set_option.
9162
9163 2010-05-06  Richard Guenther  <rguenther@suse.de>
9164
9165         PR tree-optimization/43571
9166         * domwalk.c (walk_dominator_tree): Walk the dominator
9167         sons in more optimal order.
9168
9169 2010-05-06  Richard Guenther  <rguenther@suse.de>
9170
9171         PR tree-optimization/43934
9172         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
9173         (stmt_cost): Likewise.
9174         (extract_true_false_args_from_phi): New helper.
9175         (determine_max_movement): For PHI nodes verify we can hoist them
9176         and compute their cost.
9177         (determine_invariantness_stmt): Handle PHI nodes.
9178         (move_computations_stmt): Likewise.  Hoist PHI nodes in
9179         if-converted form using COND_EXPRs.
9180         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
9181         (tree_ssa_lim): Likewise.
9182         * tree-flow.h (tree_ssa_lim): Adjust prototype.
9183         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
9184
9185 2010-05-06  Richard Guenther  <rguenther@suse.de>
9186
9187         PR tree-optimization/43987
9188         * tree-ssa-structalias.c (could_have_pointers): For possibly
9189         address-taken variables force pointers to be recorded.
9190         (create_variable_info_for_1): Likewise.
9191         (push_fields_onto_fieldstack): Pass in wheter all fields
9192         must have pointers.
9193         (find_func_aliases): Query types instead of vars whether
9194         they contain pointers where appropriate.
9195
9196 2010-05-06  Jan Hubicka  <jh@suse.cz>
9197
9198         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
9199         (record_reference, mark_address, mark_load, mark_store): Record
9200         references.
9201         (record_references_in_initializer): Update call of record_references.
9202         (rebuild_cgraph_edges): Remove all references before rebuiding.
9203         * cgraph.c (cgraph_create_node): Clear ref list.
9204         (cgraph_remove_node): Remove references.
9205         (dump_cgraph_node): Dump references.
9206         (cgraph_clone_node): Clone references.
9207         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
9208         (struct cgraph_node, varpool_node): Add ref_lst.
9209         * ipa-ref.c: New file.
9210         * ipa-ref.h: New file.
9211         * ipa-ref-inline.h: New file.
9212         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
9213         (referenced_from_other_partition_p): New function.
9214         (lto_output_varpool_node): Take set arugment; call
9215         referenced_from_other_partition.
9216         (lto_output_ref): New.
9217         (add_references): New.
9218         (output_refs): New.
9219         (output_cgraph): Compute boundary based on references; output refs.
9220         (output_varpool): Accept cgraph_node_set argument.
9221         (input_ref): New.
9222         (input_refs): New.
9223         (input_cgraph): Call input_refs.
9224         * lto-section-in.c (lto_section_name): Add refs.
9225         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
9226         (ipa-ref.o): New file.
9227         * varpool.c (varpool_node): Clear ipa ref list.
9228         (varpool_remove_node): Remove references.
9229         (dump_varpool_node): Dump references.
9230         (varpool_assemble_decl): Only compile finalized ones.
9231         (varpool_extra_name_alias): Initialize ref list.
9232         * lto-streamer.c (lto-get_section_name): Add .refs section.
9233         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
9234         (referenced_from_other_partition_p): Declared.
9235
9236 2010-05-06  Ira Rosen  <irar@il.ibm.com>
9237
9238         PR tree-optimization/43901
9239         * tree-vect-stmts.c (vectorizable_call): Assert that vector
9240         type is not NULL if it's transformation phase, and return
9241         FALSE if it's analysis.
9242         (vectorizable_conversion, vectorizable_operation,
9243         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
9244
9245 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
9246
9247         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
9248         Delete.
9249         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
9250         New define.
9251         * config/mips/mips-protos.h
9252         (mips_small_register_classes_for_mode_p): Delete prototype.
9253
9254 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
9255
9256         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
9257         * config/arm/arm.c (multiple_operation_profitable_p,
9258         compute_offset_order): New static functions.
9259         (load_multiple_sequence, store_multiple_sequence): Use them.
9260         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
9261         memory offsets, not register numbers.
9262         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
9263
9264 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
9265
9266         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
9267         (get_pending_sizes, put_pending_size, put_pending_sizes):
9268         Update the uses of pending_sizes.
9269         * c-decl.c (store_parm_decls): Likewise.
9270         * c-tree.h (struct c_arg_info): Likewise.
9271         * tree.h: Update the prototype for get_pending_sizes and
9272         put_pending_sizes.
9273
9274 2010-05-05  Jason Merrill  <jason@redhat.com>
9275
9276         PR debug/43370
9277         * c-common.c (handle_aligned_attribute): Respect
9278         ATTR_FLAG_TYPE_IN_PLACE.
9279
9280         PR testsuite/43758
9281         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
9282         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9283         (TARGET_INITIALIZER): Use it.
9284         * c-common.c (attribute_takes_identifier_p): Call it.
9285         * c-common.h: Update prototype.
9286         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
9287         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9288
9289 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
9290
9291         PR debug/43950
9292         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
9293         DW_ID_down_case for Fortran compilation units.
9294
9295 2010-05-05  Jan Hubicka  <jh@suse.cz>
9296
9297         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
9298         handle aliases.
9299
9300 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
9301
9302         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
9303         a variable-sized RESULT_DECL.
9304
9305 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
9306
9307         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
9308
9309 2010-05-05  Jason Merrill  <jason@redhat.com>
9310
9311         PR c++/43787
9312         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
9313         returns GS_OK.
9314         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
9315
9316 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
9317             Jakub Jelinek  <jakub@redhat.com>
9318
9319         PR debug/43478
9320         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
9321         (dead_debug_init, dead_debug_finish): New functions.
9322         (dead_debug_add, dead_debug_insert_before): Likewise.
9323         (df_note_bb_compute): Initialize a dead_debug object, add dead
9324         debug uses to it, insert debug bind insns before death insns,
9325         reset debug insns that refer to pending uses at the end.
9326         * rtl.h (make_debug_expr_from_rtl): New prototype.
9327         * varasm.c (make_debug_expr_from_rtl): New function.
9328
9329 2010-05-05  Jan Hubicka  <jh@suse.cz>
9330
9331         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
9332         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
9333         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
9334         lto_varpool_encoder_deref, lto_varpool_encoder_size,
9335         lto_varpool_encoder_encode_initializer_p,
9336         lto_set_varpool_encoder_encode_initializer): New functions.
9337         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
9338         call output_varpool.
9339         (input_varpool_node): Do not always set analyzed.
9340         (input_cgraph_1): Return vector of cgraph nodes.
9341         (input_varpool_1): Return vector of varpools.
9342         (input_cgraph): Free the vectors.
9343         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9344         output only initializers needed.
9345         (lto_output): Only call output_cgraph.
9346         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
9347         * lto-section-out.c (lto_new_out_decl_state): Initialize
9348         state->varpool_node_encoder.
9349         * lto-streamer.h (lto_varpool_encoder_d): New.
9350         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
9351         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
9352         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
9353         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
9354         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
9355         Declare.
9356         (output_varpool, input_varpool): Remove declarations.
9357
9358 2010-05-05  Jan Hubicka  <jh@suse.cz>
9359
9360         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
9361         with body can prevail.
9362
9363 2010-05-05  Jan Hubicka  <jh@suse.cz>
9364
9365         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
9366         size.
9367
9368 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9369
9370         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
9371
9372         * gengtype.h (erro_at_line): Constify pos argument.
9373
9374         * gengtype.c: Include hashtab.h.
9375         (enum gc_used): Document GC_MAYBE_POINTED_TO.
9376         (error_at_line): Constify pos argument.
9377         (do_typedef): Initialize p->opt field.
9378         (get_file_gtfilename): Fix comment typo.
9379         (struct walk_type_data): Constify line field.
9380         (get_output_file_for_structure): New function.
9381         (write_local_func_for_structure): Constify orig_s argument.
9382         Use get_output_file_for_structure.
9383         (write_func_for_structure): Use get_output_file_for_structure.
9384         (INDENT): New define.
9385         (dump_pair, dump_type, dump_type_list, dump_typekind)
9386         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
9387         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
9388         functions.
9389         (seen_types): New variable.
9390         (main): New variable do_dump.  Process "-d" command line option.
9391         Call dump_everything if dump requested.
9392
9393 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
9394
9395         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
9396         in a temporary instead of invoking the macro multiple times.
9397         (track_expr_p): Likewise.
9398
9399 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
9400
9401         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
9402         per new semantics.
9403         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
9404         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
9405         conditions for printing notes.
9406         * common.opt (-Wcoverage-mismatch): Allow negative, default to
9407         true, update documentation.
9408         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
9409
9410 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
9411
9412         PR c/43981
9413         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
9414         on dimen.
9415
9416 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
9417
9418         PR target/43799
9419         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
9420         (*sse_prologue_save_insn1): Likewise.
9421         (SSE prologue save splitter): Likewise.
9422
9423 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
9424
9425         * tree.c (free_lang_data_in_one_sizepos): New inline function.
9426         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
9427         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
9428         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
9429         all decls.  Call it on DECL_FIELD_OFFSET of fields.
9430         (find_decls_types_r): Follow DECL_VALUE_EXPR.
9431         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
9432
9433 2010-05-04  Martin Jambor  <mjambor@suse.cz>
9434
9435         * tree-sra.c (build_access_from_expr_1): The first parameter type
9436         changed to simple tree.
9437         (build_access_from_expr): Likewise, gsi parameter was eliminated.
9438         (scan_assign_result): Renamed to assignment_mod_result, enum elements
9439         renamed as well.
9440         (build_accesses_from_assign): Removed all parameters except for a
9441         simple gimple statement.  Now returns a simple bool.
9442         (scan_function): All non-analysis parts moved to separate functions
9443         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
9444         parameters and updated both callers.
9445         (sra_modify_expr): Removed parameter data.
9446         (sra_modify_function_body): New function.
9447         (perform_intra_sra): Call sra_modify_function_body to modify the
9448         function body.
9449         (replace_removed_params_ssa_names): Parameter data changed into
9450         adjustments vector.
9451         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
9452         changed the parameter dont_convert to convert with the opposite
9453         meaning.
9454         (sra_ipa_modify_assign): Parameter data changed into adjustments
9455         vector, return value changed to bool.
9456         (ipa_sra_modify_function_body): New function.
9457         (sra_ipa_reset_debug_stmts): Updated a comment.
9458         (modify_function): Use ipa_sra_modify_function_body to modify function
9459         body.
9460
9461 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
9462
9463         PR middle-end/43671
9464         * alias.c (true_dependence): Handle the same VALUE in x and mem.
9465         (canon_true_dependence): Likewise.
9466         (write_dependence_p): Likewise.
9467
9468 2010-05-04  Jan Hubicka  <jh@suse.cz>
9469
9470         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
9471         * cgraphbuild.c: Include ipa-utils.h
9472         (record_reference_ctx): New struct.
9473         (record_reference): Simplify to work on initializers; not statements.
9474         (mark_address, mark_load, mark_store): New.
9475         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
9476         walk PHI nodes too.
9477         (record_references_in_initializer): Update use of record_reference.
9478         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
9479         walk PHI nodes too.
9480
9481 2010-05-04  Jan Hubicka  <jh@suse.cz>
9482
9483         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
9484         node will be removed anyway.
9485         (lto_varpool_replace_node): Allow also unanalyzed nodes;
9486         relink aliases of node into prevailing node.
9487         * varpool.c (varpool_remove_node): Remove aliases properly;
9488         when removing node, remove all its aliases too; remove DECL_INITIAL
9489         of removed node; ggc_free the varpool node.
9490
9491 2010-05-04  Richard Guenther  <rguenther@suse.de>
9492
9493         PR tree-optimization/43879
9494         * tree-ssa-structalias.c (alias_get_name): Use
9495         DECL_ASSEMBLER_NAME if available.
9496         (create_function_info_for): Return the varinfo node.
9497         (ipa_pta_execute): Associate same-body aliases and extra names
9498         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
9499
9500 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9501
9502         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
9503
9504 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
9505
9506         PR bootstrap/43964
9507         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
9508         only if HONOR_REG_ALLOC_ORDER is not defined.
9509
9510 2010-05-04  Richard Guenther  <rguenther@suse.de>
9511
9512         PR tree-optimization/43949
9513         * tree-vrp.c (extract_range_from_binary_expr): Only handle
9514         TRUNC_MOD_EXPR.
9515
9516 2010-04-26  Jason Merrill  <jason@redhat.com>
9517
9518         * c.opt (-fstrict-enums): New.
9519         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
9520
9521 2010-05-03  David Ung  <davidu@mips.com>
9522             James E. Wilson  <wilson@codesourcery.com>
9523
9524         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
9525         emit the trap instruction before the divide for TUNE_74K.
9526
9527 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
9528
9529         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
9530         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
9531         based on the above, for new target hook.
9532
9533         * hooks.c (hook_bool_mode_true): New generic hook.
9534         * hooks.h (hook_bool_mode_true): Add prototype.
9535
9536         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
9537         target hook.
9538         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
9539         target hook, set to hook_bool_mode_false.
9540         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
9541         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
9542         with targetm.small_register_classes_for_mode_p.
9543         (find_reusable_reload): Likewise.
9544         (combine_reloads): Likewise.
9545         * reload1.c (reload_as_needed): Likewise.
9546         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
9547         * ifcvt.c (noce_process_if_block, check_cond_move_block,
9548         dead_or_predicable): Likewise.
9549         * regmove.c (optimize_reg_copy_1): Likewise.
9550         * calls.c (prepare_call_address): Likewise.
9551         (precompute_register_parameters): Likewise.
9552
9553         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
9554         hook definition.
9555         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
9556         implementation of the hook that considers all register classes
9557         small except for SH64.
9558         (sh_override_options): Use the new hook.
9559         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
9560         Add prototype.
9561
9562         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
9563         hook definition.
9564         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
9565         implementation of the hook that considers all register classes
9566         small for THUMB1.
9567         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
9568         Add prototype.
9569
9570         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
9571         hook definition.
9572         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
9573         implementation of the hook that considers all register classes
9574         small for MIPS16.
9575         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
9576         Add prototype.
9577
9578         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
9579         hook definition.
9580         * config/m32c/m32c.h: Likewise.
9581         * config/pdp11/pdp11.h: Likewise.
9582         * config/avr/avr.h: Likewise.
9583         * config/xtensa/xtensa.h: Likewise.
9584         * config/m68hc11/m68hc11.h: Likewise.
9585         * config/mn10300/mn10300.h: Likewise.
9586         * config/mcore/mcore.h: Likewise.
9587         * config/h8300/h8300.h: Likewise.
9588         * config/bfin/bfin.h: Likewise.
9589
9590         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
9591         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
9592
9593 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
9594
9595         * double-int.h (tree_to_double_int): Remove macro.
9596         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
9597         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
9598         (tree_to_double_int): New function.
9599         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
9600         Move ...
9601         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
9602
9603 2010-05-03  Richard Guenther  <rguenther@suse.de>
9604
9605         PR tree-optimization/43971
9606         * tree-ssa-structalias.c (get_constraint_for_1): Fix
9607         constraints in the !flag_delete_null_pointer_checks case.
9608
9609 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
9610
9611         PR debug/43972
9612         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
9613         result mode matches original rtl mode.
9614
9615 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
9616
9617         PR target/43888
9618         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
9619
9620 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9621
9622         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
9623         when processing flag options.
9624
9625 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9626
9627         * gcov-iov.c (main): Change format string placeholder
9628         from %#08x to 0x%08x.
9629         * genchecksum.c (dosum): Change format string placeholder
9630         from %#02x to 0x%02x.
9631
9632 2010-05-02  Richard Guenther  <rguenther@suse.de>
9633
9634         PR tree-optimization/43879
9635         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
9636
9637 2010-05-02  Bruno Haible  <bruno@clisp.org>
9638
9639         * doc/extend.texi (Function Attributes): Fix a typo.
9640
9641 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9642
9643         Revert:
9644         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
9645         placeholder from 0x%x to %#x.
9646         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
9647         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
9648         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
9649         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
9650         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
9651         * config/i386/i386.c (ix86_target_string): Ditto.
9652         * config/i386/i386.c (output_pic_addr_const): Ditto.
9653         (print_operand): Ditto.
9654
9655 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
9656
9657         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
9658         placeholder from 0x%x to %#x.
9659         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
9660         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
9661         (ASM_OUTPUT_DEBUG_DATA): Ditto.
9662         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
9663         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
9664         * optc-gen.awk: Ditto.
9665         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
9666         (HOST_WIDE_INT_PRINT_HEX): Ditto.
9667         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
9668         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
9669
9670 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
9671
9672         * target.h (struct calls): Add function_value_regno_p field.
9673         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9674         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
9675         * targhooks.c (default_function_value_regno_p): New function.
9676         * targhooks.h (default_function_value_regno_p): Declare function.
9677         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
9678         * builtins.c. (apply_result_size): (Ditto.).
9679         * combine.c. (likely_spilled_retval_p): (Ditto.).
9680         * mode-switching.c. Include 'target.h'.
9681         (create_pre_exit): Use function_value_regno_p hook.
9682         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
9683         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
9684         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
9685
9686         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
9687         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
9688         (ix86_function_value_regno_p): Declare as static, change argument
9689         type to const unsigned int.
9690         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
9691
9692 2010-05-01  Richard Guenther  <rguenther@suse.de>
9693
9694         PR tree-optimization/43949
9695         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
9696         types.
9697         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
9698
9699 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
9700
9701         * rtl.h (CONST_DOUBLE_P): Define.
9702         (rtx_to_double_int): Declare.
9703         * emit-rtl.c (rtx_to_double_int): New function.
9704         * dwarf2out.c (insert_double): New function.
9705         (loc_descriptor, add_const_value_attribute): Clean up, use
9706         rtx_to_double_int and insert_double functions.
9707
9708 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
9709
9710         * doc/extend.texi (Inline): Add missing return keyword to examples.
9711         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
9712         "command-line".
9713
9714 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
9715
9716         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
9717         the variable part of the offset as well.  Use highest_pow2_factor for
9718         all alignment checks.
9719
9720 2010-04-30  Richard Guenther  <rguenther@suse.de>
9721
9722         PR tree-optimization/43879
9723         * tree-ssa-structalias.c (type_could_have_pointers): Functions
9724         can have pointers.
9725
9726 2010-04-30  Jan Hubicka  <jh@suse.cz>
9727
9728         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
9729         varpool.
9730         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
9731
9732 2010-04-30  Jan Hubicka  <jh@suse.cz>
9733
9734         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
9735         New.
9736         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
9737         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
9738         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
9739         cgraph_node_set_needs_ltrans_p): Remove.
9740
9741 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
9742
9743         * sdbout.c: Include vec.h, do not include varray.h.
9744         (deferred_global_decls, sdbout_global_decl,
9745         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
9746         * toplev.c: Do not include varray.h.
9747         (dump_memory_report): Do not dump VARRAY statistics.
9748         * gengtype.c (open_base_file): Ignore varray.h.
9749         * Makefile.in: Update for abovementioned changes.
9750         Remove all traces of varray.c and varray.h.
9751         * varray.c: Remove file.
9752         * varray.h: Remove file.
9753
9754 2010-04-30  Jan Hubicka  <jh@suse.cz>
9755
9756         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
9757         references.
9758
9759 2010-04-30  Jan Hubicka  <jh@suse.cz>
9760
9761         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
9762         needed.
9763
9764 2010-04-30  Richard Guenther  <rguenther@suse.de>
9765
9766         * tree-ssa-structalias.c (get_constraint_for_1): Generate
9767         constraints for CONSTRUCTOR.
9768
9769 2010-04-30  Richard Guenther  <rguenther@suse.de>
9770
9771         PR lto/43946
9772         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
9773         first after all lowering passes.
9774
9775 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
9776
9777         * toplev.c: Include varray.h for statistics dumping.
9778         * tree.h: Do not declare varray_head_tag.
9779         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
9780         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
9781         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
9782         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
9783         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
9784         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
9785         c-common.c, c-common.h, reg-stack.c, basic-block.h,
9786         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
9787         include varray.h.
9788         * Makefile.in: Update for abovementioned changes.
9789
9790 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
9791
9792         PR debug/43942
9793         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
9794
9795 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9796
9797         * config/picochip/picochip.c (picochip_legitimize_address): Define.
9798         Use this function to do machine-specific conversion.
9799         (picochip_legitimize_reload_address): Likewise.
9800         (picochip_legitimate_address_p): Check valid base register only if
9801         strict.
9802         (picochip_check_conditional_copy): Check for modw only if opnd is
9803         register.
9804         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
9805         to call the function in c.
9806         * config/picochip/picochip-protos.h
9807         (picochip_legitimize_reload_address): Define.
9808         * config/picochip/picochip.md (supported_compare1): Define.
9809
9810 2010-04-30  Jan Hubicka  <jh@suse.cz>
9811
9812         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
9813         (cgraph_global_info): Remove inlined.
9814         (LTO_cgraph_tag_names): Remove.
9815         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
9816         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
9817         simplify cgraph tags and document.
9818         (lto_output_node): Use only LTO_cgraph_unavail_node and
9819         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
9820         for_functions_valid, global info, process and output flags.
9821         (input_overwrite_node): Initialize estimated stack size and
9822         estimated growth.  Do not read flags we no longer store.
9823         (input_node): Likewise do not read info no longer stored.
9824         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
9825         flag.
9826
9827 2010-04-30  Richard Guenther  <rguenther@suse.de>
9828
9829         PR tree-optimization/43879
9830         * tree-ssa-structalias.c (get_constraint_for_1): Properly
9831         handle non-zero initializers.
9832
9833 2010-04-30  Richard Guenther  <rguenther@suse.de>
9834
9835         * builtins.c (fold_builtin_1): Delete free (0).
9836
9837 2010-04-29  Jan Hubicka  <jh@suse.cz>
9838
9839         * gengtype.c (open_base_files): Add lto-streamer.h
9840         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
9841         (pass_ipa_cp): GGC collect.
9842         * toplev. (compile_file): Do not output symbols.
9843         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
9844         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
9845         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
9846         * lto-section-in.c: Include ggc.h
9847         (lto_new_in_decl_state): Alloc in GGC.
9848         (lto_delete_in_decl_state): Likewise.
9849         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
9850         Collect.
9851
9852 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
9853
9854         PR target/42895
9855         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
9856         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
9857         (HONOR_REG_ALLOC_ORDER): Describe new macro.
9858         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
9859         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
9860         account only if HONOR_REG_ALLOC_ORDER is not defined.
9861         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
9862         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
9863
9864 2010-04-29  Jon Grant  <04@jguk.org>
9865
9866         * collect2.c (vflag): Change type from int to bool.
9867         (debug): Likewise.
9868         (helpflag): New global bool.
9869         (main): Set vflag and debug with boolean, not integer truth values.
9870         Accept new "--help" option and output usage text if found.
9871         * collect2.h (vflag): Update prototype.
9872         (debug): Likewise.
9873
9874 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
9875
9876         PR bootstrap/43936
9877         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
9878
9879 2010-04-29  Richard Guenther  <rguenther@suse.de>
9880
9881         PR bootstrap/43935
9882         * plugin.h (invoke_plugin_callbacks): Annotate arguments
9883         with ATTRIBUTE_UNUSED.
9884
9885 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
9886
9887         PR target/43921
9888         * config/i386/i386.c (get_some_local_dynamic_name): Replace
9889         INSN_P with NONDEBUG_INSN_P.
9890         (distance_non_agu_define): Likewise.
9891         (distance_agu_use): Likewise.
9892
9893 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
9894
9895         From Dominique d'Humieres  <dominiq@lps.ens.fr>
9896         PR bootstrap/43858
9897         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
9898         test_set.
9899
9900 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
9901
9902         * plugin.h (invoke_plugin_callbacks): New inline function.
9903         * plugin.c (flag_plugin_added): New global flag.
9904         (add_new_plugin): Initialize above flag.
9905         (invoke_plugin_callbacks): Rename to ...
9906         (invoke_plugin_callbacks_full): ... this.
9907
9908 2010-04-28  Jan Hubicka  <jh@suse.cz>
9909
9910         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
9911         (lto_varpool_replace_node): New.
9912         (lto_symtab_resolve_symbols): Resolve varpool nodes.
9913         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
9914         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
9915         * cgraph.h (varpool_node_ptr): New type.
9916         (varpool_node_ptr): New vector.
9917         (varpool_node_set_def): New structure.
9918         (varpool_node_set): New type.
9919         (varpool_node_set): New vector.
9920         (varpool_node_set_element_def): New structure.
9921         (varpool_node_set_element, const_varpool_node_set_element): New types.
9922         (varpool_node_set_iterator): New type.
9923         (varpool_node): Add prev pointers, add used_from_other_partition,
9924         in_other_partition.
9925         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
9926         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
9927         varpool_get_node, varpool_remove_node): Declare.
9928         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
9929         varpool_node_set_size): New inlines.
9930         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
9931         * tree-pass.h (varpool_node_set_def): Forward declare.
9932         (ipa_opt_pass_d): Summary writting takes vnode sets too.
9933         (ipa_write_optimization_summaries): Update prototype.
9934         * ipa-cp.c (ipcp_write_summary): Update.
9935         * ipa-reference.c (ipa_reference_write_summary): Update.
9936         * lto-cgraph.c (lto_output_varpool_node): New static function.
9937         (output_varpool): New function.
9938         (input_varpool_node): New static function.
9939         (input_varpool_1): New function.
9940         (input_cgraph): Input varpool.
9941         * ipa-pure-const.c (pure_const_write_summary): Update.
9942         * lto-streamer-out.c (lto_output): Update, output varpool too.
9943         (write_global_stream): Kill WPA hack.
9944         (produce_asm_for_decls): Update.
9945         (output_alias_pair_p): Handle variables.
9946         (output_unreferenced_globals): Output only needed partition of varpool.
9947         * ipa-inline.c (inline_write_summary): Update.
9948         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
9949         cgraph.
9950         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
9951         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
9952         varpool_node_set_new, varpool_node_set_add,
9953         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
9954         debug_varpool_node_set): New functions.
9955         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
9956         (execute_one_pass): Process new decls too.
9957         (ipa_write_summaries_2): Pass around vsets.
9958         (ipa_write_summaries_1): Likewise.
9959         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
9960         to add.
9961         (ipa_write_optimization_summaries_1): Pass around vsets.
9962         (ipa_write_optimization_summaries): Likewise.
9963         * varpool.c (varpool_get_node): New.
9964         (varpool_node): Update doubly linked lists.
9965         (varpool_remove_node): New.
9966         (dump_varpool_node): More dumping.
9967         (varpool_enqueue_needed_node): Update doubly linked lists.
9968         (decide_is_variable_needed): Kill ltrans hack.
9969         (varpool_finalize_decl): Kill lto hack.
9970         (varpool_assemble_decl): Skip decls in other partitions.
9971         (varpool_assemble_pending_decls): Update doubly linkes lists.
9972         (varpool_empty_needed_queue): Likewise.
9973         (varpool_extra_name_alias): Likewise.
9974         * lto-streamer.c (lto_get_section_name): Add vars section.
9975         * lto-streamer.h (lto_section_type): Update.
9976         (output_varpool, input_varpool): Declare.
9977
9978 2010-04-28  Mike Stump  <mikestump@comcast.net>
9979
9980         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
9981
9982 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9983
9984         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
9985         record or union type with RECORD_OR_UNION_TYPE_P predicate.
9986         (lto_input_ts_type_tree_pointers): Likewise.
9987         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
9988         (lto_output_ts_type_tree_pointers): Likewise.
9989
9990 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9991
9992         Uniquization of constants at the Tree level
9993         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
9994         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
9995         bit to the end.
9996         (tree_output_constant_def): Declare.
9997         * gimplify.c (gimplify_init_constructor): When using block copy, first
9998         uniquize the constant constructor on the RHS.
9999         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
10000         DECL_IN_CONSTANT_POOL flag.
10001         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
10002         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
10003         constant pool.
10004         (assemble_variable): Deal with symbols belonging to the tree constant
10005         pool.
10006         (get_constant_section): Add ALIGN parameter and simplify.
10007         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
10008         (assemble_constant_contents): Use the expression of the VAR_DECL.
10009         (output_constant_def_contents): Use the alignment of the VAR_DECL.
10010         (tree_output_constant_def): New global function.
10011         (mark_constant): Use the expression of the VAR_DECL.
10012         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
10013         its expression.
10014         (output_object_block): Likewise and assemble the expression.
10015
10016 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10017
10018         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
10019         hash_tree, eq_tree): New tree hash table.
10020         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
10021         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
10022         lto_orig_address_remove): Reimplement.
10023
10024 2010-04-28  Xinliang David Li  <davidxl@google.com>
10025
10026         PR c/42643
10027         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
10028         (compute_uninit_opnds_pos): New function.
10029         (is_non_loop_exit_postdominating): New function.
10030         (compute_control_dep_chain): New function.
10031         (find_pdom): New function.
10032         (convert_control_dep_chain_into_preds): New function.
10033         (find_predicates): New function.
10034         (find_control_equiv_block): New function.
10035         (collect_phi_def_edges): New function.
10036         (find_def_preds): New function.
10037         (find_dom): New function.
10038         (dump_predicates): New function.
10039         (get_cmp_code): New function.
10040         (is_value_included_in): New function.
10041         (find_matching_predicate_in_rest_chains): New function.
10042         (use_pred_not_overlap_with_undef_path_pred): New function.
10043         (is_use_properly_guarded): New function.
10044         (normalize_cond_1): New function.
10045         (is_and_or_or): New function.
10046         (normalize_cond): New function.
10047         (is_gcond_subset_of): New function.
10048         (is_subset_of_any): New function.
10049         (is_or_set_subset_of): New function.
10050         (is_and_set_subset_of): New function.
10051         (is_norm_cond_subset_of): New function.
10052         (is_pred_expr_subset_of): New function.
10053         (is_pred_chain_subset_of): New function.
10054         (is_included_in): New function.
10055         (is_superset_of): New function.
10056         (find_uninit_use): New function.
10057         (warn_uninitialized_phi): New function.
10058         (compute_possibly_undefined_names): New function.
10059         (ssa_undefined_value_p): New function.
10060         (execute_late_warn_uninitialized): New function.
10061         * tree-ssa.c (ssa_undefined_value_p): Removed.
10062         (warn_uninit): Changed to extern.
10063         (warn_uninitialized_phi): Removed.
10064         (warn_uninitialized_vars): Changed to extern.
10065         (execute_late_warn_uninitialized): Removed
10066         * tree-flow.h: Add new prototypes.
10067         * timevar.def: Add new time variable.
10068         * Makefile.in: Add new build file.
10069
10070 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
10071
10072         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
10073         type if available.
10074
10075 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10076
10077         PR target/22224
10078         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
10079
10080 2010-04-28  Martin Jambor  <mjambor@suse.cz>
10081
10082         * cgraph.h (struct cgraph_node): New field indirect_calls.
10083         (struct cgraph_indirect_call_info): New type.
10084         (struct cgraph_edge): Removed field indirect_call. New fields
10085         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
10086         (cgraph_create_indirect_edge): Declare.
10087         (cgraph_make_edge_direct): Likewise.
10088         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
10089         * ipa-prop.h (struct ipa_param_call_note): Removed.
10090         (struct ipa_node_params): Removed field param_calls.
10091         (ipa_create_all_structures_for_iinln): Declare.
10092         * cgraph.c: Described indirect edges and uids in initial comment.
10093         (cgraph_add_edge_to_call_site_hash): New function.
10094         (cgraph_edge): Search also among the indirect edges, use
10095         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
10096         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
10097         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
10098         site hash.
10099         (initialize_inline_failed): Assign a reason to indirect edges.
10100         (cgraph_create_edge_1): New function.
10101         (cgraph_create_edge): Moved some functionality to
10102         cgraph_create_edge_1.
10103         (cgraph_create_indirect_edge): New function.
10104         (cgraph_edge_remove_callee): Add an assert checking for
10105         non-indirectness.
10106         (cgraph_edge_remove_caller): Special-case indirect edges.
10107         (cgraph_remove_edge): Likewise.
10108         (cgraph_set_edge_callee): New function.
10109         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
10110         (cgraph_make_edge_direct): New function.
10111         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
10112         the declaration of the call statement matches.
10113         (cgraph_node_remove_callees): Special-case indirect edges.
10114         (cgraph_clone_edge): Likewise.
10115         (cgraph_clone_node): Clone also the indirect edges.
10116         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
10117         indirect_call, dump count of indirect_calls edges.
10118         * ipa-prop.c (iinlining_processed_edges): New variable.
10119         (ipa_note_param_call): Create indirect edges instead of
10120         creating notes.  New parameter node.
10121         (ipa_analyze_call_uses): New parameter node, pass it on to
10122         ipa_note_param_call.
10123         (ipa_analyze_stmt_uses): Likewise.
10124         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
10125         (print_edge_addition_message): Work on edges rather than on notes.
10126         (update_call_notes_after_inlining): Likewise, renamed to
10127         update_indirect_edges_after_inlining.
10128         (ipa_create_all_structures_for_iinln): New function.
10129         (ipa_free_node_params_substructures): Do not free notes.
10130         (ipa_edge_duplication_hook): Propagate bits within
10131         iinlining_processed_edges bitmap.
10132         (ipa_node_duplication_hook): Do not duplicate notes.
10133         (free_all_ipa_structures_after_ipa_cp): Renamed to
10134         ipa_free_all_structures_after_ipa_cp.
10135         (free_all_ipa_structures_after_iinln): Renamed to
10136         ipa_free_all_structures_after_iinln.
10137         (ipa_write_param_call_note): Removed.
10138         (ipa_read_param_call_note): Removed.
10139         (ipa_write_indirect_edge_info): New function.
10140         (ipa_read_indirect_edge_info): Likewise.
10141         (ipa_write_node_info): Do not stream notes, do stream information
10142         in indirect edges.
10143         (ipa_read_node_info): Likewise.
10144         (lto_ipa_fixup_call_notes): Removed.
10145         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
10146         * ipa-inline.c (pass_ipa_inline): Likewise.
10147         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
10148         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
10149         * tree-inline.c (copy_bb): Removed an unnecessary double check for
10150         is_gimple_call.
10151         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
10152         edges.
10153         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
10154         (output_cgraph): Stream also indirect edges.
10155         (lto_output_edge): Added capability to stream indirect edges.
10156         (input_edge): Likewise.
10157         (input_cgraph_1): Likewise.
10158         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
10159         of indirect edges.
10160
10161 2010-04-28  Richard Guenther  <rguenther@suse.de>
10162
10163         PR tree-optimization/43879
10164         PR tree-optimization/43909
10165         * tree-ssa-structalias.c (struct variable_info): Add
10166         only_restrict_pointers flag.
10167         (new_var_info): Initialize it.  Increment stats.total_vars here.
10168         (create_function_info_for): Do not increment stats.total_vars here.
10169         (get_function_part_constraint): Fix build with C++.
10170         (insert_into_field_list): Remove.
10171         (push_fields_onto_fieldstack): Properly merge fields.
10172         (create_variable_info_for): Split and simplify.
10173         (create_variable_info_for_1): New piece.
10174         (intra_create_variable_infos): Properly make restrict constraints
10175         from parameters.
10176
10177 2010-04-28  Richard Guenther  <rguenther@suse.de>
10178
10179         PR c++/43880
10180         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
10181
10182 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10183             Jan Hubicka  <hubicka@ucw.cz>
10184
10185         * doc/invoke.texi (-Wsuggest-attribute=const,
10186         -Wsuggest-attribute=pure): Document.
10187         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
10188         (function_always_visible_to_compiler_p,
10189         suggest_attribute, warn_function_pure, warn_function_const):
10190         New functions.
10191         (check_call): Improve debug info.
10192         (analyze_function): Do not check availability.
10193         (add_new_function): Check availability.
10194         (propagate): Output warnings.
10195         (skip_function_for_local_pure_const): New function.
10196         (local_pure_const): Use it; output warnings.
10197         * common.opt (Wsuggest-attribute=const,
10198         Wsuggest-attribute=pure): New.
10199
10200 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
10201
10202         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
10203         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
10204         or DW_CFA_def_cfa_offset{,_sf}.
10205
10206 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
10207
10208         * tree.h: Fix truncated long macros.
10209
10210 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
10211
10212         * collect2.c (TARGET_64BIT): Redefine to target's default.
10213         * tlink.c: Likewise.
10214         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
10215         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
10216         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
10217         for underscoring __USER_LABEL_PREFIX__.
10218         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
10219         (SUB_LINK_ENTRY32): New.
10220         (SUB_LINK_ENTRY64): New.
10221         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
10222         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
10223         (SUB_LINK_ENTRY64): New.
10224         (SUB_LINK_ENTRY): New.
10225         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
10226         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
10227         x64 target is choosen.
10228         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
10229         * configure: Regenerated.
10230         * configure.ac (leading-mingw64-underscores): Option added.
10231
10232 2010-04-27  Jan Hubicka  <jh@suse.cz>
10233
10234         * doc/invoke.texi (-fipa-profile): Document.
10235         * opts.c (decode_options): Enable ipa-profile at -O1.
10236         * timevar.def (TV_IPA_PROFILE): Define.
10237         * common.opt (fipa-profile): Add.
10238         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
10239         flag for clones.
10240         (cgraph_propagate_frequency): Handle only local ones.
10241         * tree-pass.h (pass_ipa_profile): Declare.
10242         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
10243         (pass_ipa_profile): Use TV_IPA_PROFILE.
10244         * ipa.c (ipa_profile): New function.
10245         (gate_ipa_profile): Likewise.
10246         (pass_ipa_profile): New global variable.
10247         * passes.c (pass_ipa_profile): New.
10248
10249 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
10250
10251         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
10252
10253 2010-04-27  Martin Jambor  <mjambor@suse.cz>
10254
10255         PR middle-end/43812
10256         * ipa.c (dissolve_same_comdat_group_list): New function.
10257         (function_and_variable_visibility): Call
10258         dissolve_same_comdat_group_list when comdat group contains external or
10259         newly local nodes.
10260         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
10261         lists are circular and that they contain only DECL_ONE_ONLY nodes.
10262
10263 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
10264
10265         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
10266         (const_hash_1) <VECTOR_CST>: New case.
10267         (compare_constant) <VECTOR_CST>: Likewise.
10268         <ADDR_EXPR>: Deal with LABEL_REFs.
10269         (copy_constant) <VECTOR_CST>: New case.
10270
10271 2010-04-27  Jan Hubicka  <jh@suse.cz>
10272
10273         * cgraph.c (cgraph_propagate_frequency): New function.
10274         * cgraph.h (cgraph_propagate_frequency): Declare.
10275         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
10276         cgraph_propagate_frequency.
10277
10278 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
10279
10280         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
10281
10282 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
10283
10284         PR target/40657
10285         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
10286         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
10287         here to determine which regs to push and how much stack to reserve.
10288
10289 2010-04-27  Jie Zhang  <jie@codesourcery.com>
10290
10291         * doc/gimple.texi (gimple_statement_with_ops): Remove
10292         addresses_taken field.
10293         (gimple_statement_with_memory_ops): Likewise.
10294
10295 2010-04-27  Jan Hubicka  <jh@suse.cz>
10296
10297         * tree-inline.c (eni_inlining_weights): Remove.
10298         (estimate_num_insns): Special case more builtins.
10299
10300 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
10301
10302         PR c/32207
10303         * c-typeck.c (build_binary_op): Move forward check for comparison
10304         pointer with null pointer constant and adjust the diagnostic message.
10305
10306 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
10307
10308         PR lto/42776
10309         * configure.ac (gcc_cv_as_section_has_align): Set if installed
10310         binutils supports extended .section directive needed by LTO, or
10311         warn if older binutils found.
10312         (LTO_BINARY_READER): New AC_SUBST'd variable.
10313         (LTO_USE_LIBELF): Likewise.
10314         * gcc/config.gcc (lto_binary_reader): New target-specific configure
10315         variable.
10316         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
10317         (LTO_USE_LIBELF): Likewise.
10318         * configure: Regenerate.
10319
10320         * collect2.c (is_elf): Rename from this ...
10321         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
10322          object files in addition to ELF-formatted ones.
10323         (scan_prog_file): Caller updated.  Also allow for LTO info marker
10324         symbol to be prefixed or not by an extra underscore.
10325
10326         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
10327         * config/i386/winnt.c: Also #include lto-streamer.h
10328         (i386_pe_asm_named_section): Specify 1-byte section alignment for
10329         LTO named sections.
10330         (i386_pe_asm_output_aligned_decl_common): Add comment.
10331         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
10332
10333 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
10334
10335         PR target/43889
10336         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
10337         Add missing earlyclobber for second alternative.
10338
10339 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
10340
10341         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
10342         bits for artificial defs at the top of the block.
10343         * fwprop.c (single_def_use_enter_block): Don't call it.
10344
10345 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
10346
10347         PR 43715
10348         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
10349         instead of "$gcc_cv_objdump -T".
10350         Use "-undefined dynamic_lookup" on darwin.
10351         * gcc/configure: Regenerate.
10352
10353 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
10354
10355         PR c/43893
10356         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
10357
10358 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
10359
10360         * c-parser.c (struct c_token): Move location field up.
10361         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
10362         (struct c_declspecs): Convert typespec_word, storage_class, and
10363         default_int_p into bitfields.
10364         (struct c_declarator): Move loc field up.
10365
10366 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
10367
10368         * cfgloop.h (struct loop): Move can_be_parallel field up.
10369         * ipa-prop.h (struct ip_node_params): Move bitfields up.
10370         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
10371         down.
10372         (struct iv_cand): Convert pos field into a bitfield.
10373         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
10374         field up.
10375         (struct _stmt_vec_info): Shuffle fields for better packing.
10376
10377 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
10378
10379         * varasm.c (IN_NAMED_SECTION): Remove guard.
10380         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
10381         (IN_NAMED_SECTION_P): ...this.
10382         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
10383         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
10384
10385 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
10386
10387         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
10388         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
10389         of shadowing it.  Fix comments.
10390
10391 2010-04-26  Jan Hubicka  <jh@suse.cz>
10392
10393         * cgraph.c (cgraph_create_node): Set node frequency to normal.
10394         (cgraph_clone_node): Copy function frequency.
10395         * cgraph.h (node_frequency): New enum
10396         (struct cgraph_node): Add.
10397         * final.c (rest_of_clean_state): Update.
10398         * lto-cgraph.c (lto_output_node): Output node frequency.
10399         (input_overwrite_node): Input node frequency.
10400         * tre-ssa-loop-ivopts (computation_cost): Update.
10401         * lto-streamer-out.c (output_function): Do not output function
10402         frequency.
10403         * predict.c (maybe_hot_frequency_p): Update and handle functions
10404         executed once.
10405         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
10406         attribute lookup.
10407         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
10408         (compute_function_frequency): Set noreturn functions to be executed
10409         once.
10410         (choose_function_section): Update.
10411         * lto-streamer-in.c (input_function): Do not input function frequency.
10412         * function.c (allocate_struct_function): Do not initialize function
10413         frequency.
10414         * function.h (function_frequency): Remove.
10415         (struct function): Remove function frequency.
10416         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
10417         (try_update): Update.
10418         * tree-inline.c (initialize_cfun): Do not update function frequency.
10419         * passes.c (pass_init_dump_file): Update.
10420         * i386.c (ix86_compute_frame_layout): Update.
10421         (ix86_pad_returns): Update.
10422
10423 2010-04-26  Jie Zhang  <jie@codesourcery.com>
10424
10425         PR tree-optimization/43833
10426         * tree-vrp.c (range_int_cst_p): New.
10427         (range_int_cst_singleton_p): New.
10428         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
10429         when both operands are constants.  Use range_int_cst_p in
10430         BIT_IOR_EXPR case.
10431
10432 2010-04-26  Jan Hubicka  <jh@suse.cz>
10433
10434         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
10435
10436 2010-04-26  Richard Guenther  <rguenther@suse.de>
10437
10438         PR lto/43080
10439         * gimple.c (gimple_decl_printable_name): Deal gracefully
10440         with a NULL DECL_NAME.
10441
10442 2010-04-26  Richard Guenther  <rguenther@suse.de>
10443
10444         PR lto/42425
10445         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
10446         if emitting debug information and it is either a function
10447         or a namespace decl.
10448
10449 2010-04-26  Ira Rosen  <irar@il.ibm.com>
10450
10451         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
10452         determine if the statement is vectorizable, and a macro to access it.
10453         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
10454         Skip statements that can't be vectorized. If the analysis fails,
10455         mark the statement as unvectorizable if vectorizing basic block.
10456         (vect_compute_data_refs_alignment): Likewise.
10457         (vect_verify_datarefs_alignment): Skip statements marked as
10458         unvectorizable. Add print.
10459         (vect_analyze_group_access): Skip statements that can't be
10460         vectorized. If the analysis fails, mark the statement as
10461         unvectorizable if vectorizing basic block.
10462         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
10463         * tree-vect-stmts.c (vectorizable_store): Fix the number of
10464         generated stmts for SLP.
10465         (new_stmt_vec_info): Initialize the new field.
10466         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
10467         statements marked as unvectorizable.
10468
10469 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
10470
10471         * c-common.c (flag_isoc1x): New.
10472         (flag_isoc99): Update comment.
10473         * c-common.h (flag_isoc1x): New.
10474         (flag_isoc99): Update comment.
10475         * c-cppbuiltin.c (builtin_define_float_constants): Also define
10476         __<type>_DECIMAL_DIG__.
10477         * c-opts.c (set_std_c1x): New.
10478         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
10479         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
10480         * c.opt (-std=c1x, -std=gnu1x): New options.
10481         * doc/cpp.texi: Mention -std=c1x.
10482         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
10483         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
10484         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
10485         * doc/standards.texi: Mention C1X.
10486         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
10487         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
10488         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
10489         Define for C1X.
10490
10491 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
10492
10493         * config/i386/gmon-sol2.c (_mcleanup): Change format string
10494         placeholder from 0x%x to %#x.
10495         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
10496         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
10497         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
10498         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
10499         * config/i386/i386.c (ix86_target_string): Ditto.
10500         (output_pic_addr_const): Ditto.
10501         (print_operand): Ditto.
10502
10503 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
10504
10505         * combine.c (find_split_point): Add third argument.  Use it
10506         to find nested multiply-accumulate instructions.  Adjust calls.
10507         (try_combine): Adjust call to find_split_point.
10508
10509 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
10510
10511         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
10512
10513 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
10514
10515         PR tree-optimization/41442
10516         * fold-const.c (merge_truthop_with_opposite_arm): New function.
10517         (fold_binary_loc): Call it.
10518
10519 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10520
10521         * toplev.c (general_init): Set default for fdiagnostics-show-option.
10522         * opts.c (common_handle_option): Allow disabling it.
10523         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
10524
10525 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10526
10527         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
10528         between modes if both types are integral.
10529
10530 2010-04-23  Richard Guenther  <rguenther@suse.de>
10531
10532         PR tree-optimization/43572
10533         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
10534
10535 2010-04-23  Richard Guenther  <rguenther@suse.de>
10536
10537         PR lto/43455
10538         * tree-inline.c (tree_can_inline_p): Also check compatibility
10539         of return types.
10540
10541 2010-04-23  Martin Jambor  <mjambor@suse.cz>
10542
10543         PR tree-optimization/43846
10544         * tree-sra.c (struct access): New flag grp_assignment_read.
10545         (build_accesses_from_assign): Set grp_assignment_read.
10546         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
10547         (enum mark_read_status): New type.
10548         (analyze_access_subtree): Propagate grp_assignment_read, create
10549         accesses also if both direct_read and root->grp_assignment_read.
10550
10551 2010-04-23  Martin Jambor  <mjambor@suse.cz>
10552
10553         PR middle-end/43835
10554         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
10555         function does not have type attributes.
10556
10557 2010-04-23  Richard Guenther  <rguenther@suse.de>
10558
10559         PR lto/42653
10560         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
10561         of FUNCTION_DECLs.
10562
10563 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10564
10565         * sese.h (create_if_region_on_edge): Remove.
10566
10567         * sese.c (create_if_region_on_edge): Make static.
10568
10569         * tree-inline.c: Do not include ggc.h.
10570
10571         * expr.c: Do not include ggc.h.
10572
10573         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
10574         dependencies.
10575
10576 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10577
10578         PR target/43744
10579         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10580         in the middle of insns for casesi_worker_2.
10581
10582 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
10583
10584         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
10585
10586 2010-04-22  Ira Rosen  <irar@il.ibm.com>
10587
10588         PR tree-optimization/43842
10589         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
10590         loop unrolling in update of exit phis. Fix comment.
10591         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
10592         least two reduction statements in the loop before starting SLP
10593         analysis.
10594
10595 2010-04-22  Nick Clifton  <nickc@redhat.com>
10596
10597         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
10598
10599 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
10600
10601         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
10602         to simplify a + ~a.
10603
10604 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10605
10606         * tree-parloops.c (loop_parallel_p): New argument
10607         parloop_obstack.  Pass it down.
10608         (parallelize_loops): New variable parloop_obstack.  Initialize it,
10609         pass it down, free it.
10610
10611         * tree-loop-linear.c (linear_transform_loops): Pass down
10612         lambda_obstack.
10613
10614         * tree-data-ref.h (lambda_compute_access_matrices): New argument
10615         of type struct obstack *.
10616
10617         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
10618         scratch_obstack.  Initialize it, pass down, free it.
10619
10620         * lambda.h (lambda_loop_new): Remove.
10621         (lambda_matrix_new, lambda_matrix_inverse)
10622         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
10623         argument of type struct obstack *.
10624
10625         * lambda-trans.c (lambda_trans_matrix_new): New argument
10626         lambda_obstack.  Pass it down, use obstack allocation for ret.
10627         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
10628         it down.
10629
10630         * lambda-mat.c (lambda_matrix_get_column)
10631         (lambda_matrix_project_to_null): Remove.
10632         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
10633         allocation for mat.
10634         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
10635         lambda_obstack.
10636
10637         * lambda-code.c (lambda_loop_new): New function.
10638         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
10639         (lambda_compute_auxillary_space, lambda_compute_target_space)
10640         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
10641         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
10642         (build_access_matrix): New argument lambda_obstack.  Use obstack
10643         allocation for am.
10644         (lambda_compute_step_signs, lambda_compute_access_matrices): New
10645         argument lambda_obstack.  Pass it down.
10646
10647 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
10648
10649         * optabs.h (expand_widening_mult): Declare.
10650
10651 2010-04-22  Richard Guenther  <rguenther@suse.de>
10652
10653         PR tree-optimization/43845
10654         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
10655         lookup the CALL_EXPR function and arguments.
10656
10657 2010-04-22  Nick Clifton  <nickc@redhat.com>
10658
10659         * config/stormy16/stormy16.c
10660         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
10661         * config/stormy16/stormy16.h: Tidy up formatting.
10662         (DONT_USE_BUILTIN_SETJMP): Remove definition.
10663         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
10664         (ineqbranchsi): Delete pattern.
10665         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
10666         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
10667         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10668         stormy16-lib2-ucmpsi2.c.
10669
10670 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
10671
10672         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
10673         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
10674         extra set merge_set_noclobber, and use it to relax the final test
10675         slightly.
10676         * df.h (df_simulate_find_noclobber_defs): Declare.
10677         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
10678         conditional defs.
10679         (df_simulate_find_noclobber_defs): New function.
10680
10681 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
10682
10683         * config/i386/i386.md: Use {} around multi-line preparation statements.
10684
10685 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10686
10687         * c-tree.h (push_init_level, pop_init_level, set_init_index)
10688         (process_init_element): New argument of type struct obstack *.
10689
10690         * c-typeck.c (push_init_level, pop_init_level, set_designator)
10691         (set_init_index, set_init_label, set_nonincremental_init)
10692         (set_nonincremental_init_from_string, find_init_member)
10693         (output_init_element, output_pending_init_elements)
10694         (process_init_element): New argument braced_init_obstack.  Pass it
10695         down.
10696         (push_range_stack, add_pending_init): New argument
10697         braced_init_obstack.  Use obstack allocation.
10698
10699         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
10700         braced_init_obstack.  Pass it down.
10701         (c_parser_braced_init): New variables ret, braced_init_obstack.
10702         Initialize obstack, pass it down and finally free it.
10703
10704 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
10705
10706         PR middle-end/29274
10707         * tree-pass.h (pass_optimize_widening_mul): Declare.
10708         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
10709         gate_optimize_widening_mul): New static functions.
10710         (pass_optimize_widening_mul): New.
10711         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
10712         <case MULT_EXPR>: Remove support for widening multiplies.
10713         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
10714         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
10715         simplify_gen_unary rather than directly building extensions.
10716         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
10717         WIDEN_MULT_EXPR.
10718         * expmed.c (expand_widening_mult): New function.
10719         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
10720
10721 2010-04-21  Jan Hubicka  <jh@suse.cz>
10722
10723         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
10724         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
10725         * lto-wpa-fixup.c: Remove.
10726         * Makefile.in (lto-wpa-fixup.o): Remove.
10727         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
10728         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
10729         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
10730
10731 2010-04-21  Jan Hubicka  <jh@suse.cz>
10732
10733         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
10734         add write_optimization_summary, read_optimization_summary.
10735         (ipa_write_summaries_of_cgraph_node_set): Remove.
10736         (ipa_write_optimization_summaries): Declare.
10737         (ipa_read_optimization_summaries): Declare.
10738         * ipa-cp.c (pass_ipa_cp): Update.
10739         * ipa-reference.c (pass_ipa_reference): Update.
10740         * ipa-pure-const.c (pass_ipa_pure_const): Update.
10741         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
10742         Update.
10743         * ipa-inline.c (pass_ipa_inline): Update.
10744         * ipa.c (pass_ipa_whole_program): Update.
10745         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
10746         * passes.c (ipa_write_summaries_1): Do not test wpa.
10747         (ipa_write_optimization_summaries_1): New.
10748         (ipa_write_optimization_summaries): New.
10749         (ipa_read_summaries): Do not test ltrans.
10750         (ipa_read_optimization_summaries_1): New.
10751         (ipa_read_optimization_summaries): New.
10752
10753 2010-04-21  Jan Hubicka  <jh@suse.cz>
10754
10755         * lto-cgraph.c (lto_output_node): Do not output comdat groups
10756         for boundary nodes.
10757         (output_cgraph): Do not arrange comdat groups for boundary nodes.
10758
10759 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR debug/40040
10762         * dwarf2out.c (add_name_and_src_coords_attributes): Add
10763         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
10764
10765 2010-04-21  Jan Hubicka  <jh@suse.cz>
10766
10767         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
10768
10769 2010-04-21  Jan Hubicka  <jh@suse.cz>
10770
10771         * varpool.c (decide_is_variable_needed): Variable is always needed
10772         during ltrans.
10773
10774 2010-04-21  Jan Hubicka  <jh@suse.cz>
10775
10776         * opts.c (decode_options): Enable pure-const pass for whopr.
10777
10778 2010-04-21  Jan Hubicka  <jh@suse.cz>
10779
10780         * cgraph.c (dump_cgraph_node): Dump also assembler name.
10781         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
10782         at WPA dumping.
10783         (cgraph_decide_inlining): Do not expect callee to be removed in all
10784         cases.
10785
10786 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
10787
10788         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
10789
10790 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
10791
10792         * config/i386/i386.md (x86_shrd): Add athlon_decode and
10793         amdfam10_decode attributes.
10794
10795 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
10796
10797         PR middle-end/43570
10798         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
10799         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
10800         (lower_copyprivate_clauses): Use private var in outer
10801         context instead of original var.  Make sure the types
10802         are correct for VLAs.
10803
10804 2010-04-21  Richard Guenther  <rguenther@suse.de>
10805
10806         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
10807         to non-pointer objects.
10808
10809 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
10810
10811         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
10812         last chain entry if it starts with the still current label.
10813         (add_location_or_const_value_attribute): Check that
10814         loc_list->first->next is NULL instead of comparing ->first with ->last.
10815         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
10816         to add_var_loc_to_decl.
10817
10818         * dwarf2out.c (output_call_frame_info): For dw_cie_version
10819         >= 4 add also address size and segment size fields into CIE header.
10820
10821         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
10822         long as address size is the same as sizeof (void *) and
10823         segment size is 0.
10824         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
10825         address size or segment size is unexpected, return DW_EH_PE_omit.
10826         (classify_object_over_fdes): If get_cie_encoding returned
10827         DW_EH_PE_omit, return -1.
10828         (init_object): If classify_object_over_fdes returned -1,
10829         pretend there were no FDEs at all.
10830
10831 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
10832
10833         * config/i386/i386.md (bswap<mode>2): Macroize expander from
10834         bswap{si,di}2 using SWI48 mode iterator.
10835         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
10836         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
10837         set modrm attribute of bswap insn to 0 and remove length attribute.
10838         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
10839         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
10840         set mode attribute to <MODE> and remove length attribute.
10841
10842 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
10843
10844         PR rtl-optimization/43520
10845         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
10846         zero available registers.
10847
10848 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10849
10850         * builtins.c (fold_builtin_cproj): Fold more cases.
10851
10852 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10853
10854         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
10855         (fold_builtin_1): Fold builtin cproj.
10856         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
10857         Use ATTR_CONST_NOTHROW_LIST.
10858
10859 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
10860
10861         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
10862         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
10863         ffsi2_no_cmove for !TARGET_CMOVE.
10864         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
10865         (ffssi2): Remove expander.
10866         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
10867         mode iterator.
10868         (ctz<mode>2): Ditto from ctz{si,di}2.
10869         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
10870         mode iterator.
10871         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
10872         mode iterator.
10873
10874 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
10875
10876         * dwarf2out.c (AT_linkage_name): Define.
10877         (clone_as_declaration): Handle DW_AT_linkage_name.
10878         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
10879         of DW_AT_MIPS_linkage_name.
10880         (move_linkage_attr): Likewise.
10881         (dwarf2out_finish): Likewise.
10882
10883 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
10884
10885         PR middle-end/41952
10886         * fold-const.c (fold_comparison): New folding rule.
10887
10888 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
10889
10890         * double-int.h (double_int_setbit): Declare.
10891         * double-int.c (double_int_setbit): New function.
10892         * rtl.h (immed_double_int_const): Declare.
10893         * emit-rtl.c (immed_double_int_const): New function.
10894         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
10895         and immed_double_int_const functions.
10896         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
10897         expand_copysign_bit):  (Ditto.).
10898         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
10899         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
10900         * dojump.c (prefer_and_bit_test): (Ditto.).
10901         * expr.c (convert_modes, reduce_to_bit_field_precision,
10902         const_vector_from_tree): (Ditto.).
10903         * expmed.c (mask_rtx, lshift_value): (Ditto.).
10904
10905 2010-04-20  Jan Hubicka  <jh@suse.cz>
10906
10907         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
10908         (dump_cgraph_node): Dump new flags.
10909         * cgraph.h (struct cgraph_node): Add flags
10910         reachable_from_other_partition and in_other_partition.
10911         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
10912         other partition can not be removed.
10913         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
10914         the other partition must be output; silence sanity checking on
10915         leaking functions bodies from other paritition.
10916         * lto-cgraph.c (reachable_from_other_partition_p): New function.
10917         (lto_output_node): Output new flags; do not sanity check that inline
10918         clones are output; drop lto_forced_extern_inline_p code; do not mock
10919         visibility flags at partition boundaries.
10920         (add_node_to): New function.
10921         (output_cgraph): Use it to sort functions so masters appear before
10922         clones.
10923         (input_overwrite_node): Input new flags.
10924         * passes.c (ipa_write_summaries): Do not call
10925         lto_new_extern_inline_states.
10926         * lto-section-out.c (forced_extern_inline,
10927         lto_new_extern_inline_states lto_delete_extern_inline_states,
10928         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
10929         * lto-streamer.h (lto_new_extern_inline_states,
10930         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
10931         lto_forced_extern_inline_p): Kill.
10932
10933 2010-04-20  Richard Guenther  <rguenther@suse.de>
10934
10935         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
10936         from vars that can have pointers.
10937         (process_constraint): Dump useless constraints.
10938
10939 2010-04-20  Richard Guenther  <rguenther@suse.de>
10940
10941         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
10942         (dump_sa_points_to_info): Remove asserts.
10943         (init_base_vars): nothing_id isn't an escape point nor does it
10944         have pointers.
10945
10946 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
10947
10948         * tree.h (TYPE_REF_IS_RVALUE): Define.
10949         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
10950         should_move_die_to_comdat, prune_unused_types_walk): Handle
10951         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
10952         (modified_type_die, gen_reference_type_die): Emit
10953         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
10954         if TYPE_REF_IS_RVALUE and -gdwarf-4.
10955
10956 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10957
10958         PR target/43635
10959         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
10960         calls for -fpic -m31 if they have been sibcall optimized.
10961
10962 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
10963
10964         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
10965         ar.lc fixed and call-used.
10966
10967         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
10968
10969 2010-04-19  Jan Hubicka  <jh@suse.cz>
10970
10971         * opts.c (decode_options): Disable whpr incompatible passes.
10972         * lto/lto.c (lto_1_to_1_map): Skip clones.
10973         (read_cgraph_and_symbols): Do not mark everything as needed.
10974         (do_whole_program_analysis): Do map only after optimizing;
10975         set proper cgraph_state; use passmanager.
10976
10977 2010-04-19  DJ Delorie  <dj@redhat.com>
10978
10979         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
10980         POINTER_PLUS_EXPR and fix them.
10981
10982 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
10983
10984         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
10985         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
10986         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
10987         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
10988         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
10989         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
10990         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
10991         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
10992         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
10993         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
10994         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
10995
10996 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10997
10998         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
10999         (check_cond_move_block): Likewise.
11000         (cond_move_process_if_block): Likewise.
11001         (noce_find_if_block): Improve formatting.
11002         (find_if_header): Pass 0 to memset and tweak conditions.
11003         (cond_exec_find_if_block): Fix long lines and tweak conditions.
11004
11005 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
11006
11007         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
11008         for -gdwarf-4.
11009
11010         PR middle-end/43337
11011         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
11012         with non-local decl doesn't need chain.
11013
11014 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
11015
11016         * ira-color.c (allocno_reload_assign): Avoid accumulating
11017         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
11018
11019 2010-04-19  Martin Jambor  <mjambor@suse.cz>
11020
11021         * gimple.h (create_tmp_reg): Declare.
11022         * gimplify.c (create_tmp_reg): New function.
11023         (gimplify_return_expr): Use create_tmp_reg.
11024         (gimplify_omp_atomic): Likewise.
11025         (gimple_regimplify_operands): Likewise.
11026         * tree-dfa.c (make_rename_temp): Likewise.
11027         * tree-predcom.c (predcom_tmp_var): Likewise.
11028         (reassociate_to_the_same_stmt): Likewise.
11029         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
11030         (get_replaced_param_substitute): Likewise.
11031         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
11032         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
11033         * tree-ssa-pre.c (get_representative_for): Likewise.
11034         (create_expression_by_pieces): Likewise.
11035         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
11036         (create_tailcall_accumulator): Likewise.
11037
11038 2010-04-19  Martin Jambor  <mjambor@suse.cz>
11039
11040         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
11041         new_stmt.
11042         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
11043
11044 2010-04-19  Richard Guenther  <rguenther@suse.de>
11045
11046         PR tree-optimization/43796
11047         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
11048         from SCEV in the lattice.
11049         (vrp_visit_phi_node): Dump change.
11050
11051 2010-04-19  Richard Guenther  <rguenther@suse.de>
11052
11053         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
11054         * configure: Re-generated.
11055
11056 2010-04-19  Richard Guenther  <rguenther@suse.de>
11057
11058         PR tree-optimization/43783
11059         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
11060         constant ARRAY_REF operands two and three if possible.
11061
11062 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
11063
11064         PR target/43766
11065         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
11066
11067 2010-04-19  Jie Zhang  <jie@codesourcery.com>
11068
11069         PR target/43662
11070         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
11071
11072 2010-04-19  Ira Rosen  <irar@il.ibm.com>
11073
11074         PR tree-optimization/37027
11075         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
11076         and macro to access it.
11077         (vectorizable_reduction): Add argument.
11078         (vect_get_slp_defs): Likewise.
11079         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
11080         statements for possible use in SLP.
11081         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
11082         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
11083         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
11084         add new argument.
11085         (vectorizable_reduction): Likewise.
11086         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
11087         vect_get_slp_defs.
11088         (vectorizable_type_demotion, vectorizable_type_promotion,
11089         vectorizable_store): Likewise.
11090         (vect_analyze_stmt): Update call to vectorizable_reduction.
11091         (vect_transform_stmt): Likewise.
11092         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
11093         (vect_build_slp_tree): Fix indentation. Check that there are no loads
11094         from different interleaving chains in same node.
11095         (vect_slp_rearrange_stmts): New function.
11096         (vect_supported_load_permutation_p): Allow load permutations for
11097         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
11098         inside SLP nodes if necessary.
11099         (vect_analyze_slp_instance): Handle reductions.
11100         (vect_analyze_slp): Try to build SLP instances originating from groups
11101         of reductions.
11102         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
11103         (vect_get_constant_vectors): Create initial vectors for reductions
11104         according to reduction code. Add new argument.
11105         (vect_get_slp_defs): Add new argument, pass it to
11106         vect_get_constant_vectors.
11107         (vect_schedule_slp_instance): Remove SLP tree root statements.
11108
11109 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
11110
11111         * tree.h (ENUM_IS_SCOPED): Define.
11112         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
11113         for ENUM_IS_SCOPED enums.
11114
11115 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
11116
11117         * fold-const.c (fold_comparison): Use ssizetype.
11118         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
11119         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
11120         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
11121         * tree-object-size.c (compute_object_sizes): Use size_type_node.
11122
11123         * tree.h (initialize_sizetypes): Remove parameter.
11124         (build_common_tree_nodes): Remove second parameter.
11125         * stor-layout.c (initialize_sizetypes): Remove parameter.
11126         Always create an unsigned type.
11127         (set_sizetype): Assert that the passed type is unsigned and simplify.
11128         * tree.c (build_common_tree_nodes): Remove second parameter.
11129         Adjust call to initialize_sizetypes.
11130         * c-decl.c (c_init_decl_processing): Remove second argument in call to
11131         build_common_tree_nodes.
11132
11133 2010-04-18  Matthias Klose  <doko@ubuntu.com>
11134
11135         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
11136
11137 2010-04-18  Ira Rosen  <irar@il.ibm.com>
11138
11139         PR tree-optimization/43771
11140         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
11141         load permutation doesn't have gaps.
11142
11143 2010-04-18  Jan Hubicka  <jh@suse.cz>
11144
11145         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
11146         (sse_prologue_save_insn expander): Use new pattern.
11147         (sse_prologue_save_insn1): New pattern and splitter.
11148         (sse_prologue_save_insn): Update to deal also with 64bit aligned
11149         blocks.
11150         * i386.c (setup_incoming_varargs_64): Do not compute jump
11151         destination here.
11152         (ix86_gimplify_va_arg): Update alignment needed.
11153         (ix86_local_alignment): Do not align all local arrays to 128bit.
11154
11155 2010-04-17  Jan Hubicka  <jh@suse.cz>
11156
11157         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
11158
11159 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11160
11161         * arm.md (negdi2): Remove redundant code to force values into a
11162         register.
11163
11164 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11165
11166         * arm/bpabi.S: Add EABI alignment attributes to objects.
11167         * arm/bpabi-v6m.S: Likewise.
11168         * arm/crti.asm: Likewise.
11169         * arm/crtn.asm: Likewise.
11170         * arm/lib1funcs.asm: Likewise.
11171         * arm/libunwind.S: Likewise.
11172
11173 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
11174
11175         * arm-protos.h (tune_params): New structure.
11176         * arm.c (current_tune): New variable.
11177         (arm_constant_limit): Delete.
11178         (struct processors): Add pointer to the tune parameters.
11179         (arm_slowmul_tune): New tuning option.
11180         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
11181         (all_cores): Adjust to pick up the tuning model.
11182         (arm_constant_limit): New function.
11183         (arm_override_options): Select the appropriate tuning model.  Delete
11184         initialization of arm_const_limit.
11185         (arm_split_constant): Use the new constant-limit model.
11186         (arm_rtx_costs): Pick up the current tuning model.
11187         * arm.md (is_strongarm, is_xscale): Delete.
11188         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
11189         for Xscale variant architectures.
11190         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
11191
11192 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11193
11194         * config/arm/arm.c (arm_gen_constant): Remove unused variable
11195         can_shift.
11196         (arm_rtx_costs_1): Remove unused variable extra_cost.
11197         (arm_unwind_emit_set): Use variable offset.
11198         (thumb1_output_casesi): Remove unused variable flags.
11199
11200 2010-04-16  Jeff Law  <law@redhat.com>
11201
11202         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
11203         needing assignment rather than doing a two-phase assignment.  Remove
11204         unused variable 'm'.
11205
11206 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11207
11208         PR bootstrap/43767
11209         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
11210
11211 2010-04-16  Doug Kwan  <dougkwan@google.com>
11212
11213         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
11214         (next_operand_entry_id): New static variable.
11215         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
11216         (add_to_ops_vec): Assigned unique ID to operand entry.
11217         (struct oecount_s): New field ID.
11218         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
11219         (undistribute_ops_list): Assign unique IDs to oecounts.
11220         (init_reassoc): reset next_operand_entry_id.
11221
11222 2010-04-16  Doug Kwan  <dougkwan@google.com>
11223
11224         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
11225         missing left parenthesis.
11226
11227 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
11228
11229         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
11230         *btdi_rex64 using SWI48 mode iterator.
11231         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
11232         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
11233         *jcc_btdi_mask_rex64.
11234
11235 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
11236
11237         * double-int.h (tree_to_double_int): Convert to macro.
11238         * double-int.c (tree_to_double_int): Remove.
11239
11240 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11241
11242         PR debug/43762
11243         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
11244         with want_address 2 and in case a single element list might be
11245         possible, call it again with want_address 0.
11246
11247 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
11248
11249         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
11250         case 'W' print operands for HI mode.
11251         * config/h8300/h8300.h (Y0, Y2) : New constraints.
11252         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
11253         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
11254         * config/h8300/predicate.md (bit_register_indirect_operand): New.
11255
11256         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
11257
11258         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
11259         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
11260         #xx:3 and #xx:4 mode.
11261
11262         * config/h8300/h8300.md (inverted load with HImode dest): Add
11263         support for H8300SX.
11264
11265         * config/h8300/predicate.md (bit_operand): Allow immediate values that
11266         satisfy 'U' constraint.
11267
11268 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11269
11270         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
11271         * configure: Regenerate.
11272         * config.in: Regenerate.
11273         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
11274         works.
11275
11276 2010-04-16  Richard Guenther  <rguenther@suse.de>
11277
11278         * tree.h (struct tree_decl_minimal): Move pt_uid ...
11279         (struct tree_decl_common): ... here.
11280         (DECL_PT_UID): Adjust.
11281         (SET_DECL_PT_UID): Likewise.
11282         (DECL_PT_UID_SET_P): Likewise.
11283
11284 2010-04-16  Richard Guenther  <rguenther@suse.de>
11285
11286         PR tree-optimization/43572
11287         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
11288         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
11289         * tree-flow.h (is_call_clobbered): Remove.
11290         * tree-flow-inline.h (is_call_clobbered): Likewise.
11291         * tree-dfa.c (dump_variable): Do not dump call clobber state.
11292         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
11293         (execute_return_slot_opt): Adjust.
11294         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
11295         check for call clobbered vars here.
11296         (find_tail_calls): Move tailcall verification to the
11297         proper place.
11298
11299 2010-04-16  Diego Novillo  <dnovillo@google.com>
11300
11301         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
11302
11303 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11304
11305         PR target/40603
11306         * config/arm/arm.md (cbranchqi4): New pattern.
11307         * config/arm/predicates.md (const0_operand,
11308         cbranchqi4_comparison_operator): New predicates.
11309
11310 2010-04-16  Richard Guenther  <rguenther@suse.de>
11311
11312         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
11313         (dump_gimple_stmt): Likewise.
11314
11315 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
11316
11317         * recog.h (struct recog_data): New field is_operator.
11318         (struct insn_operand_data): New field is_operator.
11319         * recog.c (extract_insn): Set recog_data.is_operator.
11320         * genoutput.c (output_operand_data): Emit code to set the
11321         is_operator field.
11322         * reload.c (find_reloads): Use it rather than testing for an
11323         empty constraint string.
11324
11325         PR target/41514
11326         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
11327         If the previous insn is a cbranchsi4_insn with the same arguments,
11328         omit the compare instruction.
11329
11330         * config/arm/arm.md (addsi3_cbranch): If destination is a high
11331         register, inputs must be low registers and we need a low register
11332         scratch.  Handle alternative 2 like alternative 3.
11333
11334 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
11335
11336         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
11337         don't call get_addr on both.  If one expression is a VALUE and
11338         the other a REG, check VALUE's locs if the REG isn't among them.
11339
11340 2010-04-16  Christian Bruel  <christian.bruel@st.com>
11341
11342         * config/sh/sh.h (sh_frame_pointer_required): New function.
11343         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
11344         (flag_omit_frame_pointer) Set.
11345         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
11346         (rounded_frame_size): Adjust size with outgoing_args_size.
11347         (sh_set_return_address): Must return from stack pointer.
11348         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
11349         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
11350         (ACCUMULATE_OUTGOING_ARGS): Define.
11351         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
11352         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
11353
11354 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11355
11356         PR target/43471
11357         * config/sh/sh.c (sh_legitimize_reload_address): Use
11358         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
11359         Remove a unneeded check for offset_base.
11360
11361 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
11362
11363         * configure: Regenerated.
11364
11365 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11366
11367         * config/s390/s390.c (s390_call_save_register_used): Switch back
11368         to HARD_REGNO_NREGS.
11369
11370 2010-04-15  Richard Guenther  <rguenther@suse.de>
11371
11372         * alias.c (alias_set_subset_of): Handle alias-set zero
11373         child properly.
11374
11375 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
11376             Julian Brown  <julian@codesourcery.com>
11377
11378         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
11379         alternatives according to use of high and low regs.
11380         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
11381         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
11382         optimizing for size on Thumb-2.
11383
11384 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
11385
11386         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
11387
11388 2010-04-15  Richard Guenther  <rguenther@suse.de>
11389
11390         * tree-ssa-structalias.c (struct variable_info): Add
11391         is_fn_info flag.
11392         (new_var_info): Initialize it.
11393         (dump_constraints): Support printing last added constraints.
11394         (debug_constraints): Adjust.
11395         (dump_constraint_graph): Likewise.
11396         (make_heapvar_for): Check for NULL cfun.
11397         (get_function_part_constraint): New function.
11398         (get_fi_for_callee): Likewise.
11399         (find_func_aliases): Properly implement IPA PTA constraints.
11400         (process_ipa_clobber): New function.
11401         (find_func_clobbers): Likewise.
11402         (insert_into_field_list_sorted): Remove.
11403         (create_function_info_for): Properly allocate vars for IPA mode.
11404         Do not use insert_into_field_list_sorted.
11405         (create_variable_info_for): Properly generate constraints for
11406         global vars in IPA mode.
11407         (dump_solution_for_var): Always dump the solution.
11408         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
11409         (find_what_var_points_to): Adjust.
11410         (pt_solution_set): Change.
11411         (pt_solution_ior_into): New function.
11412         (pt_solution_empty_p): Export.
11413         (pt_solution_includes_global): Adjust.
11414         (pt_solution_includes_1): Likewise.
11415         (pt_solutions_intersect_1): Likewise.
11416         (dump_sa_points_to_info): Check some invariants.
11417         (solve_constraints): Move constraint dumping ...
11418         (compute_points_to_sets): ... here.
11419         (ipa_pta_execute): ... and here.
11420         (compute_may_aliases): Do not re-compute points-to info
11421         locally if IPA info is available.
11422         (ipa_escaped_pt): New global var.
11423         (ipa_pta_execute): Properly implement IPA PTA.
11424         * tree-into-ssa.c (dump_decl_set): Support dumping
11425         decls not in referenced-vars.
11426         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
11427         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
11428         (dump_points_to_solution): Likewise.
11429         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
11430         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
11431         (remap_gimple_stmt): Reset call clobber/use information if necessary.
11432         (copy_decl_to_var): Copy DECL_PT_UID.
11433         (copy_result_decl_to_var): Likewise.
11434         * tree.c (make_node_stat): Initialize DECL_PT_UID.
11435         (copy_node_stat): Copy it.
11436         * tree.h (DECL_PT_UID): New macro.
11437         (SET_DECL_PT_UID): Likewise.
11438         (DECL_PT_UID_SET_P): Likewise.
11439         (struct tree_decl_minimal): Add pt_uid member.
11440         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
11441         (pt_solution_empty_p): Declare.
11442         (pt_solution_set): Adjust.
11443         (ipa_escaped_pt): Declare.
11444         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
11445         * gimple-pretty-print.c (pp_points_to_solution): New function.
11446         (dump_gimple_call): Dump call clobber/use information.
11447         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
11448         * tree-pass.h (TDF_ALIAS): New dump option.
11449         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
11450         * doc/invoke.texi (-fipa-pta): Update documentation.
11451
11452 2010-04-15  Richard Guenther  <rguenther@suse.de>
11453
11454         * Makefile.in (OBJS-common): Add gimple-fold.o.
11455         (gimple-fold.o): New rule.
11456         * tree.h (maybe_fold_offset_to_reference,
11457         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
11458         prototypes ...
11459         * gimple.h: ... here.
11460         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
11461         may_propagate_address_into_dereference): Move prototypes ...
11462         * gimple.h: ... here.
11463         * tree-ssa-ccp.c (get_symbol_constant_value,
11464         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
11465         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
11466         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
11467         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
11468         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
11469         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
11470         gimplify_and_update_call_from_tree): Move ...
11471         * gimple-fold.c: ... here.  New file.
11472         (ccp_fold_builtin): Rename to ...
11473         (gimple_fold_builtin): ... this.
11474         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
11475
11476 2010-04-15  Richard Guenther  <rguenther@suse.de>
11477
11478         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
11479         fit_double_type, force_fit_type_double, add_double_with_sign,
11480         neg_double, mul_double_with_sign, lshift_double, rshift_double,
11481         lrotate_double, rrotate_double, div_and_round_double): Move ...
11482         * double-int.c: ... here.
11483         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
11484         add_double, neg_double, mul_double_with_sign, mul_double,
11485         lshift_double, rshift_double, lrotate_double, rrotate_double,
11486         div_and_round_double): Move prototypes ...
11487         * double-int.h: ... here.
11488
11489 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
11490
11491         PR target/43742
11492         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
11493         matching constraints to ensure inputs match the output.
11494
11495 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11496
11497         PR target/43742
11498         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
11499         in an input-only operand.
11500
11501 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
11502
11503         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
11504         (double_int_not, double_int_lshift, double_int_rshift): Declare.
11505         (double_int_negative_p): Convert to static inline function.
11506         * double-int.c (double_int_lshift, double_int_lshift): New functions.
11507         (double_int_negative_p): Remove.
11508         * tree.h (lshift_double, rshift_double):
11509         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
11510         * fold-const.c (fold_convert_const_int_from_real,
11511         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
11512         (lshift_double): Change type of arith argument to bool.
11513         (rshift_double): Change type of arith argument to bool. Correct
11514         comment.
11515         * expmed.c (mask_rtx, lshift_value): (Ditto.).
11516
11517 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
11518
11519         PR target/21803
11520         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
11521         at the start and end of the then/else blocks, and omit them from the
11522         conversion.
11523         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
11524         argument; all callers changed.  Pass zero to old_insns_match_p instead.
11525         (flow_find_head_matching_sequence): New function.
11526         (old_insns_match_p): Check REG_EH_REGION notes for calls.
11527         * basic-block.h (flow_find_cross_jump,
11528         flow_find_head_matching_sequence): Declare functions.
11529
11530 2010-04-14  Jason Merrill  <jason@redhat.com>
11531
11532         PR c++/36625
11533         * c-common.c (attribute_takes_identifier_p): New fn.
11534         * c-common.h: Declare it.
11535
11536 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11537
11538         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
11539         splitter condition.
11540         (*udivmod<mode>4): Ditto.
11541
11542 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11543
11544         * config/i386/i386.md (maxmin_int): Rename code attribute from
11545         maxminiprefix and update all users.
11546         (maxmin_float): Ditto from maxminfprefix.
11547         (logic): Ditto from logicprefix.
11548         (absneg_mnemonic): Ditto from absnegprefix.
11549         * config/i386/mmx.md: Update all users of maxminiprefix,
11550         maxminfprefix and logicprefix for rename.
11551         * config/i386/sse.md: Ditto.
11552         * config/i386/sync.md (sync_<code><mode>): Update for
11553         logicprefix rename.
11554
11555 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11556
11557         PR 42966
11558         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
11559         warnings converted to errors.
11560
11561 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11562
11563         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
11564         used insn_type variable.
11565         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
11566         to avoid set-but-not-used warning.
11567
11568 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11569
11570         * df-core.c (df_ref_debug): Change format string placeholder
11571         from 0x%x to %#x.
11572         * dwarf2asm.c (dw2_asm_output_data_raw,
11573         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
11574         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
11575         * dwarf2out.c (output_cfi, output_cfi_directive,
11576         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
11577         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
11578         Ditto.
11579         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
11580         * print-rtl.c (print_rtx): Ditto.
11581
11582 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11583
11584         PR middle-end/42694
11585         * builtins.c (expand_builtin_pow_root): New function to expand pow
11586         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
11587         series of sqrt and cbrt calls under -ffast-math.
11588         (expand_builtin_pow): Call it.
11589
11590 2010-04-14  Michael Matz  <matz@suse.de>
11591
11592         PR tree-optimization/42963
11593         * tree-cfg.c (touched_switch_bbs): New static variable.
11594         (group_case_labels_stmt): New function broken out from ...
11595         (group_case_labels): ... here, use the above.
11596         (start_recording_case_labels): Allocate touched_switch_bbs.
11597         (end_recording_case_labels): Deallocate it, call
11598         group_case_labels_stmt.
11599         (gimple_redirect_edge_and_branch): Remember index of affected BB.
11600
11601 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11602
11603         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
11604         from insn template.
11605
11606 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
11607
11608         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
11609
11610 2010-04-13  Jan Hubicka  <jh@suse.cz>
11611
11612         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
11613         of optimized out static functions.
11614         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
11615         cost computation.  Also sanity check for overflows.
11616         (update_caller_keys): Update cgraph_edge_badness call; properly
11617         update fibheap and sanity check that it is up to date.
11618         (add_new_edges_to_heap): Update cgraph_edge_badness.
11619         (cgraph_decide_inlining_of_small_function): Likewise;
11620         add sanity checking that badness in heap is up to date;
11621         improve dumping of reason; Update badness of calls to the
11622         offline copy of function currently inlined; dump badness
11623         of functions not inlined because of unit growth limits.
11624
11625 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
11626
11627         PR middle-end/32628
11628         * c-common.c (pointer_int_sum): Disregard overflow that occured only
11629         because of sign-extension change when converting to sizetype here...
11630         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
11631
11632         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
11633         the folding to constants.  Remove redundant final conversion.
11634         (fold_binary) <associate>: Do not associate if the re-association of
11635         constants alone overflows.
11636         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
11637         to the end of the list.
11638         (multiple_of_p) <COND_EXPR>: New case.
11639
11640 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11641
11642         * opt-functions.awk (opt_sanitized_name): New.
11643         (opt_enum): New.
11644         * optc-gen.awk: Use it
11645         * opth-gen.awk: Use it.
11646
11647 2010-04-13  Martin Jambor  <mjambor@suse.cz>
11648
11649         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
11650         (sra_modify_assign): Delete stmts loading dead data even if racc has no
11651         children.  Call replace_uses_with_default_def_ssa_name to handle
11652         SSA_NAES on lhs.
11653
11654 2010-04-13  Michael Matz  <matz@suse.de>
11655
11656         PR middle-end/43730
11657         * builtins.c (expand_builtin_interclass_mathfn): Also create
11658         a register if the predicate doesn't match.
11659
11660 2010-04-13  Diego Novillo  <dnovillo@google.com>
11661
11662         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
11663         * c-pch.c: Include timevar.h.
11664         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
11665         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
11666         * ggc-common.c: Include timevar.h.
11667         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
11668         * timevar.def (TV_PCH_SAVE): Define.
11669         (TV_PCH_CPP_SAVE): Define.
11670         (TV_PCH_PTR_REALLOC): Define.
11671         (TV_PCH_PTR_SORT): Define.
11672         (TV_PCH_RESTORE): Define.
11673         (TV_PCH_CPP_RESTORE): Define.
11674
11675 2010-04-13  Michael Matz  <matz@suse.de>
11676
11677         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
11678         into MINUS_EXPRs.
11679         (can_reassociate_p): New function.
11680         (break_up_subtract_bb, reassociate_bb): Use it.
11681
11682 2010-04-13  Richard Guenther  <rguenther@suse.de>
11683
11684         PR bootstrap/43737
11685         * builtins.c (c_readstr): Fix assert.
11686
11687 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
11688
11689         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
11690         when generating cltd insn.
11691
11692         (*ashl<mode>3_1): Remove special handling for register operand 2.
11693         (*ashlsi3_1_zext): Ditto.
11694         (*ashlhi3_1): Ditto.
11695         (*ashlhi3_1_lea): Ditto.
11696         (*ashlqi3_1): Ditto.
11697         (*ashlqi3_1_lea): Ditto.
11698         (*<shiftrt_insn><mode>3_1): Ditto.
11699         (*<shiftrt_insn>si3_1_zext): Ditto.
11700         (*<shiftrt_insn>qi3_1_slp): Ditto.
11701         (*<rotate_insn><mode>3_1): Ditto.
11702         (*<rotate_insn>si3_1_zext): Ditto.
11703         (*<rotate_insn>qi3_1_slp): Ditto.
11704
11705 2010-04-13  Richard Guenther  <rguenther@suse.de>
11706
11707         * tree-ssa-structalias.c (callused_id): Remove.
11708         (call_stmt_vars): New.
11709         (get_call_vi): Likewise.
11710         (lookup_call_use_vi): Likewise.
11711         (lookup_call_clobber_vi): Likewise.
11712         (get_call_use_vi): Likewise.
11713         (get_call_clobber_vi): Likewise.
11714         (make_transitive_closure_constraints): Likewise.
11715         (handle_const_call): Adjust to do per-call call-used handling.
11716         (handle_pure_call): Likewise.
11717         (find_what_var_points_to): Remove general callused handling.
11718         (init_base_vars): Likewise.
11719         (init_alias_vars): Initialize call_stmt_vars.
11720         (compute_points_to_sets): Process call-used and call-clobbered
11721         vars for call statements.
11722         (delete_points_to_sets): Free call_stmt_vars.
11723
11724 2010-04-13  Richard Guenther  <rguenther@suse.de>
11725
11726         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
11727         Only add RW dependence for dependence distance zero.
11728         Adjust maximal vectorization factor according to dependences.
11729         Move alignment handling ...
11730         (vect_find_same_alignment_drs): ... here.  New function.
11731         (vect_analyze_data_ref_dependences): Adjust.
11732         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
11733         (vect_analyze_data_refs): Adjust minimal vectorization factor
11734         according to data references.
11735         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
11736         dependences before determining the vectorization factor.
11737         Analyze alignment after determining the vectorization factor.
11738         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
11739         dependences before alignment.
11740         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
11741         Adjust prototype.
11742         (vect_analyze_data_refs): Likewise.
11743         (MAX_VECTORIZATION_FACTOR): New define.
11744
11745 2010-04-13  Duncan Sands  <baldrick@free.fr>
11746
11747         * except.h (lang_eh_type_covers): Remove.
11748         * except.c (lang_eh_type_covers): Likewise.
11749
11750 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11751             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11752
11753         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
11754         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
11755         UNITS_PER_LONG where it is ABI relevant.
11756         (s390_return_addr_rtx): Likewise.
11757         (s390_back_chain_rtx): Likewise.
11758         (s390_frame_area): Likewise.
11759         (s390_frame_info): Likewise.
11760         (s390_initial_elimination_offset): Likewise.
11761         (save_gprs): Likewise.
11762         (s390_emit_prologue): Likewise.
11763         (s390_emit_epilogue): Likewise.
11764         (s390_function_arg_advance): Likewise.
11765         (s390_function_arg): Likewise.
11766         (s390_va_start): Likewise.
11767         (s390_gimplify_va_arg): Likewise.
11768         (s390_function_profiler): Likewise.
11769         (s390_optimize_prologue): Likewise.
11770         (s390_rtx_costs): Likewise.
11771         (s390_secondary_reload): Likewise.
11772         (s390_promote_function_mode): Likewise.
11773         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
11774         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
11775         registers available.
11776         (s390_unwind_word_mode): New function.
11777         (s390_function_value): Split 64 bit values into register pair if
11778         used as return value.
11779         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
11780         function call parameters.  Handle parallels.
11781         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
11782         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
11783         (DWARF_CIE_DATA_ALIGNMENT): New macro.
11784         (s390_expand_setmem): Remove unused variable src_addr.
11785         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
11786         deal with 64 bit registers.
11787         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
11788         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
11789         (UNITS_PER_LONG): New macro.
11790         * libjava/include/s390-signal.h: Define extended ucontext
11791         structure containing the upper halfs of the 64 bit registers.
11792
11793 2010-04-13  Simon Baldwin  <simonb@google.com>
11794
11795         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
11796
11797 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
11798
11799         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
11800         rvalue on the RHS if the LHS is of a non-renamable type.
11801         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
11802
11803 2010-04-13  Matthias Klose  <doko@ubuntu.com>
11804
11805         * gcc.c (cc1_options): Handle -iplugindir before processing
11806         the cc1 spec. Only add -iplugindir once.
11807         (cpp_unique_options): Add -iplugindir option if -fplugin* options
11808         found.
11809         * common.opt (iplugindir): Remove `Separate' property, initialize.
11810         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
11811         option.
11812         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
11813         (distclean): Remove plugin dir.
11814         * doc/invoke.texi: Document -iplugindir.
11815
11816 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
11817
11818         * doc/plugins.texi (Loading Plugins): Document short
11819         -fplugin=foo option.
11820         (Plugin API): Mention default_plugin_dir_name function.
11821
11822         * gcc.c (find_file_spec_function): Add new declaration.
11823         (static_spec_func): Use it for "find-file".
11824         (find_file_spec_function): Add new function.
11825         (cc1_options): Add -iplugindir option if -fplugin* options found.
11826
11827         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
11828
11829         * plugin.c (add_new_plugin): Updated comment, and handle short
11830         plugin name.
11831         (default_plugin_dir_name): Added new function.
11832
11833         * common.opt (iplugindir): New option to set the plugin directory.
11834
11835 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
11836
11837         * config/i386/i386.md (any_rotate): New code iterator.
11838         (rotate_insn): New code attribute.
11839         (rotate): Ditto.
11840         (SWIM124): New mode iterator.
11841         (<rotate_insn>ti3): New expander.
11842         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
11843         any_rotate code iterator.
11844         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
11845         using any_rotate code iterator and SWIM124 mode iterator.
11846         (ix86_rotlti3): New insn_and_split pattern.
11847         (ix86_rotrti3): Ditto.
11848         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
11849         ix86_rotl{di,ti}3 patterns.
11850         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
11851         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
11852         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
11853         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
11854         code iterator and SWI mode iterator.
11855         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
11856         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
11857         code iterator.
11858         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
11859         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
11860         (bswap rotatert splitter): Add splitter.
11861         (bswap splitter): Macroize splitter using any_rotate code iterator.
11862         Add insn predicate to split only for TARGET_USE_XCHGB or when
11863         optimizing function for size.
11864
11865 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
11866
11867         * config/pa/pa.c (emit_move_sequence): Remove use of
11868         deleted variable flag_argument_noalias.
11869
11870 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11871
11872         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
11873         configurations.
11874         Add to unsupported targets list.
11875         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
11876         sparc*-sun-solaris2.[567]* from target lists.
11877         * configure: Regenerate.
11878         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
11879         removal.
11880         Remove Solaris 7 patch references.
11881         (Specific, sparc-sun-solaris2.7): Removed.
11882         (sparc-sun-solaris2*): Update Solaris 7 example.
11883         (sparc64-*-solaris2*): Likewise.
11884
11885 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11886
11887         * config.build (alpha*-dec-osf4*): Remove.
11888         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
11889         of obsolete configurations.
11890         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
11891         support.
11892         * config/alpha/t-osf4: Renamed to ...
11893         * config/alpha/t-osf5: ... this.
11894         * config/alpha/osf.h: Renamed to ...
11895         * config/alpha/osf5.h: ... this.
11896         Merged old osf5.h contents.
11897         Update comments.
11898         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
11899         (EXTRA_SPECS): Removed.
11900         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
11901         reflect removal of Tru64 UNIX V4.0/V5.0 support.
11902         Document that.
11903
11904 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11905
11906         * doc/contrib.texi (Contributors, Rainer Orth): Update.
11907
11908 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
11909
11910         PR/43702
11911         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
11912         __thiscall convention.
11913
11914 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
11915
11916         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
11917         orig_base.
11918         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
11919
11920 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
11921
11922         * function.c (assign_parms_initialize_all): Add unused attribute
11923         to fntype.
11924
11925 2010-04-12  Richard Guenther  <rguenther@suse.de>
11926
11927         * gsstruct.def (GSS_CALL): New.
11928         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
11929         * gimple.h: Include tree-ssa-alias.h.
11930         (struct gimple_statement_call): New.
11931         (union gimple_statement_struct_d): Add gimple_call member.
11932         (gimple_call_reset_alias_info): Declare.
11933         (gimple_call_use_set): New function.
11934         (gimple_call_clobber_set): Likewise.
11935         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
11936         * gimple.c (gimple_call_reset_alias_info): New function.
11937         (gimple_build_call_1): Call it.
11938         * lto-streamer-in.c (input_gimple_stmt): Likewise.
11939         * tree-inline.c (remap_gimple_stmt): Likewise.
11940         (expand_call_inline): Remove callused handling.
11941         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
11942         * tree-dfa.c (dump_variable): Likewise.
11943         * tree-parloops.c (parallelize_loops): Likewise.
11944         * tree-ssa.c (init_tree_ssa): Likewise.
11945         (delete_tree_ssa): Likewise.
11946         * tree-flow-inline.h (is_call_used): Remove.
11947         * tree-flow.h (struct gimple_df): Remove callused member.
11948         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
11949         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
11950         (ref_maybe_used_by_call_p_1): Simplify.
11951         (call_may_clobber_ref_p_1): Likewise.
11952         * tree-ssa-structalias.c (compute_points_to_sets): Set
11953         the call stmt used and clobbered sets.
11954         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
11955         (find_tail_calls): Verify the tail call.
11956
11957 2010-04-12  Richard Guenther  <rguenther@suse.de>
11958
11959         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
11960         single-iteration always-inline inlining.
11961         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
11962         (cgraph_decide_inlining): Do not handle always-inline specially.
11963         (try_inline): Remove always-inline cycle detection special case.
11964         Do not recurse on always-inlines.
11965         (cgraph_early_inlining): Do not iterate if not optimizing.
11966         (cgraph_gate_early_inlining): remove.
11967         (pass_early_inline): Run unconditionally.
11968         (gate_cgraph_decide_inlining): New function.
11969         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
11970         not inlining or optimizing.
11971         (cgraph_decide_inlining_of_small_functions): Also consider
11972         always-inline functions.
11973         (cgraph_default_inline_p): Return true for nodes which should
11974         disregard inline limits.
11975         (estimate_function_body_sizes): Assume zero size and time for
11976         nodes which are marked as disregarding inline limits.
11977         (cgraph_decide_recursive_inlining): Do not perform recursive
11978         inlining on always-inline nodes.
11979
11980 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
11981
11982         PR bootstrap/43699
11983         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
11984         for exprs satisfying handled_component_p.
11985
11986 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
11987
11988         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
11989         non-constant aggregate elements.
11990
11991         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
11992         is a real initialization.
11993
11994 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
11995
11996         PR c/36774
11997         * c-decl.c (start_function): Move forward check for nested function.
11998
11999 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12000
12001         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
12002         * config/sh/sh.c: Include reload.h.
12003         (sh_legitimize_reload_address): New.
12004         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
12005         sh_legitimize_reload_address.
12006
12007 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12008
12009         * config/sh/sh.md (*movqi_pop): New insn pattern.
12010         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
12011
12012 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12013
12014         * config/i386/i386.md (any_shiftrt): New code iterator.
12015         (shiftrt_insn): New code attribute.
12016         (shiftrt): Ditto.
12017         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
12018         using any_shiftrt code iterator.
12019         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
12020         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
12021         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
12022         pattern from corresponding peephole2 patterns.
12023         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
12024         using any_shiftrt code iterator.
12025         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
12026         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
12027         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
12028         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
12029         *{ashr,lshr}<mode>3_cmp_zext.
12030         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
12031
12032 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12033
12034         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
12035         scratch register.
12036         (*lshr<mode>3_cconly): Ditto.
12037
12038 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
12039
12040         * config/i386/i386.md (lshr<mode>3): Macroize expander from
12041         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
12042         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12043         pattern from *lshr{di,ti}3_1 and corresponding splitters using
12044         DWI mode iterator.
12045         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
12046         from corresponding peephole2 patterns.
12047         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
12048         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
12049         and *lshrdi3_1_rex64 using SWI mode iterator.
12050         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
12051         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
12052         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
12053         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
12054         and *lshrdi3_cmp_rex64 using SWI mode iterator.
12055         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
12056         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
12057         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
12058         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
12059         SWI mode iterator.
12060
12061 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
12062
12063         * config/i386/i386.md (ashr<mode>3): Macroize expander from
12064         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
12065         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12066         pattern from *ashr{di,ti}3_1 and corresponding splitters using
12067         DWI mode iterator.
12068         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
12069         from corresponding peephole2 patterns.
12070         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
12071         (ashrsi3_cvt): Rename from ashrsi3_31.
12072         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
12073         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
12074         and x86_64_shift_adj_3 using SWI48 mode iterator.
12075         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
12076         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
12077         and *ashrdi3_1_rex64 using SWI mode iterator.
12078         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
12079         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
12080         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
12081         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
12082         and *ashrdi3_cmp_rex64 using SWI mode iterator.
12083         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
12084         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
12085         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
12086         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
12087         SWI mode iterator.
12088         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
12089         * config/i386/i386.c (ix86_split_ashr): Update for renamed
12090         x86_shift<mode>_adj_3 expanders.
12091
12092 2010-04-10  Wei Guozhi  <carrot@google.com>
12093
12094         PR target/42601
12095         * config/arm/arm.c (arm_pic_static_addr): New function.
12096         (legitimize_pic_address): Call arm_pic_static_addr when it detects
12097         a static symbol.
12098         (arm_output_addr_const_extra): Output expression for new pattern.
12099         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
12100
12101 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
12102
12103         * ira-costs.c (record_reg_classes): Ignore alternatives that are
12104         not enabled.
12105
12106         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
12107         * web.c: Include "insn-config.h" and "recog.h".
12108         (union_match_dups): New function.
12109         (web_main): Call it.
12110         (union_defs): Don't try to recognize match_dups.
12111
12112         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
12113         if doing so would replace the entire pattern.
12114
12115 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
12116
12117         PR target/43707
12118         PR target/43709
12119         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
12120         and splitter pattern.  Change splitter operand 1 predicate to
12121         nonmemory_operand.
12122
12123 2010-04-09  Martin Jambor  <mjambor@suse.cz>
12124
12125         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
12126         lattices are addresses of CONST_DECLs with the same initial value.
12127         (ipcp_print_all_lattices): Print values of CONST_DECLs.
12128         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
12129
12130 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
12131             Bernd Schmidt  <bernds@codesourcery.com>
12132
12133         * loop-invariant.c (replace_uses): New static function.
12134         (move_invariant_reg): Use it to ensure we can replace the uses.
12135
12136 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12137
12138         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
12139         function template.
12140         (picochip_override_options): Enable section anchors only above -O1.
12141         (picochip_reorg): Fixed a couple of build warnings.
12142
12143 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12144
12145         * configure.ac (plugin -rdynamic test): Log result.
12146         * configure: Regenerate.
12147         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
12148         (RDYNAMIC_SPEC): Define.
12149         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
12150
12151 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12152
12153         * configure.ac: Determine Sun ld version numbers.
12154         (comdat_group): Restrict GNU ld version checks to gld.
12155         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
12156         (enable_comdat): Support --enable-comdat.
12157         * configure: Regenerate.
12158         * doc/install.texi (Configuration): Document --enable-comdat.
12159
12160 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12161
12162         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
12163         * config/sol2-gld.h: ... here.
12164         * config.gcc (sparc*-*-solaris2*): Reflect this.
12165         (i[34567]86-*-solaris2*): Use it.
12166
12167 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
12168
12169         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
12170         setup_clocks_p.
12171         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
12172
12173 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12174
12175         PR 42965
12176         * diagnostic.c (diagnostic_initialize): Initialize
12177         some_warnings_are_errors.
12178         (diagnostic_finish): New.
12179         (diagnostic_action_after_output): Call it before exiting.
12180         (diagnostic_report_diagnostic): Do not print message here. Set
12181         some_warnings_are_errors.
12182         * diagnostic.h (diagnostic_context): Delete
12183         issue_warnings_are_errors_message. Add some_warnings_are_errors.
12184         (diagnostic_finish): Declare.
12185         * toplev.c (toplev_main): Call it before exit.
12186
12187 2010-04-09  Jason Merrill  <jason@redhat.com>
12188
12189         PR c++/42623
12190         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
12191         for incomplete type.
12192
12193         PR c++/41788
12194         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
12195         based on a warning flag.
12196
12197 2010-04-09  Richard Guenther  <rguenther@suse.de>
12198
12199         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
12200
12201 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
12202
12203         PR bootstrap/43684
12204         * varasm.c (default_assemble_visibility): Wrap vars that are
12205         set, but unused, by targets without GAS.
12206         * config/rs6000/rs6000.c (paired_emit_vector_compare):
12207         Remove set, but unused, vars.
12208         (rs6000_legitimize_tls_address): Likewise.
12209         (altivec_expand_dst_builtin): Likewise.
12210         * config/darwin.c (machopic_classify_symbol): Likewise.
12211         (machopic_indirection_name): Likewise.
12212
12213 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
12214
12215         * config/i386/i386.md (DWI): New mode iterator.
12216         (S): New mode attribute.
12217         (shift_operand): Ditto.
12218         (shift_immediate_operand): Ditto.
12219         (ashl_input_operand): Ditto.
12220         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
12221         using SDWIM mode iterator.
12222         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
12223         pattern from *ashl{di,ti}3_1 and corresponding splitters using
12224         DWI mode iterator.
12225         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
12226         from corresponding peephole2 patterns.
12227         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
12228         and x86_64_shift_adj_1 using SWI48 mode iterator.
12229         (x86_shift<mode>_adj_2): Ditto.
12230         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
12231         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
12232         using SWI48 mode iterator.
12233         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
12234         *ashldi3_cmp_rex64 using SWI mode iterator.
12235         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
12236         *ashldi3_cconly_rex64 using SWI mode iterator.
12237         * config/i386/i386.c (ix86_split_ashl): Update for renamed
12238         x86_shift<mode>_adj_{1,2}.
12239         (ix86_split_ashr): Ditto.
12240         (ix86_split_lshr): Ditto.
12241
12242 2010-04-09  Richard Guenther  <rguenther@suse.de>
12243
12244         * target.h (builtin_conversion): Pass in input and output types.
12245         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
12246         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
12247         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
12248         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
12249
12250         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
12251         Handle AVX modes.
12252         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
12253
12254 2010-04-09  Richard Guenther  <rguenther@suse.de>
12255
12256         PR target/43152
12257         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
12258
12259 2010-04-09  Richard Guenther  <rguenther@suse.de>
12260
12261         * tree-vectorizer.h (struct _stmt_vec_info): Document
12262         that vectype is the type of the LHS.
12263         (supportable_widening_operation, supportable_narrowing_operation):
12264         Get both input and output vector types as arguments.
12265         (vect_is_simple_use_1): Declare.
12266         (get_same_sized_vectype): Likewise.
12267         * tree-vect-loop.c (vect_determine_vectorization_factor):
12268         Set STMT_VINFO_VECTYPE to the vector type of the def.
12269         (vectorizable_reduction): Adjust.
12270         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
12271         Adjust.  Specify the output vector type.
12272         (vect_pattern_recog_1): Adjust.
12273         * tree-vect-stmts.c (get_same_sized_vectype): New function.
12274         (vectorizable_call): Adjust.
12275         (vectorizable_conversion): Likewise.
12276         (vectorizable_operation): Likewise.
12277         (vectorizable_type_demotion): Likewise.
12278         (vectorizable_type_promotion): Likewise.
12279         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
12280         the def.
12281         (vect_is_simple_use_1): New function.
12282         (supportable_widening_operation): Get both input and output
12283         vector types.
12284         (supportable_narrowing_operation): Likewise.
12285         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
12286
12287 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
12288
12289         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
12290         __thiscall and _thiscall as predefined macros.
12291         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
12292         thiscall attribute handling.
12293         (ix86_comp_type_attributes): Likewise.
12294         (ix86_function_regparm): Likewise.
12295         (ix86_return_pops_args): Likewise.
12296         (init_cumulative_args): Likewise.
12297         (find_drap_reg): Likewise.
12298         (ix86_static_chain): Likewise.
12299         (x86_this_parameter): Likewise.
12300         (x86_output_mi_thunk): Likewise.
12301         (ix86_attribute_table): Add description for thiscall attribute.
12302         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
12303         * doc/extend.texi: Add documentation for thiscall.
12304
12305 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12306
12307         PR c++/28584
12308         * c.opt (Wint-to-pointer-cast): Available in C++.
12309         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
12310
12311 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
12312
12313         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
12314         * calls.c (expand_call): Pass the function type to aggregate_value_p.
12315         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
12316         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
12317         function type instead.  Reorder and simplify checks.
12318
12319         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
12320
12321 2010-04-08  Jing Yu  <jingyu@google.com>
12322             Zdenek Dvorak  <ook@ucw.cz>
12323
12324         PR tree-optimization/42720
12325         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
12326         loop unswitch conditions here from ...
12327         (tree_unswitch_single_loop): ... here.
12328
12329 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
12330
12331         * tree-if-conv.c: Fix comments and simplify logic.
12332
12333 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
12334
12335         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
12336         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
12337         (main_tree_if_conversion): Update call to tree_if_conversion.
12338
12339 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12340
12341         PR 42485
12342         * doc/invoke.texi (-b,-V): Delete.
12343         * doc/tm.texi: Do not mention -b.
12344         * gcc.c (display_help): Delete -b and -V.
12345         (process_command): Delete -b and -V.
12346         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
12347
12348 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
12349             Wolfgang Gellerich  <gellerich@de.ibm.com>
12350
12351         Implement target hook for loop unrolling
12352         * target.h (loop_unroll_adjust): Add a new target hook function.
12353         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
12354         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
12355         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
12356         (s390_loop_unroll_adjust): Implement the new target hook for s390.
12357         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
12358         target hook.
12359         (decide_unroll_stupid): Likewise.
12360
12361 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12362
12363         PR target/43643
12364         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
12365
12366 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12367
12368         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
12369         (Specific, *-*-solaris2*): Likewise.
12370         Don't prefer Sun as over GNU as.
12371
12372 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
12373
12374         * config/s390/s390.c (override_options): Adjust the z10 defaults
12375         for max-unroll-times, max-completely-peeled-insns
12376         and max-completely-peel-times.
12377
12378 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12379
12380         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
12381         instructions for z10.
12382         (s390_expand_setmem): Likewise.
12383         (s390_expand_cmpmem): Likewise.
12384
12385 2010-04-08  Richard Guenther  <rguenther@suse.de>
12386
12387         PR tree-optimization/43679
12388         * tree-ssa-pre.c (eliminate): Only propagate copies.
12389
12390 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
12391
12392         PR bootstrap/43681
12393         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
12394         set but not used variable warning.
12395
12396 2010-04-08  Wei Guozhi  <carrot@google.com>
12397
12398         PR target/41653
12399         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
12400         (arm_size_rtx_costs): Call the new function when optimized for size.
12401
12402 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
12403
12404         PR debug/43670
12405         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
12406         op0 is not a MEM, just return NULL instead of assertion
12407         failure.
12408         (discover_nonconstant_array_refs): Don't walk debug stmts.
12409
12410 2010-04-08  Doug Kwan  <dougkwan@google.com>
12411
12412         * configure.ac: Recognize gold and do not use its version number
12413         to test ld features.
12414         * configure: Regenerate.
12415
12416 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
12417
12418         PR middle-end/40815
12419         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
12420         (negate_value): Move code to push elements to broken_up_substracts ...
12421         (eliminate_plus_minus_pair): ... here.  Push operands that have no
12422         negative pair to plus_negates.
12423         (repropagate_negates, init_reassoc, fini_reassoc): Update.
12424
12425 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12426
12427         * doc/install.texi (Configuration): Move description of
12428         --enable-lto, --with-libelf*, --enable-gold from Java section to
12429         general section.
12430
12431         * doc/generic.texi (Working with declarations)
12432         (Function Properties, C and C++ Trees): Fix typos.
12433         * doc/sourcebuild.texi (Top Level): Likewise.
12434
12435 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
12436
12437         PR c/18624
12438         * tree.h (DECL_READ_P): Define.
12439         (struct tree_decl_common): Add decl_read_flag.
12440         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
12441         a set but not used warning.
12442         (merge_decls): Merge DECL_READ_P flag.
12443         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
12444         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
12445         * c-common.c (handle_used_attribute, handle_unused_attribute):
12446         Likewise.
12447         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
12448         New prototypes.
12449         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
12450         New functions.
12451         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
12452         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
12453         c_parser_binary_expression, c_parser_cast_expression,
12454         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
12455         Call default_function_array_read_conversion instead of
12456         default_function_array_conversion where needed.
12457         (c_parser_unary_expression, c_parser_conditional_expression,
12458         c_parser_postfix_expression_after_primary, c_parser_initelt):
12459         Likewise.  Call mark_exp_read where needed.
12460         (c_parser_statement_after_labels, c_parser_asm_operands,
12461         c_parser_typeof_specifier, c_parser_sizeof_expression,
12462         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
12463         where needed.
12464         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
12465         New.
12466         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
12467         (warn_unused_but_set_parameter): Default to warn_unused
12468         && extra_warnings.
12469         * doc/invoke.texi: Document -Wunused-but-set-variable and
12470         -Wunused-but-set-parameter.
12471
12472         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
12473         used count variable.
12474         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
12475         when operandN variables aren't used in the body of the expander
12476         or splitter.
12477         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
12478         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
12479         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
12480         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
12481         FOR_EACH_IMM_USE_ON_STMT): Likewise.
12482         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
12483         * tree.c (PROCESS_ARG): Likewise.
12484
12485 2010-04-07  Simon Baldwin  <simonb@google.com>
12486
12487         * diagnostic.h (diagnostic_override_option_index): New macro to
12488         set a diagnostic's option_index.
12489         * c-tree.h (c_cpp_error): Add warning reason argument.
12490         * opts.c (_warning_as_error_callback): New.
12491         (register_warning_as_error_callback): Store callback for
12492         warnings enabled via enable_warning_as_error.
12493         (enable_warning_as_error): Call callback, minor code tidy.
12494         * opts.h (register_warning_as_error_callback): Declare.
12495         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
12496         response to -Werror=.
12497         (c_common_init_options): Register warning_as_error_callback in opts.c.
12498         * common.opt: Add -Wno-cpp option.
12499         * c-common.c (struct reason_option_codes_t): Map cpp warning
12500         reason codes to gcc option indexes.
12501         * (c_option_controlling_cpp_error): New function, lookup the gcc
12502         option index for a cpp warning reason code.
12503         * (c_cpp_error): Add warning reason argument, call
12504         c_option_controlling_cpp_error for diagnostic_override_option_index.
12505         * doc/invoke.texi: Document -Wno-cpp.
12506
12507 2010-04-07  Richard Guenther  <rguenther@suse.de>
12508
12509         * ipa-reference.c (mark_load): Use get_base_address.
12510         (mark_store): Likewise.
12511
12512         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
12513         inserting GIMPLE_NOPs into the IL.
12514         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12515         Explicitly strip handled components and indirect references.
12516
12517         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
12518         folding address expressions.
12519         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
12520         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
12521         operand_equal_p to compare decls.
12522         (ptr_deref_may_alias_decl_p): Likewise.
12523         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
12524         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
12525         Handle reversed comparison ops.
12526         * tree-sra.c (asm_visit_addr): Use get_base_address.
12527         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
12528         * ipa-reference.c (mark_address): Use get_base_address.
12529
12530 2010-04-07  Richard Guenther  <rguenther@suse.de>
12531
12532         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
12533         Propagate constants everywhere.
12534
12535 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
12536
12537         PR debug/43516
12538         * tree.c (MAX_INT_CACHED_PREC): Define.
12539         (nonstandard_integer_type_cache): New array.
12540         (build_nonstandard_integer_type): Cache results for precision
12541         <= MAX_INT_CACHED_PREC.
12542
12543 2010-04-07  Richard Guenther  <rguenther@suse.de>
12544
12545         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
12546         -fargument-noalias-global, -fargument-noalias-anything): Remove.
12547         * common.opt: Likewise.
12548         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
12549         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
12550         (nonoverlapping_memrefs_p): Likewise.
12551         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12552         * opts.c (common_handle_option): Handle OPT_fargument_alias,
12553         OPT_fargument_noalias, OPT_fargument_noalias_anything and
12554         OPT_fargument_noalias_global for backward compatibility.
12555
12556 2010-04-07  Richard Guenther  <rguenther@suse.de>
12557
12558         PR tree-optimization/43270
12559         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
12560         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
12561         * tree-ssa-pre.c (phi_translate_1): Adjust.
12562         (fully_constant_expression): Split out vn_reference handling to ...
12563         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
12564         Fold reads from constant strings.
12565         (vn_reference_lookup): Handle fully constant references.
12566         (vn_reference_lookup_pieces): Likewise.
12567         * Makefile.in (expmed.o-warn): Add -Wno-error.
12568
12569 2010-04-07  Martin Jambor  <mjambor@suse.cz>
12570
12571         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
12572
12573 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
12574
12575         PR driver/41594
12576         * gcc.c: Add -static-libstdc++ to list of recognized options.
12577
12578 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12579
12580         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
12581
12582 2010-04-07  Richard Guenther  <rguenther@suse.de>
12583
12584         PR middle-end/42617
12585         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
12586         bases build simple mem attributes to retain points-to information.
12587
12588 2010-04-07  Richard Guenther  <rguenther@suse.de>
12589
12590         PR middle-end/42617
12591         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
12592         preserve points-to related information.
12593
12594 2010-04-07  Richard Guenther  <rguenther@suse.de>
12595
12596         PR middle-end/42617
12597         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
12598         discard plain indirect references.
12599         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
12600         * tree.c (tree_nop_conversion): Likewise.
12601
12602 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
12603
12604         PR debug/43628
12605         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
12606
12607 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
12608
12609         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
12610         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
12611
12612 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12613
12614         * tree-if-conv.c: Fix indentation and comments.
12615
12616 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12617
12618         * tree-if-conv.c: Sort static functions in topological order.
12619
12620 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
12621
12622         * tree-if-conv.c: Fix indentation and comments.
12623
12624 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12625
12626         PR middle-end/43519
12627         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
12628         lang_hooks.types.type_for_size instead of
12629         build_nonstandard_integer_type.
12630         When converting an unsigned type to signed, double its precision.
12631         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
12632         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
12633         (graphite_create_new_loop_guard): When ub + 1 wraps around,
12634         use lb <= ub.
12635
12636 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12637
12638         PR middle-end/43519
12639         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12640         POINTER_PLUS_EXPR for pointer types.
12641
12642 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12643
12644         PR middle-end/43519
12645         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
12646         * graphite-clast-to-gimple.c: Include langhooks.h.
12647         (max_signed_precision_type): New.
12648         (max_precision_type): Takes two types as arguments.
12649         (precision_for_value): New.
12650         (precision_for_interval): New.
12651         (gcc_type_for_interval): New.
12652         (gcc_type_for_value): New.
12653         (gcc_type_for_clast_term): New.
12654         (gcc_type_for_clast_red): New.
12655         (gcc_type_for_clast_bin): New.
12656         (gcc_type_for_clast_expr): Split up into several functions.
12657         (gcc_type_for_clast_eq): Rewritten.
12658         (compute_bounds_for_level): New.
12659         (compute_type_for_level_1): New.
12660         (compute_type_for_level): New.
12661         (gcc_type_for_cloog_iv): Removed.
12662         (gcc_type_for_iv_of_clast_loop): Rewritten.
12663         (graphite_create_new_loop): Compute the lower and upper bound types
12664         with gcc_type_for_clast_expr.
12665         (graphite_create_new_loop_guard): Same.
12666         (find_cloog_iv_in_expr): Removed.
12667         (compute_cloog_iv_types_1): Removed.
12668         (compute_cloog_iv_types): Removed.
12669         (gloog): Do not call compute_cloog_iv_types.
12670         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
12671         GBB_CLOOG_IV_TYPES.
12672         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
12673         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
12674         (GBB_CLOOG_IV_TYPES): Removed.
12675
12676 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12677
12678         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
12679         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
12680         (detect_commutative_reduction): Same.
12681
12682 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12683
12684         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
12685         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
12686         argument.
12687         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
12688         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
12689         (rewrite_commutative_reductions_out_of_ssa): Same.
12690         * passes.c (execute_function_todo): Call verify_ssa for every pass
12691         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
12692         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
12693         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
12694         with an extra argument.
12695         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
12696         verify_ssa only when the extra argument is true.
12697         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
12698         with an extra argument.
12699         (tree_transform_and_unroll_loop): Same.
12700
12701 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
12702
12703         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
12704         for all the passes of the LNO having LOOP_CLOSED_SSA.
12705         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
12706         * tree-loop-distribution.c (pass_loop_distribution): Same.
12707         * tree-pass.h (TODO_verify_loops): Removed.
12708         * tree-ssa-loop.c (pass_tree_loop_init): Same.
12709         (pass_lim): Same.
12710         (pass_tree_unswitch): Same.
12711         (pass_predcom): Same.
12712         (pass_vectorize): Same.
12713         (pass_linear_transform): Same.
12714         (pass_graphite_transforms): Same.
12715         (pass_iv_canon): Same.
12716         (pass_complete_unroll): Same.
12717         (pass_complete_unrolli): Same.
12718         (pass_parallelize_loops): Same.
12719         (pass_loop_prefetch): Same.
12720         (pass_iv_optimize): Same.
12721
12722 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
12723
12724         PR middle-end/32824
12725         * passes.c (init_optimization_passes): Move pass_lim before
12726         pass_copy_prop and pass_dce_loop.
12727
12728 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
12729
12730         PR target/43667
12731         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
12732         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
12733         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
12734         MULTI_* defines for 4 argument vpermil2p* builtins.
12735
12736 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
12737
12738         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
12739         * config/i386/i386.c (x86_maybe_negate_const_int): New.
12740         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
12741         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
12742         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
12743         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
12744         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
12745         Use x86_maybe_negate_const_int to output insn mnemonic.
12746         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
12747         check from instruction predicate.  Update comments.
12748         * config/i386/sync.md (sync_add<mode>): Use
12749         x86_maybe_negate_const_int to output insn mnemonic.
12750
12751 2010-04-06  Jan Hubicka  <jh@suse.cz>
12752
12753         PR tree-optimization/42906
12754         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
12755         IGNORE_SELF argument.  Set visited_control_parents for fully
12756         processed BBs.
12757         (find_obviously_necessary_stmts): Update call of
12758         mark_control_dependent_edges_necessary.
12759         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
12760
12761 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
12762
12763         * config/i386/i386.md: Remove comment about 'e' and 'E'
12764         operand modifier.
12765
12766 2010-04-06  Richard Guenther  <rguenther@suse.de>
12767
12768         PR tree-optimization/43627
12769         * tree-vrp.c (extract_range_from_unary_expr): Widenings
12770         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
12771         not varying.
12772
12773 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
12774
12775         * BASE-VER: Change to 4.6.0.
12776
12777         PR target/43638
12778         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
12779         handling.
12780
12781 2010-04-06  Richard Guenther  <rguenther@suse.de>
12782
12783         PR middle-end/43661
12784         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
12785
12786 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12787
12788         * doc/invoke.texi (Optimize Options): Document that LTO
12789         won't remove object access purely due to incompatible
12790         declarations.
12791
12792 2010-04-04  Matthias Klose  <doko@ubuntu.com>
12793
12794         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
12795         Initialize variable.
12796
12797 2010-04-03  Richard Guenther  <rguenther@suse.de>
12798
12799         PR middle-end/42509
12800         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
12801         require a non-NULL MEM_OFFSET.
12802
12803 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
12804
12805         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
12806         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
12807         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
12808         config/alpha/predicates.md, config/arm/arm.md,
12809         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
12810         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
12811         config/darwin9.h, config/darwin.c, config/darwin.h,
12812         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
12813         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
12814         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
12815         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
12816         config/mips/mips.md, config/mn10300/mn10300.c,
12817         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
12818         config/rs6000/aix.h, config/rs6000/dfp.md,
12819         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
12820         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
12821         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
12822         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
12823         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
12824         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
12825         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
12826         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
12827         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
12828         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
12829         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
12830         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
12831         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
12832         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
12833         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
12834         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
12835         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
12836         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
12837         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
12838         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
12839         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
12840         opt-functions.awk, opth-gen.awk, params.def, passes.c,
12841         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
12842         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
12843         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
12844         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
12845         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
12846         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
12847         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
12848         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
12849         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
12850         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
12851         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
12852         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
12853         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
12854         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
12855
12856 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12857
12858         PR other/43620
12859         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
12860         * aclocal.m4: Regenerate.
12861
12862 2010-04-02  Richard Guenther  <rguenther@suse.de>
12863
12864         PR tree-optimization/43629
12865         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
12866         if we have seen a constant value.
12867
12868 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
12869
12870         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
12871
12872 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
12873
12874         PR target/43469
12875         * arm.c (legitimize_tls_address): Adjust call to
12876         gen_tls_load_dot_plus_four.
12877         (arm_note_pic_base): New function.
12878         (arm_cannot_copy_insn_p): Use it.
12879         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
12880         constraint.
12881
12882 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12883
12884         PR bootstrap/43531
12885
12886         Revert:
12887         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12888
12889         * Makefile.in ($(out_object_file)): Depend on
12890         gt-$(basename $(notdir $(out_file))).h.
12891
12892 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
12893
12894         * config.gcc (lm32-*-rtems*): Add t-lm32.
12895
12896 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
12897
12898         * config.gcc: Add lm32-*-rtems*.
12899         * config/lm32/rtems.h: New file.
12900
12901 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
12902
12903         PR target/42609
12904         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
12905
12906 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
12907
12908         * dwarf2out.c (output_compilation_unit_header): For
12909         -gdwarf-4 use version 4 instead of version 3.
12910         (output_line_info): For version 4 and above emit additional
12911         maximum ops per insn header field.
12912         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
12913
12914         * dwarf2out.c (is_c_family, is_java): Remove.
12915         (lower_bound_default): New function.
12916         (add_bound_info, gen_descr_array_type_die): Use it.
12917
12918 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
12919
12920         PR debug/43325
12921         * dwarf2out.c (gen_variable_die): Allow debug info for variable
12922         re-declaration when it happens in a function.
12923
12924 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
12925
12926         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
12927         (cgraph_remove_function_insertion_hook): Same.
12928         (cgraph_call_function_insertion_hooks): Same.
12929
12930 2010-04-01  Richard Guenther  <rguenther@suse.de>
12931
12932         PR middle-end/43614
12933         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
12934         and TREE_THIS_VOLATILE.
12935         (copy_ref_info): Likewise.
12936         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
12937         * tree.c (build6_stat): Ignore side-effects of all but arg5
12938         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
12939         TARGET_MEM_REF.
12940
12941 2010-04-01  Richard Guenther  <rguenther@suse.de>
12942
12943         PR tree-optimization/43607
12944         * ipa-type-escape.c (check_call): Do not access non-existing
12945         arguments.
12946
12947 2010-04-01  Richard Guenther  <rguenther@suse.de>
12948
12949         PR middle-end/43602
12950         Revert
12951         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
12952                     Jack Howarth  <howarth@bromo.med.uc.edu>
12953
12954         * tree-profile.c (tree_init_ic_make_global_vars): Make static
12955         variables TLS.
12956
12957 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12958
12959         * doc/install.texi (Prerequisites): Document libelf usability on
12960         IRIX 5/6 and Solaris 2.
12961         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
12962         Update GNU as, GNU ld requirements.
12963         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
12964         Document Sun Studio compiler download.
12965         Update and simplify as, ld recommendations.
12966         (Specific, *-*-solaris2.7): Note obsoletion, removal.
12967
12968 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12969
12970         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
12971         with_tune_32 to pentium4.
12972
12973 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
12974
12975         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
12976
12977 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12978
12979         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
12980         obsoletion, removal.
12981         Update IDO URL.
12982         Document GNU as requirement.
12983         Update configure requirements.
12984         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
12985         Recomment IRIX 6.5.18+.
12986         Document IDF/IDL requirement.
12987         Document GNU as requirement.
12988         Document GNU ld bootstrap failure.
12989         Remove freeware.sgi.com reference.
12990
12991 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12992
12993         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
12994         UNIX V4.0, V5.0 obsoletion, removal.
12995         Remove --with-gc=simple reference.
12996         Update VM requirements during bootstrap.
12997         Remove -oldas bootstrap description.
12998         Update binutils reference.
12999         Remove comparison failure note.
13000
13001 2010-03-31  Richard Guenther  <rguenther@suse.de>
13002             Zdenek Dvorak  <ook@ucw.cz>
13003             Sebastian Pop  <sebastian.pop@amd.com>
13004
13005         PR middle-end/43464
13006         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
13007         with multiple arguments.
13008         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
13009
13010 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13011
13012         * graphite-dependences.c (print_pddr): Call print_pdr with an
13013         extra argument.
13014         * graphite-poly.c (debug_pdr): Add an extra argument for the
13015         verbosity level.
13016         (print_pdr): Same.
13017         (print_pbb_domain): Same.
13018         (print_pbb): Same.
13019         (print_scop_context): Same.
13020         (print_scop): Same.
13021         (print_cloog): Same.
13022         (debug_pbb_domain): Same.
13023         (debug_pbb): Same.
13024         (print_pdrs): Same.
13025         (debug_pdrs): Same.
13026         (debug_scop_context): Same.
13027         (debug_scop): Same.
13028         (debug_cloog): Same.
13029         (print_scop_params): Same.
13030         (debug_scop_params): Same.
13031         (print_iteration_domain): Same.
13032         (print_iteration_domains): Same.
13033         (debug_iteration_domain): Same.
13034         (debug_iteration_domains): Same.
13035         (print_scattering_function): Same.
13036         (print_scattering_functions): Same.
13037         (debug_scattering_function): Same.
13038         (debug_scattering_functions): Same.
13039         * graphite-poly.h (debug_pdr): Update declaration.
13040         (print_pdr): Same.
13041         (print_pbb_domain): Same.
13042         (print_pbb): Same.
13043         (print_scop_context): Same.
13044         (print_scop): Same.
13045         (print_cloog): Same.
13046         (debug_pbb_domain): Same.
13047         (debug_pbb): Same.
13048         (print_pdrs): Same.
13049         (debug_pdrs): Same.
13050         (debug_scop_context): Same.
13051         (debug_scop): Same.
13052         (debug_cloog): Same.
13053         (print_scop_params): Same.
13054         (debug_scop_params): Same.
13055         (print_iteration_domain): Same.
13056         (print_iteration_domains): Same.
13057         (debug_iteration_domain): Same.
13058         (debug_iteration_domains): Same.
13059         (print_scattering_function): Same.
13060         (print_scattering_functions): Same.
13061         (debug_scattering_function): Same.
13062         (debug_scattering_functions): Same.
13063
13064 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13065
13066         * graphite-poly.c (print_scattering_function_1): New.
13067         (print_scattering_function): Call it.
13068         (print_scop_params): Remove spaces at the end of lines.
13069         (print_cloog): New.
13070         (debug_cloog): New.
13071         * graphite-poly.h (print_cloog): Declared.
13072         (debug_cloog): Declared.
13073
13074 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13075
13076         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
13077         in loop->header.
13078         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
13079         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
13080         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
13081         to switch between adding the IV bump in loop->latch or in loop->header.
13082
13083 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
13084
13085         * graphite-poly.c (print_scattering_function): Pretty print following
13086         the scoplib format.
13087         (print_pdr): Same.
13088         (print_pbb_domain): Same.
13089         (dump_gbb_cases): Same.
13090         (dump_gbb_conditions): Same.
13091         (print_pdrs): Same.
13092         (print_pbb): Same.
13093         (print_scop_params): Same.
13094         (print_scop_context): Same.
13095         (print_scop): Same.
13096         (print_pbb_body): New.
13097         (lst_indent_to): New.
13098         (print_lst): Start new lines with a #.
13099         * graphite-poly.h (pbb_bb): New.
13100         (pbb_index): Use pbb_bb.
13101         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
13102         disjuncts.
13103         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
13104
13105 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
13106
13107         * dwarf2out.c (size_of_die): For -gdwarf-4 use
13108         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
13109         and 0 instead of 1 for dw_val_class_flag.
13110         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
13111         dw_val_class_range_list, dw_val_class_loc_list,
13112         dw_val_class_lineptr and dw_val_class_macptr, use
13113         DW_FORM_flag_present for dw_val_class_flag and
13114         DW_FORM_exprloc for dw_val_class_loc.
13115         (output_die): For -gdwarf-4 print dw_val_class_loc
13116         size as uleb128 instead of 1 or 2 bytes and don't print
13117         anything for dw_val_class_flag.
13118
13119         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
13120         instead of cselib_lookup following by tweaking locs->setting_insn.
13121
13122         PR bootstrap/43596
13123         * cselib.c (cselib_process_insn): Clear cselib_current_insn
13124         even before returning from label, setjmp call or volatile asm
13125         handling.
13126
13127 2010-03-31  Richard Guenther  <rguenther@suse.de>
13128
13129         PR middle-end/43600
13130         * cgraphunit.c (cgraph_output_in_order): Do not allocate
13131         temporary data on stack.
13132
13133 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13134
13135         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
13136         (PUSHSECTION_ASM_OP): Remove.
13137         (POPSECTION_ASM_OP): Remove.
13138         (PUSHSECTION_FORMAT): Remove.
13139         * config/sol2.h (PUSHSECTION_FORMAT): Define.
13140         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
13141         * config/sol2.c (solaris_output_init_fini): Use it.
13142
13143 2010-03-31  Jie Zhang  <jie@codesourcery.com>
13144
13145         PR 43574
13146         * opt-functions.awk (var_type_struct): Use signed char type
13147         for simple variables.
13148
13149 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13150
13151         * config/sol2.c: Include output.h.
13152         (solaris_assemble_visibility): New function.
13153         * config/t-sol2 (sol2.o): Add output.h dependency.
13154         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
13155         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
13156         Redefine.
13157
13158 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
13159
13160         PR target/43580
13161         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
13162         V2SImode or XFmode on PRE_DEC.
13163
13164         PR debug/43557
13165         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
13166         BLKmode.
13167
13168 2010-03-31  Jie Zhang  <jie@codesourcery.com>
13169
13170         PR 43562
13171         * reload.h (caller_save_initialized_p): Declare.
13172         * toplev.c (backend_init_target): Don't call
13173         init_caller_save but set caller_save_initialized_p to false.
13174         * caller-save.c (caller_save_initialized_p): Define.
13175         (init_caller_save): Check caller_save_initialized_p.
13176         * ira.c (ira): Call init_caller_save if flag_caller_saves.
13177
13178 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13179
13180         PR target/39048
13181         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
13182         and soft-fp/t-softfp to tmake_file.
13183         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
13184         (LIBGCC2_TF_CEXT): Define.
13185         (TF_SIZE): Define.
13186
13187 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
13188
13189         PR debug/42977
13190         * cselib.c (n_useless_values): Document handling of debug locs.
13191         (n_useless_debug_values, n_debug_values): New variables.
13192         (new_elt_loc_list): Don't add to debug values, keep count.
13193         (promote_debug_loc): New.
13194         (cselib_reset_table): Zero new variables.
13195         (entry_and_rtx_equal_p): Promote debug locs.
13196         (discard_useless_locs): Increment n_useless_debug_values for
13197         debug values.
13198         (remove_useless_values): Adjust n_useless_values and n_debug_values
13199         with n_useless_debug_values.
13200         (add_mem_for_addr): Promote debug locs.
13201         (cselib_lookup_mem): Likewise.
13202         (cselib_lookup_addr): Renamed to...
13203         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
13204         (cselib_log_lookup): ... this.  Turn into...
13205         (cselib_lookup_addr): ... new wrapper.
13206         (cselib_lookup_from_insn): New.
13207         (cselib_invalidate_regno): Increment n_useless_debug_values for
13208         debug values.
13209         (cselib_invalidate_mem): Likewise.
13210         (cselib_process_insn): Take n_deleted and n_debug_values into
13211         account to guard remove_useless_value call.
13212         (cselib_finish): Zero n_useless_debug_values.
13213         * cselib.h (cselib_lookup_from_insn): Declare.
13214         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
13215         (sched_analyze_2): Likewise.
13216
13217 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
13218
13219         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
13220         functions.
13221         (adjust_mems): Replace narrowing SUBREG of expression containing
13222         just PLUS, MINUS, MULT and ASHIFT of registers and constants
13223         with operations in the narrower mode.
13224
13225         PR debug/43593
13226         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
13227         regs_invalidated_by_call instead all call_used_reg_set registers.
13228
13229 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
13230
13231         PR middle-end/43430
13232         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
13233         pointer comparisons with types_compatible_p.
13234         * tree-vect-stmts.c (vectorizable_call): Same.
13235         (vectorizable_condition): Same.
13236
13237 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13238
13239         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
13240         stack check if the mask would be zero.
13241
13242 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
13243             Jack Howarth  <howarth@bromo.med.uc.edu>
13244
13245         * tree-profile.c (tree_init_ic_make_global_vars): Make static
13246         variables TLS.
13247
13248 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
13249
13250         PR other/25232
13251         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
13252         and __unordtf2.
13253         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
13254         Include ___unordxf2 and ___unordtf2.
13255         * config/i386/libgcc-glibc.ver: Do not define inheritance from
13256         GCC_4.4.0 here.
13257
13258 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
13259
13260         * config/lm32/t-lm32: New file.
13261         * config.gcc: Use the above file when targetting lm32.
13262
13263 2010-03-28  Duncan Sands  <baldrick@free.fr>
13264
13265         * Makefile.in (PLUGIN_HEADERS): Add except.h.
13266
13267 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
13268
13269         PR middle-end/43431
13270         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
13271         Improve vectorization cost model diagnostic.
13272
13273 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
13274
13275         PR middle-end/43436
13276         * tree-vect-data-refs.c (vect_analyze_data_refs): When
13277         compute_data_dependences_for_loop returns false, early exit
13278         and output an extra diagnostic for the failed data reference
13279         analysis.
13280
13281 2010-03-29  Richard Guenther  <rguenther@suse.de>
13282
13283         PR tree-optimization/43560
13284         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
13285         (can_sm_ref_p): Treat stores to readonly locations as trapping.
13286
13287 2010-03-29  Jie Zhang  <jie@codesourcery.com>
13288
13289         PR 43564
13290         * toplev.c (process_options): Set optimization_default_node
13291         and optimization_current_node.
13292         * opts.c (decode_options): Don't set optimization_default_node
13293         and optimization_current_node.
13294
13295 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
13296
13297         * config/rtems.h: Abandon -qrtems_debug.
13298
13299 2010-03-28  Jan Hubicka  <jh@suse.cz>
13300
13301         PR tree-optimization/43505
13302         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
13303         map should not be copied.
13304
13305 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13306
13307         PR middle-end/41674
13308         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
13309         cdtors, set DECL_PRESERVE_P.
13310         * ipa.c (cgraph_externally_visible_p): Return true if declaration
13311         should be preseved.
13312
13313 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
13314
13315         PR tree-optimization/43528
13316         * stor-layout.c (place_field): Check that constant fits into
13317         unsigned HWI when skipping calculation of MS bitfield layout.
13318
13319 2010-03-27  Jan Hubicka  <jh@suse.cz>
13320
13321         PR middle-end/43391
13322         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
13323         notice_global_symbol work.
13324
13325 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
13326
13327         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
13328         instead of dwarf2out_decl.
13329         (struct var_loc_node): Remove section_label field.
13330         (dwarf2out_function_decl): New function.
13331         (dwarf2out_var_location): Don't set section_label field.
13332         (dwarf2out_begin_function): Don't empty decl_loc_table here.
13333
13334 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13335
13336         PR tree-optimization/43544
13337         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
13338         First argument for builtin vectorized function hook is now a
13339         tree to be able to distinguish between machine specific and
13340         standard builtins.
13341         * targhooks.c (default_builtin_vectorized_function): Ditto.
13342         * targhooks.h (default_builtin_vectorized_function): Ditto.
13343         * target.h (struct gcc_target): Ditto.
13344         * tree-vect-stmts.c (vectorizable_function): Ditto.
13345         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
13346         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
13347         Ditto.
13348
13349 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
13350
13351         PR c/43381
13352         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
13353         nested binding iff it is a FUNCTION_DECL.
13354         (store_parm_decls_newstyle): Pass nested=true to bind for
13355         FUNCTION_DECLs amongst parameters.
13356
13357 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
13358
13359         * var-tracking.c (vt_expand_loc_callback): Don't run
13360         cselib_expand_value_rtx_cb in dummy mode if
13361         cselib_dummy_expand_value_rtx_cb returned false.
13362
13363         * var-tracking.c (emit_note_insn_var_location): For one part
13364         notes with offset 0, don't add EXPR_LIST around the location.
13365         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
13366         add_location_or_const_value_attribute): Adjust for that change.
13367
13368         PR debug/43540
13369         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
13370         into first operand and location into second.
13371         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
13372         dw_cfi_oprnd_loc for DW_CFA_expression.
13373         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
13374         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
13375         assume first argument is regnum and second argument is location.
13376
13377 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
13378
13379         PR target/42113
13380         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
13381         of scratch register to DImode.  Split to DImode comparison operator.
13382         Use SImode subreg of scratch register in the multiplication.
13383         (*cmp_sadd_sidi): Ditto.
13384         (*cmp_ssub_si): Ditto.
13385         (*cmp_ssub_sidi): Ditto.
13386
13387 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
13388
13389         PR target/43524
13390         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
13391         Remove invalid assert and wrong comment.
13392
13393 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
13394
13395         PR debug/43516
13396         * flags.h (final_insns_dump_p): New extern.
13397         * final.c (final_insns_dump_p): New variable.
13398         (rest_of_clean_state): Set it before -fdump-final-insns=
13399         dumping, clear afterwards.
13400         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
13401         MEM_ALIAS_SET on MEMs.
13402
13403 2010-03-26  David S. Miller  <davem@davemloft.net>
13404
13405         * configure.ac: Fix sparc GOTDATA_OP bug check.
13406         * configure: Rebuild.
13407
13408 2010-03-26  Alan Modra  <amodra@gmail.com>
13409
13410         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
13411
13412 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13413
13414         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
13415         TLS_SECTION_ASM_FLAG.
13416
13417 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
13418
13419         PR bootstrap/43511
13420         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
13421         Clear first_function_block_is_cold.
13422
13423         PR c/43385
13424         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
13425         argument if the argument is truth_value_p.
13426
13427 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13428
13429         * config/rs6000/constraints.md: Update copyright year for my changes.
13430
13431         PR target/43484
13432         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
13433         used in reg+reg addressing, swap registers.
13434
13435 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
13436
13437         PR debug/43293
13438         * target.h (struct gcc_target): Add code_end hook.
13439         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
13440         if not yet defined.
13441         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
13442         * toplev.c (compile_file): Call targetm.asm_out.code_end
13443         hook before unwind info/debug info output.
13444         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
13445         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
13446         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
13447         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
13448         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
13449         * config/i386/i386.c (ix86_file_end): Renamed to...
13450         (ix86_code_end): ... this.  Make static.  Don't call
13451         file_end_indicate_exec_stack.  Emit unwind info using
13452         final_start_function/final_end_function.
13453         (darwin_x86_file_end): Remove.
13454         (TARGET_ASM_CODE_END): Define.
13455         * config/i386/i386.h (TARGET_ASM_FILE_END,
13456         NEED_INDICATE_EXEC_STACK): Don't define.
13457         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
13458         (TARGET_ASM_FILE_END): Define to darwin_file_end.
13459         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
13460         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
13461
13462         PR target/43498
13463         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
13464         at the beginning and final_end_function at the end.
13465         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
13466
13467 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13468
13469         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
13470         and Sun as TLS syntax.
13471         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
13472         * configure: Regenerate.
13473         * config.in: Regenerate.
13474         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
13475         (default_elf_asm_named_section): Use it.
13476         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
13477         (i386_output_dwarf_dtprel): Likewise.
13478         (output_addr_const_extra): Likewise.
13479         (output_pic_addr_const): Lowercase @GOTTPOFF.
13480         (output_addr_const_extra): Likewise.
13481         (output_pic_addr_const): Lowercase @GOTNTPOFF.
13482         (output_addr_const_extra): Likewise.
13483         (output_pic_addr_const): Lowercase @INDNTPOFF.
13484         (output_addr_const_extra): Likewise.
13485         (output_pic_addr_const): Lowercase @NTPOFF.
13486         (output_addr_const_extra): Likewise.
13487         (output_pic_addr_const): Lowercase @TPOFF.
13488         (output_addr_const_extra): Likewise.
13489         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
13490         (*tls_global_dynamic_64): Likewise.
13491         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
13492         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
13493
13494         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
13495         (ASM_OUTPUT_TLS_COMMON): Use it.
13496         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
13497
13498         PR target/38118
13499         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
13500         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
13501         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
13502         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
13503         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
13504         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
13505
13506 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13507
13508         * config/i386/i386.c (override_options): Don't accept
13509         -mtls-dialect=sun any longer.
13510         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
13511         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
13512         (*tls_local_dynamic_base_32_sun): Likewise.
13513         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
13514
13515 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
13516
13517         PR debug/43508
13518         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13519         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
13520
13521         PR debug/43479
13522         * ira.c (adjust_cleared_regs): New function.
13523         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
13524
13525         PR debug/19192
13526         PR debug/43479
13527         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
13528         from gimple_block.
13529         * expr.c (expand_expr_real): Restore previous
13530         curr_insn_source_location and curr_insn_block after
13531         expand_expr_real_1 call.
13532         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
13533         instead of expand_expr_real_1.
13534
13535 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
13536
13537         PR rtl-optimization/43413
13538         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
13539         hard regs too.
13540
13541 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
13542
13543         PR target/43348
13544         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
13545         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
13546
13547 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
13548
13549         * config/i386/i386.c (ix86_target_string): Add -mfma.
13550         Fix a typo in comment.
13551
13552 2010-03-22  Mike Stump  <mikestump@comcast.net>
13553
13554         PR target/23071
13555         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
13556         Don't overly align based upon packed packed fields.
13557
13558 2010-03-22  Jason Merrill  <jason@redhat.com>
13559
13560         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
13561         Use () rather than [], and move before the element type.
13562
13563 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13564
13565         * doc/configfiles.texi (Configuration Files): Removed
13566         fixinc/Makefile*, intl/Makefile.*.
13567         * doc/makefile.texi: Fixed markup. Abstract from version
13568         control system used.
13569         (Makefile): Removed obsolete gcc/java/parse.y example.
13570         * doc/sourcebuild.texi: Likewise.
13571         (Top Level): Added config, gnattools, libdecnumber, libgcc,
13572         libgomp, libssp.  Removed fastjar.
13573         (Miscellaneous Docs): Clarify location.
13574         Added COPYING3, COPYING3.LIB.
13575         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
13576
13577 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13578
13579         PR target/38085
13580         * config/i386/i386.c (x86_function_profiler)
13581         [!NO_PROFILE_COUNTERS]: Fix typo.
13582         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
13583         instead of callq.
13584
13585 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
13586             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13587
13588         * doc/sourcebuild.texi (Test Directives): Split into six
13589         subsections, with most of the current text in new subsections
13590         Directives, Selectors, and Final Actions.
13591         (Directives): Split list of test directives into multiple
13592         subsubsections.
13593         (Selectors): Describe use and syntax of selectors.
13594         (Effective-Target Keywords): Describe all existing keywords.
13595         (Add Options): Describe features for dg-add-options.
13596         (Require Support): Describe variants of dg-require-support.
13597         (Final Actions): Describe commands to use in dg-final.
13598
13599 2010-03-22  Michael Matz  <matz@suse.de>
13600
13601         PR middle-end/43475
13602         * recog.c (validate_replace_rtx_group): Replace also in
13603         REG_EQUAL and REG_EQUIV notes.
13604
13605 2010-03-22  Richard Guenther  <rguenther@suse.de>
13606
13607         PR tree-optimization/43390
13608         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
13609         sure vector extracts are type correct.
13610
13611 2010-03-22  Richard Guenther  <rguenther@suse.de>
13612
13613         PR middle-end/40106
13614         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
13615         x * sqrt (x) even when optimizing for size if the target
13616         has native support for sqrt.
13617
13618 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
13619
13620         * varasm.c (make_decl_rtl_for_debug): Also clear
13621         flag_mudflap for the duration of make_decl_rtl call.
13622
13623         PR debug/43443
13624         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
13625         locs from preserved VALUEs.
13626
13627 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13628
13629         PR middle-end/42718
13630         * pa.md (movmemsi): Set align to one if zero.
13631         (movmemdi): Likewise.
13632
13633 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
13634
13635         PR target/42321
13636         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
13637         with their corresponding prologue pushes.
13638
13639 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
13640
13641         PR target/43156
13642         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
13643         at the begining or end.
13644         (spu_expand_epilogue): Likewise.
13645
13646 2010-03-20  Richard Guenther  <rguenther@suse.de>
13647
13648         PR rtl-optimization/43438
13649         * combine.c (make_extraction): Properly zero-/sign-extend an
13650         extraction of the low part of a CONST_INT.  Also handle
13651         CONST_DOUBLE.
13652
13653 2010-03-19  Mike Stump  <mikestump@comcast.net>
13654
13655         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
13656         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
13657         (override_options): Use SUBTARGET32_DEFAULT_CPU.
13658
13659 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
13660
13661         PR c/43211
13662         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
13663         an error.
13664
13665 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
13666
13667         PR rtl-optimization/42258
13668         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
13669         use that may match DEF.
13670
13671         PR target/40697
13672         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
13673         the cost of loading the constant rather than assuming
13674         COSTS_N_INSNS (1).
13675         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
13676         outer code is AND, do the same tests as the andsi3 expander and
13677         return COSTS_N_INSNS (1) if and is cheap.
13678
13679         * optabs.c (avoid_expensive_constant): Fix formatting.
13680
13681 2010-03-19  Michael Matz  <matz@suse.de>
13682
13683         PR c++/43116
13684         * attribs.c (decl_attributes): When rebuilding a function pointer
13685         type use the same qualifiers as the original pointer type.
13686
13687 2010-03-19  Martin Jambor  <mjambor@suse.cz>
13688
13689         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
13690         and is_gimple_ip_invariant_address.
13691
13692 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13693
13694         Revert
13695         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13696
13697         * config/arm/arm.c (arm_override_options): Turn off
13698         flag_dwarf2_cfi_asm for AAPCS variants.
13699
13700 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13701
13702         PR target/43399
13703         * config/arm/arm.c (emit_multi_reg_push): Update comments.
13704         Use PRE_MODIFY instead of PRE_DEC.
13705         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
13706         (vfp_emit_fstmd): Likewise.
13707
13708 2010-03-19  Michael Matz  <matz@suse.de>
13709
13710         PR target/43305
13711         * builtins.c (expand_builtin_interclass_mathfn,
13712         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
13713         if that fails.
13714
13715 2010-03-19  Richard Guenther  <rguenther@suse.de>
13716
13717         PR tree-optimization/43415
13718         * tree-ssa-pre.c (phi_translate): Split out worker to ...
13719         (phi_translate_1): ... this.
13720         (phi_translate): Move all caching here.  Cache all NARY
13721         and REFERENCE translations.
13722
13723 2010-03-19  David S. Miller  <davem@davemloft.net>
13724
13725         With help from Eric Botcazou.
13726         * config/sparc/sparc.c: Include dwarf2out.h.
13727         (emit_pic_helper): Delete.
13728         (pic_helper_symbol_name): Delete.
13729         (pic_helper_emitted_p): Delete.
13730         (pic_helper_needed): New.
13731         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
13732         (get_pc_thunk_name): New.
13733         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
13734         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
13735         Set pic_helper_needed to true.  Don't call emit_pic_helper.
13736         (sparc_expand_prologue): Update load_pic_register call.
13737         (sparc_output_mi_thunk): Likewise.
13738         (sparc_file_end): Emit a hidden comdat symbol for the PIC
13739         thunk if possible.  Output CFI information as needed.
13740
13741 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13742             Jack Howarth  <howarth@bromo.med.uc.edu>
13743
13744         PR target/36399
13745         * config/i386/i386.h: Fix ABI on darwin x86-32.
13746
13747 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
13748
13749         * tree.h: Declare make_decl_rtl_for_debug.
13750         * varasm.c (make_decl_rtl_for_debug): New.
13751         * dwarf2out.c (rtl_for_decl_location): Call it.
13752         * cfgexpand.c (expand_debug_expr): Call it.
13753
13754 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
13755
13756         PR bootstrap/43399
13757         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
13758         mem_mode.
13759
13760         PR bootstrap/43403
13761         * var-tracking.c (vt_init_cfa_base): Do nothing if
13762         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
13763
13764 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
13765
13766         PR debug/42873
13767         * var-tracking.c (canonicalize_vars_star): New.
13768         (dataflow_post_merge_adjust): Use it.
13769
13770 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
13771
13772         PR debug/43058
13773         * var-tracking.c (non_suitable_const): New function.
13774         (add_uses): For DEBUG_INSNs with constants, don't record any
13775         value, instead just the constant value itself.
13776         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
13777         is not VAR_LOC_UNKNOWN_P, set var to the constant.
13778         (emit_notes_in_bb): Likewise.
13779         (emit_note_insn_var_location): For onepart variables if
13780         cur_loc is a VOIDmode constant, use DECL_MODE.
13781
13782 2010-03-18  Martin Jambor  <mjambor@suse.cz>
13783
13784         PR middle-end/42450
13785         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
13786         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
13787         all non-clones.  Moved call redirection...
13788         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
13789         (cgraph_materialize_all_clones): Dispose of all
13790         combined_args_to_skip bitmaps.
13791         (verify_cgraph_node): Do not check for edges pointing to wrong
13792         nodes in inline clones.
13793         * tree-inline.c (copy_bb): Call
13794         cgraph_redirect_edge_call_stmt_to_callee.
13795         * ipa.c (cgraph_remove_unreachable_nodes): Call
13796         cgraph_node_remove_callees even when there are used clones.
13797
13798 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
13799
13800         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
13801
13802 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
13803
13804         PR target/43383
13805         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
13806         for 32bit.
13807
13808 2010-03-18  Michael Matz  <matz@suse.de>
13809
13810         PR middle-end/43419
13811         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
13812         into sqrt(x) if we need to preserve signed zeros.
13813
13814 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
13815             Eric Botcazou  <ebotcazou@adacore.com>
13816
13817         PR rtl-optimization/43360
13818         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
13819         note if we don't know its invariant status.
13820
13821 2010-03-18  Michael Matz  <matz@suse.de>
13822
13823         PR tree-optimization/43402
13824         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
13825         PHI chains of ssa names registered for update.
13826
13827 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
13828
13829         PR target/42427
13830         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
13831         non-offsettable and pre_modify update addressing.
13832         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
13833         and "2" alternatives "#".
13834         (*movdd_softfloat32): Make all alternatives "#";
13835         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
13836         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
13837         (*movdf_softfloat32): Make all alternatives "#";
13838         (movdi): Use the new DIFD mode iterator to create a common splitter
13839         for movdi, movdf and movdd patterns.
13840
13841 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
13842
13843         * common.opt (dumpdir): Remove redundant tab.
13844
13845 2010-03-17  Martin Jambor  <mjambor@suse.cz>
13846
13847         PR tree-optimization/43347
13848         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
13849         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
13850
13851 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
13852
13853         PR rtl-optimization/42216
13854         * regrename.c (create_new_chain): New function, broken out from...
13855         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
13856         appending a use to an empty chain.
13857         (build_def_use): Remove previous changes that convert OP_INOUT to
13858         OP_OUT operands; instead detect the case where an OP_INOUT operand
13859         uses a previously untracked register and create an empty chain for it.
13860
13861 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13862
13863         * doc/extend.texi (Function Attributes): Rewrite unfinished
13864         sentence in ms_abi documentation.
13865
13866 2010-03-17  Alan Modra  <amodra@gmail.com>
13867
13868         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
13869         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
13870         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
13871         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
13872
13873 2010-03-16  Richard Henderson  <rth@redhat.com>
13874
13875         PR middle-end/43365
13876         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
13877         (lower_try_finally): Save and restore eh_seq around the expansion
13878         of the try-finally.
13879
13880 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
13881
13882         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
13883         statements before splitting block.
13884
13885 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13886
13887         * doc/sourcebuild.texi (Testsuites): Fix markup.
13888         Use pathnames relative to gcc/testsuite.
13889         (Test Directives): Move description of how timeout is determined.
13890         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
13891         (C Tests): Correct gcc.misc-tests directory.
13892         Framework tests now live in gcc.test-framework.
13893
13894 2010-03-16  Richard Guenther  <rguenther@suse.de>
13895
13896         PR middle-end/43379
13897         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
13898         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
13899
13900 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
13901             Alexandre Oliva  <aoliva@redhat.com>
13902
13903         PR tree-optimization/42917
13904         * lambda-code.c (remove_iv): Skip debug statements.
13905         (lambda_loopnest_to_gcc_loopnest): Likewise.
13906         (not_interesting_stmt): Debug statements are not interesting.
13907
13908 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
13909
13910         PR debug/43051
13911         PR debug/43092
13912         * cselib.c (cselib_preserve_constants,
13913         cfa_base_preserved_val): New static variables.
13914         (preserve_only_constants): New function.
13915         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
13916         clear its REG_VALUES.  If cselib_preserve_constants, don't
13917         empty the whole hash table, but preserve there VALUEs with constants,
13918         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
13919         (cselib_preserve_cfa_base_value): New function.
13920         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
13921         (cselib_init): Change argument to int bitfield.  Set
13922         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
13923         is in it.
13924         (cselib_finish): Clear cselib_preserve_constants and
13925         cfa_base_preserved_val.
13926         * cselib.h (enum cselib_record_what): New enum.
13927         (cselib_init): Change argument to int.
13928         (cselib_preserve_cfa_base_value): New prototype.
13929         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
13930         * dse.c (dse_step1): Likewise.
13931         * cfgcleanup.c (thread_jump): Likewise.
13932         * sched-deps.c (sched_analyze): Likewise.
13933         * gcse.c (local_cprop_pass): Likewise.
13934         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
13935         If FN is non-NULL, call the callback always and whenever it returns
13936         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
13937         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
13938         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
13939         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
13940         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
13941         * var-tracking.c: Include recog.h.
13942         (bb_stack_adjust_offset): Remove.
13943         (vt_stack_adjustments): Don't call it, instead just gather the
13944         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
13945         (adjust_stack_reference): Remove.
13946         (compute_cfa_pointer): New function.
13947         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
13948         (struct adjust_mem_data): New type.
13949         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
13950         functions.
13951         (get_address_mode): New function.
13952         (replace_expr_with_values): Use it.
13953         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
13954         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
13955         (adjust_sets): Remove.
13956         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
13957         Use get_address_mode.
13958         (get_adjusted_src): Remove.
13959         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
13960         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
13961         (add_with_sets): Don't call adjust_sets.
13962         (fp_setter, vt_init_cfa_base): New functions.
13963         (vt_initialize): Change return type to bool.  Move most of pool etc.
13964         initialization to the beginning of the function from end.  Pass
13965         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
13966         If !frame_pointer_needed, call vt_stack_adjustment before mos
13967         vector is filled, call vt_init_cfa_base if argp/framep has been
13968         eliminated to sp.  If frame_pointer_needed and argp/framep has
13969         been eliminated to hard frame pointer, set
13970         hard_frame_pointer_adjustment and call vt_init_cfa_base after
13971         encountering fp setter in the prologue.  For MO_ADJUST, call
13972         log_op_type before pusing the op into mos vector, not afterwards.
13973         Call adjust_insn before cselib_process_insn/add_with_sets,
13974         call cancel_changes (0) afterwards.
13975         (variable_tracking_main_1): Adjust for vt_initialize calling
13976         vt_stack_adjustments and returning whether it succeeded or not.
13977
13978 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
13979
13980         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
13981         debug statements.
13982
13983 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
13984
13985         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
13986         has been set.
13987         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
13988         drap_reg has not been set.
13989
13990 2010-03-15  Michael Matz  <matz@suse.de>
13991
13992         PR middle-end/43300
13993         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
13994         use it to expand block copies.
13995         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
13996         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
13997         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
13998
13999 2010-03-15  Richard Guenther  <rguenther@suse.de>
14000
14001         PR tree-optimization/43367
14002         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
14003         elimination check.
14004
14005 2010-03-15  Richard Guenther  <rguenther@suse.de>
14006
14007         PR tree-optimization/43317
14008         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
14009
14010 2010-03-15  Martin Jambor  <mjambor@suse.cz>
14011
14012         PR tree-optimization/43141
14013         * tree-sra.c (create_abstract_origin): New function.
14014         (modify_function): Call create_abstract_origin.
14015
14016 2010-03-15  Chris Demetriou  <cgd@google.com>
14017
14018         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
14019         wasn't copied.
14020
14021 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14022
14023         PR middle-end/43354
14024         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
14025         call insert_out_of_ssa_copy for default definitions.
14026
14027 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14028
14029         * graphite-clast-to-gimple.c (my_long_long): Defined.
14030         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
14031         * graphite-sese-to-poly.c (my_long_long): Defined.
14032         (scop_ivs_can_be_represented): Use it.
14033
14034 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14035
14036         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
14037         graphite-max-bbs-per-function, and loop-block-tile-size.
14038         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
14039         with "maximum".
14040         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
14041
14042 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14043
14044         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
14045         forward declaration.
14046         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
14047         (add_upper_bounds_from_estimated_nit): New.
14048         (build_loop_iteration_domains): Use it.
14049
14050 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14051
14052         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
14053
14054 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14055
14056         PR middle-end/43306
14057         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
14058         should be an INTEGER_CST.  Also handle CASE_CONVERT.
14059
14060 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14061
14062         * graphite.c (graphite_initialize): To bound the number of bbs per
14063         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
14064         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
14065         * doc/invoke.texi: Document it.
14066
14067 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14068
14069         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
14070         * graphite-sese-to-poly.h (build_poly_scop): Same.
14071
14072 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
14073
14074         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
14075         the number of parameters in the scop.  Use as an upper bound
14076         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
14077         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
14078         * doc/invoke.texi: Document it.
14079
14080 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
14081
14082         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
14083         * doc/c-tree.texi: Remove.
14084         * doc/generic.texi: Merge c-tree.texi here.
14085         * doc/gccint.texi (Trees): Remove menu entry.
14086         (c-tree.texi): Remove @include.
14087         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
14088         * doc/languages.texi (Reading RTL): Ditto.
14089
14090 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
14091
14092         PR target/42869
14093         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
14094
14095 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
14096
14097         PR middle-end/42431
14098         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
14099         code added to work around reload clobbering CONST insns.
14100
14101 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
14102
14103         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
14104         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
14105         (cselib_preserve_only_values): Remove retain argument, don't
14106         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
14107         * cselib.h (cselib_preserve_only_values): Remove retain argument.
14108         * var-tracking.c (micro_operation): Move insn field before union.
14109         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
14110         (struct variable_tracking_info_def): Remove n_mos field, change
14111         mos into a vector of micro_operations.
14112         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
14113         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
14114         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
14115         changing into a vector.
14116         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
14117         come before all other uops generated by add_stores.
14118         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
14119         argument removal.
14120         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
14121         a vector.  Run just one pass over the bbs instead of separate counting
14122         and computation phase.
14123         (vt_finalize): Free VTI (bb)->mos vector instead of array.
14124
14125         PR debug/43329
14126         * tree-inline.c (remap_decls): Put old_var rather than origin_var
14127         into *nonlocalized_list vector.
14128         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
14129         even if origin is non-NULL.
14130         (gen_variable_die): Likewise.
14131         (process_scope_var): Don't change origin.
14132         (gen_decl_die): Likewise.
14133         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
14134         before adding new edges instead of after it, fix moving over
14135         debug stmts.
14136
14137 2010-03-11  David S. Miller  <davem@davemloft.net>
14138
14139         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
14140         of four.
14141         * configure: Rebuild.
14142
14143 2010-03-11  Martin Jambor  <mjambor@suse.cz>
14144
14145         PR tree-optimization/43257
14146         * tree.c (assign_assembler_name_if_neeeded): New function.
14147         (free_lang_data_in_cgraph): Assembler name assignment moved to the
14148         above new function.
14149         * tree.h (assign_assembler_name_if_neeeded): Declare.
14150         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
14151         the function if needed.
14152
14153 2010-03-11  Chris Demetriou  <cgd@google.com>
14154
14155         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
14156         include/stdint-gcc.h, and include/stdint.h world-readable.
14157
14158 2010-03-11  Richard Guenther  <rguenther@suse.de>
14159
14160         PR tree-optimization/43255
14161         * tree-vrp.c (process_assert_insertions_for): Do not insert
14162         asserts for trivial conditions.
14163
14164 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14165
14166         PR tree-optimization/43280
14167         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
14168         generation.  Move calculation of size out of the if branch.
14169         (find_bswap): Modify compare number generation.
14170
14171 2010-03-11  Richard Guenther  <rguenther@suse.de>
14172
14173         PR lto/43200
14174         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
14175         (input_gimple_stmt): Fixup handled component types during
14176         operand read.  Also fix up decls in ADDR_EXPRs.
14177
14178 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
14179
14180         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
14181         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
14182
14183 2010-03-10  Jan Hubicka  <jh@suse.cz>
14184
14185         PR c/43288
14186         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
14187         * varasm.c (get_variable_section): Don't do that here...
14188         (make_decl_rtl): ... and here.
14189         (do_assemble_alias): Produce decl RTL.
14190         (assemble_alias): Likewise.
14191
14192 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
14193
14194         PR debug/43290
14195         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
14196         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
14197         of fde->vdrap_reg.
14198         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
14199         (based_loc_descr): Only express drap or vdrap regno based expressions
14200         using DW_OP_fbreg when not optimizing.
14201         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
14202         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
14203         REG_CFA_SET_VDRAP note.
14204
14205 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
14206
14207         PR tree-optimization/43236
14208         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
14209         error in calculation of base address in reverse iteration case.
14210         (generate_builtin): Take number of latch executions if the statement
14211         is in the latch.
14212
14213 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
14214
14215         PR middle-end/42859
14216         * tree-eh.c: Include pointer-set.h.
14217         (lower_eh_dispatch): Filter out duplicate case labels and
14218         remove the unneeded edge when the label is unused.  Return
14219         true when some edges are removed.
14220         (execute_lower_eh_dispatch): When any lowering resulted in
14221         removing an edge, also delete unreachable blocks.
14222
14223 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
14224
14225         PR bootstrap/43287
14226         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14227         UNSPEC_MACHOPIC_OFFSET.
14228
14229 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
14230
14231         PR target/43294
14232         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
14233         (m68k_delegitimize_address): New function.
14234
14235 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
14236
14237         PR debug/43299
14238         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
14239
14240         PR debug/43299
14241         * var-tracking.c (adjust_sets): New function.
14242         (count_with_sets, add_with_sets): Use it.
14243         (get_adjusted_src): New inline function.
14244         (add_stores): Use it.
14245
14246         PR debug/43304
14247         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
14248         call cselib_dummy_expand_value_rtx_cb instead of
14249         cselib_expand_value_rtx_cb.
14250
14251         PR debug/43293
14252         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
14253         * config/i386/i386.c: Include debug.h and dwarf2out.h.
14254         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
14255         and .cfi_endproc around the pic thunks.
14256         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
14257         all queued unwind info register saves are saved before the call.
14258         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
14259         considered as sp-=4 for unwind info and the pop as sp+=4 which
14260         also clobbers dest, but doesn't actually restore it.
14261
14262         PR debug/43290
14263         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
14264         RTX_FRAME_RELATED_P.
14265
14266 2010-03-09  Jie Zhang  <jie@codesourcery.com>
14267
14268         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
14269         whitespaces in output template.
14270
14271 2010-03-09  Jie Zhang  <jie@codesourcery.com>
14272
14273         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
14274         out array boundary.
14275
14276 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
14277
14278         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
14279         builtins.exp in a separate job.
14280
14281 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14282
14283         * graphite-sese-to-poly.c (add_param_constraints): Use
14284         lower_bound_in_type and upper_bound_in_type.
14285
14286 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14287
14288         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
14289         instead of unsigned_type_node.
14290
14291 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14292             Reza Yazdani  <reza.yazdani@amd.com>
14293
14294         PR middle-end/43065
14295         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
14296         on pointer type parameters.
14297
14298 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
14299
14300         PR middle-end/42644
14301         PR middle-end/42130
14302         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
14303         handle conversions from pointer to integers.
14304         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
14305         induction variable, to be able to work with code generated by CLooG.
14306         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
14307         (build_poly_scop): Bail out if we cannot codegen a loop.
14308
14309 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
14310
14311         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
14312         code generation with gloog_error.
14313
14314 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14315
14316         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
14317         Call fold_convert on all the returned values.
14318         (expand_scalar_variables_expr): Pass to
14319         expand_scalar_variables_ssa_name the type of the resulting expression.
14320
14321 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14322
14323         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
14324         ppl_min_for_le_pointset.
14325         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
14326         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
14327
14328 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14329
14330         * graphite-dependences.c (map_into_dep_poly): Removed.
14331         (dependence_polyhedron_1): Use combine_context_id_scat.
14332
14333 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14334
14335         * graphite-poly.h (struct poly_scattering): Add layout documentation.
14336         (struct poly_bb): Same.
14337         (combine_context_id_scat): New.
14338
14339 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14340
14341         PR middle-end/42326
14342         * sese.c (name_defined_in_loop_p): Return false for default
14343         definitions.
14344
14345 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14346
14347         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
14348         and clean up the logic.
14349
14350 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
14351
14352         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
14353         early return.
14354
14355 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
14356
14357         * var-tracking.c (remove_cselib_value_chains): Define only for
14358         ENABLE_CHECKING.
14359         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
14360         delete_slot_part, emit_notes_for_differences_1): Don't call
14361         remove_cselib_value_chains here.
14362         (set_slot_part, emit_notes_for_differences_2): Don't call
14363         add_cselib_value_chains here.
14364         (preserved_values): New vector.
14365         (preserve_value): New function.
14366         (add_uses, add_stores, vt_add_function_parameters): Use it
14367         instead of cselib_preserve_value.
14368         (changed_values_stack): New vector.
14369         (check_changed_vars_0): New function.
14370         (check_changed_vars_1, check_changed_vars_2): Use it.
14371         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
14372         changed_values_stack VALUEs.
14373         (vt_emit_notes): For all preserved_values call
14374         add_cselib_value_chains.  If ENABLE_CHECKING call
14375         remove_cselib_value_chains before verifying value_chains is empty.
14376         Initialize and free changed_values_stack.
14377         (vt_initialize): Initialize preserved_values.
14378         (vt_finalize): Free preserved_values.
14379
14380 2010-03-08  Richard Guenther  <rguenther@suse.de>
14381
14382         PR tree-optimization/43269
14383         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
14384         region detection.
14385
14386 2010-03-08  Martin Jambor  <mjambor@suse.cz>
14387
14388         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
14389         (ipa_is_param_called): Removed.
14390         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
14391         (ipa_print_node_params): Do not print the called flag.
14392         (ipa_write_node_info): Do not stream the called flag.
14393         (ipa_read_node_info): Likewise.
14394
14395 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
14396
14397         PR debug/43176
14398         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
14399         * cselib.c (struct expand_value_data): Add dummy field.
14400         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
14401         dummy to false.
14402         (cselib_dummy_expand_value_rtx_cb): New function.
14403         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
14404         any rtl.
14405         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
14406         * var-tracking.c: Include pointer-set.h.
14407         (variable): Change n_var_parts to char from int.  Add
14408         cur_loc_changed and in_changed_variables fields.
14409         (variable_canonicalize): Remove.
14410         (shared_var_p): New inline function.
14411         (unshare_variable): Maintain cur_loc_changed and
14412         in_changed_variables fields.  If var was in changed_variables,
14413         replace it there with new_var.  Just copy cur_loc instead of
14414         resetting it to something else.
14415         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
14416         (dataflow_set_union): Don't call variable_canonicalize.
14417         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
14418         of their DEBUG_EXPR_TREE_DECLs.
14419         (canonicalize_loc_order_check): Verify that cur_loc is NULL
14420         and in_changed_variables and cur_loc_changed is false.
14421         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
14422         and cur_loc_changed.  Don't update cur_loc here.
14423         (variable_merge_over_src): Don't call variable_canonicalize.
14424         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
14425         removing loc that is equal to cur_loc, clear cur_loc,
14426         set cur_loc_changed and ensure variable_was_changed is called.
14427         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
14428         compare pointers in cur_loc check, if it is equal to loc,
14429         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
14430         (variable_different_p): Remove compare_current_location argument,
14431         don't compare cur_loc.
14432         (dataflow_set_different_1): Adjust variable_different_p caller.
14433         (variable_was_changed): If dv had some var in changed_variables
14434         already, reset in_changed_variables flag for it and propagate
14435         cur_loc_changed over to the new variable.  On empty var
14436         always set cur_loc_changed.  Set in_changed_variables on whatever
14437         var is added to changed_variables.
14438         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
14439         Use shared_var_p.  When removing loc that is equal to cur_loc,
14440         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
14441         end, don't set it to something else, just call variable_was_changed.
14442         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
14443         loc being removed, clear cur_loc and set cur_loc_changed.
14444         Set cur_loc_changed if all locations have been removed.
14445         (struct expand_loc_callback_data): New type.
14446         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
14447         allocated.  Always create SUBREGs if simplify_subreg failed.
14448         Prefer to use cur_loc, when that fails and still in
14449         changed_variables (and seen first time) recompute it.  Set
14450         cur_loc_changed of variables which had to change cur_loc and
14451         compute elcd->cur_loc_changed if any of the subexpressions used
14452         had to change cur_loc.
14453         (vt_expand_loc): Adjust to pass arguments in
14454         expand_loc_callback_data structure.
14455         (vt_expand_loc_dummy): New function.
14456         (emitted_notes): New variable.
14457         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
14458         that weren't used for any other decl in current
14459         emit_notes_for_changes call call vt_expand_loc_dummy to update
14460         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
14461         first loc_chain location if NULL before.  Always use just
14462         cur_loc instead of first loc_chain location.  When cur_loc_changed
14463         is false, when not --enable-checking=rtl just don't emit any note.
14464         When rtl checking, compute the note and assert it is the same
14465         as previous note.  Clear cur_loc_changed and in_changed_variables
14466         at the end before removing from changed_variables.
14467         (check_changed_vars_3): New function.
14468         (emit_notes_for_changes): Traverse changed_vars to call
14469         check_changed_vars_3 on each changed var.
14470         (emit_notes_for_differences_1): Clear cur_loc_changed and
14471         in_changed_variables.  Recompute cur_loc of new_var.
14472         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
14473         (vt_emit_notes): Initialize and destroy emitted_notes.
14474
14475 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
14476
14477         PR rtl-optimization/42220
14478         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
14479         Use verify_reg_tracked to determine if we should use OP_OUT rather
14480         than OP_INOUT.
14481         (build_def_use): If we see an in-out operand for a register that we
14482         know nothing about, treat is an output if possible, fail the block if
14483         not.
14484
14485 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14486
14487         PR debug/42897
14488         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
14489         permanently.
14490
14491 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14492
14493         PR debug/42897
14494         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
14495         uses of relevant DEFs that are dead outside the loop too.
14496
14497 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
14498
14499         * var-tracking.c (dataflow_set_merge): Swap src and src2.
14500         Reverted:
14501         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
14502         PR debug/41371
14503         * var-tracking.c (values_to_unmark): New variable.
14504         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
14505         values_to_unmark vector.  Moved body to...
14506         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
14507         instead queue it into values_to_unmark vector.
14508         (vt_find_locations): Free values_to_unmark vector.
14509
14510 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
14511
14512         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
14513         (site.exp): Export them when plugins are enabled.
14514
14515 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
14516
14517         PR middle-end/42326
14518         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
14519         that contain scevs.
14520         (chrec_fold_multiply): Same.
14521
14522 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
14523
14524         PR c/43248
14525         * c-decl.c (build_compound_literal): Return early if init is
14526         an error_mark_node.
14527
14528 2010-03-04  Martin Jambor  <mjambor@suse.cz>
14529
14530         PR tree-optimization/43164
14531         PR tree-optimization/43191
14532         * tree-sra.c (type_consists_of_records_p): Reject records with
14533         zero-size bit-fields at the end.
14534
14535 2010-03-04  Mike Stump  <mikestump@comcast.net>
14536
14537         * Makefile.in (TAGS): Remove *.y.
14538
14539 2010-03-04  Richard Guenther  <rguenther@suse.de>
14540
14541         PR tree-optimization/40761
14542         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
14543         in reverse order.
14544         (my_rev_post_order_compute): New function.
14545         (init_pre): Call it.
14546
14547 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
14548
14549         PR middle-end/43209
14550         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
14551         decrease the cost of an IV candidate when the cost is infinite.
14552
14553 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14554
14555         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
14556         Use '3DNow!' for the extension of that name, ensure normal space
14557         after the string.
14558         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
14559
14560 2010-03-03  Jeff Law  <law@redhat.com>
14561
14562         * PR middle-end/32693
14563         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
14564         than gen_rtx_SUBREG.
14565         (extract_bit_field_1): Likewise.
14566
14567 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
14568
14569         * doc/sourcebuild.texi (Test directives): Document that arguments
14570         include-opts and exclude-opts are now optional for dg-skip-if,
14571         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
14572
14573 2010-03-03  Jason Merrill  <jason@redhat.com>
14574
14575         PR c++/12909
14576         * cgraph.h (varpool_node): Add extra_name field.
14577         * varpool.c (varpool_extra_name_alias): New.
14578         (varpool_assemble_decl): Emit extra name aliases.
14579         (varpool_mark_needed_node): Look past an extra name alias.
14580         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
14581         * lto-streamer-in.c (lto_input_tree): Read it.
14582         * lto-streamer-out.c (output_unreferenced_globals): Write it.
14583
14584 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
14585
14586         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
14587         (sparc*-*-solaris2*): ...this.
14588
14589 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
14590
14591         PR debug/43229
14592         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
14593         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
14594         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
14595         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
14596
14597         PR debug/43237
14598         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
14599         fallthrough to default handling, just with want_address 0 instead of 2.
14600         For single element lists, add_AT_loc directly, otherwise create an
14601         artificial variable DIE and stick location list to it.
14602
14603         PR debug/43177
14604         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
14605         (VAL_EXPR_HAS_REVERSE): Define.
14606         (reverse_op): New function.
14607         (add_stores): For reversible operations add an extra MO_VAL_USE.
14608
14609 2010-03-02  Jason Merrill  <jason@redhat.com>
14610
14611         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
14612
14613 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
14614
14615         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
14616         (sparc64-*-linux*): Likewise.
14617         (sparc64-*-solaris2*): Include assembler files before linker ones.
14618         (sparc-*-solaris2*): Simplify and reorder to match previous case.
14619         * config/sparc/gas.h: Delete.
14620         * config/sparc/sol2-64.h: Add copyright notice.
14621         * config/sparc/sol2-gas-bi.h: Likewise.
14622         * config/sparc/sol2-gld.h: Likewise.
14623         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
14624         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
14625         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
14626         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
14627         (sparc_elf_asm_named_section): Rename into...
14628         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
14629
14630 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
14631
14632         * config/alpha/alpha.c (override_options): Fix -mtune error message.
14633
14634 2010-03-02  Jeff Law  <law@redhat.com>
14635
14636         PR middle-end/42431
14637         * reload1.c (rtx_p, substitute_stack): Declare.
14638         (substitute): Record addresses of changed rtxs.
14639         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
14640         Restore the original rtx when complete.
14641         (reload): Free subsitute_stack when complete.
14642
14643 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
14644
14645         * doc/gccint.texi (menu): Add Testsuites as a chapter.
14646         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
14647         new chapter.
14648         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
14649         LTO Testing, gcov Testing, profopt Testing, compat Testing,
14650         Torture Tests): Change from subsection to section.
14651
14652 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
14653             Steven Bosscher  <steven@gcc.gnu.org>
14654
14655         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
14656         instead of bb.
14657
14658 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
14659
14660         PR middle-end/42640
14661         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
14662         the assignment from the new induction variable to the assignment
14663         of the value from the original loop PHI function.
14664
14665 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
14666             Daniel Jacobowitz  <dan@codesourcery.com>
14667
14668         * doc/sourcebuild.texi (Test directives): Clarify options to
14669         dg-skip-if.
14670
14671 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14672
14673         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
14674         Disable cfi directives unless GCC and gas agree on using read-only
14675         .eh_frame sections for 64-bit.
14676         * configure: Regenerate.
14677
14678 2010-03-01  Richard Guenther  <rguenther@suse.de>
14679
14680         PR tree-optimization/43220
14681         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
14682         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
14683
14684 2010-03-01  Richard Guenther  <rguenther@suse.de>
14685             Martin Jambor  <mjambor@suse.cz>
14686
14687         PR middle-end/41250
14688         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
14689         gimplified parameters.
14690
14691 2010-03-01  Christian Bruel  <christian.bruel@st.com>
14692
14693         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
14694
14695 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
14696
14697         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
14698
14699 2010-03-01  Richard Guenther  <rguenther@suse.de>
14700
14701         PR middle-end/43213
14702         * expr.c (expand_assignment): Use the alias-oracle to tell
14703         if the rhs aliases the result decl.
14704
14705 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14706
14707         PR pch/14940
14708         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
14709         to sol_gt_pch_get_address.
14710         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
14711         64-bit, SPARC and x86.
14712         (sol_gt_pch_get_address): New function.
14713
14714 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
14715
14716         * toplev.h (inform_n, error_n): Declare.
14717         * diagnostic.c (inform_n, error_n): New function.
14718
14719 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
14720
14721         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
14722         has no rtl yet when processing local_decls, queue it and recheck
14723         if deferred stack allocation hasn't assigned it rtl.
14724
14725 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
14726
14727         * config/sh/sh.c (unspec_bbr_uid): New.
14728         (gen_block_redirect): Use it instead of INSN_UID.
14729         (gen_far_branch): Likewise.
14730
14731 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
14732
14733         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
14734         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
14735
14736 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14737
14738         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
14739         (Warning Options): -Wno-conversion-null is valid for
14740         Objective-C++ as well.
14741         * doc/tm.texi (Named Address Spaces): Likewise.
14742         * doc/plugins.texi (Plugins): Replace TABs with spaces.
14743         * doc/tree-ssa.texi (Tree SSA): Likewise.
14744
14745 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
14746
14747         PR bootstrap/43202
14748         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
14749         by default.  Don't set the default arch for
14750         i[34567]86-*-darwin*|x86_64-*-darwin*.
14751
14752 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
14753
14754         PR bootstrap/43202
14755         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
14756         default.  Set the default 32bit/64bit archs with $with_arch
14757         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
14758
14759 2010-02-27  Richard Guenther  <rguenther@suse.de>
14760
14761         PR tree-optimization/43186
14762         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
14763         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
14764         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
14765         unroller iterations.
14766
14767 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
14768
14769         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
14770         required and i[34567]86-*-* targets don't support 64bit ISA.
14771
14772 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
14773
14774         PR ada/43096
14775         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
14776         the same alias set.
14777
14778 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
14779
14780         * config.gcc: Set the default arch at least to Prescott for
14781         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
14782         if SSE math is enabled.
14783
14784 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14785
14786         * diagnostic.c (diagnostic_initialize): Update.
14787         (diagnostic_report_diagnostic): Test inhibit_notes_p for
14788         informative notes.
14789         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
14790         (diagnostic_inhibit_notes): New.
14791         * toplev.c (process_options): inhibit notes with -fcompare-debug.
14792
14793 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14794
14795         PR c/20631
14796         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
14797         * doc/standards.texi: Likewise.
14798         * doc/extend.texi: Likewise.
14799         * doc/trouble.texi: Likewise.
14800         * doc/cppopts.texi: Likewise.
14801         * doc/install.texi: Likewise.
14802         * c.opt (std=c90,std=gnu90): New options.
14803         * c-opts.c (c_common_handle_option): Handle them.
14804
14805 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14806
14807         PR c/24577
14808         * c-decl.c (undeclared_variable): Use an informative note.
14809
14810 2010-02-26  Richard Guenther  <rguenther@suse.de>
14811
14812         PR tree-optimization/43186
14813         * gimple.h (gimple_fold): Remove.
14814         * gimple.c (gimple_fold): Remove.  Inline into single user ...
14815         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
14816         Try harder for conditions.
14817
14818 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
14819
14820         PR debug/43190
14821         * function.c (used_types_insert): Don't skip through named pointer
14822         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
14823         and it is different from the main variant's type.
14824
14825 2010-02-26  Nick Clifton  <nickc@redhat.com>
14826
14827         * config/rx/rx.md (sminsi3): Remove bogus alternative.
14828
14829 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
14830
14831         * config.gcc: Support --with-fpmath=sse for x86.
14832
14833         * config/i386/ssemath.h: New.
14834
14835         * doc/install.texi (--with-fpmath=sse): Documented.
14836
14837 2010-02-26  Richard Guenther  <rguenther@suse.de>
14838
14839         PR tree-optimization/43188
14840         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
14841         vector types of over-aligned element type.
14842
14843 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
14844
14845         PR target/43175
14846         * config/i386/i386.c (expand_vec_perm_blend): Use correct
14847         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
14848
14849 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
14850
14851         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
14852
14853 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
14854
14855         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
14856         * var-tracking.c: Include diagnostic.h.
14857         (debug_dv): New function.
14858         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
14859
14860         PR debug/43160
14861         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
14862         (add_value_chain, add_value_chains, remove_value_chain,
14863         remove_value_chains): Handle DEBUG_EXPRs.
14864         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
14865
14866         PR debug/43161
14867         * regcprop.c (struct queued_debug_insn_change): New type.
14868         (struct value_data_entry): Add debug_insn_changes field.
14869         (struct value_data): Add n_debug_insn_changes field.
14870         (debug_insn_changes_pool): New variable.
14871         (free_debug_insn_changes, apply_debug_insn_changes,
14872         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
14873         (kill_value_one_regno): Call free_debug_insn_changes if needed.
14874         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
14875         fields.
14876         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
14877         changes for them.
14878         (copyprop_hardreg_forward_1): Don't call apply_change_group for
14879         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
14880         changes, call cprop_find_used_regs via note_stores.
14881         (copyprop_hardreg_forward): When copying vd from predecessor
14882         which has any queued DEBUG_INSN changes, make sure the pointers are
14883         cleared.  At the end call df_analyze and then if there are any
14884         DEBUG_INSN changes queued at the end of some basic block for still
14885         live registers, apply them.
14886         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
14887
14888 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
14889
14890         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
14891         (arm*-*-*): Ditto.
14892
14893 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
14894
14895         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
14896         targets.  Set the default with_cpu/with_arch from arch/cpu.
14897         Allow x86-64 and native for with_cpu/with_arch.
14898
14899 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
14900
14901         * ebitmap.c: Change calls to verify_popcount with calls to
14902         sbitmap_verify_popcount.
14903         (ebitmap_clear_bit): Fixed map->cacheindex test and
14904         map>cache update when bit clearing results in an empty
14905         element.
14906
14907 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
14908
14909         PR target/43154
14910         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
14911         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
14912         and support both V2DF and V2DI modes.
14913         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
14914         support both V2DF and V2DI modes.
14915         (general): Delete trailing whitespace from a few patterns.
14916
14917         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14918         V2DF/V2DI interleave high/low builtins.
14919
14920         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
14921         new VSX builtins.
14922
14923         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
14924         interleave high/low functions.
14925
14926 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
14927
14928         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
14929         #pragma extern_prefix.
14930
14931 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
14932
14933         PR debug/43166
14934         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
14935         BLKmode, assert op0 is a MEM and just adjust its mode.
14936
14937         PR debug/43165
14938         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
14939         if bitpos isn't multiple of mode's bitsize.
14940
14941 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14942
14943         * c.opt (-ftemplate-depth=): New.
14944         (-ftemplate-depth-): Deprecate.
14945         * optc-gen.awk: Handle -ftemplate-depth=.
14946         * opth-gen.awk: Likewise.
14947         * c-opts.c (c_common_handle_option): Likewise.
14948         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
14949
14950 2010-02-24  Jason Merrill  <jason@redhat.com>
14951
14952         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
14953
14954 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14955
14956         * cfg.c (alloc_aux_for_block): Remove inline.
14957         (alloc_aux_for_edge): Likewise.
14958
14959 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14960
14961         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
14962
14963 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14964
14965         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
14966         * config/i386/sol2-gas.h: New file.
14967         * config.gcc (i[34567]86-*-solaris2*): Use it.
14968
14969 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14970
14971         PR c/43128
14972         * c-typeck.c (ep_convert_and_check): New.
14973         (build_conditional_expr): Use it.
14974         (build_binary_op): Likewise.
14975
14976 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
14977
14978         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
14979
14980         PR debug/43150
14981         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
14982         bounds even for -O+.
14983         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
14984         expr needs to have DECL_NAME set.
14985
14986 2010-02-24  Nick Clifton  <nickc@redhat.com>
14987
14988         * config/mep/mep.c: Include gimple.h.
14989         (mep_function_uses_sp): Delete unused function.
14990         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
14991         parameters.  Use unsigned integers to count args.  Return a
14992         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
14993
14994 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
14995
14996         PR target/43107
14997         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
14998         greater or equal to nelt instead of 2 * nelt.
14999         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
15000         with nelt - 1.
15001
15002 2010-02-23  Jason Merrill  <jason@redhat.com>
15003
15004         PR debug/42800
15005         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
15006         in cfun->local_decls even if they have register types.
15007
15008         PR c++/42837
15009         * stor-layout.c (place_field): Don't warn about unnecessary
15010         DECL_PACKED if the type is packed.
15011
15012 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
15013
15014         PR target/43139
15015         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
15016         GOTOFF relocs, even when the base reg isn't pic pointer.
15017
15018 2010-02-23  Michael Matz  <matz@suse.de>
15019
15020         PR debug/43077
15021         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
15022         (expand_gimple_basic_block): Generate and use debug temps if there
15023         are debug uses left after the last real use of TERed ssa names.
15024         Unlink debug immediate uses when they are expanded.
15025
15026 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15027
15028         PR 43123
15029         * config/i386/i386.c (override_options): Reorganise to provide
15030         better error messages.
15031
15032 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15033
15034         PR middle-end/43083
15035         * graphite-scop-detection.c (create_single_exit_edge): Move
15036         the call to find_single_exit_edge to....
15037         (create_sese_edges): ...here.  Don't handle multiple edges
15038         exiting the function.
15039         (build_graphite_scops): Don't handle multiple edges
15040         exiting the function.
15041
15042 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15043
15044         PR middle-end/43097
15045         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
15046         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
15047
15048 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
15049
15050         PR middle-end/43026
15051         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
15052
15053 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15054
15055         PR c++/43126
15056         * c-typeck.c (convert_arguments): Print declaration location.
15057         * c-common.c (validate_nargs): Rename as
15058         builtin_function_validate_nargs.
15059         (check_builtin_function_arguments): Update.
15060
15061 2010-02-22  Richard Guenther  <rguenther@suse.de>
15062
15063         PR lto/43045
15064         * tree-inline.c (declare_return_variable): Use the type of
15065         the call stmt lhs if available.
15066
15067 2010-02-22  Duncan Sands  <baldrick@free.fr>
15068
15069         * passes.c (register_pass): Always consider all pass lists when
15070         ref_pass_instance_number is zero.
15071
15072 2010-02-22  Richard Guenther  <rguenther@suse.de>
15073
15074         PR tree-optimization/42749
15075         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
15076         parameter.  Do arithmetic in the original type.
15077         (update_accumulator_with_ops): Likewise.
15078         (adjust_accumulator_values): Adjust.
15079
15080 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15081
15082         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
15083         (QI to BLKmode splitter): New splitter.
15084
15085 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
15086
15087         * config/i386/i386.c (initial_ix86_tune_features): Turn on
15088         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
15089
15090 2010-02-22  Richard Guenther  <rguenther@suse.de>
15091
15092         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
15093
15094 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
15095
15096         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
15097         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
15098         ($(T)crti.o, $(T)crtn.o): Remove rules.
15099
15100 2010-02-21  Tobias Burnus  <burnus@net-b.de>
15101
15102         PR fortran/35259
15103         * doc/invoke.texi (-fassociative-math): Document that this
15104         option is automatically enabled for Fortran.
15105
15106 2010-02-20  David S. Miller  <davem@davemloft.net>
15107
15108         * configure.ac: Test if linker and assembler properly support
15109         GOTDATA_OP relocations.
15110         * configure: Rebuild.
15111         * config.in: Likewise.
15112         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
15113         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
15114         (movsi_high_pic): Likewise.
15115         (movdi_lo_sum_pic): Likewise.
15116         (movdi_high_pic): Likewise.
15117         (movsi_pic_gotdata_op): New pattern.
15118         (movdi_pic_gotdata_op): Likewise.
15119         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
15120         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
15121
15122 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
15123
15124         PR target/43067
15125         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
15126         attribute to ssemul.
15127         (xop_mulv2div2di3_high): Ditto.
15128
15129 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15130
15131         PR c++/35669
15132         * c.opt (Wconversion-null): New option.
15133         * doc/invoke.texi (Wconversion-null): Document.
15134
15135 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15136
15137         * common.opt (Wlarger-than-): Add Undocumented.
15138
15139 2010-02-19  Mike Stump  <mikestump@comcast.net>
15140
15141         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
15142
15143 2010-02-19  Jason Merrill  <jason@redhat.com>
15144
15145         PR target/40332
15146         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
15147         * configure: Likewise.
15148
15149 2010-02-20  Alan Modra  <amodra@gmail.com>
15150
15151         PR middle-end/42344
15152         * cgraph.h (cgraph_make_decl_local): Declare.
15153         * cgraph.c (cgraph_make_decl_local): New function.
15154         (cgraph_make_node_local): Use it.
15155         * cgraphunit.c (cgraph_function_versioning): Likewise.
15156         * ipa.c (function_and_variable_visibility): Likewise.
15157
15158 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15159
15160         PR bootstrap/43121
15161         * except.c (sjlj_emit_function_enter): Don't call
15162         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
15163         directly.
15164         * rtl.h (add_reg_br_prob_note): Remove prototype.
15165
15166 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15167
15168         PR 41779
15169         * c-common.c (conversion_warning): Remove widening conversions
15170         before checking the conversion of integers to reals.
15171
15172 2010-02-19  Mike Stump  <mikestump@comcast.net>
15173
15174         PR middle-end/43125
15175         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
15176
15177         PR objc/43061
15178         * cgraphunit.c (process_function_and_variable_attributes): Check
15179         DECL_PRESERVE_P instead of looking up attribute "used".
15180         * ipa-pure-const.c (check_decl): Likewise.
15181         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
15182         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
15183         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
15184         instead of attribute "used".
15185         * config/sol2-c.c (solaris_pragma_init): Likewise.
15186         (solaris_pragma_fini): Likewise.
15187
15188 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15189
15190         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
15191         Use XCNEW instead of xcalloc.
15192         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
15193         XNEW instead of xmalloc.
15194         (get_fields): Use XNEWVEC instead of xmalloc.
15195
15196         PR debug/43084
15197         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
15198         populate vars array.
15199         (create_new_general_access): For debug stmts just reset value.
15200         (get_stmt_accesses): For accesses within debug stmts just record them
15201         using add_access_to_acc_sites instead of preventing the peeling or
15202         counting them as accesses.
15203
15204         PR middle-end/42233
15205         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
15206
15207 2010-02-19  Richard Guenther  <rguenther@suse.de>
15208
15209         PR tree-optimization/42916
15210         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
15211         instructions.
15212
15213 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
15214
15215         * configure.ac: Replace all uses of changequote in macro arguments
15216         with proper quoting.
15217
15218 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15219
15220         PR middle-end/42233
15221         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
15222
15223 2010-02-19  Richard Guenther  <rguenther@suse.de>
15224
15225         PR tree-optimization/42944
15226         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
15227         test for aliasing with errno.
15228
15229 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
15230
15231         PR middle-end/42233
15232         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
15233         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
15234         * dojump.c: Include output.h.
15235         (inv): New inline function.
15236         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
15237         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
15238         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
15239         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
15240         argument, pass it down to other calls.
15241         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
15242         add REG_BR_PROB note to the conditional jump.
15243         * cfgexpand.c (add_reg_br_prob_note): Removed.
15244         (expand_gimple_cond): Don't call it, add the probability
15245         as last argument to jumpif_1/jumpifnot_1.
15246         * Makefile.in (dojump.o): Depend on output.h.
15247         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
15248         callers.
15249         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
15250         * stmt.c (do_jump_if_equal): Likewise.
15251         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
15252         * loop-unswitch.c (compare_and_jump_seq): Likewise.
15253         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
15254         Likewise.
15255         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
15256         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
15257         jumpifnot_1 callers.
15258         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
15259         callers.
15260         (store_expr): Adjust jumpifnot caller.
15261         (store_constructor): Adjust jumpif caller.
15262
15263         PR middle-end/42233
15264         * gimplify.c (gimple_boolify): For __builtin_expect call
15265         gimple_boolify also on its first argument.
15266
15267 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
15268
15269         * configure.ac (gnu-unique-object): Wrap regexps using [] in
15270         changequote block.
15271         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
15272         * configure: Regenerated.
15273
15274 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15275
15276         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
15277         lang_hooks.types_compatible_p instead of comptypes.
15278
15279 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15280
15281         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
15282         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
15283         if __prefer_thumb__ is defined.
15284
15285 2010-02-18  Martin Jambor  <mjambor@suse.cz>
15286
15287         PR tree-optimization/43066
15288         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
15289         array with zero-sized element type.
15290
15291 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
15292
15293         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
15294         rtx, allocate struct var_loc_node here and return it to the
15295         caller, and only if it is actually needed.
15296         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
15297         move it earlier and return immediately if it returns NULL.
15298
15299 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
15300
15301         * config/sparc/gas.h: New file.  Restore
15302         TARGET_ASM_NAMED_SECTION to its ELF default.
15303         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
15304         check !HAVE_GNU_AS.
15305         * config/sparc/sparc.c (sparc_elf_asm_named_section):
15306         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
15307         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
15308         after sparc/sysv4.h.
15309
15310 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
15311
15312         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
15313
15314 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
15315
15316         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
15317         patterns from predicated pattern.
15318
15319 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
15320
15321         PR target/43103
15322         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
15323         for insn mnemonic suffix.
15324
15325 2010-02-17  Richard Guenther  <rguenther@suse.de>
15326
15327         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
15328         to loop PHI nodes.
15329
15330 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
15331
15332         PR debug/42918
15333         * caller-save.c (save_call_clobbered_regs): If BB ends with
15334         a DEBUG_INSN, move any notes in between last real insn and the last
15335         DEBUG_INSN after the last DEBUG_INSN.
15336
15337 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
15338
15339         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
15340         Fix return type.  Fix argument type.  Explain meaning of return value.
15341
15342 2010-02-16  Richard Guenther  <rguenther@suse.de>
15343
15344         PR tree-optimization/41043
15345         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
15346         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
15347         statements ...
15348         (vrp_visit_phi_node): ... but only for loop PHI nodes.
15349
15350 2010-02-16  Ira Rosen  <irar@il.ibm.com>
15351
15352         PR tree-optimization/43074
15353         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
15354         * tree-vect-loop.c (vect_analyze_loop_operations): Add
15355         vectorizable cycles in hybrid SLP check.
15356         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
15357
15358 2010-02-16  Richard Guenther  <rguenther@suse.de>
15359
15360         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
15361         (true_dependence): If memrefs_conflict_p computes must-alias
15362         trust it.  Move TBAA check after offset-based disambiguation.
15363         (canon_true_dependence): Likewise.
15364
15365 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
15366
15367         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
15368         * doc/invoke.texi: Document it.
15369         * var-tracking.c: Include toplev.h and params.h.
15370         (vt_find_locations): Return bool indicating success.  Compute
15371         hash sizes unconditionally.  Check new parameter, report.
15372         (variable_tracking_main_1): Check vt_find_locations results and
15373         retry.  Renamed from...
15374         (variable_tracking_main): ... this.  New wrapper to preserve
15375         flag_var_tracking_assignments.
15376         * Makefile.in (var-tracking.o): Adjust dependencies.
15377
15378 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
15379             Jakub Jelinek  <jakub@redhat.com>
15380
15381         PR target/42854
15382         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
15383         if weak_import attribute is present.
15384         * config/darwin.c (machopic_select_section): Likewise.
15385
15386 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
15387
15388         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
15389         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
15390         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
15391         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
15392
15393         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
15394         types.
15395
15396         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
15397         Fix argument types.
15398
15399         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
15400         Rewrite text to refer to the names.
15401
15402 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
15403
15404         * config/i386/i386-builtin-types.def
15405         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
15406         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
15407         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
15408         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
15409         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
15410         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
15411         IX86_BUILTIN_VPERMIL2PS256.
15412         (MULTI_ARG_4_DF2_DI_I): Defined.
15413         (MULTI_ARG_4_DF2_DI_I1): Defined.
15414         (MULTI_ARG_4_SF2_SI_I): Defined.
15415         (MULTI_ARG_4_SF2_SI_I1): Defined.
15416         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
15417         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
15418         __builtin_ia32_vpermil2ps256.
15419         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
15420         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
15421         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
15422         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
15423         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
15424         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
15425         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
15426         CODE_FOR_xop_vpermil2v8sf3.
15427         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
15428         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
15429         * config/i386/xopintrin.h (_mm_permute2_pd): New.
15430         (_mm256_permute2_pd): New.
15431         (_mm_permute2_ps): New.
15432         (_mm256_permute2_ps): New.
15433
15434 2010-02-15  Nick Clifton  <nickc@redhat.com>
15435
15436         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
15437         boolean parameters.  Use emit_jump_insn when emitting a pop
15438         instruction containing a return insn.
15439         (push): Use 'true' rather than '1' as second parameter to F.
15440         (h8300_expand_prologue): Likewise.
15441         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
15442         (h8300_expand_epilogue): Likewise.
15443
15444 2010-02-15  Richard Guenther  <rguenther@suse.de>
15445
15446         PR middle-end/43068
15447         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
15448         if that is zero.
15449
15450 2010-02-15  Nick Clifton  <nickc@redhat.com>
15451
15452         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
15453         delta.
15454
15455 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
15456
15457         * intl.c (fake_ngettext): New function.
15458         * intl.h (fake_ngettext): Declare.
15459         (ngettext): Define macro.
15460         * collect2.c (notice_translated): New function.
15461         (main): Use notice_translated and ngettext.
15462         * collect2.h (notice_translated): Declare.
15463
15464 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
15465
15466         * reorg.c (delete_computation): Comment fixes.
15467         * caller-save.c (setup_save_areas): Idem.
15468         * sel-sched-dump.c (dump_lv_set): Idem.
15469         * rtl.def: Idem.
15470
15471 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15472
15473         * config/s390/s390.c (s390_sched_init): New function.
15474         (TARGET_SCHED_INIT): Target hook defined.
15475
15476 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
15477             Jack Howarth  <howarth@bromo.med.uc.edu>
15478             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
15479
15480         PR target/42982
15481         Partial revert of unintended change in fix for PR41605.
15482         * config/darwin.h: Fix typo.
15483         * config/darwin9.h: Same.
15484
15485 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
15486
15487         * c-pch.c (pch_init): Clear v.
15488
15489 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15490
15491         PR middle-end/42930
15492         * graphite-scop-detection.c (graphite_can_represent_scev): Call
15493         graphite_can_represent_init for MULT_EXPR.
15494
15495 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15496
15497         PR middle-end/42914
15498         PR middle-end/42530
15499         * graphite-sese-to-poly.c (remove_phi): New.
15500         (translate_scalar_reduction_to_array): Call remove_phi.
15501
15502 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15503
15504         PR middle-end/42771
15505         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
15506         * graphite-clast-to-gimple.h (gloog): Update declaration.
15507         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
15508         * graphite-poly.h (struct poly_bb): Add missing comments.
15509         (struct scop): Add poly_scop_p field.
15510         (POLY_SCOP_P): New.
15511         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
15512         * graphite.c (graphite_transform_loops): Build the polyhedral
15513         representation for each scop before code generation.
15514         * sese.c (rename_variables_in_operand): Removed.
15515         (rename_variables_in_expr): Return the renamed expression.
15516         (rename_sese_parameters): New.
15517         * sese.h (rename_sese_parameters): Declared.
15518
15519 2010-02-11  Richard Guenther  <rguenther@suse.de>
15520
15521         PR tree-optimization/42998
15522         * tree-ssa-pre.c (create_expression_by_pieces): Treat
15523         POINTER_PLUS_EXPR properly.
15524
15525 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
15526             Changpeng Fang  <changpeng.fang@amd.com>
15527
15528         PR middle-end/40886
15529         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
15530         the cost of an IV candidate when the IV is used in a test against zero.
15531
15532         * gcc.dg/tree-ssa/ivopts-3.c: New.
15533
15534 2010-02-11  Richard Guenther  <rguenther@suse.de>
15535
15536         PR lto/41664
15537         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
15538         pointer-vs-decl case by swapping refs.  Handle some cases
15539         of pointer-vs-decl disambiguations more conservatively.
15540         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
15541         to false after expanding.
15542
15543 2010-02-11  Richard Guenther  <rguenther@suse.de>
15544
15545         PR driver/43021
15546         * gcc.c (process_command): Handle LTO file@offset case more
15547         appropriately.
15548
15549 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
15550
15551         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
15552         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
15553         of DEBUG_INSNs.
15554         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
15555
15556         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
15557         if MEM's mode size isn't DWARF2_ADDR_SIZE.
15558         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
15559         Optimize eq/ne comparisons when both arguments are known to be
15560         zero-extended.
15561         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
15562         Don't mask operands unnecessarily if they are known to be already
15563         zero-extended.
15564
15565 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
15566
15567         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
15568         instead of loop.
15569
15570 2010-02-10  Richard Guenther  <rguenther@suse.de>
15571
15572         PR tree-optimization/43017
15573         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
15574         for wrapping signed arithmetic.
15575
15576 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
15577
15578         PR debug/43010
15579         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
15580         if no debug info should be emitted for it.
15581
15582 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
15583
15584         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
15585         note when flag_exceptions is set.
15586
15587 2010-02-10  Duncan Sands  <baldrick@free.fr>
15588
15589         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
15590
15591 2010-02-10  Richard Guenther  <rguenther@suse.de>
15592
15593         PR c/43007
15594         * tree.c (get_unwidened): Handle constants.
15595         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
15596
15597 2010-02-10  Martin Jambor  <mjambor@suse.cz>
15598
15599         PR lto/42985
15600         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
15601         check for variable argument counts independently.
15602
15603 2010-02-10  Christian Bruel  <christian.bruel@st.com>
15604
15605         PR target/42841
15606         * config/sh/sh.c (find_barrier): Increase length for non delayed
15607         conditional branches.
15608
15609 2010-02-10  Christian Bruel  <christian.bruel@st.com>
15610
15611         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
15612
15613 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
15614
15615         * builtins.c (set_builtin_user_assembler_name): Also handle
15616         ffs if int is smaller than word.
15617
15618 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
15619
15620         PR middle-end/42973
15621         * ira-conflicts.c (get_dup): Remove.
15622         (process_reg_shuffles): Add new parameter.  Use it as an
15623         additional guard for copy generation.
15624         (add_insn_allocno_copies): Rewrite.
15625
15626 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
15627
15628         * common.opt (fsched2-use-traces): Preserved for backward
15629         compatibility.
15630         * doc/invoke.texi: Remove the documentation about option
15631         -fsched2-use-traces.
15632         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
15633         flag_sched2_use_traces.
15634         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
15635         the backward compatibility flag section.
15636
15637 2010-02-09  Richard Guenther  <rguenther@suse.de>
15638
15639         PR tree-optimization/43008
15640         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
15641         make HEAP variables initialized from global memory if they
15642         are not known builtin functions.
15643         (find_func_aliases): Adjust.
15644
15645 2010-02-09  Richard Guenther  <rguenther@suse.de>
15646
15647         PR tree-optimization/43000
15648         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
15649         arithmetic manually.
15650
15651 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
15652
15653         PR tree-optimization/42931
15654         * tree-loop-linear.c (try_interchange_loops): Don't call
15655         double_int_mul if estimated_loop_iterations failed.
15656
15657 2010-02-08  Martin Jambor  <mjambor@suse.cz>
15658
15659         PR middle-end/42898
15660         * tree-sra.c (build_accesses_from_assign): Do not mark in
15661         should_scalarize_away_bitmap if stmt has volatile ops.
15662         (sra_modify_assign): Do not process assigns piecemeal if if stmt
15663         has volatile ops.
15664
15665 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15666
15667         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
15668
15669 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
15670
15671         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
15672         before the pattern.
15673
15674 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
15675
15676         PR middle-end/42946
15677         * df-core.c (df_finish_pass): Change type of saved_flags to int.
15678
15679 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
15680
15681         PR middle-end/42988
15682         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
15683         to unknown_dependence.
15684         (graphite_legal_transform_dr): Handle the unknown_dependence.
15685         (graphite_carried_dependence_level_k): Same.
15686
15687 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
15688
15689         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
15690
15691 2010-02-07  Richard Guenther  <rguenther@suse.de>
15692
15693         PR middle-end/42991
15694         * expr.c (get_inner_reference): Always initialize *pbitsize.
15695
15696 2010-02-07  Richard Guenther  <rguenther@suse.de>
15697
15698         PR middle-end/42956
15699         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
15700         new ARRAY_REFs on variable size element or minimal index arrays.
15701         Complete.
15702         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
15703         gimple_fold_indirect_ref.
15704
15705 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
15706
15707         PR target/42957
15708         * arm.c (arm_override_options): Just return if the user has specified
15709         an invalid fpu name.
15710
15711 2010-02-03  Jason Merrill  <jason@redhat.com>
15712
15713         PR c++/42870
15714         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
15715         i386_pe_maybe_record_exported_symbol.
15716
15717 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
15718
15719         PR target/42924
15720         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
15721         (pa_delegitimize_address): New function.
15722
15723 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
15724
15725         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
15726         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
15727
15728 2010-02-05  Richard Guenther  <rguenther@suse.de>
15729
15730         PR lto/42762
15731         * lto-streamer-in.c (get_resolution): Deal with references
15732         to undefined functions.
15733
15734 2010-02-05  Richard Guenther  <rguenther@suse.de>
15735
15736         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
15737         (fold_const_aggregate_ref): Likewise.
15738         (ccp_fold_stmt): Substitute loads.
15739         (maybe_fold_reference): Verify types before substituting.
15740         Unshare properly.
15741         (fold_gimple_assign): Unshare properly.
15742         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
15743
15744 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
15745
15746         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
15747         for rs6000_gen_cell_microcode.
15748
15749 2010-02-04  Richard Guenther  <rguenther@suse.de>
15750
15751         PR rtl-optimization/42952
15752         * dse.c (const_or_frame_p): Remove MEM handling.
15753
15754 2010-02-04  Nick Clifton  <nickc@redhat.com>
15755
15756         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
15757         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15758         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
15759         (mn10300_asm_output_mi_thunk): New function.
15760         (mn10300_can_output_mu_thunk): New function.
15761         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
15762         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
15763         (FUNCTION_ARG): Delete incorrect comment.
15764
15765 2010-02-03  Jason Merrill  <jason@redhat.com>
15766
15767         PR c++/40138
15768         * fold-const.c (operand_equal_p): Handle erroneous types.
15769
15770 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
15771
15772         * config/h8300/h8300.md (can_delay): Fix attibute condition.
15773
15774 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
15775
15776         PR rtl-optimization/42941
15777         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
15778         of xmalloc.
15779
15780 2010-02-03  Jason Merrill  <jason@redhat.com>
15781
15782         PR c++/35652
15783         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
15784
15785 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
15786
15787         PR debug/42896
15788         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
15789         (cselib_reset_table): Renamed from...
15790         (cselib_reset_table_with_next_value): ... this.
15791         (cselib_get_next_uid): Renamed from...
15792         (cselib_get_next_unknown_value): ... this.
15793         * cselib.c (next_uid): Renamed from...
15794         (next_unknown_value): ... this.
15795         (cselib_clear_table): Adjust.
15796         (cselib_reset_table): Adjust.  Renamed from...
15797         (cselib_reset_table_with_next_value): ... this.
15798         (cselib_get_next_uid): Adjust.  Renamed from...
15799         (cselib_get_next_unknown_value): ... this.
15800         (get_value_hash): Use hash.
15801         (cselib_hash_rtx): Likewise.
15802         (new_cselib_val): Adjust.  Set and dump uid.
15803         (cselib_lookup_mem): Pass next_uid as hash.
15804         (cselib_subst_to_values): Likewise.
15805         (cselib_log_lookup): Dump uid.
15806         (cselib_lookup): Pass next_uid as hash.  Adjust.
15807         (cselib_process_insn): Adjust.
15808         (cselib_init): Initialize next_uid.
15809         (cselib_finish): Adjust.
15810         (dump_cselib_table): Likewise.
15811         * dse.c (canon_address): Dump value uid.
15812         * print-rtl.c (print_rtx): Print value uid.
15813         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
15814         (dvuid): New type.
15815         (dv_uid): New function, sort of renamed from...
15816         (dv_htab_hash): ... this, reimplemented in terms of it and...
15817         (dv_uid2hash): ... this.  New.
15818         (variable_htab_eq): Drop excess assertions.
15819         (tie_break_pointers): Removed.
15820         (canon_value_cmp): Compare uids.
15821         (variable_post_merge_New_vals): Print uids.
15822         (vt_add_function_parameters): Adjust.
15823         (vt_initialize): Reset table.  Adjust.
15824
15825 2010-02-03  Richard Guenther  <rguenther@suse.de>
15826
15827         PR tree-optimization/42944
15828         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
15829         (call_may_clobber_ref_p_1): Likewise.  Properly handle
15830         malloc and calloc clobbering errno.
15831
15832 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
15833
15834         * doc/invoke.texi: Fix name of sched1 dump.
15835
15836         * opts.c (decode_options): Set flag_tree_switch_conversion
15837         only conditionally on optimize >= 2.
15838
15839         * gcse.c: Assorted comment fixes in pass description.
15840
15841 2010-02-03  Anthony Green  <green@moxielogic.com>
15842
15843         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
15844         nop padding in order to maintain alignment of storage location of
15845         target function address.
15846         (moxie_trampoline_init): Store target function address at newly
15847         aligned location.
15848         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
15849         to 32.
15850         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
15851
15852 2010-02-03  Richard Guenther  <rguenther@suse.de>
15853
15854         PR middle-end/42927
15855         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
15856
15857 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15858
15859         * config.gcc: Reenable check for obsolete targets.
15860         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
15861         mips-sgi-irix6.[0-4]*.
15862
15863 2010-02-02  Nick Clifton  <nickc@redhat.com>
15864
15865         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
15866         constant size of 4 as being the same as 0.
15867         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
15868         can take values in the range 0..4.
15869
15870 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
15871
15872         PR java/41991
15873         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
15874         as _darwin10_Unwind_FindEnclosingFunction().
15875         * libgcc-libsystem.ver: New.
15876
15877 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
15878
15879         PR target/41399
15880         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
15881         implicitly set registers.
15882
15883 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
15884
15885         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
15886         (arm_override_options): Allow automatic selection of the thread
15887         pointer register if thumb2.
15888         (legitimize_pic_address): Improve code sequences for Thumb2.
15889         (arm_call_tls_get_addr): Likewise.
15890         (legitimize_tls_address): Likewise.
15891         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
15892         (pic_load_addr_32bit): ... this.  New named pattern.
15893         * thumb2.md (pic_load_addr_thumb2): Delete.
15894         (pic_load_dot_plus_four): Delete.
15895         (tls_load_dot_plus_four): New named pattern.
15896
15897 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15898
15899         PR libgomp/29986
15900         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
15901         Document fix for TLS bug.
15902
15903 2010-01-31  Richard Guenther  <rguenther@suse.de>
15904
15905         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
15906         conservatively correct.
15907
15908 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15909
15910         PR target/42850
15911         Revert:
15912         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15913
15914         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
15915
15916 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15917
15918         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
15919
15920 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
15921
15922         * config.gcc: Adjust order of makefile fragments for mingw targets.
15923
15924 2010-01-31  Richard Guenther  <rguenther@suse.de>
15925
15926         PR middle-end/42898
15927         * gimplify.c (gimplify_init_constructor): For volatile LHS
15928         initialize a temporary.
15929
15930 2010-01-31  Matthias Klose  <doko@ubuntu.com>
15931
15932         * configure.ac: Fix __stack_chk_fail check for cross builds configured
15933         --with-headers
15934         * configure: Regenerate.
15935
15936 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
15937
15938         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
15939         the same alias set and their sizes different constantness.
15940         (aliasing_component_refs_p): Revert 2009-10-24 change.
15941
15942 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15943
15944         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
15945         unused.
15946
15947 2010-01-29  Richard Guenther  <rguenther@suse.de>
15948
15949         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
15950         Assert we successfully updated the call.
15951
15952 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
15953
15954         PR rtl-optimization/42889
15955         * df.h (df_set_bb_dirty_nonlr): New prototype.
15956         * df-core.c (df_set_bb_dirty_nonlr): New function.
15957         * df-scan.c (df_insn_rescan): Call it instead of
15958         df_set_bb_dirty for DEBUG_INSNs.
15959
15960 2010-01-29  Richard Guenther  <rguenther@suse.de>
15961
15962         PR middle-end/37448
15963         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
15964         quadratic behavior in most cases.
15965
15966 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
15967
15968         PR target/42891
15969         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
15970         in the call to gen_x86_movsicc_0_m1.
15971
15972 2010-01-28  Richard Guenther  <rguenther@suse.de>
15973
15974         PR tree-optimization/42871
15975         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
15976
15977 2010-01-28  Richard Guenther  <rguenther@suse.de>
15978
15979         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
15980         into call arguments.
15981
15982 2010-01-28  Richard Guenther  <rguenther@suse.de>
15983
15984         PR middle-end/42883
15985         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
15986         the forwarder if the destination is an EH landing pad.
15987
15988 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
15989
15990         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
15991         block list passed to gimple_duplicate_sese_tail.
15992         (parallelize_loops): Avoid parallelization when the function
15993         has_nonlocal_label.
15994         Avoid parallelization when the preheader is IRREDUCIBLE.
15995         Try to optimize when estimated_loop_iterations_int is unresolved.
15996         Add the loop's location to the dump file.
15997         * tree-cfg.c (add_phi_args_after_redirect): Remove.
15998         (gimple_duplicate_sese_tail): Remove the check for the latch.
15999         Redirect nexits to the exit block.
16000         Remove handling of the incoming edges to the latch.
16001         Redirect the backedge from the copied latch to the exit bb.
16002
16003 2010-01-28  Michael Matz  <matz@suse.de>
16004
16005         PR target/42881
16006         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
16007         Wrap force_reg into a sequence, emit it before user.
16008
16009 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
16010
16011         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
16012         (arm_rev): New.
16013         (arm_legacy_rev): Likewise.
16014         (thumb_legacy_rev): Likewise.
16015
16016 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
16017
16018         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
16019         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
16020         on MEM's address failed, try avoid_constant_pool_reference and
16021         recurse if it returned something different.
16022         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
16023         address, try avoid_constant_pool_reference and recurse if it
16024         returned something different.
16025         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
16026         address and avoid_constant_pool_reference returned something
16027         different, don't set have_address.
16028
16029 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
16030
16031         PR debug/42861
16032         * var-tracking.c (val_store): Add modified argument, obey it.
16033         Adjust callers.
16034         (count_uses): Move down logging of main.
16035         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
16036         don't need resolution.
16037         (emit_notes_in_bb): Likewise.
16038
16039 2010-01-27  Richard Guenther  <rguenther@suse.de>
16040
16041         PR middle-end/42878
16042         * tree-inline.c (remap_decl): Delay remapping of SSA name
16043         default definitions until we need them.
16044
16045 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
16046
16047         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
16048         (rs6000_delegitimize_address): New function.
16049
16050         * config/s390/s390.c (s390_delegitimize_address): Call
16051         delegitimize_mem_from_attrs.
16052
16053         PR middle-end/42874
16054         * tree-inline.c (cannot_copy_type_1): Removed.
16055         (copy_forbidden): Don't forbid copying of functions containing
16056         records/unions with variable length fields.
16057
16058 2010-01-27  Christian Bruel  <christian.bruel@st.com>
16059
16060         Revert:
16061         PR target/42841
16062         * config/sh/sh.c (find_barrier): Increase length for non delayed
16063         conditional branches.
16064
16065 2010-01-27  Matthias Klose  <doko@ubuntu.com>
16066
16067         * configure.ac (gnu-unique-object): Fix ldd version check.
16068         * configure: Regenerate.
16069
16070 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16071
16072         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
16073         HAVE_GNU_AS value.
16074         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
16075         Test for HAVE_GNU_AS value.
16076
16077 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16078
16079         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
16080         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
16081         INT64_TYPE): Define.
16082         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
16083         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16084         INT_LEAST64_TYPE): Define.
16085         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
16086         UINT_LEAST64_TYPE): Define.
16087         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
16088         INT_FAST64_TYPE): Define.
16089         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16090         UINT_FAST64_TYPE): Define.
16091         (INTMAX_TYPE, UINTMAX_TYPE): Define.
16092         (INTPTR_TYPE, UINTPTR_TYPE): Define.
16093         (SIG_ATOMIC_TYPE): Define.
16094
16095 2010-01-26  Richard Guenther  <rguenther@suse.de>
16096
16097         * df-scan.c (df_scan_set_bb_info): Remove assert.
16098         (df_insn_rescan_debug_internal): Merge asserts.
16099         (df_install_ref): Likewise.
16100         (df_mark_reg): Use bitmap_set_range.
16101         (df_hard_reg_used_p): Remove assert.
16102         (df_hard_reg_used_count): Likewise.
16103
16104 2010-01-26  Richard Guenther  <rguenther@suse.de>
16105
16106         PR rtl-optimization/42685
16107         * web.c (web_main): Ignore DEBUG_INSNs.
16108
16109 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
16110
16111         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
16112
16113         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
16114         Fix types of fndecl and arglist parameters.
16115
16116 2010-01-26  Richard Guenther  <rguenther@suse.de>
16117
16118         PR middle-end/42806
16119         * tree-eh.c (unsplit_eh): Skip debug insns.
16120
16121 2010-01-26  Richard Guenther  <rguenther@suse.de>
16122
16123         PR tree-optimization/42250
16124         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
16125
16126 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
16127
16128         PR fortran/42866
16129         * omp-low.c (expand_omp_sections): Only use single_pred if
16130         l2_bb is single_pred_p.
16131
16132 2010-01-25  Christian Bruel  <christian.bruel@st.com>
16133
16134         PR target/42841
16135         * config/sh/sh.c (find_barrier): Increase length for non delayed
16136         conditional branches.
16137         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
16138
16139 2010-01-24  David S. Miller  <davem@davemloft.net>
16140
16141         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
16142         define if not using GAS.
16143         * config/sparc/sparc.c (sparc_elf_asm_named_section):
16144         Likewise.  Delete SECTION_MERGE code, which is only applicable
16145         when using GAS.
16146
16147 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
16148
16149         PR c++/42748
16150         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
16151         mangling of va_list in system headers.
16152
16153 2010-01-23  Toon Moene  <toon@moene.org>
16154
16155         * tree-predcom.c (combine_chains): Return NULL, not false.
16156
16157 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
16158
16159         * tree-loop-distribution.c (distribute_loop): Fix declaration and
16160         initialization of variable res to agree with return type.
16161
16162 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
16163
16164         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
16165         * tree-sra.c: Add include of expr.h.
16166
16167 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
16168
16169         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
16170         insert the debug stmt on the single non-EH edge from the stmt.
16171
16172 2010-01-22  Richard Henderson  <rth@redhat.com>
16173
16174         PR tree-opt/42833
16175         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
16176         the RHS until after generate_subtree_copies has insertted its
16177         code before the current statement.
16178
16179 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
16180
16181         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
16182
16183         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
16184
16185 2010-01-21  Martin Jambor  <mjambor@suse.cz>
16186
16187         PR tree-optimization/42585
16188         * tree-sra.c (struct access): New field grp_total_scalarization.
16189         (dump_access): Dump the new field.
16190         (should_scalarize_away_bitmap): New variable.
16191         (cannot_scalarize_away_bitmap): Likewise.
16192         (sra_initialize): Allocate new bitmaps.
16193         (sra_deinitialize): Free new bitmaps.
16194         (create_access_1): New function.
16195         (create_access): Parts moved to create_access_1.
16196         (type_consists_of_records_p): New function.
16197         (completely_scalarize_record): Likewise.
16198         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
16199         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
16200         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
16201         access.
16202         (analyze_all_variable_accesses): Completely scalarize small eligible
16203         records.
16204
16205 2010-01-21  Martin Jambor  <mjambor@suse.cz>
16206
16207         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
16208
16209 2010-01-21  Andrew Haley  <aph@redhat.com>
16210
16211         * gcc.c (process_command): Move lang_specific_driver before
16212         setting cc_libexec_prefix.
16213
16214 2010-01-21  Richard Guenther  <rguenther@suse.de>
16215
16216         PR middle-end/19988
16217         * fold-const.c (negate_expr_p): Pretend only negative
16218         real constants are easily negatable.
16219
16220 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
16221             Jason Merrill  <jason@redhat.com>
16222
16223         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
16224         (TYPE_TRANSPARENT_AGGR): this, for union and record.
16225         * calls.c (initialize argument_information): Handle it.
16226         * c-common.c (handle_transparent_union_attribute): Use new name.
16227         * c-decl.c (finish_struct): Ditto.
16228         * c-typeck.c (type_lists_compatible_p): Ditto.
16229         (convert_for_assignment): Use new name and also handle record.
16230         * function.c (aggregate_value_p): Handle it.
16231         (pass_by_reference): Ditto.
16232         (assign_parm_data_types): Ditto.
16233         * print-tree.c (print_node): Ditto.
16234         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
16235         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
16236         * tree.c (first_field): New fn.
16237
16238 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
16239
16240         PR target/42818
16241         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
16242         even when linking statically, for now.
16243
16244 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
16245
16246         PR debug/42715
16247         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
16248         without a cselib val.
16249         (count_uses): Accept MO_VAL_SET with no val on stores.
16250         (add_stores): Likewise.
16251
16252 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16253
16254         * var-tracking.c (check_value_val): Add a compile time assertion.
16255         (dv_is_decl_p): Simplify.
16256         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
16257         gcc_assert if ENABLE_CHECKING.
16258
16259 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
16260
16261         PR debug/42782
16262         * var-tracking.c: Include tree-flow.h.
16263         (mem_dies_at_call): New.
16264         (dataflow_set_preserve_mem_locs): Use it.
16265         (dataflow_set_remove_mem_locs): Likewise.
16266         (dump_var): Renamed from dump_variable.  Adjust all callers.
16267         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
16268         * Makefile.in (var-tracking.o): Adjust deps.
16269
16270 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
16271
16272         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
16273
16274 2010-01-20  Richard Guenther  <rguenther@suse.de>
16275
16276         PR tree-optimization/42717
16277         * tree-ssa-dce.c (get_live_post_dom): Remove.
16278         (forward_edge_to_pdom): Take an arbitrary edge to copy
16279         degenerate PHI args from.
16280         (remove_dead_stmt): Use the first post-dominator even if it
16281         does not contain live statements as redirection destination.
16282
16283 2010-01-20  Richard Guenther  <rguenther@suse.de>
16284
16285         * tree-inline.c (estimate_num_insns): Handle EH builtins.
16286
16287 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16288
16289         * sel-sched.c (create_speculation_check): Remove set but not used
16290         variable twin.
16291         (try_transformation_cache): Remove set but not used variable ds.
16292         (calculate_privileged_insns): Remove set but not used variables
16293         cur_insn and min_spec_insn.
16294         (find_best_expr): Remove set but not used variable avail_n.
16295         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
16296         variable e.
16297         * cgraphunit.c (assemble_thunk): Remove set but not used variable
16298         false_label.
16299         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
16300         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
16301         new_scop_exit_edge.
16302
16303 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
16304
16305         PR bootstrap/42786
16306         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
16307         cpu types.  Add support for *-sse3 cpu types.
16308         (x86_64-*-*): Ditto.
16309
16310 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16311
16312         PR middle-end/42803
16313         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
16314         argument, call initializer_constant_valid_p_1 instead of
16315         initializer_constant_valid_p, pass CACHE to it, return NULL
16316         immediately if first call returns NULL.
16317         (initializer_constant_valid_p_1): New function.
16318         (initializer_constant_valid_p): Use it.
16319
16320 2010-01-20  Thomas Quinot  <quinot@adacore.com>
16321
16322         * tree.def (PLACEHOLDER_EXPR): Fix comment.
16323
16324 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
16325
16326         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
16327         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
16328         (loc_list_from_tree): Don't handle unsigned division.  Handle
16329         signed modulo using DW_OP_{over,over,div,mul,minus}.
16330         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
16331         modulo instead of signed.
16332
16333 2010-01-20  DJ Delorie  <dj@redhat.com>
16334
16335         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
16336         (Fpa): Pass it
16337         (h8300_emit_stack_adjustment): Propogate it.
16338         (push): Pass it.
16339         (h8300_expand_prologue): Likewise.
16340         (h8300_expand_epilogue): Likewise.
16341
16342 2010-01-19  Michael Matz  <matz@suse.de>
16343
16344         PR tree-optimization/41783
16345         * tree-data-ref.c (toplevel): Include flags.h.
16346         (dump_data_dependence_relation):  Also dump the inputs if the
16347         result will be unknown.
16348         (split_constant_offset_1): Look through some conversions.
16349         * tree-predcom.c (determine_roots_comp): Restart a new chain if
16350         the offset from last element is too large.
16351         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
16352         (reassociate_to_the_same_stmt): Handle vector registers.
16353         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
16354         (e.g. conversions).
16355         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
16356         wide_prolog_niters argument, emit widening instructions.
16357         (vect_do_peeling_for_alignment): Adjust caller, use widened
16358         variant of the iteration cound.
16359         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
16360
16361 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16362
16363         PR target/38697
16364         * config/arm/neon-testgen.m (emit_automatics): New parameter
16365         features. Adjust for Fixed_return_reg feature.
16366         (test_intrinsic): Call emit_automatics with new feature.
16367         * config/arm/neon.ml: Update copyright years.
16368         (features): New Fixed_return_reg feature.
16369         (ops): Update feature for Vget_low.
16370
16371 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
16372
16373         PR tree-optimization/42719
16374         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
16375         stmt uses.
16376
16377         PR debug/42728
16378         * fwprop.c (all_uses_available_at): Return false if def_set dest
16379         is a REG that is used in def_insn.
16380
16381 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
16382
16383         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
16384
16385         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
16386         Add argument names.
16387
16388         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
16389
16390         * target.h (struct gcc_target) <secondary_reload>: Change type
16391         of last argument to secondary_reload_info *.
16392
16393 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
16394
16395         PR target/42774
16396         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
16397         memory references with unaligned offsets.  Remove CQImode handling.
16398         (unaligned_memory_operand): Return 1 for memory references with
16399         unaligned offsets.  Remove CQImode handling.
16400
16401 2010-01-18  Richard Guenther  <rguenther@suse.de>
16402
16403         PR middle-end/39954
16404         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
16405         builtin calls.
16406
16407 2010-01-18  Richard Guenther  <rguenther@suse.de>
16408
16409         PR tree-optimization/42781
16410         * tree-ssa-structalias.c (find_what_var_points_to): Skip
16411         restrict processing only if the original variable was artificial.
16412
16413 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
16414
16415         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
16416         find number of popped argument bytes.
16417
16418         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
16419         Fix the text that describes the return value for invalid insns.
16420
16421         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
16422
16423         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
16424         Clarify what 'cost of the -dependence' is.  Fix quoting.
16425
16426         * toplev.c (default_get_pch_validity): Rename argument to "sz".
16427         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
16428
16429 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
16430
16431         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
16432         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
16433
16434 2010-01-17  Richard Guenther  <rguenther@suse.de>
16435
16436         PR middle-end/42248
16437         * function.c (split_complex_args): Take a VEC to modify.
16438         (assign_parms_augmented_arg_list): Build a VEC instead of
16439         a chain of PARM_DECLs.
16440         (assign_parms_unsplit_complex): Take a VEC of arguments.
16441         Do not fixup unmodified parms.
16442         (assign_parms): Deal with the VEC.
16443         (gimplify_parameters): Likewise.
16444
16445 2010-01-17  Richard Guenther  <rguenther@suse.de>
16446
16447         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
16448         node existence check.
16449         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
16450         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
16451         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
16452         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
16453         (gimple_execute_on_growing_pred): Likewise.
16454
16455 2010-01-17  Richard Guenther  <rguenther@suse.de>
16456
16457         PR tree-optimization/42773
16458         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
16459         (compute_antic_aux): Likewise.
16460         (compute_partial_antic_aux): Likewise.
16461
16462 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
16463
16464         PR debug/42767
16465         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
16466         and US_TRUNCATE.
16467
16468 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
16469
16470         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
16471         appearance.
16472
16473         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
16474         Fix markup for strict argument.
16475
16476         (TARGET_SCHED_REORDER2): Fix argument types.
16477
16478         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
16479         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
16480
16481         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
16482         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
16483
16484         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
16485         Add argument name.
16486
16487         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
16488         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
16489         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
16490         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
16491         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
16492
16493         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
16494
16495         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
16496
16497         (TARGET_ASM_RELOC_RW_MASK): Add return type.
16498         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
16499
16500         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
16501
16502         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
16503         Use prototype.
16504
16505         (TARGET_ASM_NAMED_SECTION): Fix argument list.
16506
16507         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
16508         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
16509
16510         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
16511
16512         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
16513
16514         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
16515         referring to it.  Fix language.
16516
16517         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
16518
16519         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
16520
16521         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
16522
16523         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
16524
16525         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
16526         '@var{stream}.  Remove stray 'and'.
16527
16528         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
16529
16530         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
16531
16532         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
16533
16534         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
16535         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
16536
16537         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
16538         Fix description of return value.
16539         Rename argument "sz" to "len."
16540
16541         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
16542         Clarify meaning of 'true' return value.
16543
16544         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
16545
16546         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
16547         rep_mode versus mode_rep.
16548
16549         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
16550
16551         (TARGET_BUILTIN_DECL): Fix name.
16552
16553         (TARGET_COMMUTATIVE_P): Fix type of first argument.
16554
16555         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
16556
16557         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
16558
16559         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
16560
16561         (TARGET_RELAXED_ORDERING): Use @deftypevr.
16562
16563         (TARGET_GET_DRAP_RTX): Note that this is a hook.
16564         Clarify language.
16565
16566         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
16567         Rename argument tm_fn to md_fn.
16568
16569         (TARGET_OPTION_PRINT): Fix argument list.
16570
16571 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
16572
16573         PR target/42664
16574         * config/i386/i386.c (ix86_fixup_binary_operands):
16575         Revert FMA4 fixup of operands.
16576
16577 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16578
16579         PR gcc/42525
16580         * Makefile.in (write_entries_to_file, install-plugin):
16581         Use \012 instead of \n with tr.
16582
16583 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
16584
16585         * configure.ac (HAVE_AS_REF): New C macro.
16586         * configure: Regenerate.
16587         * config.in: Likewise.
16588         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
16589         if HAVE_AS_REF.
16590         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
16591         if HAVE_AS_REF.
16592
16593 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
16594
16595         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
16596
16597         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
16598
16599         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
16600
16601         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
16602
16603         (TARGET_IN_SMALL_DATA_P): Fix argument type.
16604
16605         (TARGET_BINDS_LOCAL_P): Fix argument type.
16606
16607         (TARGET_ASM_FILE_END): Use prototype.
16608
16609         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
16610
16611         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
16612
16613         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
16614
16615         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
16616
16617         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
16618         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
16619
16620         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
16621         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
16622
16623         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
16624         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
16625         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
16626         (TARGET_ADDR_SPACE_CONVERT): Likewise.
16627
16628         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
16629
16630         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
16631
16632         (TARGET_INIT_BUILTINS): Use prototype.
16633
16634         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
16635         Put 'const char *' in braces.  Fix parameter types.
16636         (TARGET_INVALID_CONVERSION): Fix parameter types.
16637         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
16638         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
16639
16640         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
16641         Fix argument type.
16642
16643         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
16644
16645         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
16646
16647 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
16648
16649         * doc/tm.texi (TARGET_HELP): Fix return type.
16650
16651         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
16652         in braces.  Fix argument types.
16653
16654         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
16655
16656         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
16657
16658         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
16659
16660         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
16661         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
16662
16663         (TARGET_MANGLE_TYPE): Fix argument types.
16664
16665         (TARGET_IRA_COVER_CLASSES): Use prototype.
16666
16667         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
16668
16669         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
16670
16671         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
16672
16673         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
16674
16675         (TARGET_CALLEE_COPIES): Fix argument types.
16676
16677         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
16678
16679         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
16680
16681         (TARGET_FUNCTION_VALUE): Fix argument types.
16682
16683         (TARGET_RETURN_IN_MSB): Fix argument type.
16684
16685         (TARGET_RETURN_IN_MEMORY): Fix argument types.
16686
16687         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
16688
16689         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
16690
16691         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
16692         agree with return type.
16693
16694         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
16695
16696 2010-01-15  Jing Yu  <jingyu@google.com>
16697
16698         PR rtl-optimization/42691
16699         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
16700         a pseudo to a constant and are merged, and adjust comments.
16701
16702 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
16703
16704         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
16705
16706 2010-01-15  Richard Guenther  <rguenther@suse.de>
16707
16708         PR middle-end/42739
16709         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
16710         labels of computed or non-local gotos to the destination.
16711         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
16712         landing pad label is the first label.
16713
16714 2010-01-15  Richard Guenther  <rguenther@suse.de>
16715
16716         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
16717
16718 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16719
16720         PR target/42747
16721         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
16722         to allow generation of the xssqrtdp instruction on power7.
16723         (sqrtdf2_fpr): Ditto.
16724
16725 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
16726
16727         PR middle-end/42674
16728         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
16729         functions with noreturn attribute.
16730
16731         PR c++/42608
16732         * varasm.c (declare_weak): Add weak attribute to decl if it
16733         doesn't have one already.
16734         (assemble_external): Only add decls to weak_decls if they also
16735         have weak attribute.
16736
16737 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
16738
16739         * var-tracking.c (var_reg_delete): Don't delete the association
16740         between REGs and values or one-part variables if the register
16741         isn't clobbered.
16742
16743 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
16744
16745         PR debug/42657
16746         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
16747         because its first operand is a non-localized variable.
16748
16749 2010-01-14  Martin Jambor  <mjambor@suse.cz>
16750
16751         PR tree-optimization/42706
16752         * tree-sra.c (encountered_recursive_call): New variable.
16753         (encountered_unchangable_recursive_call): Likewise.
16754         (sra_initialize): Initialize both new variables.
16755         (callsite_has_enough_arguments_p): New function.
16756         (scan_function): Call decl and flags check only for IPA-SRA, check
16757         whether there is a recursive call and whether it has enough arguments.
16758         (all_callers_have_enough_arguments_p): New function.
16759         (convert_callers): Look for recursive calls only when
16760         encountered_recursive_call is set.
16761         (ipa_early_sra): Bail out either if
16762         !all_callers_have_enough_arguments_p or
16763         encountered_unchangable_recursive_call.
16764
16765 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16766
16767         * sel-sched.c: Add 2010 to copyright years.
16768         * sel-sched-ir.c: Likewise.
16769         * sel-sched-ir.h: Likewise.
16770
16771 2010-01-14  Martin Jambor  <mjambor@suse.cz>
16772
16773         PR tree-optimization/42714
16774         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
16775         constructors specially.
16776
16777 2010-01-14  Andi Kleen  <ak@linux.intel.com>
16778
16779         * config/i386/drivers-i386.c (detect_caches_intel):
16780         Add l2sizekb parameter and fill in.
16781         (host_detect_local_cpu): Add l2sizekb, fill in.
16782         Add Atom small cache heuristic.
16783
16784 2010-01-14  Andi Kleen  <ak@linux.intel.com>
16785
16786         * config/i386/drivers-i386.c (detect_caches_cpuid4):
16787         Add level3 parameter and fill in.
16788         (detect_caches_intel): Handle level3 cache.
16789
16790 2010-01-14  Andi Kleen  <ak@linux.intel.com>
16791
16792         * config/i386/drivers-i386.c (host_detect_local_cpu):
16793         Fix core duo detection.
16794
16795 2010-01-14  Andi Kleen  <ak@linux.intel.com>
16796
16797         * config/i386/drivers-i386.c (host_detect_local_cpu):
16798         Fix Atom detection.
16799
16800 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16801
16802         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
16803         (rs6000_variable_issue_1): this.  Use...
16804         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
16805
16806 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16807
16808         * sel-sched-ir.c (sel_restore_other_notes): Rename to
16809         sel_restore_notes.  Update all callers.  Call reemit_notes
16810         for all insns.
16811
16812 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16813
16814         PR rtl-optimization/42246
16815         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
16816         loops.
16817
16818 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16819
16820         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
16821         all successors is the same as number of successors in current region.
16822
16823 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16824
16825         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
16826         to rename is not separable.  Otherwise check that its LHS is not NULL.
16827
16828 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16829
16830         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
16831
16832 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16833
16834         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
16835         available registers when failed to discover LHS register class.
16836         Fix indentation.  Update comment.
16837
16838 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16839             Alexander Monakov  <amonakov@ispras.ru>
16840
16841         PR rtl-optimization/42389
16842         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
16843         to can_issue_more.
16844         (advance_state_on_fence): Likewise.
16845         (sel_target_adjust_priority): Print debug output only when
16846         sched_verbose >= 4, not 2.
16847         (get_expr_cost): Do not issue all unique insns on the next cycle.
16848         (fill_insns): Initialize can_issue_more from the value saved
16849         with the fence.
16850         * sel-sched-ir.c (flist_add): New parameter issue_more.
16851         Init FENCE_ISSUE_MORE with it.
16852         (merge_fences): Likewise.
16853         (init_fences): Update call to flist_add.
16854         (add_to_fences, add_clean_fence_to_fences)
16855         (add_dirty_fence_to_fences): Likewise.
16856         (move_fence_to_fences): Update call to merge_fences.
16857         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
16858         sched groups.
16859         * sel-sched-ir.h (struct _fence): New field issue_more.
16860         (FENCE_ISSUE_MORE): New accessor macro.
16861
16862 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16863
16864         PR rtl-optimization/42388
16865         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
16866         that have no predecessors nor successors.  Do not call move_bb_info
16867         for empty blocks outside of current region.
16868
16869 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16870
16871         PR rtl-optimization/42294
16872         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
16873         * sel-sched.c (move_exprs_to_boundary): Transitively add all
16874         originators' originators.
16875
16876 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
16877
16878         PR rtl-optimization/39453
16879         PR rtl-optimization/42246
16880         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
16881         for pipelining_p.
16882         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
16883
16884 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16885             Alexander Monakov  <amonakov@ispras.ru>
16886
16887         PR middle-end/42245
16888         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
16889         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
16890         argument.  Update all callers.
16891         (tidy_control_flow): ... and here.  Recompute topological order
16892         of basic blocks in region if necessary.
16893         (sel_redirect_edge_and_branch): Change return type.  Return true
16894         if topological order might have been invalidated.
16895         (purge_empty_blocks): Export and move from...
16896         * sel-sched.c (purge_empty_blocks): ... here.
16897         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
16898         (maybe_tidy_empty_bb): Delete prototype.
16899         (purge_empty_blocks): Declare.
16900
16901 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
16902
16903         PR rtl-optimization/42249
16904         * sel-sched.c (try_replace_dest_reg): When chosen register
16905         and original register is the same, do not bail out early, but
16906         still check all original insns for validity of replacing destination
16907         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
16908         in this case.
16909
16910 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
16911
16912         PR c/42721
16913         Port from no-undefined-overflow branch:
16914         2009-03-09  Richard Guenther  <rguenther@suse.de>
16915
16916         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
16917
16918 2010-01-14  Richard Guenther  <rguenther@suse.de>
16919
16920         PR lto/42665
16921         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
16922
16923 2010-01-14  Ira Rosen  <irar@il.ibm.com>
16924
16925         PR tree-optimization/42709
16926         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
16927         as scalar type in creation of constant vector operand.
16928
16929 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16930
16931         PR testsuite/42414
16932         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
16933         (check-parallel-%): Match `testsuite' directory component only
16934         at the end.
16935
16936 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
16937
16938         PR translation/39521
16939         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
16940         strings with _().
16941
16942 2010-01-13  Richard Guenther  <rguenther@suse.de>
16943
16944         PR tree-optimization/42730
16945         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
16946         offset zero.
16947
16948 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
16949
16950         PR target/pr42542
16951         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
16952         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
16953         them signed.
16954
16955 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
16956
16957         * config/bfin/libgcc-bfin.ver: Regenerate based on current
16958         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
16959         ___umulsi3_highpart.
16960
16961         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
16962         rather than schedule_insns if the pass is enabled.
16963
16964 2010-01-13  Martin Jambor  <mjambor@suse.cz>
16965
16966         PR tree-optimization/42704
16967         * tree-sra.c (sra_modify_assign): Do not delete assignments to
16968         SSA_NAMEs.
16969
16970 2010-01-13  Martin Jambor  <mjambor@suse.cz>
16971
16972         PR tree-optimization/42703
16973         * tree-sra.c (analyze_access_subtree): Check that we can build a
16974         reference to the original data within the aggregate.
16975
16976 2010-01-13  Richard Guenther  <rguenther@suse.de>
16977
16978         PR tree-optimization/42705
16979         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
16980
16981 2010-01-13  Richard Guenther  <rguenther@suse.de>
16982
16983         PR middle-end/42716
16984         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
16985
16986 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
16987
16988         PR debug/41371
16989         * var-tracking.c (values_to_unmark): New variable.
16990         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
16991         values_to_unmark vector.  Moved body to...
16992         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
16993         instead queue it into values_to_unmark vector.
16994         (vt_find_locations): Free values_to_unmark vector.
16995
16996 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
16997
16998         * config/s390/s390.c (override_options): Set
16999         default of max-pending-list-length to 256
17000
17001 2010-01-13  Richard Guenther  <rguenther@suse.de>
17002
17003         PR lto/42678
17004         * tree-pass.h (PROP_gimple_lcx): New.
17005         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
17006         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
17007         before the final cleanup_eh.
17008         (dump_properties): Dump PROP_gimple_lcx.
17009         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
17010         (tree_lower_complex_O0): Remove.
17011         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
17012         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
17013         tree_lower_complex, schedule TODO_update_ssa.
17014         * lto-streamer-out.c (output_function): Stream the functions
17015         properties.
17016         * lto-streamer-in.c (input_function): Likewise.
17017         (lto_read_body): Do not override them here.
17018
17019 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
17020
17021         PR c/42708
17022         * c-typeck.c (build_c_cast): Fold value cast to union type before
17023         wrapping it in a CONSTRUCTOR.
17024
17025 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
17026
17027         PR rtl-optimization/42699
17028         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
17029         involved.
17030
17031 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17032
17033         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
17034         SUBTARGET_WARN_UNUSED_SPEC): Move ...
17035         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
17036         SUBTARGET_WARN_UNUSED_SPEC): ... here
17037         * config/mips/iris5.h (LIBGCC_SPEC): Define.
17038
17039 2010-01-12  Julian Brown  <julian@codesourcery.com>
17040
17041         * config/arm/neon-schedgen.ml (Utils): Don't try to
17042         open missing module.
17043         (find_with_result): New.
17044
17045 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
17046
17047         PR debug/42662
17048         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
17049         sharing when canonicalizing ({lt,ge}u (plus a b) b).
17050
17051         PR tree-optimization/42645
17052         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
17053         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
17054         decl_map, set processing_debug_stmt to -1 and return name without
17055         any remapping.
17056
17057 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
17058
17059         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
17060         binutils version, and reword target configuration description.
17061
17062 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
17063
17064         * config/avr/avr.h (LINKER_NAME): Remove.
17065
17066 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
17067
17068         PR target/42416
17069         * config/rs6000/rs6000.c (rs6000_override_options): On targets
17070         that support VSX, warn for -mno-altivec if vsx is not disabled,
17071         and disable vsx.
17072
17073 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
17074             Shujing Zhao  <pearly.zhao@oracle.com>
17075
17076         PR translation/42469
17077         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
17078         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
17079         character between option name and help text.
17080         * c.opt (imultilib): Likewise.
17081
17082 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
17083
17084         * lto-streamer-out.c (output_unreferenced_globals): Output static
17085         variables.
17086
17087 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
17088
17089         PR rtl-optimization/42621
17090         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
17091         optimizing for size.
17092         (duplicate_computed_gotos): Remove now-redundant check.
17093
17094 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
17095
17096         PR target/37454
17097         * configure.ac: Save and restore LDFLAGS and LIBS
17098         * configure: Regenerate.
17099
17100 2010-01-10  Richard Guenther  <rguenther@suse.de>
17101
17102         PR middle-end/42667
17103         * builtins.c (fold_builtin_strlen): Add type argument and
17104         convert the resulting length to it.
17105         (fold_builtin_1): Adjust.
17106
17107 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
17108
17109         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
17110         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
17111         1 insn.
17112         (num_insns_constant_wide): Adjust for that change.
17113
17114 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17115
17116         PR debug/42631
17117         * web.c (union_defs): Add used argument, to combine uses of
17118         uninitialized regs.
17119         (entry_register): Adjust type and tests of used argument.
17120         (web_main): Widen used for new use.  Pass it to union_defs.
17121         * df.h (union_defs): Adjust prototype.
17122
17123 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17124
17125         PR debug/42630
17126         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
17127         uses in new incoming argument.  Free body.
17128         (reset_debug_uses_in_loop): New.
17129         (analyze_insn_to_expand_var): Call the latter if the former found
17130         anything.  Fix whitespace.  Reject invalid dest overlaps before
17131         going through all insns in the loop.
17132
17133 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17134
17135         PR debug/42629
17136         * haifa-sched.c (dying_use_p): Debug insns don't count.
17137
17138 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17139
17140         PR middle-end/42363
17141         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
17142         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
17143         (verify_gimple_call): Reject LHS in noreturn calls.
17144
17145 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17146
17147         PR debug/42604
17148         PR debug/42395
17149         * tree-vect-loop-manip.c (adjust_info): New type.
17150         (adjust_vec): New pointer to vector.
17151         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
17152         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
17153         (slpeel_update_phis_for_duplicate_loop): Use them.
17154         (slpeel_update_phi_nodes_for_guard1): Likewise.
17155         (slpeel_update_phi_nodes_for_guard2): Likewise.
17156         (slpeel_tree_peel_loop_to_edge): Likewise.
17157         (vect_update_ivs_after_vectorizer): Likewise.
17158
17159 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17160
17161         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
17162         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
17163
17164 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
17165
17166         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
17167         bogus uninitialized warning.
17168
17169 2010-01-09  Richard Guenther  <rguenther@suse.de>
17170
17171         PR middle-end/42512
17172         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
17173         the evolution is compatible with the initial condition.
17174
17175 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
17176
17177         * gcc.c (process_command): Update copyright notice dates.
17178         * gcov.c (print_version): Likewise.
17179         * gcov-dump.c (print_version): Likewise.
17180         * mips-tfile.c (main): Likewise.
17181         * mips-tdump.c (main): Likewise.
17182
17183 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
17184
17185         PR target/41885
17186         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
17187         (rotlhi3): Delete.
17188         (rotlhi3_8): Delete.
17189         (rotlsi3): Delete.
17190         (rotlsi3_8): Delete.
17191         (rotlsi3_16): Delete.
17192         (rotlsi3_24): Delete.
17193         (rotl<mode>3): New.
17194         (*rotw<mode>3): New.
17195         (*rotb<mode>3): New.
17196         * config/avr/avr.c (avr_rotate_bytes): New function.
17197         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
17198
17199 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
17200
17201         PR target/37454
17202         * configure.ac: Modify -rdynamic check.
17203         * configure: Regenerate.
17204
17205 2010-01-08  DJ Delorie  <dj@redhat.com>
17206
17207         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
17208         register popping order.
17209
17210 2010-01-08  Richard Guenther  <rguenther@suse.de>
17211
17212         PR lto/42528
17213         * c.opt (fsigned-char): Also let LTO handle this option.
17214         (funsigned-char): Likewise.
17215
17216 2010-01-07  Richard Guenther  <rguenther@suse.de>
17217
17218         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
17219         (gimple_op): Likewise.
17220         (gimple_op_ptr): Likewise.
17221         (gimple_assign_set_lhs): Remove gcc_assert.
17222         (gimple_assign_set_rhs1): Likewise.
17223         (gimple_assign_set_rhs2): Likewise.
17224         (gimple_call_set_lhs): Likewise.
17225         (gimple_call_set_fn): Likewise.
17226         (gimple_call_set_fndecl): Likewise.
17227         (gimple_call_fndecl): Likewise.
17228         (gimple_call_return_type): Likewise.
17229         (gimple_call_set_chain): Likewise.
17230         (gimple_call_num_args): Likewise.
17231         (gimple_call_set_arg): Likewise.
17232         (gimple_cond_set_code): Likewise.
17233         (gimple_cond_set_lhs): Likewise.
17234         (gimple_cond_set_rhs): Likewise.
17235         (gimple_cond_set_true_label): Likewise.
17236         (gimple_cond_set_false_label): Likewise.
17237         (gimple_label_set_label): Likewise.
17238         (gimple_goto_set_dest): Likewise.
17239         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
17240         (gimple_debug_bind_get_value): Likewise.
17241         (gimple_debug_bind_get_value_ptr): Likewise.
17242         (gimple_debug_bind_set_var): Likewise.
17243         (gimple_debug_bind_set_value): Likewise.
17244         (gimple_debug_bind_reset_value): Likewise.
17245         (gimple_debug_bind_has_value_p): Likewise.
17246         (gimple_return_retval_ptr): Remove gcc_assert.
17247         (gimple_return_retval): Likewise.
17248         (gimple_return_set_retval): Likewise.
17249         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
17250         (safe_referenced_var_iterator): Remove.
17251         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
17252         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
17253         (fill_referenced_var_vec): Remove.
17254         (first_readonly_imm_use): Remove redundant gcc_assert.
17255         (phi_arg_index_from_use): Combine gcc_asserts.
17256         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
17257         (first_imm_use_stmt): Remove redundant gcc_assert.
17258         * tree-cfg.c (verify_gimple_call): Verify function and chain
17259         operands.  Verify arguments.
17260         (verify_types_in_gimple_stmt): Verify condition code and labels.
17261
17262 2010-01-07  Richard Guenther  <rguenther@suse.de>
17263
17264         PR tree-optimization/42641
17265         * sese.c (rename_map_elt_info): Use the SSA name version, do
17266         not hash pointers.
17267
17268 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
17269
17270         PR tree-optimization/42625
17271         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
17272         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
17273
17274 2010-01-07  Duncan Sands  <baldrick@free.fr>
17275
17276         * Makefile.in (PLUGIN_HEADERS): Add version.h.
17277
17278 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
17279
17280         PR target/42511
17281         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
17282         note itself is not function_invariant_p.
17283
17284 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
17285
17286         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
17287         Do not add the DF_NOTE problem.
17288         * store-motion.c (execute_rtl_store_motion): Likewise.
17289
17290 2010-01-07  Martin Jambor  <mjambor@suse.cz>
17291
17292         PR tree-optimization/42157
17293         * tree-sra.c (compare_access_positions): Stabilize sort if both
17294         accesses have integer types, return zero immediately if they are the
17295         same.
17296
17297 2010-01-06  Richard Henderson  <rth@redhat.com>
17298
17299         PR middle-end/41883
17300         * haifa-sched.c (add_to_note_list): Merge into ...
17301         (concat_note_lists): ... here, and ...
17302         (unlink_other_notes, rm_other_notes): Merge into...
17303         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
17304         NOTE_INSN_EPILOGUE_BEG.
17305
17306 2010-01-06  Richard Guenther  <rguenther@suse.de>
17307
17308         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
17309         not inline regular functions into always-inline functions.
17310
17311 2010-01-06  Nick Clifton  <nickc@redhat.com>
17312
17313         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
17314         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
17315         used together.
17316         (OVERRIDE_OPTIONS): Delete.
17317         (OPTIMIZATION_OPTIONS): Define.
17318         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
17319         * config/rx/rx.c (rx_handle_option): Issue an error message if
17320         -mcpu=rx200 and -fpu are used together.
17321         (rx_set_optimization_options): New function.  Issue an error
17322         message if an optimization attribute attempts to reset the FPU/
17323         math optimization pairing.
17324         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
17325         * config/rx/rx.opt: Set the default to 32-bit doubles.
17326         * config/rx/t-rx: Add multilibs for -nofpu option.
17327         * doc/invoke.texi: Update documentation of RX options.
17328
17329 2010-01-06  Richard Guenther  <rguenther@suse.de>
17330
17331         * tree-ssa-pre.c (name_to_id): New global.
17332         (alloc_expression_id): Simplify SSA name handling.
17333         (lookup_expression_id): Likewise.
17334         (init_pre): Zero name_to_id.
17335         (fini_pre): Free it.
17336
17337 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
17338
17339         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
17340
17341 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17342
17343         PR target/42542
17344         * config/i386/sse.md (smaxv2di3): New.
17345         (umaxv2di3): Likewise.
17346         (sminv2di3): Likewise.
17347         (uminv2di3): Likewise.
17348
17349 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
17350
17351         PR target/42564
17352         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
17353         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
17354         (legitimize_tls_address): Likewise.
17355         (sparc_tls_referenced_p): Likewise.
17356         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
17357         and adjust calls to legitimize_pic_address.
17358         (legitimate_constant_p) Use sparc_tls_referenced_p.
17359         (legitimate_pic_operand_p): Likewise.
17360         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
17361         (sparc_tls_symbol_ref_1): Delete.
17362         (sparc_tls_referenced_p): Make static, recognize specific patterns.
17363         (legitimize_tls_address): Make static, handle CONST patterns.
17364         (legitimize_pic_address): Make static, remove unused parameter and
17365         adjust recursive calls.
17366         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
17367         and adjust call to legitimize_pic_address.
17368         (sparc_output_mi_thunk): Likewise.
17369
17370 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
17371             H.J. Lu  <hongjiu.lu@intel.com>
17372
17373         PR target/42542
17374         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
17375         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
17376         operands to make them signed.
17377
17378         Revert:
17379         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17380
17381         PR target/42542
17382         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
17383         GTU to GT for V4SI and V2DI.
17384
17385         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
17386         (umin<mode>3): Removed.
17387         (uminv8hi3): New.
17388         (uminv4si3): Likewise.
17389
17390 2010-01-05  Martin Jambor  <mjambor@suse.cz>
17391
17392         PR tree-optimization/42462
17393         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
17394         current_function_decl to helper functions and macros.
17395
17396 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17397
17398         PR bootstrap/41771
17399         * flags.h: Don't include real.h.
17400         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
17401         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
17402         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
17403         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
17404         * dominance.c: Update copyright.
17405         * gimple.c (walk_gimple_op): Remove inline.
17406         * tree-ssa-reassoc.c: Include real.h.
17407         * Makefile.in (FLAGS_H): Remove $(REAL_H).
17408         (tree-ssa-reassoc.o): Depend on $(REAL_H).
17409
17410 2010-01-05  Nick Clifton  <nickc@redhat.com>
17411
17412         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
17413         register to push into the stack frame when the accumulator has to
17414         be saved during interrupts.
17415
17416 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
17417
17418         * doc/invoke.texi: Remove the documentation about option
17419         -Wunreachable-code.
17420         * common.opt (Wunreachable-code):  Preserved for backward
17421         compatibility.
17422         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
17423         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
17424         the backward compatibility flag section.
17425
17426 2010-01-05  Richard Guenther  <rguenther@suse.de>
17427
17428         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
17429
17430 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
17431
17432         PR other/42611
17433         * cfgexpand.c (expand_one_var): Diagnose too large variables.
17434
17435         PR tree-optimization/42508
17436         * tree-sra.c (convert_callers): Check for recursive call
17437         by comparing cgraph nodes instead of decls.
17438         (modify_function): Call ipa_modify_formal_parameters also
17439         on all same_body aliases.
17440
17441         * cgraphunit.c (cgraph_materialize_all_clones): Compare
17442         cgraph nodes when checking for same_body aliases.
17443
17444 2010-01-05  Richard Guenther  <rguenther@suse.de>
17445
17446         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
17447         allocation and lookup.
17448         (get_or_alloc_expr_for_constant): Likewise.
17449         (phi_translate): Sink allocation.
17450
17451 2010-01-04  Richard Guenther  <rguenther@suse.de>
17452
17453         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
17454         a new entry only if needed.
17455         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
17456         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
17457         hashtable lookup.
17458         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
17459         the result array.
17460         (phi_translate): Handle CONSTANTs early.
17461
17462 2010-01-04  Martin Jambor  <mjambor@suse.cz>
17463
17464         PR tree-optimization/42398
17465         * tree-sra.c (struct access): Removed flag grp_different_types.
17466         (dump_access): Do not dump the removed flag.
17467         (sort_and_splice_var_accesses): Do not set the removed flag.
17468         (sra_modify_expr): Check for type compatibility directly.
17469
17470 2010-01-04  Martin Jambor  <mjambor@suse.cz>
17471
17472         PR tree-optimization/42366
17473         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
17474         edges with variable number of parameters.
17475         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
17476         flag instead of asserting it.
17477         (ipa_read_node_info): Read uses_analysis_done flag.
17478
17479 2010-01-04  Richard Guenther  <rguenther@suse.de>
17480
17481         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
17482         iterative_hash_* as intended.
17483         (vn_reference_compute_hash): Likewise.  Simplify hashing
17484         SSA names.
17485         (vn_reference_lookup_2): Likewise.
17486         (vn_nary_op_compute_hash): Likewise.
17487         (vn_phi_compute_hash): Likewise.
17488         (expressions_equal_p): Remove strange code.
17489         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
17490         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
17491         (bitmap_insert_into_set_1): Take value-id as parameter.
17492         (add_to_value): Pass it.
17493         (bitmap_insert_into_set): Likewise.
17494         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
17495
17496 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
17497
17498         PR driver/42442
17499         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
17500         (do_self_spec): For switches with SWITCH_IGNORE set set also
17501         SWITCH_IGNORE_PERMANENTLY.
17502         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
17503         of SWITCH_IGNORE.
17504
17505 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
17506
17507         * lto-streamer-out.c (output_unreferenced_globals): Output the full
17508         tree of an unreferenced global var.
17509
17510 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17511
17512         PR target/42542
17513         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
17514         GTU to GT for V4SI and V2DI.
17515
17516         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
17517         (umin<mode>3): Removed.
17518         (uminv8hi3): New.
17519         (uminv4si3): Likewise.
17520
17521 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
17522
17523         PR lto/42581
17524         * collect2.c (main): Turn on trace in collect2 if -v is passed
17525         to gcc with LTO.
17526
17527 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
17528
17529         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
17530         description of expression operand.
17531
17532 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
17533
17534         * configure.ac: Add install-html to target_list for Make-hooks.
17535         * configure: Regenerate.
17536         * fortran/Make-lang.in (F95_HTMLFILES): New.
17537         (fortran.html): Use it.
17538         (fortran.install-html): New.
17539         * Makefile.in (install-html): Add lang.install-html.
17540         * java/Make-lang.in (JAVA_HTMLFILES): New.
17541         (java.html): Use it.
17542         (java.install-html): New.
17543         * objc/Make-lang.in (objc.install-html): New.
17544         * objcp/Make-lang.in (obj-c++.install-html): New.
17545         * cp/Make-lang.in (c++.install-html): New.
17546         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
17547         * lto/Make-lang.in (lto.install-html): New.
17548
17549 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
17550
17551         PR lto/42520
17552         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
17553
17554 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
17555
17556         PR rtl-optimization/41862
17557         * store-motion.c (store_killed_in_insn, compute_store_table,
17558         remove_reachable_equiv_notes, replace_store_insn,
17559         build_store_vectors): Ignore all DEBUG_INSNs.
17560
17561 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
17562
17563         PR lto/41564
17564         * common.opt: Add dumpdir.
17565
17566         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
17567         isn't specified.
17568         (option_map): Add --dumpdir.
17569
17570         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
17571
17572         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
17573
17574         * opts.c (decode_options): Try dump_dir_name first if
17575         dump_base_name isn't an absolute path.
17576         (common_handle_option): Handle OPT_dumpdir.
17577
17578         * toplev.c (dump_dir_name): New.
17579         (print_switch_values): Also ignore -dumpdir.
17580
17581         * toplev.h (dump_dir_name): New.
17582
17583 2010-01-03  Richard Guenther  <rguenther@suse.de>
17584
17585         PR tree-optimization/42589
17586         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
17587         double-word expansion of bswap32.
17588
17589 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
17590
17591         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
17592         with BLOCK_FOR_INSN.
17593         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
17594         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
17595         noce_process_if_block): Likewise.
17596         * gcse.c (compute_local_properties, insert_expr_in_table,
17597         insert_set_in_table, canon_list_insert, find_avail_set,
17598         pre_insert_copy_insn): Likewise.
17599
17600         * basic-block.h (BLOCK_NUM): Move from here...
17601         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
17602
17603 2010-01-03  Richard Guenther  <rguenther@suse.de>
17604
17605         PR tree-optimization/42438
17606         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
17607         contains_may_not_return_call flag.
17608         (BB_MAY_NOTRETURN): New.
17609         (valid_in_sets): Trapping nary operations are not valid
17610         in blocks that may not return.
17611         (insert_into_preds_of_block): Remove check for trapping expressions.
17612         (compute_avail): Compute also BB_MAY_NOTRETURN.
17613
17614 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
17615
17616         * doc/invoke.texi: Add 2010 to copyright years.
17617
17618 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
17619
17620         * config/sparc/sparc.c: Fix formatting nits.
17621
17622 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
17623             Alexander Monakov  <amonakov@ispras.ru>
17624
17625         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
17626
17627 2010-01-02  Richard Guenther  <rguenther@suse.de>
17628
17629         PR middle-end/42577
17630         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
17631         (simplify_switch_using_ranges): Mark to be removed edges
17632         as non-executable.
17633
17634 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17635
17636         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
17637
17638         * collect2.c (scan_libraries): Add missing argument in call to
17639         scan_prog_file.
17640
17641 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
17642
17643         PR target/42448
17644         * config/alpha/predicates.md (aligned_memory_operand): Return false
17645         for CQImode.
17646         (unaligned_memory_operand): Return true for CQImode.
17647         * config/alpha/alpha.c (get_aligned_mem): Assert that location
17648         doesn not cross aligned SImode word boundary.
17649
17650 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
17651
17652         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
17653         Remove.
17654         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
17655         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
17656
17657 2010-01-02  Richard Guenther  <rguenther@suse.de>
17658
17659         PR lto/41597
17660         * toplev.c (compile_file): Emit LTO marker properly.  Change
17661         it to __gnu_lto_v1.
17662         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
17663
17664 2010-01-01  Richard Guenther  <rguenther@suse.de>
17665
17666         PR debug/42455
17667         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
17668
17669 2010-01-01  Richard Guenther  <rguenther@suse.de>
17670
17671         PR c/42570
17672         * c-decl.c (grokdeclarator): For zero-size arrays force
17673         structural equality checks as layout_type does.
17674
17675 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
17676
17677         * builtins.c: Update copyright to 2010.
17678
17679 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
17680
17681         PR lto/42531
17682         * lto-streamer-out.c (produce_asm): Revert the last change.
17683         (copy_function): Likewise.
17684
17685         * lto-streamer.c (lto_get_section_name): Skip any leading
17686         asterisk in name.
17687
17688 2010-01-01  Richard Guenther  <rguenther@suse.de>
17689
17690         PR middle-end/42559
17691         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
17692         for LABEL_DECLs.
17693
17694 \f
17695 Copyright (C) 2010 Free Software Foundation, Inc.
17696
17697 Copying and distribution of this file, with or without modification,
17698 are permitted in any medium without royalty provided the copyright
17699 notice and this notice are preserved.