OSDN Git Service

* incpath.c (remove_duplicates): If name is not a directory, issue
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-15  Ian Lance Taylor  <iant@google.com>
2
3         * incpath.c (remove_duplicates): If name is not a directory, issue
4         a warning rather than an error.
5
6 2010-09-15  Martin Jambor  <mjambor@suse.cz>
7
8         PR middle-end/45644
9         * tree-sra.c (create_access): Check for bit-fields directly.
10
11 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12
13         PR tree-optimization/45633
14         * tree-cfg.c (verify_gimple_assign_binary): Allow
15         MINUS_EXPR with lhs and rhs1 pointer vector and
16         rhs2 sizetype vector.
17         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
18         or vector pointer use TER to optimize pointer subtraction.
19
20 2010-09-15  Jie Zhang  <jie@codesourcery.com>
21
22         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
23         fcmpd to fcmps.
24
25 2010-09-15  Ian Lance Taylor  <iant@google.com>
26
27         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
28
29 2010-09-15  Ian Lance Taylor  <iant@google.com>
30
31         * function.c (get_arg_pointer_save_area): Set
32         arg_pointer_save_area_init to true.
33
34 2010-09-15  Martin Jambor  <mjambor@suse.cz>
35
36         * tree-sra.c (generate_subtree_copies): Updated comment.
37         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
38         obtained from the statement iterator instead.
39         (load_assign_lhs_subreplacements): Removed parameters lhs and
40         right_offset, which is obtained from top_racc instead.  Parameter lacc
41         is now expected to be the root of the processed tree rather than root's
42         first child.  Updated all callers.
43
44 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
45
46         * config/pdp11/pdp11.c (register_move_cost): Rename to
47         pdp11_register_move_cost.
48         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
49         pdp11_register_move_cost.
50         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
51         pdp11_register_move_cost instead of register_move_cost.
52
53 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
54
55         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
56         pattern for vmovn. Expansion in case of non 
57         -mvectorize-with-neon-quad.
58         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
59         non- -mvectorize-with-neon-quad case.
60         (move_lo_quad_<mode>): New expansion to vmov into low part.
61         (move_hi_quad_<mode>): New expansion to vmov into high part.
62         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
63         (move_lo_quad_v4sf): Likewise.
64         (move_lo_quad_v8hi): Likewise.
65         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
66         low part.
67         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
68         high part.
69         * config/arm/iterators.md (ANY128): New mode iterator.
70         (V_narrow_pack): New mode attribute.
71         (V_HALF): Add attribute.
72         (V_DOUBLE): Add attribute.
73         (V_mode_nunits): Add attribute.
74
75 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
76
77         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
78         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
79
80 2010-09-15  Olivier Hainque  <hainque@adacore.com>
81             Jose Ruiz  <ruiz@adacore.com>
82
83         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
84         * config/alpha/osf5-unwind.h: New file.
85
86 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
87
88         PR bootstrap/45672
89         * config/mips/mips.c (mips_units_per_simd_word): Correct return
90         type.
91         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
92         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
93
94 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
95
96         * c-lang.h (struct lang_type): Add variable_size GTY option.
97
98 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
99
100         PR bootstrap/45672
101         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
102
103 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
104
105         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
106         result isn't used in memory address.
107
108 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
109
110         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
111         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
112         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
113         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
114         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
115         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
116
117         * target.def: Add units_per_simd_word to vectorize.
118
119         * targhooks.c (default_units_per_simd_word): New.
120         * targhooks.h (default_units_per_simd_word): Likewise.
121         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
122         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
123         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
124         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
125         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
126         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
127         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
128         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
129
130         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
131         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
132
133         * tree-vect-stmts.c: Don't include "tm_p.h".
134         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
135         with targetm.vectorize.units_per_simd_word.
136
137         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
138
139         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
140
141         * config/i386/i386.c (ix86_units_per_simd_word): Make it
142         static.
143         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
144
145         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
146         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
147
148         * doc/tm.texi: Regenerated.
149
150 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
151
152         * tree-vect-stmts.c: Include "tm_p.h".
153
154         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
155         out of RTX_CODE.
156
157 2010-09-14  Martin Jambor  <mjambor@suse.cz>
158
159         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
160         location of generated statement.  Changed all callers.
161         (build_ref_for_model): New parameter loc which used to set location of
162         all generated expressions.  Changed all callers.
163         (generate_subtree_copies): Likewise.
164         (init_subtree_with_zero): Likewise.
165         (sra_modify_expr): Set locations of all generated statements and
166         expressions to the location the original statement.
167         (handle_unscalarized_data_in_subtree): Likewise.
168         (load_assign_lhs_subreplacements): Likewise.
169         (sra_modify_constructor_assign): Likewise.
170         (sra_modify_assign): Likewise.
171
172 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
173
174         PR target/45277
175         PR target/45363
176         PR target/45407
177         * doc/install.texi (sparc*-*-*): New section.
178         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
179
180 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
181
182         PR middle-end/45567
183         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
184         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
185         (expand_builtin): Adjust caller.
186         (expand_builtin_unop): Only use subtarget if it has the right mode.
187
188 2010-09-14  Tristan Gingold  <gingold@adacore.com>
189
190         * configure.ac (plugins): Fix typos.
191         * configure: Regenerate.
192
193 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
194
195         PR debug/45660
196         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
197         gen_type_die for function/method return type.
198
199 2010-09-14  Ira Rosen  <irar@il.ibm.com>
200
201         PR tree-optimization/45470
202         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
203         can throw an exception.
204         * tree-vect-stmts.c (vectorizable_call): Likewise.      
205
206 2010-09-14  DJ Delorie  <dj@redhat.com>
207
208         PR target/44749
209         * config/mep/mep-protos.h (mep_save_register_info,
210         mep_reinit_regs, mep_init_regs): Declare.
211
212         * config/mep/mep.c: Move all target definitions to the end of the
213         file to avoid the need for duplicate declarations.
214         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
215         (mep_reorg_erepeat): Remove unused variables.
216         (mep_expand_builtin): Likewise.
217
218         * config/mep/mep-pragma.c: Don't include rtl.h.
219         (INVALID_REGNUM): New.
220         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
221         functions.
222         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
223         Avoid enum/integer math.
224
225 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
226
227         PR target/44749
228         * config/mep/t-mep (GTM_H): Add insn-constants.h.
229         * config/mep/mep.c (mep_conditional_register_usage): Take no
230         parameters.
231         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
232         prototype.
233         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
234         call to mep_conditional_register_usage.
235
236 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
237
238         PR debug/43937
239         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
240         the DECL as well.
241
242 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
243
244         PR rtl-optimization/45617
245         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
246         even if low N bits of X aren't known to be zero.
247
248 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
249
250         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
251
252         * config/i386/i386.c (initial_ix86_tune_features): Add
253         X86_TUNE_VECTORIZE_DOUBLE.
254         (ix86_units_per_simd_word): New.
255
256         * config/i386/i386.h (ix86_tune_indices): Add
257         X86_TUNE_VECTORIZE_DOUBLE.
258         (TARGET_VECTORIZE_DOUBLE): New.
259         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
260
261 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
262
263         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
264         (new_temp_expr_table): Allocate call_cnt vector.
265         (free_temp_expr_table): Free it.
266         (process_replaceable): Add call_cnt parm and set in vector.
267         (find_replaceable_in_bb): Skip replacement if def/use span a call.
268         (debug_ter): Dump call_cnt value, remove stderr uses.
269
270 2010-09-13  Jan Hubicka  <jh@suse.cz>
271
272         * tree.c (build_zero_cst): New.
273         * tree.h (build_zero_cst): Declare.
274         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
275         (get_base_constructor): Break out from ...
276         (fold_const_aggregate_ref): Here; handle empty constructors.
277
278 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
279
280         * config/arm/arm.md: (define_attr "conds"): Update comment.
281         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change 
282         conds attribute to clob.
283         (arm_sync_compare_and_swapsi): Likewise.
284         (arm_sync_compare_and_swap<mode>): Likewise.
285         (arm_sync_lock_test_and_setsi): Likewise.
286         (arm_sync_lock_test_and_set<mode>): Likewise.
287         (arm_sync_new_<sync_optab>si): Likewise.
288         (arm_sync_new_nandsi): Likewise.
289         (arm_sync_new_<sync_optab><mode>): Likewise.
290         (arm_sync_new_nand<mode>): Likewise.
291         (arm_sync_old_<sync_optab>si): Likewise.
292         (arm_sync_old_nandsi): Likewise.
293         (arm_sync_old_<sync_optab><mode>): Likewise.
294         (arm_sync_old_nand<mode>): Likewise.
295
296 2010-09-13  Olivier Hainque  <hainque@adacore.com>
297
298         * fwprop.c (forward_propagate_and_simplify): Only attach a
299         REG_EQUAL note to an insn if the destination is a register.
300         * gcse.c (try_replace_reg): Likewise.
301
302 2010-09-13  Richard Guenther  <rguenther@suse.de>
303
304         PR tree-optimization/45611
305         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
306         (copy_ref_info): Likewise.
307
308 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
309
310         PR debug/45604
311         PR debug/45419
312         PR debug/45408
313         * tree-pretty-print.c (dump_generic_node): Disregard top-level
314         types of MEM_REF pointer types to the same type.
315
316 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
317
318         PR rtl-optimization/41087
319         * ifcvt.c (noce_get_condition): Don't allow conditions with
320         side-effects.
321
322 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
323
324         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
325         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
326         * config/frv/frv.c (frv_register_move_cost): Make static. Change
327         arguments type to reg_class_t. Add mode argument.
328         (frv_memory_move_cost): New.
329         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
330
331 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
332
333         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
334         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
335
336 2010-09-10  Jan Hubicka  <jh@suse.cz>
337
338         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
339
340 2010-09-10  Richard Guenther  <rguenther@suse.de>
341
342         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
343         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
344         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
345         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
346         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
347
348 2010-09-10  Richard Guenther  <rguenther@suse.de>
349
350         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
351         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
352         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
353         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
354
355 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
356
357         PR middle-end/45634
358         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
359         of string folding is of integral type.
360
361 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
362
363         * doc/invoke.texi (-x): Fix typo.
364
365 2010-09-10  Richard Guenther  <rguenther@suse.de>
366
367         PR debug/44115
368         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
369         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
370         Output DECL_DEBUG_EXPR.
371         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
372         Input DECL_DEBUG_EXPR.
373
374 2010-09-10  Richard Guenther  <rguenther@suse.de>
375
376         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare
377         TYPE_SIZE.
378         (build_index_type): Implement in terms of build_range_type.
379         (build_range_type): Do not allow NULL_TREE type, improve
380         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
381         if we didn't hash.
382         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
383         create a distinct copy of the type.
384
385 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
386
387         * configure: Regenerated.
388         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
389
390 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
391
392         * config/arm/neon-schedgen.ml (allCores): Add support for
393         Cortex-A9.
394         * config/arm/cortex-a9-neon.md: New and partially generated.
395         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
396
397 2010-09-10  Richard Guenther  <rguenther@suse.de>
398
399         * tree.h (build_index_2_type): Remove.
400         * tree.c (build_index_2_type): Remove.
401
402 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
403
404         PR bootstrap/45630
405         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
406         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
407         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
408
409 2010-09-10  Martin Jambor  <mjambor@suse.cz>
410
411         PR tree-optimization/44972
412         * tree-sra.c: Include toplev.h.
413         (build_ref_for_offset): Entirely reimplemented.
414         (build_ref_for_model): New function.
415         (build_user_friendly_ref_for_offset): New function.
416         (analyze_access_subtree): Removed build_ref_for_offset check.
417         (propagate_subaccesses_across_link): Likewise.
418         (create_artificial_child_access): Use
419         build_user_friendly_ref_for_offset.
420         (propagate_subaccesses_across_link): Likewise.
421         (ref_expr_for_all_replacements_p): Removed.
422         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
423         (sra_modify_expr): Use build_ref_for_model.
424         (load_assign_lhs_subreplacements): Likewise.
425         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
426         checks for return values of build_ref_for_offset.
427         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
428         build_ref_for_offset.
429         * ipa-prop.h: Include gimple.h
430         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
431         (ipa_analyze_indirect_call_uses): Update comment.
432         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
433         (IPA_PROP_H): Likewise.
434
435 2010-09-10  Martin Jambor  <mjambor@suse.cz>
436
437         PR tree-optimization/44972
438         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
439         calling build_ref_for_offset.
440
441 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
442
443         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
444         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
445         * config/arm/arm-tune.md: Regenerate.
446         * doc/invoke.texi (ARM Options): Document it.
447
448 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
449
450         * config/i386/i386.c: Include sched-int.h.
451         (TARGET_SCHED_DISPATCH): Defined.
452         (TARGET_SCHED_DISPATCH_DO): Defined.
453         (DISPATCH_WINDOW_SIZE): Defined.
454         (MAX_DISPATCH_WINDOWS): Defined.
455         (MAX_INSN): Defined.
456         (MAX_IMM): Defined.
457         (MAX_IMM_SIZE): Defined.
458         (MAX_IMM_32): Defined.
459         (MAX_IMM_64): Defined.
460         (MAX_LOAD): Defined.
461         (MAX_STORE): Defined.
462         (BIG): Defined.
463         (dispatch_group): New.
464         (num_allowable_groups): New.
465         (group_name): New.
466         (sched_insn_info_s): New.
467         (dispatch_windows_s): New.
468         (imm_info_s): New.
469         (dispatch_window_list): New.
470         (dispatch_window_list1): New.
471         (get_mem_group): New.
472         (is_cmp): New.
473         (dispatch_violation): New.
474         (is_branch): New.
475         (is_prefetch): New.
476         (init_window): New.
477         (allocate_window): New.
478         (init_dispatch_sched): New.
479         (is_end_basic_block): New.
480         (process_end_window): New.
481         (allocate_next_window): New.
482         (find_constant_1): New.
483         (find_constant): New.
484         (get_num_immediates): New.
485         (has_immediate): New.
486         (get_insn_path): New.
487         (get_insn_group): New.
488         (count_num_restricted): New.
489         (fits_dispatch_window): New.
490         (add_insn_window): New.
491         (add_to_dispatch_window): New.
492         (debug_dispatch_window_file): New.
493         (debug_dispatch_window): New.
494         (debug_insn_dispatch_info_file): New.
495         (debug_ready_dispatch): New.
496         (do_dispatch): New.
497         (has_dispatch): New.
498         * config/i386/i386.h (debug_ready_dispatch): Declared.
499         (debug_dispatch_window): Declared.
500         * config/i386/i386.opt (mdispatch-scheduler): New flag.
501         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
502         (TARGET_SCHED_DISPATCH_DO): New.
503         * doc/tm.texi: Regererated.
504         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
505         ready_remove_first_dispatch
506         (schedule_block): Call targetm.sched.dispatch and
507         targetm.sched.dispatch_do.
508         (sched_init): Call targetm.sched.dispatch and
509         targetm.sched.dispatch_do.
510         (ready_remove_first_dispatch): New.
511         (number_in_ready): New.
512         (get_ready_element): New.
513         * hooks.c (hook_bool_rtx_int_false): New.
514         (hook_void_rtx_int): New.
515         * hooks.h (hook_bool_rtx_int_false): Declared.
516         (hook_void_rtx_int): Declared.
517         * sched-int.h (IS_DISPATCH_ON): Defined.
518         (IS_CMP): Defined.
519         (DISPATCH_VIOLATION): Defined.
520         (FITS_DISPATCH_WINDOW): Defined.
521         (DISPATCH_INIT): Defined.
522         (ADD_TO_DISPATCH_WINDOW): Defined.
523         (get_ready_element): Declared.
524         (number_in_ready): Declared.
525         * target.def (dispatch): Defined.
526         (dispatch_do): Defined.
527
528 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
529
530         PR middle-end/45312
531         * reload1.c (merge_assigned_reloads): Remove.
532         (reload_as_needed): Don't call it.
533
534 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
535
536         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
537         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
538         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
539
540 2010-09-09  Matthias Klose  <doko@ubuntu.com>
541
542         PR bootstrap/43847
543         * configure.ac (--enable-plugin): Enhance for cross builds.
544         * configure: Regenerate.
545
546 2010-09-09  Jan Hubicka  <jh@suse.cz>
547
548         PR tree-optimization/45598
549         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
550         string folding is of integral type.
551
552 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
553
554         * configure.ac (gnu_indirect_function): New test.
555         * configure: Rebuilt.
556         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
557         * defaults.h (IFUNC_ASM_TYPE): Provide default.
558
559         * doc/extend.texi (Function Attributes): Document ifunc.
560         * varasm.c (do_assemble_alias): Deal with ifuncs too.
561
562 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
563
564         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
565         epilogue instruction move.
566
567 2010-09-09  Jan Hubicka  <jh@suse.cz>
568
569         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
570         command line to allow more partitions than input files.
571
572 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
573
574         PR middle-end/44554
575         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
576
577 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
578
579         PR middle-end/40386
580         * ira.c (pseudo_for_reload_consideration_p): Don't use
581         flag_ira_share_spill_slots.
582
583 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
584
585         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
586         point zero operands that fit into a single GPR.
587         (s390_preferred_reload_class): Ensure we only return general-purpose
588         register classes.
589         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
590         floating-point zero operands into GPRs.
591         ("*mov<mode>_64"): Likewise.
592         ("mov<mode>"): Likewise using lhi.
593
594 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
595
596         * config/s390/s390.c (s390_symref_operand_p): Return false for
597         literal pool references.
598         (s390_check_qrst_address): Update caller.
599
600 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
601
602         * config/i386/predicates.md (ext_register_operand): Check that
603         SUBREG_REG is really a register before looking for REGNO.
604         (reg_not_xmm0_operand): Handle SUBREGs correctly.
605         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
606
607 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
608
609         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
610         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
611         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
612         * print-rtl.c (print_rtx): Likewise.
613         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
614         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
615         for ADDR_EXPR with non-addressable object.
616         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
617         (struct dw_val_struct): Add v.val_decl_ref.
618         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
619         Handle DW_OP_GNU_implicit_pointer.
620         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
621         (get_ref_die_offset_label): New function.
622         (implicit_ptr_descriptor): New function.
623         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
624         (loc_descriptor): Likewise.
625         (gen_variable_die): Put even definitions into decl_die_table.
626         (resolve_addr_in_expr): Resolve still unresolved
627         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
628         return false.
629         (dwarf2out_finish): Call output_location_lists after outputting
630         .debug_info and .debug_abbrev instead of before.
631
632 2010-09-09  Roland McGrath  <roland@redhat.com>
633
634         * dwarf2out.c (DWARF_REF_SIZE): Define.
635         (size_of_loc_descr): Use it for DW_OP_call_ref.
636
637 2010-09-09  Alan Modra  <amodra@gmail.com>
638
639         * doc/invoke.text: Reinstate mcmodel=medium.
640         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
641         CMODEL_MEDIUM as default.
642         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
643         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
644         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
645         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
646
647 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
648
649         PR target/45250
650         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
651         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
652         (builtin_longjmp): Likewise.
653         (allocate_stack): Use hard_frame_pointer_rtx instead of
654         frame_pointer_rtx.
655         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
656         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
657         (pa_can_eliminate): Likewise.
658         (TARGET_INTERNAL_ARG_POINTER): Define.
659         (TARGET_CAN_ELIMINATE): Define.
660         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
661         pointer.
662         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
663         (pa_internal_arg_pointer, pa_can_eliminate,
664         pa_initial_elimination_offset): New.
665         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
666         (HARD_FRAME_POINTER_REGNUM): Set to register three.
667         (INITIAL_FRAME_POINTER_OFFSET): Delete.
668         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
669         Define.
670         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
671         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
672         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
673         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
674         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
675         new soft frame pointer.
676         * config/pa/pa64-regs.h: Likewise.
677
678 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
679
680         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
681         numerical constant.
682         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
683
684 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
685
686         PR debug/45531
687         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
688
689 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
690
691         PR debug/45419
692         PR debug/45408
693         * tree-pretty-print.c (dump_generic_node): Disregard top-level
694         qualifiers in otherwise equal MEM_REF pointer types.
695         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
696         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
697
698 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
699
700         PR target/44392
701         * config/arm/arm.md (bswapsi2): Handle condition correctly
702         for armv6 and optimize_size.
703
704 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
705
706         PR other/18555
707         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
708
709 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
710
711         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
712         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
713         ix86_expand_strlen, legitimate_pic_address_disp_p,
714         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
715         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
716         ix86_check_movabs, ix86_secondary_memory_needed): Change function
717         prototype to bool.
718         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
719         return_in_memory_ms_64, ix86_check_movabs,
720         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
721         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
722         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
723         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
724         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
725         ix86_secondary_memory_needed): Change to bool.  Return
726         "true" and "false" values.
727         * config/i386/i386.md: Return "true" and "false" values.
728
729 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
730
731         * doc/sourcebuild.texi (Effective-Target Keywords): Document
732         run_expensive_tests.
733
734 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
735
736         * toplev.c (output_stack_usage): Use lbasename instead of basename.
737
738 2010-09-08  Martin Jambor  <mjambor@suse.cz>
739
740         PR other/45443
741         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
742         at -O3.
743
744 2010-09-08  Richard Guenther  <rguenther@suse.de>
745
746         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
747         (visit): Adjust.
748         (iterative_hash_gimple_type): Likewise.
749         (gimple_type_hash): Likewise.
750         (gimple_register_type): Likewise.
751         (print_gimple_types_stats): Likewise.
752         (free_gimple_type_tables): Likewise.
753
754 2010-09-08  Michael Matz  <matz@suse.de>
755
756         PR tree-optimization/43430
757         * tree-vect-stmts.c (vectorizable_condition): Support multiple
758         copies for conditional statements if it's not part of a reduction.
759
760 2010-09-08  Michael Matz  <matz@suse.de>
761
762         PR tree-optimization/33244
763         * tree-ssa-sink.c (statement_sink_location): Don't sink into
764         empty loop latches.
765
766 2010-09-08  Richard Guenther  <rguenther@suse.de>
767
768         PR tree-optimization/45578
769         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
770         Be more careful when transfering alignment information to
771         the new induction variable.
772         (copy_ref_info): Likewise.
773
774 2010-09-08  Richard Guenther  <rguenther@suse.de>
775
776         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
777         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
778
779 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
780
781         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
782         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
783
784 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
785
786         PR doc/45587
787         * doc/md.texi: Fixed modes on several standard pattern names.
788
789 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
790
791         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
792         (ashl<mode>3): ...this.
793         (loongson_psra<V_suffix>): Rename to...
794         (ashr<mode>3): ...this.
795         (loongson_psrl<V_suffix>): Rename to...
796         (lshr<mode>3): ...this.
797         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
798         (CODE_FOR_loongson_psllw): Define.
799         (CODE_FOR_loongson_psrlh): Define.
800         (CODE_FOR_loongson_psrlw): Define.
801         (CODE_FOR_loongson_psrah): Define.
802         (CODE_FOR_loongson_psraw): Define.
803
804 2010-09-07  Richard Henderson  <rth@redhat.com>
805
806         * tree-vect-data-refs.c: Include tm_p.h.
807         * Makefile.in (tree-vect-data-refs.o): Update deps.
808         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
809         Move delarations outside #ifdef RTX_CODE.
810
811 2010-09-07  Richard Henderson  <rth@redhat.com>
812
813         * final.c (rest_of_handle_final): Unconditionally do
814         output_function_exception_table before assemble_end_function.
815
816 2010-09-07  Jan Hubicka  <jh@suse.cz>
817
818         * tree-inline.c (tree_inlinable_function_p): Do not test
819         DECL_REPLACEABLE_P.
820         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
821         update_callee_keys, cgraph_decide_inlining): Test function availability.
822         * cif-code.def (OVERWRITABLE): New code.
823
824 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
825             Jack Howarth <howarth@bromo.med.uc.edu>
826
827         PR target/36502
828         PR target/42313
829         PR target/44651
830         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
831         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
832         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
833         MAX macro.
834
835 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
836
837         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
838         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
839
840 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
841
842         * config.gcc: Don't append t-android for Android targets.
843
844         * config/t-android: Removed.
845
846 2010-09-07  Richard Henderson  <rth@redhat.com>
847
848         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
849         * doc/tm.texi.in: Add doc marker.
850         * doc/tm.texi: Rebuild.
851         * except.c (switch_to_exception_section): Always build.
852         (output_one_function_exception_table): Move section switch,
853         personality output, and label output ...
854         (output_function_exception_table): ... here.  Use the new
855         personality hook.
856
857         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
858         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
859         TARGET_ASM_INIT_SECTIONS): New.
860         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
861         make static.
862         (TARGET_ASM_UNWIND_EMIT): Update to match.
863         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
864
865         * config/arm/arm.c (arm_asm_emit_except_personality): New.
866         (arm_asm_init_sections): New.
867         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
868
869 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
870
871         * config/arm/arm.md: Remove unused variable.
872
873 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
874
875         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
876         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
877         (m32r_memory_move_cost): New function.
878
879 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
880
881         * config.gcc: Append t-android for Android targets.
882
883         * config/t-android: New.
884
885 2010-09-07  Richard Henderson  <rth@redhat.com>
886
887         * target.def (unwind_emit_before_insn): New hook.
888         * doc/tm.texi.in: Add @hook marker for it.
889         * doc/tm.texi: Rebuild.
890         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
891
892 2010-09-07  Martin Jambor  <mjambor@suse.cz>
893
894         PR fortran/43665
895         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
896         are any type attributes.
897
898 2010-09-07  Jan Hubicka  <jh@suse.cz>
899
900         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
901         array_ref_low_bound in string access folding.
902
903 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
904
905         PR target/45206
906         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
907         eh_return fixup sequence.
908
909 2010-09-07  Jan Hubicka  <jh@suse.cz>
910
911         * gimple-fold.c (maybe_fold_reference): Verify that operand is
912         gimple_min_invariant.
913
914 2010-09-07  Richard Guenther  <rguenther@suse.de>
915
916         PR middle-end/45569
917         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
918         nor CONSTRUCTOR can trap.
919         * tree-complex.c (update_complex_assignment): Update EH info.
920
921 2010-09-07  Richard Guenther  <rguenther@suse.de>
922
923         PR middle-end/45569
924         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
925         * passes.c (execute_function_todo): Do not verify anything if
926         we saw errors.
927
928 2010-09-07  Richard Guenther  <rguenther@suse.de>
929
930         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
931
932 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
933
934         PR target/43137
935         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
936         New define_mode_attrs.
937         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
938         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
939         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
940         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
941         Remove pool_range attribute.
942         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
943         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
944         pool_range and neg_pool_range attributes.
945         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
946         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
947         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
948
949 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
950
951         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
952         check glibc.
953
954 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
955
956         PR target/22152
957         * config/i386/mmx.md (*mov<mode>_internal_rex64,
958         *mov<mode>_internal_avx, *mov<mode>_internal,
959         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
960         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
961
962 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
963
964         * c-typeck.c (do_warn_double_promotion): Remove.
965         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
966         Objective-C++ too.
967
968 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
969
970         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
971         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
972         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
973         argument type to reg_class_t. Change result type to bool.
974         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
975
976 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
977
978         PR libobjc/19850
979         * gthr-posix.h (__gthread_objc_thread_detach): Use
980         _objc_thread_attribs when detaching a thread.
981         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
982
983 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
984
985         PR target/45524
986         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
987         * configure: Regenerated.
988
989 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
990
991         * combine.c (try_combine): Set subst_low_luid to i0.
992
993 2010-09-06  Richard Guenther  <rguenther@suse.de>
994
995         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
996         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
997         (build_aligned_type): Declare.
998         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
999         (check_aligned_type): New function.
1000         (build_aligned_type): Likewise.
1001         * expr.c (expand_assignment): Handle misaligned stores via
1002         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1003         (expand_expr_real_1): Likewise.
1004         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1005         * tree-vect-stmts.c (vectorizable_store): Do not build
1006         MISALIGNED_INDIRECT_REF but initialize alignment information.
1007         (vectorizable_load): Likewise.
1008         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1009         handling.
1010         * cfgexpand.c (expand_debug_expr): Likewise.
1011         * dwarf2out.c (loc_list_from_tree): Likewise.
1012         * fold-const.c (maybe_lvalue_p): Likewise.
1013         (operand_equal_p): Likewise.
1014         (build_fold_addr_expr_with_type_loc): Likewise.
1015         * gimplify.c (gimplify_addr_expr): Likewise.
1016         (gimplify_expr): Likewise.
1017         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1018         (verify_gimple_assign_single): Likewise.
1019         * tree-dump.c (dequeue_and_dump): Likewise.
1020         (tree_could_trap_p): Likewise.
1021         * tree-predcom.c (ref_at_iteration): Likewise.
1022         * tree-pretty-print.c (dump_generic_node): Likewise.
1023         (op_code_prio): Likewise.
1024         (op_symbol_code): Likewise.
1025         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1026         * tree-ssa-loop-im.c (for_each_index): Likewise.
1027         (gen_lsm_tmp_name): Likewise.
1028         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1029         (find_interesting_uses_address): Likewise.
1030         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1031         * tree-ssa-operands.c (get_expr_operands): Likewise.
1032         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1033         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1034         (ao_ref_init_from_vn_reference): Likewise.
1035         * tree.c (staticp): Likewise.
1036         (build1_stat): Likewise.
1037         (reference_alias_ptr_type): Likewise.
1038         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1039         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1040         MISALIGNED_INDIRECT_REF handling.
1041
1042 2010-09-06  Richard Guenther  <rguenther@suse.de>
1043
1044         PR tree-optimization/45534
1045         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1046         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1047         on the target.
1048         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1049         valid on the target.
1050
1051 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1052
1053         * configure.ac: Quote argument of AC_MSG_WARN.
1054         * configure: Regenerate.
1055
1056 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1057
1058         * sel-sched.c (move_cond_jump): Correct arguments to
1059         maybe_tidy_empty_bb.
1060         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1061
1062 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1063
1064         PR rtl-optimization/44919
1065         * sel-sched.c (move_cond_jump): Remove assert, check that
1066         the several blocks case can only happen with mutually exclusive
1067         insns instead.  Rewrite the movement code to support moving through
1068         several basic blocks.
1069
1070 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1071
1072         * config/i386/i386.md (iptrsize): New mode attribute.
1073         (tp_seg): Ditto.
1074         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1075         mode iterator.
1076         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1077         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1078         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1079         (stack_tls_protect_set_<mode>): Ditto from
1080         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1081         of thread base pointer load.
1082         (stack_tls_protect_test_<mode>): Ditto from
1083         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1084         of thread base pointer load.
1085         (stack_protect_set): Rewrite using indirect functions.
1086         (stack_protect_test): Ditto.
1087         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1088         (ix86_print_operand): Handle '@'.
1089
1090 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1091
1092         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1093         MINUS_EXPR.
1094
1095 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1096
1097         * doc/invoke.texi: Document -Wdouble-promotion.
1098         * c-typeck.c (convert_arguments): Check for implicit conversions
1099         from float to double.
1100         (do_warn_double_promotion): New function.
1101         (build_conditional_expr): Use it.
1102         (build_binary_op): Likewise.
1103
1104 2010-09-05  Richard Guenther  <rguenther@suse.de>
1105
1106         PR tree-optimization/45535
1107         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1108         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1109         dereferencing it.
1110         (indirect_refs_may_alias_p): Likewise.
1111
1112 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1113
1114         * config/sh/sh.c (sh_option_override): Make static.
1115         Adjust comments.  Declare.
1116         (sh_function_value_regno_p): Likewise.
1117         (sh_register_move_cost): Modify the arguments, make static.
1118         Adjust comments.  Declare.
1119         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1120         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1121         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1122         REGISTER_MOVE_COST): Delete.
1123         * config/sh/sh-protos.h (sh_override_options): Delete.
1124         (sh_register_move_cost): Delete.
1125         (sh_function_value_regno_p): Delete.
1126
1127 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1128
1129         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1130         m32r_function_value_regno_p): New functions.
1131         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1132         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1133         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1134         FUNCTION_VALUE_REGNO_P): Remove.
1135
1136 2010-09-04  Jan Hubicka  <jh@suse.cz>
1137
1138         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1139         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1140         fold_read_from_constant_string.
1141
1142         * gimple.h (canonicalize_constructor_val): Declare.
1143         * gimple-fold.c (canonicalize_constructor_val): New function.
1144         (get_symbol_constant_value):Use it.
1145         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1146
1147 2010-09-04  Jan Hubicka  <jh@suse.cz>
1148
1149         * tree-switch-conversion.c (build_one_array): Set constructor to be
1150         static.
1151         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1152
1153 2010-09-04  Richard Guenther  <rguenther@suse.de>
1154
1155         PR bootstrap/45519
1156         * tree-flow.h (force_gimple_operand_1): Declare.
1157         (force_gimple_operand_gsi_1): Likewise.
1158         * gimplify.c (force_gimple_operand_1): New worker taking a
1159         gimple predicate for ...
1160         (force_gimple_operand): ... which now wraps it.
1161         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1162         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1163         last change.
1164         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1165         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1166         (create_mem_ref): Likewise.
1167
1168 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1169
1170         * config/i386/predicates.md (sse_reg_operand): New predicate.
1171         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1172         predicate for operand 1.
1173         (XFmode push splitter): Use fp_register_operand predicate
1174         for operand 1.
1175         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1176         (SF-DF float_extend push splitter): Add reload_completed insn
1177         predicate.
1178         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1179         MODEF mode macro.  Add reload_completed insn predicate.
1180
1181 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1182
1183         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1184         (struct df_extract_ref): Remove.
1185         (union df_ref_d): Remove extract_ref member.
1186         (df_ref_create): Remove last three arguments.
1187         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1188         * df-scan.c (df_ref_record): Remove last three arguments, do not
1189         pass them to df_ref_create_structure.
1190         (df_uses_record): Remove first and last three arguments.  Replace
1191         first argument with DF_REF_REGULAR, adjust calls to remove the
1192         width, offset and mode.  Always call recursively on the second
1193         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1194         (df_ref_create_structure): Remove first argument.
1195         (struct df_scan_problem_data): Remove ref_extract_pool.
1196         (df_scan_free_internal): Do not free it.
1197         (df_scan_alloc): Do not allocate it.
1198         (df_ref_create): Remove last three arguments, do not pass them to
1199         df_ref_create_structure.
1200         (df_free_ref): Remove DF_REF_EXTRACT case.
1201         (df_notes_rescan): Adjust call to df_uses_record.
1202         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1203         Remove DF_REF_EXTRACT case.
1204         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1205         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1206         and SUBREG definitions.
1207         (df_get_conditional_uses): Remove references to width/offset/mode,
1208         adjust call to df_ref_create_structure.
1209         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1210         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1211         calls to df_uses_record and df_ref_record.
1212         * fwprop.c (update_df): Remove references to width/offset/mode,
1213         adjust call to df_ref_create.
1214
1215 2010-09-03  Jan Hubicka  <jh@suse.cz>
1216
1217         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1218         (build_cdtor_fns): Update use of build_cdtor.
1219
1220 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1221
1222         * doc/options.texi (SeparateAlias): Document.
1223         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1224         * opth-gen.awk: Generate enumeration names for options marked
1225         SeparateAlias, but not for those marked Ignore.
1226         * opts-common.c (generate_canonical_option): Don't output separate
1227         argument for options marked CL_SEPARATE_ALIAS.
1228         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1229         * opts.h (CL_SEPARATE_ALIAS): New.
1230         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1231         CL_COMMON): Adjust definitions.
1232         * config/i386/darwin.opt, config/mips/sde.opt: New.
1233         * common.opt (fdump-final-insns): New.
1234         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1235         i386/darwin.opt.
1236         (mips*-sde-elf*): Add mips/sde.opt.
1237         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1238         -mno-data-in-code and -mcode-xonly here.
1239         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1240         * gcc.c (option_map): Add "j" to --dump entry.
1241         (translate_options): Don't translate -d to -foutput-class-dir= here.
1242
1243 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1244
1245         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1246         DR_IS_WRITE.
1247         (compute_all_dependences): Same.
1248         (create_rdg_edge_for_ddr): Same.
1249         * tree-data-ref.h (DR_IS_WRITE): New.
1250         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1251         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1252         (write_memrefs_written_at_least_once): Same.
1253         * tree-predcom.c (suitable_component_p): Same.
1254         (determine_roots_comp): Same.
1255         (execute_load_motion): Same.
1256         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1257         (vect_enhance_data_refs_alignment): Same.
1258         (vect_analyze_group_access): Same.
1259
1260 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1261
1262         PR testsuite/42843
1263         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
1264         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
1265
1266 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
1267
1268         * dwarf2out.c (file scope): Remove #if0'd code.
1269         (gen_subprogram_die): Same.
1270
1271 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1272
1273         PR middle-end/45484
1274         * dwarf2out.c (flush_queued_reg_saves): Rename to...
1275         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
1276         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
1277         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
1278         * config/i386/i386.c (output_set_got): Call it.
1279
1280 2010-09-03  Michael Matz  <matz@suse.de>
1281
1282         PR middle-end/45415
1283         * tree-sra.c (sra_modify_assign): If we modify the statement,
1284         say so.
1285
1286         * tree-ssa.c (verify_ssa): Check number of operands and links
1287         per statement to agree.
1288
1289 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1290             Iain Sandoe  <iains@gcc.gnu.org>
1291
1292         PR target/45476
1293         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
1294         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
1295         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1296
1297 2010-09-03  Richard Guenther  <rguenther@suse.de>
1298
1299         * lto-streamer-out.c (output_function): Output function
1300         start and end loci.
1301         * lto-streamer-in.c (input_function): Input function start
1302         and end loci.
1303
1304 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1305
1306         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
1307         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
1308         * configure: Regenerate.
1309         * aclocal.m4: Regenerate.
1310
1311 2010-09-03  Jan Hubicka  <jh@suse.cz>
1312
1313         PR lto/44812
1314         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
1315         on functions/variables in other partition.
1316
1317 2010-09-03  Jan Hubicka  <jh@suse.cz>
1318
1319         * cgraph.h (struct varpool_node): Add const_value_known.
1320         (varpool_decide_const_value_known): Declare.
1321         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
1322         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
1323         (input_varpool_node): Restore const_value_known.
1324         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
1325         initializer folding.
1326         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1327         function_and_variable_visibility): Compute const_value_known.
1328         * gimple-fold.c (get_symbol_constant_value): Use varpool for
1329         initializer folding.
1330         * varpool.c (varpool_decide_const_value_known): New function.
1331
1332 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         * config/i386/i386.md: Remove empty preparation statements
1335         from splitters.
1336
1337 2010-09-03  Jan Hubicka  <jh@suse.cz>
1338
1339         * passes.c (rest_of_decl_compilation): Do not add local vars into
1340         varpool.
1341         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
1342         static or extern vars are in varpool.
1343         (varpool_finalize_decl): Sanity check that only static vars are
1344         finalized.
1345
1346 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1347
1348         PR debug/45500
1349         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
1350         not just generic vectors with BLKmode.
1351
1352 2010-09-03  Richard Guenther  <rguenther@suse.de>
1353
1354         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
1355         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
1356         * tree.h (TMR_SYMBOL): Remove.
1357         (TMR_BASE, TMR_OFFSET): Adjust.
1358         (TMR_INDEX2): New.
1359         * alias.c (ao_ref_from_mem): Use TMR_BASE.
1360         * builtins.c (get_object_alignment): Merge TMR_BASE and
1361         TMR_SYMBOL handling.
1362         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
1363         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
1364         handling.  Also allow TARGET_MEM_REF as base address.
1365         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
1366         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
1367         base.  Gimplify TMR_INDEX2.
1368         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
1369         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1370         (get_addr_base_and_unit_offset): Likewise.
1371         * tree-eh.c (tree_could_trap_p): Likewise.
1372         * tree-pretty-print.c (dump_generic_node): Likewise.
1373         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
1374         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
1375         base to index2.
1376         (get_address_description): Reconstruct addres description
1377         from merged TMR_BASE and TMR_INDEX2.
1378         (maybe_fold_tmr): Fold propagated addresses.
1379         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
1380         MEM_REF and TARGET_MEM_REF paths.
1381         (indirect_refs_may_alias_p): Likewise.
1382         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
1383         instead of TMR_SYMBOL.
1384         * tree-ssa-operands.c (get_tmr_operands): Simplify.
1385         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
1386         according to changes ...
1387         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
1388         Split TARGET_MEM_REF into two fields plus the base.
1389         * tree.c (mem_ref_offset): Simplify.
1390         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
1391         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
1392         Strip NOPs when folding MEM_REF addresses.
1393         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
1394         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
1395         (fold_gimple_assign): ... not here.
1396
1397 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
1398
1399         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
1400         * config/mips/mips.c (mips_shift_truncation_mask): New function.
1401         (TARGET_SHIFT_TRUNCATION_MASK): Define.
1402
1403 2010-09-02  Richard Henderson  <rth@redhat.com>
1404
1405         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
1406         instead of readelf in the test.
1407         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
1408         in the .debug_frame section for coff targets.
1409         * configure: Rebuild.
1410
1411 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1412
1413         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
1414         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
1415         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1416         (m32c_class_likely_spilled_p): Make static. Change argument type to
1417         reg_class_t. Change result type to bool.
1418
1419 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1420
1421         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
1422         to convert (double)(long) into a single FRIZ instruction or not
1423         when -ffast-math is used.
1424
1425         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
1426         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
1427         or FRIZ instruction if -ffast-math.
1428         * config/rs6000/rs6000.md (friz): Ditto.
1429
1430         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
1431
1432 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1433
1434         * opth-gen.awk (quote, comma): Remove unused variables.
1435
1436 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
1437
1438         * arm.c (arm_override_options): Correct fall-back code to use
1439         SUBTARGET_CPU_DEFAULT.
1440
1441 2010-09-02  Julian Brown  <julian@codesourcery.com>
1442
1443         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
1444         unspecs.
1445         (vcond<mode>, vcondu<mode>): New expanders.
1446         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
1447         comparisons with zero.
1448         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
1449         * config/arm/constraints.md (Dz): New constraint.
1450
1451 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1452
1453         * target.def (class_likely_spilled_p): New hook.
1454         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
1455         * doc/tm.texi: Regenerate.
1456         * targhooks.c (default_class_likely_spilled_p): New function.
1457         * targhooks.h (default_class_likely_spilled_p): Declare.
1458         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
1459         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
1460         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
1461         Use fixed_reg_set instead of fixed_regs.
1462         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1463         * calls.c (avoid_likely_spilled_reg): Ditto.
1464         * ira-conflicts.c (ira_build_conflicts): Ditto.
1465         * ira.c (update_equiv_regs): Ditto.
1466         * mode-switching.c (create_pre_exit): Ditto.
1467         * regmove.c (find_matches): Ditto.
1468         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1469         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
1470         (small_register_class_p): New inline function.
1471         (push_secondary_reload, find_reusable_reload, find_reloads): Use
1472         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
1473
1474         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
1475         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
1476         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1477
1478 2010-09-02  Richard Guenther  <rguenther@suse.de>
1479
1480         PR tree-optimization/44937
1481         PR tree-optimization/45412
1482         * ipa-split.c (split_function): Properly remove PHI nodes.
1483
1484 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1485
1486         * opts.h (struct cl_option): Add warn_message field.
1487         (struct cl_decoded_option): Add warn_message field.
1488         * doc/options.texi (Ignore, Warn): Document.
1489         * opt-functions.awk (needs_state_p): Don't consider aliases or
1490         ignored options to need state saved.
1491         * optc-gen.awk: Handle Warn and Ignore.
1492         * opth-gen.awk: Output OPT_SPECIAL_ignore.
1493         * opts-common.c (decode_cmdline_option): Set warn_message field.
1494         Handle ignored options.
1495         (decode_cmdline_options_to_array, generate_option,
1496         generate_option_input_file): Set warn_message field.
1497         (read_cmdline_option): Generate warnings from warn_message field.
1498         Handle ignored options.
1499         * common.opt (Wunreachable-code, fargument-alias,
1500         fargument-noalias, fargument-noalias-global,
1501         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
1502         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
1503         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
1504         ftree-salias): Mark Ignore.
1505         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
1506         -mintel-syntax and -mno-intel-syntax here.
1507         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
1508         using Warn.
1509         * opts.c (common_handle_option): Don't handle options marked as
1510         ignored.
1511         (enable_warning_as_error): Handle ignored options.
1512
1513 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1514
1515         PR driver/44076
1516         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
1517         alias_target fields.
1518         * opt-functions.awk (opt_sanitized_name): Don't handle
1519         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
1520         * optc-gen.awk: Generate alias fields.
1521         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
1522         Don't generate such constants for aliases.
1523         * opts-common.c (generate_canonical_option): New.
1524         (decode_cmdline_option): Handle aliases.  Use
1525         generate_canonical_option for known options instead of copying the
1526         input option text.
1527         * doc/options.texi (Alias): Document.
1528         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
1529         fstack-check, specs): Mark as aliases.
1530         * gcc.c (driver_handle_option): Canonicalize -L options to joined
1531         arguments.
1532         (driver_handle_option): Don't handle OPT_specs.
1533         * opts.c (common_handle_option): Don't handle options marked as
1534         aliases.
1535         (enable_warning_as_error): Handle aliases.
1536         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
1537         OPT_Wlarger_than_eq.
1538         * tree-optimize.c (tree_rest_of_compilation): Use
1539         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
1540
1541 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
1542
1543         * config/i386/i386.md (nonmemory_operand): New mode attribute.
1544         (push memory peephole2): Macroize peepholes using SWI mode iterator.
1545         (move immediate to memory peephole2): Macroize peepholes using
1546         SWI124 mode iterator.
1547         (non-pairable NOT peephole2): Macroize peepholes using SWI124
1548         mode iterator.
1549         (simple lea add peephole2): Macroize peepholes using SWI48
1550         mode iterator.
1551         (simple lea mult peephole2): Ditto.
1552         (imul by 3,5,9 to lea peephole2): Ditto.
1553         (mov $-1, reg peephole2): Macroize peepholes using SWI248
1554         mode iterator.
1555         (imul $32bit_imm,mem,reg peephole2): Ditto.
1556         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
1557
1558 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
1559
1560         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
1561
1562 2010-09-02  Olivier Hainque  <hainque@adacore.com>
1563
1564         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
1565         (allocno_priority_compare_func): Use it instead of a straight
1566         difference computation over priorities.
1567
1568 2010-09-02  Andi Kleen  <ak@linux.intel.com>
1569
1570         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
1571
1572 2010-09-02  Ira Rosen  <irar@il.ibm.com>
1573
1574         * tree-vectorizer.h (get_later_stmt): New function.
1575         (vect_analyze_data_ref_dependences): Add argument.
1576         * tree-vect-loop.c (vect_analyze_loop): Update call to
1577         vect_analyze_data_ref_dependences.
1578         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
1579         New function.
1580         (vect_analyze_data_ref_dependence): Add argument for basic block
1581         dependencies. Check dependencies in basic block vectorization.
1582         (vect_analyze_data_ref_dependences): Add argument and update call to
1583         vect_analyze_data_ref_dependences.
1584         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
1585         (vect_bb_vectorizable_with_dependencies): New.
1586         (vect_slp_analyze_bb): Check dependencies in basic block.
1587         (vect_schedule_slp_instance): Insert stores before the last store in
1588         SLP instance.
1589
1590 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
1591
1592         PR target/45476
1593         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
1594         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1595
1596 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
1597
1598         PR middle-end/45458
1599         * bb-reorder.c (add_labels_and_missing_jumps): Treat
1600         bbs ending with throwing insns like blocks ending with a call.
1601         (fix_up_fall_thru_edges): Likewise.
1602
1603 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
1604
1605         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
1606         (m32c_function_arg_advance): Delete.
1607         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1608         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
1609         comments.  Take a const_tree and a bool.  Declare.
1610         (m32c_function_arg_advance): Likewise.
1611         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1612
1613 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1614
1615         PR target/45476
1616         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
1617         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
1618         * config/i386/mingw32.h: ... here.
1619
1620 2010-09-01  Andi Kleen  <ak@linux.intel.com>
1621
1622         PR lto/45475
1623         * lto-streamer-in.c (lto_input_ts_target_option): Add.
1624         (lto_input_tree_pointers): Call lto_input_ts_target_option.
1625         * lto-streamer-out (lto_output_ts_target_option): Add.
1626         (lto_output_tree_pointers): Call lto_output_ts_target_option.
1627
1628 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
1629
1630         PR/target 45452
1631         * config/i386/cygwin.h: Change order of specified import libraries.
1632         * config/i386/mingw32.h: Likewise.
1633         * config/i386/t-cygwin: Likewise.
1634         * config/i386/t-mingw32: Likewise.
1635         * config/i386/t-mingw-w32: Likewise.
1636         * config/i386/t-mingw-w64: Likewise.
1637
1638 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1639
1640         * config/arm/neon-schedgen.ml (core): New type.
1641         (allCores): List of supported cores.
1642         (availability_table): Add supported cores.
1643         (collate_bypasses): Accept core as a parameter.
1644         (worst_case_latencies_and_bypasses): Accept core as a parameter.
1645         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
1646         and coreStr to get tune attribute and prefix for functional units.
1647         (emit_bypasses): Accept core name and use it.
1648         (calculate_per_core_availability_table): New.
1649         (filter_core): New.
1650         (calculate_core_availability_table): New.
1651         (main): Use calculate_core_availablity_table.
1652         * config/arm/cortex-a8-neon.md: Update copyright year.
1653         Regenerated from ml file and merged in.
1654         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
1655         cortex_a8_neon_mrc.
1656
1657 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
1658
1659         * Makefile.in (tree-switch-conversion.o): Update dependencies.
1660
1661 2010-09-01  Richard Guenther  <rguenther@suse.de>
1662
1663         * alias.c (ao_ref_from_mem): Adjust.
1664         * builtins.c (get_object_alignment): Likewise.
1665         * cfgexpand.c (expand_debug_expr): Likewise.
1666         * gimple.c (get_base_address): Likewise.
1667         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1668         (get_addr_base_and_unit_offset): Likewise.  Fix for
1669         both TMR_SYMBOL and TMR_BASE being set.
1670         * tree-eh.c (tree_could_trap_p): Likewise.
1671         * gimplify.c (gimplify_expr): Do not attempt to gimplify
1672         TMR_SYMBOL.  Always gimplify TMR_BASE.
1673         * tree-cfg.c (verify_types_in_gimple_reference): Verify
1674         TMR_BASE if there is a TMR_SYMBOL.
1675         * tree-pretty-print.c (dump_generic_node): Adjust.
1676         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1677         (tree_mem_ref_addr): Likewise.
1678         (create_mem_ref_raw): Likewise.
1679         (move_fixed_address_to_symbol): Likewise.
1680         (create_mem_ref): Likewise.
1681         (dump_mem_address): Likewise.
1682         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
1683         Fix for both TMR_SYMBOL and TMR_BASE being set.
1684         (indirect_refs_may_alias_p): Likewise.
1685         * tree-ssa-operands.c (get_tmr_operands): Adjust.
1686         * tree.def (TARGET_MEM_REF): Adjust documentation.
1687
1688 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
1691         Rename from X86_TUNE_ADD_ESP_4.
1692         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
1693         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
1694         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
1695         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
1696         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
1697         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
1698         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
1699         * config/i386/i386.c (initial_ix86_tune_features)
1700         <X86_TUNE_SINGLE_POP>: Invert members.
1701         <X86_TUNE_DOUBLE_POP>: Ditto.
1702         <X86_TUNE_SINGLE_PUSH>: Ditto.
1703         <X86_TUNE_DOUBLE_PUSH>: Ditto.
1704         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
1705         No longer exported.
1706         (push peephole2 patterns): Macroize peepholes using P mode iterator.
1707         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
1708         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
1709         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
1710
1711 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
1712
1713         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
1714         a volatile LHS if the constructor has only one element.
1715
1716 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
1717
1718         PR bootstrap/45321
1719         * tree.c (stdarg_p): Make fntype parameter const.
1720         * tree.h (stdarg_p): Likewise.
1721         (function_args_iterator): Remove unused fntype field.
1722         (function_args_iter_init): Do not initialize fntype
1723         field.  Make fntype parameter const.
1724
1725 2010-09-01  Richard Guenther  <rguenther@suse.de>
1726
1727         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
1728         estimate.
1729         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
1730         (execute_vrp): Compute number of iteration estimates.
1731         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
1732         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
1733         * tree-data-ref.c (estimated_loop_iterations): Adjust.
1734         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1735         Infer loop bounds from undefined behavior based on a new parameter.
1736         (estimate_numbers_of_iterations): Likewise.
1737         (scev_probably_wraps_p): Adjust.
1738         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
1739
1740 2010-09-01  Nick Clifton  <nickc@redhat.com>
1741
1742         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
1743         where appropriate.
1744         (xstormy16_legitimate_address_p): Use true and false instead of 1
1745         and 0.
1746         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
1747         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
1748         magic constant 2.
1749         (xstormy16_expand_call): Fix comment at start of function.
1750
1751 2010-09-01  Nick Clifton  <nickc@redhat.com>
1752
1753         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
1754         when pushing accumulator register.
1755         (rx_get_stack_layout): Always save call clobbered registers inside
1756         interrupt handlers.
1757         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
1758
1759 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1760
1761         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
1762         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
1763
1764         * libgcc-std.ver (GCC_4.6.0): Define version.
1765
1766 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
1767
1768         * tree-nested.c (convert_all_function_calls): Iterate until after the
1769         sum of static chains in the nest doesn't change.
1770
1771 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
1772
1773         * config/m32c/m32c.c (classes_intersect): Remove.
1774         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
1775         reg_classes_intersect_p instead of classes_intersect.
1776         (class_can_hold_mode): Change arguments type from enum reg_class to
1777         reg_class_t.  Use reg_class_contents instead of class_contents.
1778         (m32c_register_move_cost): Make static. Change arguments type from
1779         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
1780         classes_intersect. Use reg_class_contents instead of class_contents.
1781         (m32c_memory_move_cost): Make static. Change arguments type from
1782         enum reg_class to reg_class_t.
1783         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1784         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1785         * config/m32c/m32c-protos.h (m32c_register_move_cost,
1786         m32c_memory_move_cost): Remove.
1787
1788 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1789
1790         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
1791         (arm_function_arg): Delete.
1792         (arm_needs_doubleword_align): Take a const_tree.
1793         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1794         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
1795         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
1796         (arm_function_arg): Make static.  Take a const_tree and a bool.
1797         (arm_function_arg_advance): Likewise.
1798         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1799
1800 2010-08-31  Andi Kleen  <ak@linux.intel.com>
1801
1802         * common.opt (fwhopr=): Update for -fwhopr=jobserver
1803         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
1804         * lto-wrapper.c (run_gcc): Add jobserver mode.
1805         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
1806         argument.
1807
1808 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
1809
1810         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
1811         (popsi1): Ditto.
1812         (*popdi1_epilogue): Ditto.
1813         (*popsi1_epilogue): Ditto.
1814         (popsi, popdi peephole2 patterns): Update peepholes for changed
1815         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
1816
1817         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
1818         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
1819
1820         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
1821         (override_options): Do not initialize removed ix86_gen_pop1.
1822         (gen_pop): New static function.
1823         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
1824         (release_scratch_register_on_entry): Ditto.
1825         (ix86_restore_reg_using_pop): Ditto.
1826         (ix86_expand_epilogue): Ditto.
1827
1828 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
1829
1830         PR middle-end/45461
1831         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
1832
1833 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1834
1835         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
1836         semicolons.
1837
1838 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1839
1840         * doc/extend.texi: Fix documentation of the return value of
1841         __builtin_choose_expr.
1842
1843 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1844
1845         * config/v850/v850-protos.h (function_arg): Delete.
1846         * config/v850/v850.h (FUNCTION_ARG): Delete.
1847         (FUNCTION_ARG_ADVANCE): Move code to...
1848         * config/v850/v850.c (v850_function_arg_advance): ...here.
1849         (v850_function_arg): Make static.  Take a const_tree and a bool.
1850         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1851
1852 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1853
1854         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
1855         these...
1856         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1857         ...and these...
1858         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
1859         ..to here..
1860         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1861         ...and here.
1862         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1863
1864 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1865
1866         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
1867         Delete.
1868         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1869         * config/rx/rx.c (rx_function_arg_size): Make static.
1870         (rx_function_arg): Likewise.
1871         (rx_function_arg_advance): New function.
1872         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1873
1874 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
1875
1876         * config/arm/arm.c (arm_override_options): Remove superfluous test.
1877         Fix indentation.
1878
1879 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
1880
1881         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
1882         (dwarf2out_decl) <CONST_DECL>: Likewise.
1883
1884 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
1885
1886         Stack usage support
1887         * common.opt (-fstack-usage): New option.
1888         * doc/invoke.texi (Debugging options): Document it.
1889         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
1890         allocate_dynamic_stack_space.
1891         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
1892         and propagate it to allocate_dynamic_stack_space.
1893         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
1894         * calls.c (initialize_argument_information): Pass TRUE as 4th
1895         argument to allocate_dynamic_stack_space.
1896         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
1897         to 1 when pushing a variable-sized argument onto the stack.  Pass
1898         TRUE as 4th argument to allocate_dynamic_stack_space.
1899         Update current_function_pushed_stack_size.
1900         (emit_library_call_value_1): Likewise.
1901         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
1902         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
1903         attempt to find an upper bound.  Remove redundant code for the
1904         SETJMP_VIA_SAVE_AREA case.
1905         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
1906         * function.h (struct stack_usage): New structure.
1907         (current_function_static_stack_size): New macro.
1908         (current_function_dynamic_stack_size): Likewise.
1909         (current_function_pushed_stack_size): Likewise.
1910         (current_function_dynamic_alloc_count): Likewise.
1911         (current_function_has_unbounded_dynamic_stack_size): Likewise.
1912         (current_function_allocates_dynamic_stack_space): Likewise.
1913         (struct function): Add new field 'su'.
1914         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
1915         add the value of the dynamic offset to the dynamic stack usage.
1916         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
1917         for variable-sized objects.
1918         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
1919         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
1920         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
1921         BUILT_IN_ALLOCA for variable-sized objects.
1922         * output.h (output_stack_usage): Declare.
1923         * toplev.c (stack_usage_file): New file pointer.
1924         (output_stack_usage): New function.
1925         (open_auxiliary_file): Likewise.
1926         (lang_dependent_init): Open file if flag_stack_usage is set.
1927         (finalize): Close file if stack_usage_file is not null.
1928         * tree.h (ALLOCA_FOR_VAR_P): New macro.
1929         * config/alpha/alpha.c (compute_frame_size): New function.
1930         (alpha_expand_prologue): Use it.
1931         (alpha_start_function): Likewise.
1932         (alpha_expand_epilogue): Likewise.  Set stack usage info.
1933         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1934         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1935         * config/mips/mips.c (mips_expand_prologue): Likewise.
1936         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1937         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1938         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1939
1940 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
1941
1942         PR tree-optimization/45427
1943         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
1944         Handle the case that the exit is never taken correctly.
1945         (number_of_iterations_ne): Pass exit_must_be_taken to
1946         number_of_iterations_ne_max.
1947
1948 2010-08-30  Catherine Moore  <clm@codesourcery.com>
1949
1950         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
1951         Infer -mdspr2 for the the 74K.
1952
1953 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
1954
1955         PR debug/45419
1956         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
1957
1958         PR middle-end/45423
1959         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
1960         and TRUTH_{AND,OR,XOR}_EXPR.
1961         * c-parser.c (c_parser_omp_atomic): Handle boolean
1962         {PRE,POST}_{INC,DEC}REMENT.
1963
1964 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
1965
1966         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
1967         (function_arg): Delete.
1968         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1969         (FUNCTION_INCOMING_ARG): Delete.
1970         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
1971         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
1972         and a bool.
1973         (function_arg): Rename to...
1974         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
1975         a bool.
1976         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
1977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1978         (TARGET_FUNCTION_INCOMING_ARG): Define.
1979
1980 2010-08-30  Richard Guenther  <rguenther@suse.de>
1981
1982         PR tree-optimization/21602
1983         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
1984         using points-to information.
1985
1986 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
1987
1988         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1989
1990 2010-08-30  Richard Guenther  <rguenther@suse.de>
1991
1992         PR tree-optimization/45449
1993         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1994         variables.
1995
1996 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1997
1998         * opts.h (CL_ERR_NEGATIVE): Define.
1999         * opts.c (unknown_option_callback): Don't postpone warnings for
2000         options marked with CL_ERR_NEGATIVE.
2001         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2002         for negative versions of CL_REJECT_NEGATIVE options.
2003
2004 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2005
2006         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2007         zero_extendsidi2_32.
2008         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2009         using SWI12 mode iterator.
2010         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2011         to define_insn_and_split pattern.
2012         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2013         using SWI24 mode iterator.
2014         (*zero_extendqi<mode>2_and): Macroize insn from
2015         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2016         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2017         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2018         SWI24 mode iterator.
2019         (*zero_extendqi<mode>2_movzbl): Ditto from
2020         *zero_extendqi{hi,si}2_movzbl.
2021         (extendsidi2_1): Rename from extendsidi2_32.
2022         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2023         SWI12 mode iterator.
2024
2025 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2026
2027         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2028         general purpose registers.
2029         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2030         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2031         with general purpose registers and memory operands.  Add associated
2032         CCImode post-reload splitter.
2033         * config/ia64/div.md: Change BImode to CCImode throughout.
2034
2035 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2036
2037         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2038
2039 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2040
2041         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2042         function was dropping debug insns which caused PR45299.
2043
2044 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         * config/i386/sse.md (extsuffix): New code attribute.
2047         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2048         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2049         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2050         and sse4_1_zero_extendv4qiv4si2.
2051         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2052         and sse4_1_zero_extendv2qiv2di2.
2053         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2054         and sse4_1_zero_extendv4hiv4si2.
2055         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2056         and sse4_1_zero_extendv2hiv2di2.
2057         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2058         and sse4_1_zero_extendv2siv2di2
2059
2060         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2061         using any_extend code iterator.
2062         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2063         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2064         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2065
2066         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2067         gen_sse4_1_sign_extend* functions.
2068         (struct builtin_description bdesc_args): Ditto.
2069
2070 2010-08-27  Xinliang David Li  <davidxl@google.com>
2071
2072         PR/45422
2073         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2074         (iv_ca_set_no_cp): Update used inv expr count.
2075         (iv_ca_set_cp): Ditto.
2076         (iv_ca_new): Initialize new member.
2077         (iv_ca_free): Free memory.
2078
2079 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2080
2081         * config/sh/sh-protos.h (sh_function_arg): Delete.
2082         (sh_function_arg_advance): Delete.
2083         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2084         (PASS_IN_REG_P): Eliminate cast.
2085         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2086         const_tree and a bool.
2087         (sh_function_arg): Likewise.
2088         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2089         sh_function_arg.
2090         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2091
2092 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2093             Kaz Kojima  <kkojima@gcc.gnu.org>
2094
2095         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2096         when possible.
2097         (sh_expand_epilogue): Likewise.
2098         * config/sh/sh.md (movml_push_banked): New insn.
2099         (movml_pop_banked): Likewise.
2100
2101 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2102
2103         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2104         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2105         in vector element 0 rather than the original string when there's
2106         only one element.
2107         (gen_regexp): Remove extra semicolon.
2108
2109         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2110         thumb2_movsf_vfp): Set attribute "insn".
2111         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2112         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2113         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2114         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2115         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2116         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2117         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2118         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2119         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2120         if_not_arith, if_arith_not, cond_move_not): Likewise.
2121
2122 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2123
2124         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2125         New declaration.
2126         (rs6000_allocate_stack_temp): Ditto.
2127         (rs6000_expand_convert_si_to_sfdf): Ditto.
2128
2129         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2130         line.  Update the options set if power6 or power7 server/embedded
2131         type options are used.  If we give a warning for no vsx under
2132         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2133         (rs6000_allocate_stack_temp): New function to allocate a stack
2134         tempoary and adjust the address so it meets either REG+OFFSET or
2135         REG+REG addressing requirements.
2136         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2137         that they can be used with the LFIWAX/LFIWZX instrucitons.
2138         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2139         converting signed/unsigned SImode to either SFmode/DFmode.
2140
2141         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2142         whether certain instructions can be generated.
2143         (TARGET_FCTIDZ): Ditto.
2144         (TARGET_STFIWX): Ditto.
2145         (TARGET_LFIWAX): Ditto.
2146         (TARGET_LFIWZX): Ditto.
2147         (TARGET_FCFIDS): Ditto.
2148         (TARGET_FCFIDU): Ditto.
2149         (TARGET_FCFIDUS): Ditto.
2150         (TARGET_FCTIDUZ): Ditto.
2151         (TARGET_FCTIWUZ): Ditto.
2152
2153         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2154         (UNSPEC_FCTID): Ditto.
2155         (UNSPEC_LFIWAX): Ditto.
2156         (UNSPEC_LFIWZX): Ditto.
2157         (UNSPEC_FCTIWUZ): Ditto.
2158         (rreg): Use correct constraints.
2159         (SI_CONVERT_FP): New mode attribute for floating point conversion
2160         tests.
2161         (E500_CONVERT): Ditto.
2162         (lfiwax): New insns for converting from integer to floating point
2163         utilizing newer instructions.  Attempt to optimize conversions
2164         that come from memory so that we don't load the value into a GPR,
2165         spill it to the stack and reload it into a FPR.
2166         (floatsi<mode>2_lfiwax): Ditto.
2167         (floatsi<mode>2_lfiwax_mem): Ditto.
2168         (floatsi<mode>2_lfiwax_mem2): Ditto.
2169         (lfiwzx): Ditto.
2170         (floatunssi<mode>2_lfiwzx): Ditto.
2171         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2172         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2173         (floatdidf2_mem): Ditto.
2174         (floatunsdidf2_fcfidu): Ditto.
2175         (floatunsdidf2_mem): Ditto.
2176         (floatunsdisf2): Ditto.
2177         (floatunsdisf2_fcfidus): Ditto.
2178         (floatunsdisf2_mem): Ditto.
2179         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2180         Use FCFID on 32-bit hosts that support it.
2181         (floatsidf2_internal): Ditto.
2182         (floatunssisf2): Ditto.
2183         (floatunssidf2): Ditto.
2184         (floatunssidf2_internal): Ditto.
2185         (floatsisf2): Ditto.
2186         (floatdidf2): Ditto.
2187         (floatdidf2_fpr): Ditto.
2188         (floatunsdidf2): Ditto.
2189         (floatdisf2): Ditto.
2190         (floatdisf2_fcfids): Ditto.
2191         (floatdisf2_internal1): Ditto.
2192         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2193         SF/DF.  Add power7 support.
2194         (fix_truncsfsi2): Ditto.
2195         (fixuns_truncdfsi2): Ditto.
2196         (fixuns_truncdfdi2): Ditto.
2197         (fix_truncdfsi2): Ditto.
2198         (fix_truncdfsi2_internal): Ditto.
2199         (fix_truncdfsi2_internal_gfxopt): Ditto.
2200         (fix_truncdfsi2_mfpgpr): Ditto.
2201         (fctiwz): Ditto.
2202         (btruncdf2): Ditto.
2203         (btruncdf2_fpr): Ditto.
2204         (btructsf2): Ditto.
2205         (ceildf2): Ditto.
2206         (ceildf2_fpr): Ditto.
2207         (ceilsf2): Ditto.
2208         (floordf2): Ditto.
2209         (floordf2_fpr): Ditto.
2210         (floorsf2): Ditto.
2211         (rounddf2): Ditto.
2212         (rounddf2_fpr): Ditto.
2213         (roundsf2): Ditto.
2214         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2215         (fix_trunc<mode>di2): Ditto.
2216         (fixuns_trunc<mode>si2): Ditto.
2217         (fixuns_trunc<mode>di2): Ditto.
2218         (fctiwz_<mode>): Ditto.
2219         (btrunc<mode>2): Ditto.
2220         (btrunc<mode>2_fpr): Ditto.
2221         (ceil<mode>2): Ditto.
2222         (ceil<mode>2_fpr): Ditto.
2223         (floor<mode>2): Ditto.
2224         (float<mode>2_fpr): Ditto.
2225         (round<mode>2): Ditto.
2226         (round<mode>2_fpr): Ditto.
2227         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2228         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2229         (fix_truncdfsi2_internal): Ditto.
2230         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2231         converted value on stack, loaded into GPR, and then stored into
2232         the final destination.
2233         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2234         FCTIDZ.
2235         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2236         (ftruncdf2): Delete, unused.
2237         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2238
2239         * config/rs6000/vsx.md (toplevel): Update copyright year.
2240         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2241         (VSr3): Ditto.
2242
2243 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2244             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2245
2246         * gengtype.c (output_type_enum): Test the right union member.
2247
2248 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2249
2250         PR target/41484
2251         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2252         operands for operand 1.
2253         (sse4_1_extendv4qiv4si2): Ditto.
2254         (sse4_1_extendv2qiv2di2): Ditto.
2255         (sse4_1_extendv4hiv4si2): Ditto.
2256         (sse4_1_extendv2hiv2di2): Ditto.
2257         (sse4_1_extendv2siv2di2): Ditto.
2258         (sse4_1_zero_extendv8qiv8hi2): Ditto.
2259         (sse4_1_zero_extendv4qiv4si2): Ditto.
2260         (sse4_1_zero_extendv2qiv2di2): Ditto.
2261         (sse4_1_zero_extendv4hiv4si2): Ditto.
2262         (sse4_1_zero_extendv2hiv2di2): Ditto.
2263         (sse4_1_zero_extendv2siv2di2): Ditto.
2264         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
2265         (*sse4_1_extendv4qiv4si2): Ditto.
2266         (*sse4_1_extendv2qiv2di2): Ditto.
2267         (*sse4_1_extendv4hiv4si2): Ditto.
2268         (*sse4_1_extendv2hiv2di2): Ditto.
2269         (*sse4_1_extendv2siv2di2): Ditto.
2270         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
2271         (*sse4_1_zero_extendv4qiv4si2): Ditto.
2272         (*sse4_1_zero_extendv2qiv2di2): Ditto.
2273         (*sse4_1_zero_extendv4hiv4si2): Ditto.
2274         (*sse4_1_zero_extendv2hiv2di2): Ditto.
2275         (*sse4_1_zero_extendv2siv2di2): Ditto.
2276
2277 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2278
2279         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
2280         (mips_function_arg): Delete.
2281         (mips_function_arg_boundary): Take a const_tree.
2282         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
2283         (mips_arg_info): Likewise.
2284         (mips_setup_incoming_varargs): Call mips_function_arg_advance
2285         instead of FUNCTION_ARG_ADVANCE.
2286         (mips_function_arg_advance): Adjust prototype.  Make static.
2287         (mips_function_arg): Likewise.
2288         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2289         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2290
2291 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2292
2293         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2294         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
2295         (function_arg): Delete.
2296         (function_arg_boundary): Take a const_tree.
2297         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
2298         (rs6000_spe_function_arg): Likewise.
2299         (rs6000_parm_start): Likewise.
2300         (rs6000_arg_size): Likewise.
2301         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
2302         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
2303         (rs6000_mixed_function_arg): Likewise.
2304         (function_arg): Rename to...
2305         (rs6000_function_arg): ...this.
2306         (function_arg_advance): Rename to...
2307         (rs6000_function_arg_advance_1): ...this
2308         (rs6000_function_arg_advance): New function.  Call it.
2309         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
2310         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
2311         (rs6000_function_value): Likewise.
2312         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2313
2314 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2315
2316         * config/arm/arm.md (enabled): Test the value of arch_enabled
2317         rather than just using it.
2318
2319 2010-08-27  Olivier Hainque  <hainque@adacore.com>
2320             Eric Botcazou  <ebotcazou@adacore.com>
2321
2322         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
2323         cover all the possible offsets from this base.
2324         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
2325
2326 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
2327
2328         PR tree-optimization/44485
2329         * calls.c (flags_from_decl_or_type): For const or pure
2330         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
2331         together with ECF_CONST resp. ECF_PURE.
2332         * builtins.c (expand_builtin): Use flags_from_decl_or_type
2333         instead of querying flags directly.
2334         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
2335         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
2336
2337 2010-08-26  Richard Guenther  <rguenther@suse.de>
2338
2339         PR tree-optimization/45255
2340         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
2341         and externals are also invariant.
2342
2343 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2344
2345         PR rtl-optimization/44858
2346         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
2347         newi2pat, make sure they don't affect newpat.
2348
2349         PR rtl-optimization/45400
2350         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
2351         SUBREG_REG if both modes are of MODE_INT class.
2352
2353 2010-08-25  Julian Brown  <julian@codesourcery.com>
2354
2355         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
2356         * config/arm/arm.md (generic_sched): No for Cortex-A5.
2357         (generic_vfp): Likewise.
2358         (cortex-a5.md): Include.
2359         * config/arm/cortex-a5.md: New.
2360
2361 2010-08-25  Richard Guenther  <rguenther@suse.de>
2362
2363         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
2364         * gimple.c (gimple_get_alias_set): Remove special handling
2365         for pointers.
2366
2367 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2368
2369         PR middle-end/45355
2370         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
2371         dead_or_set_p when computing i0_feeds_i2_n.
2372
2373         * combine.c (find_split_point): Undo canonicalization of multiply-add
2374         to (minus x (mult)) when it seems likely that this will increase the
2375         chances of a split.
2376
2377 2010-08-25  Richard Guenther  <rguenther@suse.de>
2378
2379         PR lto/44562
2380         * lto-streamer.c (lto_record_common_node): Do not mess with
2381         TYPE_CANONICAL when not in lto.
2382         * gimple.c (gimple_register_type): Likewise.
2383
2384 2010-08-25  Richard Guenther  <rguenther@suse.de>
2385
2386         PR tree-optimization/45316
2387         * tree-ssa-pre.c (eliminate): Properly clean EH info.
2388
2389 2010-08-25  Richard Guenther  <rguenther@suse.de>
2390
2391         PR tree-optimization/45393
2392         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
2393         and clean EH info.  Avoid SSA update.
2394         (execute_cse_sincos): Cleanup the CFG if it has changed.
2395
2396 2010-08-25  Richard Guenther  <rguenther@suse.de>
2397
2398         PR middle-end/45379
2399         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
2400         TARGET_MEM_REF in alignment computation.
2401
2402 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2403
2404         PR tree-optimization/45059
2405         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
2406         type conversions from newop{1,2}.  Assert t is a comparison and
2407         newop{1,2} after the stripping are gimple vals.
2408
2409 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
2410
2411         * config/arm/iterators.md (VU, SE, V_widen_l): New.
2412         (V_unpack, US): New.
2413         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
2414         (vec_unpack<US>_lo_<mode>): Likewise.
2415         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
2416         (neon_vec_unpack<US>_lo_<mode>): Likewise.
2417         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
2418         (vec_widen_<US>mult_hi_<mode>): Likewise.
2419         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
2420         (neon_vec_<US>mult_hi_<mode>"): Likewise.
2421         (neon_unpack<US>_<mode>): Widening move intermediate step for
2422         vectorizing without -mvectorize-with-neon-quad.
2423         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
2424         for vectorizing without -mvectorize-with-neon-quad.
2425         * config/arm/predicates.md (vect_par_constant_high): Check for
2426         high-half lanes of a vector.
2427         (vect_par_constant_low): Check for low-half lanes of a vector.
2428
2429 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2430
2431         * tree-if-conv.c (struct ifc_dr): New.
2432         (IFC_DR): New.
2433         (DR_WRITTEN_AT_LEAST_ONCE): New.
2434         (DR_RW_UNCONDITIONALLY): New.
2435         (memref_read_or_written_unconditionally): Use the cached values
2436         when possible.
2437         (write_memref_written_at_least_once): Same.
2438         (if_convertible_loop_p): Initialize and free DR->aux fields.
2439
2440 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2441
2442         * gimple.c (gimple_could_trap_p_1): Not static anymore.
2443         Pass an extra bool parameter include_mem.
2444         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
2445         (gimple_assign_rhs_could_trap_p): Same.
2446         * gimple.h (gimple_could_trap_p_1): Declared.
2447         * tree-data-ref.h (same_data_refs_base_objects): New.
2448         (same_data_refs): New.
2449         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
2450         (write_memrefs_written_at_least_once): New.
2451         (ifcvt_memrefs_wont_trap): New.
2452         (operations_could_trap): New.
2453         (ifcvt_could_trap_p): New.
2454         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
2455         Gets a vector of data refs.
2456         (if_convertible_stmt_p): Same.
2457         (if_convertible_loop_p_1): New.
2458         (if_convertible_loop_p): Call if_convertible_loop_p_1.
2459
2460 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2461
2462         * common.opt (ftree-loop-if-convert-stores): New flag.
2463         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
2464         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
2465         the created statement before GSI.
2466         (if_convertible_phi_p): Allow virtual phi nodes when
2467         flag_loop_if_convert_stores is set.
2468         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
2469         Do not handle types that do not match is_gimple_reg_type.
2470         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
2471         when flag_loop_if_convert_stores is set, as LHS can contain
2472         memory refs.
2473         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
2474         to if_convertible_gimple_assign_stmt_p.
2475         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
2476         (replace_phi_with_cond_gimple_assign_stmt): Renamed
2477         predicate_scalar_phi.  Do not handle virtual phi nodes.
2478         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
2479         Call predicate_scalar_phi.
2480         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
2481         just after the labels for flag_loop_if_convert_stores, otherwise
2482         insert the predicate in the end of the BB.
2483         (predicate_mem_writes): New.
2484         (combine_blocks): Call predicate_all_scalar_phis.  When
2485         flag_loop_if_convert_stores is set, call predicate_mem_writes.
2486         (tree_if_conversion): Call mark_sym_for_renaming when
2487         flag_loop_if_convert_stores is set.
2488         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
2489         flag_loop_if_convert_stores is set.
2490
2491 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
2492
2493         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
2494         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
2495         (pa_function_value): Make static.
2496         (override_options): Rename to...
2497         (pa_option_override): ...this. Make static.
2498         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
2499         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
2500         TARGET_OPTION_OVERRIDE): Define.
2501         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
2502         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
2503         Remove.
2504         * config/pa/pa-protos.h (override_options): Remove.
2505
2506 2010-08-24  Richard Guenther  <rguenther@suse.de>
2507
2508         PR middle-end/45379
2509         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
2510         if addr->index is NULL or zero.
2511         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
2512         TARGET_MEM_REF more properly.
2513         (indirect_ref_may_alias_decl_p): Likewise.
2514         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
2515         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
2516
2517 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
2518
2519         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
2520         (m32c_override_options): Rename to...
2521         (m32c_option_override): ...this. Make static.
2522         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
2523         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
2524         Remove.
2525         * config/m32c/m32c-protos.h (m32c_override_options,
2526         m32c_function_value_regno_p): Remove.
2527
2528 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2529
2530         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
2531         Fix a typo in a previous commit.
2532
2533 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
2534
2535         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
2536         Pre-initialize innerloop_iters to one.
2537
2538 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2539
2540         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
2541         existing static function global.
2542
2543         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
2544         is changed to global.
2545
2546         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
2547         may_be_nonaddressable_p on base, and don't collect this reference
2548         if the address of the base could not be taken.
2549
2550 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2551
2552         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
2553         enable the compiler to autovectorize mathmetical functions for
2554         power7 using the Mathematical Acceleration Subsystem library.
2555
2556         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
2557         handle which vector math library we have.
2558         (rs6000_override_options): Add -mveclibabi=mass support.
2559         (rs6000_builtin_vectorized_libmass): New function to handle auto
2560         vectorizing math functions that are in the MASS library.
2561         (rs6000_builtin_vectorized_function): Call it.
2562
2563         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2564         -mveclibabi=mass.
2565
2566 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2567
2568         PR boehm-gc/34544
2569         * gthr-posix.h (__gthread_active_init): Delete.
2570         (__gthread_active_p): Do activity check here.
2571         Don't include errno.h on hppa-hpux.  Update comment.
2572         * gthr-posix95.h (__gthread_active_init): Delete.
2573         (__gthread_active_p): Do activity check here.
2574         Don't include errno.h on hppa-hpux.  Update comment.
2575         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
2576         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
2577         add -lpthread when -mt or -pthread is specified.
2578         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
2579         (LINK_GCC_C_SEQUENCE_SPEC): Define.
2580         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
2581         (stublib.c, pthread_default_stacksize_np-stub.o,
2582         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
2583         $(T)libgcc_stub.a): Add methods.
2584         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
2585         (stublib.c, pthread_default_stacksize_np-stub.o,
2586         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
2587         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
2588         pthread_mutex_unlock): New stubs.
2589
2590 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
2591
2592         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
2593         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
2594         options.
2595         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
2596         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
2597         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
2598         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
2599         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
2600         "-l".
2601         * cppspec.c: Include opts.h.
2602         (lang_specific_driver): Use cl_decoded_option structures.
2603         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
2604         * doc/tm.texi: Regenerate.
2605         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
2606         (driver_handle_option): Allow driver options needing no special
2607         processing.
2608         (process_command): Decode options before call to
2609         lang_specific_driver.  Pass decoded options to
2610         lang_specific_driver.
2611         * gcc.h (lang_specific_driver): Update prototype.
2612         * gccspec.c: Include opts.h.
2613         (lang_specific_driver): Use cl_decoded_option structures.
2614         * opts-common.c (option_ok_for_language, generate_option,
2615         generate_option_input_file): New.
2616         (decode_cmdline_option): Use option_ok_for_language.
2617         (decode_cmdline_options_to_array): Use generate_option_input_file.
2618         (handle_generated_option): Use generate_option.
2619         * opts.h (generate_option, generate_option_input_file): Declare.
2620
2621 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
2622
2623         * config/mips/mips.c (mips_override_options): Rename to...
2624         (mips_option_override): ...this. Make static.
2625         (TARGET_OPTION_OVERRIDE): Define.
2626         (mips_in_small_data_p): Update comment.
2627         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
2628         (FIXED_REGISTERS): Update comment.
2629         * config/mips/mips-protos.h (mips_override_options): Remove.
2630
2631 2010-08-21  Olivier Hainque  <hainque@adacore.com>
2632
2633         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
2634
2635 2010-08-21  Olivier Hainque  <hainque@adacore.com>
2636
2637         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
2638         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
2639
2640 2010-08-20  Jan Hubicka  <jh@suse.cz>
2641
2642         * tree-pass.h (pass_ipa_cdtor_merge): New function.
2643         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
2644         heap allocated.
2645         (record_cdtor_fn): Move to ipa.c; do not test for
2646         have_ctors_dtors.
2647         (build_cdtor): Move to ipa.c; add code avoiding construction
2648         when target have ctors/dtors and there is only one ctor/dtor at given
2649         priority.
2650         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
2651         sort; reverse order of constructors.
2652         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
2653         (cgraph_finalize_function): Do not call record_cdtor_fn.
2654         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
2655         (cgraph_build_static_cdtor): Move to ipa.c.
2656         * ipa.c: Include target.h and tree-iterator.h.
2657         (cgraph_build_static_cdtor, static_ctors, static_dtors,
2658         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
2659         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
2660         pass_ipa_cdtor_merge): New.
2661         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
2662         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
2663         bounds access.
2664
2665 2010-08-20  Jan Hubicka  <jh@suse.cz>
2666
2667         PR c++/45307
2668         PR c++/17736
2669         * cgraph.h (cgraph_only_called_directly_p,
2670         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
2671         static cdtors.
2672         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
2673         are not needed.
2674         (cgraph_finalize_function): Static cdtors are reachable.
2675         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
2676
2677 2010-08-20  Jan Hubicka  <jh@suse.cz>
2678
2679         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
2680         flag_wpa.
2681         * lto-streamer-out.c (lto_output): Likewise.
2682         * passes.c (ipa_write_optimization_summaries): Initialize statement
2683         uids.
2684
2685 2010-08-20  Olivier Hainque  <hainque@adacore.com>
2686
2687         * tree.h (alias_diag_flags): New enum.
2688         (alias_pair): Add an 'emitted_diags' field.
2689         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
2690         (assemble_alias): Initialize emitted_diags of new pairs.
2691
2692 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
2693
2694         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
2695         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2696         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2697         (STACK_CHECK_PROTECT): Define.
2698         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
2699         (output_probe_stack_range): Likewise.
2700         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
2701         builtin stack checking is enabled.
2702         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
2703         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
2704         (probe_stack_range): New insn.
2705
2706 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
2707
2708         PR target/45336
2709         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
2710         short first.
2711
2712         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
2713         char first.
2714
2715 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2716
2717         PR target/45336
2718         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
2719         to cover zero extension into 64-bit register.
2720         (*sse2_pextrw): Likewise.
2721         (*sse4_1_pextrd_zext): New insn.
2722
2723 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
2724
2725         revert r163410, partially revert r163267.
2726         * config/rs6000/darwin.h (LIB_SPEC): Remove.
2727         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
2728         Darwin versions.
2729
2730 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2731
2732         PR middle-end/44974
2733         * builtins.c (expand_builtin): Don't optimize away
2734         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
2735
2736 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
2737
2738         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
2739         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
2740         alternative 1 of operand 2.
2741
2742 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2743             Paolo Bonzini  <bonzini@gnu.org>
2744
2745         * simplify-rtx.c (simplify_unary_operation_1): Optimize
2746         (sign_extend (zero_extend (...)) and
2747         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
2748
2749 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2750
2751         PR rtl-optimization/45353
2752         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
2753         after bb_note is a BARRIER.
2754
2755 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
2756
2757         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
2758         linking libgcc.a.
2759
2760 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2761             Michael Matz  <matz@suse.de>
2762
2763         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
2764
2765 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
2766
2767         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
2768         (ggc_mark_roots): ...here.
2769
2770 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
2771
2772         * vec.h (FOR_EACH_VEC_ELT): Define.
2773         * c-decl.c: Use it.
2774         * cfgloop.c: Likewise.
2775         * cfgloopmanip.c: Likewise.
2776         * cgraph.c: Likewise.
2777         * cgraphunit.c: Likewise.
2778         * combine.c: Likewise.
2779         * config/bfin/bfin.c: Likewise.
2780         * config/mips/mips.c: Likewise.
2781         * config/rs6000/rs6000.c: Likewise.
2782         * dbxout.c: Likewise.
2783         * df-scan.c: Likewise.
2784         * dominance.c: Likewise.
2785         * dse.c: Likewise.
2786         * dwarf2out.c: Likewise.
2787         * except.c: Likewise.
2788         * expr.c: Likewise.
2789         * function.c: Likewise.
2790         * gcse.c: Likewise.
2791         * genattr.c: Likewise.
2792         * ggc-common.c: Likewise.
2793         * gimplify.c: Likewise.
2794         * graphite-blocking.c: Likewise.
2795         * graphite-clast-to-gimple.c: Likewise.
2796         * graphite-dependences.c: Likewise.
2797         * graphite-interchange.c: Likewise.
2798         * graphite-poly.c: Likewise.
2799         * graphite-scop-detection.c: Likewise.
2800         * graphite-sese-to-poly.c: Likewise.
2801         * graphite.c: Likewise.
2802         * haifa-sched.c: Likewise.
2803         * ifcvt.c: Likewise.
2804         * implicit-zee.c: Likewise.
2805         * ipa-prop.c: Likewise.
2806         * ipa-struct-reorg.c: Likewise.
2807         * ipa.c: Likewise.
2808         * ira-build.c: Likewise.
2809         * ira-color.c: Likewise.
2810         * ira-emit.c: Likewise.
2811         * lambda-code.c: Likewise.
2812         * loop-invariant.c: Likewise.
2813         * loop-unroll.c: Likewise.
2814         * lower-subreg.c: Likewise.
2815         * lto-cgraph.c: Likewise.
2816         * lto-opts.c: Likewise.
2817         * lto-streamer-in.c: Likewise.
2818         * lto-streamer-out.c: Likewise.
2819         * lto-streamer.c: Likewise.
2820         * lto-symtab.c: Likewise.
2821         * matrix-reorg.c: Likewise.
2822         * opts.c: Likewise.
2823         * predict.c: Likewise.
2824         * print-tree.c: Likewise.
2825         * sdbout.c: Likewise.
2826         * sel-sched-dump.c: Likewise.
2827         * sel-sched-ir.c: Likewise.
2828         * sel-sched.c: Likewise.
2829         * sese.c: Likewise.
2830         * stor-layout.c: Likewise.
2831         * tree-cfg.c: Likewise.
2832         * tree-cfgcleanup.c: Likewise.
2833         * tree-chrec.c: Likewise.
2834         * tree-data-ref.c: Likewise.
2835         * tree-emutls.c: Likewise.
2836         * tree-inline.c: Likewise.
2837         * tree-into-ssa.c: Likewise.
2838         * tree-loop-distribution.c: Likewise.
2839         * tree-loop-linear.c: Likewise.
2840         * tree-mudflap.c: Likewise.
2841         * tree-outof-ssa.c: Likewise.
2842         * tree-parloops.c: Likewise.
2843         * tree-predcom.c: Likewise.
2844         * tree-pretty-print.c: Likewise.
2845         * tree-scalar-evolution.c: Likewise.
2846         * tree-ssa-live.c: Likewise.
2847         * tree-ssa-loop-im.c: Likewise.
2848         * tree-ssa-loop-ivcanon.c: Likewise.
2849         * tree-ssa-loop-ivopts.c: Likewise.
2850         * tree-ssa-loop-manip.c: Likewise.
2851         * tree-ssa-loop-niter.c: Likewise.
2852         * tree-ssa-loop-prefetch.c: Likewise.
2853         * tree-ssa-phiprop.c: Likewise.
2854         * tree-ssa-pre.c: Likewise.
2855         * tree-ssa-reassoc.c: Likewise.
2856         * tree-ssa-sccvn.c: Likewise.
2857         * tree-ssa-structalias.c: Likewise.
2858         * tree-ssa.c: Likewise.
2859         * tree-vect-data-refs.c: Likewise.
2860         * tree-vect-loop-manip.c: Likewise.
2861         * tree-vect-loop.c: Likewise.
2862         * tree-vect-patterns.c: Likewise.
2863         * tree-vect-slp.c: Likewise.
2864         * tree-vect-stmts.c: Likewise.
2865         * tree-vrp.c: Likewise.
2866         * tree.c: Likewise.
2867         * value-prof.c: Likewise.
2868         * var-tracking.c: Likewise.
2869         * varasm.c: Likewise.
2870         * vmsdbgout.c: Likewise.
2871
2872 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2873             Richard Guenther  <richard.guenther@gmail.com>
2874
2875         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
2876         copy the src value and return a copy.
2877         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
2878         (C++ Volatiles): Adjust to describe C++ semantics only.
2879
2880 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
2881
2882         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
2883         be zero or nonzero.
2884         * doc/tm.texi: Regenerate.
2885         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
2886         * df-scan.c (df_get_exit_block_use_set), reginfo.c
2887         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
2888         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
2889         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
2890         to 1.
2891
2892 2010-08-20  Olivier Hainque  <hainque@adacore.com>
2893
2894         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
2895         an extra nop past a sibling call at the very end.
2896
2897 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2898
2899         PR bootstrap/45350
2900         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
2901         a comment.
2902
2903 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2904
2905         * target.def (function_arg, function_incoming_arg): Remove const
2906         qualifier on CUMULATIVE_ARGS parameter.
2907         * targhooks.h (default_function_arg, default_function_incoming_arg):
2908         Likewise.
2909         * targhooks.c (default_function_arg, default_function_incoming_arg):
2910         Likewise.
2911         * config/i386/i386.c (ix86_function_arg): Likewise.
2912
2913 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
2914
2915         PR target/45336
2916         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
2917         SIGN_EXTENDs or ZERO_EXTENDs.
2918
2919 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2920
2921         PR target/42172
2922         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
2923         Take its cost into account if nonnull.
2924         (insn_a_feeds_b): New static function.
2925         (combine_instructions): Look for four-insn combinations.
2926         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
2927         them into account when computing all_adjacent and looking for other
2928         uses.
2929         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
2930         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
2931         (try_combine): New arg I0.  Handle four-insn combinations.
2932         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
2933         like ELIM_I1.
2934
2935 2010-08-19  Jason Merrill  <jason@redhat.com>
2936
2937         PR c++/45307
2938         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
2939         if ctor is empty.
2940         (gimplify_modify_expr_rhs): Adjust.
2941
2942 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2943
2944         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
2945         bitmap_bit_p.
2946         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
2947         * dominance.c (iterate_fix_dominators): Likewise.
2948         * dse.c (set_usage_bits): Likewise.
2949         (set_position_unneeded, record_store): Likewise.
2950         * gimple-fold.c (get_maxval_strlen): Likewise.
2951         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
2952         * ipa-inline.c (update_caller_keys): Likewise.
2953         * ipa-split.c (verify_non_ssa_vars): Likewise.
2954         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
2955         (close_type_exposed_parameter, close_type_full_escape): Likewise.
2956         (close_addressof_down): Likewise.
2957         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
2958         (setup_allocno_left_conflicts_size): Likewise.
2959         (ira_reassign_conflict_allocnos): Likewise.
2960         (ira_reassign_pseudos): Likewise.
2961         * ira-emit.c (change_loop): Likewise.
2962         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
2963         * lto-streamer-out.c (write_symbol): Likewise.
2964         * predict.c (expr_expected_value_1): Likewise.
2965         * regstat.c (regstat_bb_compute_ri): Likewise.
2966         * sel-sched.c (create_block_for_bookkeeping): Likewise.
2967         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
2968         * stmt.c (expand_case): Likewise.
2969         * tree-eh.c (emit_eh_dispatch): Likewise.
2970         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
2971         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
2972         Likewise.
2973         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
2974         (rdg_build_components): Likewise.
2975         * tree-object-size.c (collect_object_sizes_for): Likewise.
2976         * tree-sra.c (convert_callers): Likewise.
2977         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
2978         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
2979         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
2980
2981 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2982
2983         * config/i386/i386.md (*lea_1): Use P mode iterator.
2984         (lea add splitter): Also handle DImode operands.
2985         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
2986         predicate.  Do not use ix86_lea_for_add_ok.
2987         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2988         (lea ashift splitter): Also handle DImode operands.
2989         (DImode lea ashift splitter): Remove splitter.
2990
2991 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2992
2993         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2994         ix86_binary_operator_ok.
2995
2996 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2997
2998         PR rtl-optimization/44691
2999         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3000         is not a register.
3001
3002 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3003
3004         PR target/45070
3005         * config/arm/arm.c (arm_output_epilogue): Ensure that return
3006          value of size 1-3 is handled correctly.
3007
3008 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3009
3010         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3011         type for the conditional has wide enough range.
3012
3013 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3014
3015         PR target/45327
3016         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3017         ix86_binary_operator_ok.
3018
3019 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3020
3021         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3022         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
3023         code to output insn mnemonic.  Fix comment.
3024         (*addsi_1_zext): Add r-r-0 alternative 1.
3025         <TYPE_LEA>: Split insn to lea.
3026         <default>: Handle alternative 1.
3027         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
3028         multi-level if_then_else RTX to set "type" attribute.
3029         <default>: Handle alternative 2.
3030         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3031         Use cond RTX instead of multi-level if_then_else RTX to set
3032         "type" attribute.
3033         <default>: Handle alternatives 2 and 4.
3034         (lea splitters): Update calls to ix86_lea_for_add_ok.
3035
3036         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3037         argument.
3038         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3039
3040 2010-08-18  Richard Guenther  <rguenther@suse.de>
3041
3042         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3043         use operand helpers.
3044
3045 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3046
3047         PR middle-end/45292
3048         * optabs.c (expand_bool_compare_and_swap): Expand pending
3049         pops before trying the optab.
3050
3051 2010-08-18  Yao Qi  <yao@codesourcery.com>
3052
3053         PR target/45094
3054         * config/arm/arm.c (output_move_double): Fix typo generating
3055         instructions ('ldr'->'str').
3056
3057 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3058
3059         PR rtl-optimization/42575
3060         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3061         live ranges.
3062
3063 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3064
3065         * config/arm/arm-protos.h (arm_expand_sync): New.
3066         (arm_output_memory_barrier, arm_output_sync_insn): New.
3067         (arm_sync_loop_insns): New.
3068         * config/arm/arm.c (FL_ARCH7): New.
3069         (FL_FOR_ARCH7): Include FL_ARCH7.
3070         (arm_arch7): New.
3071         (arm_print_operand): Support %C markup.
3072         (arm_legitimize_sync_memory): New.
3073         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3074         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3075         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3076         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3077         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3078         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3079         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3080         * config/arm/arm.h (struct arm_sync_generator): New.
3081         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3082         (TARGET_HAVE_MEMORY_BARRIER): New.
3083         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3084         * config/arm/arm.md: Include sync.md.
3085         (UNSPEC_MEMORY_BARRIER): New.
3086         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3087         (VUNSPEC_SYNC_OP):New.
3088         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3089         (sync_result, sync_memory, sync_required_value): New attributes.
3090         (sync_new_value, sync_t1, sync_t2): Likewise.
3091         (sync_release_barrier, sync_op): Likewise.
3092         (length): Add logic to length attribute defintion to call
3093         arm_sync_loop_insns when appropriate.
3094         * config/arm/sync.md: New file.
3095
3096 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3097
3098         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3099         ENABLE_TREE_CHECKING.
3100         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3101         and GCC >= 4.3.
3102
3103 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3104
3105         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3106         or optimizing for size, always avoid lea if possible.
3107
3108         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3109
3110 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3111
3112         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3113         Dunmmy function with NULL return unless the target is
3114         OSX >= 10.6 (Darwin10).
3115
3116 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3117
3118         * gcc.c (spec_function): Add remove-outfile.
3119         (remove_outfile_spec_function): New function.
3120         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3121         * invoke.texi (replace-outfile): Document.
3122
3123 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3124
3125         PR target/45296
3126         * reginfo.c (globalize_reg): Reject stack registers.
3127
3128 2010-08-17  Richard Guenther  <rguenther@suse.de>
3129
3130         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3131         list of conditional equivalences.
3132         (free_all_edge_infos): Adjust.
3133         (record_equivalences_from_incoming_edge): Likewise.
3134         (record_cond): Likewise.
3135         (build_and_record_new_cond): Likewise.
3136         (record_conditions): Likewise.
3137         (dom_opt_leave_block): Likewise.
3138
3139 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3140
3141         * doc/invoke.texi (ms-extension): Add documentation.
3142
3143 2010-08-17  Richard Guenther  <rguenther@suse.de>
3144
3145         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3146
3147 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3148
3149         PR c/40563
3150         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3151         (finish_decl): Use it to issue a -Wc++-compat warning about
3152         uninitialized const field in struct or union.
3153
3154         (finish_struct): Use strip_array_types.
3155
3156 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3157
3158         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3159         functions.
3160         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3161         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3162         call block_nreverse here.
3163         (blocks_nreverse): Rename decl temporary to block.
3164
3165 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3166
3167         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3168         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3169         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3170         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3171         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3172         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3173         thumb2_iorsi3): Delete.
3174         (orsi_notsi_si): No longer a named pattern.
3175         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3176         * config/arm/predicates.md (shift_amount_operand): New.
3177         (mult_operator): New.
3178         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3179         attr enabled): New.
3180         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3181         arch matches t2.
3182         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3183         (not_shiftsi_compare0): Likewise, renamed from
3184         arm_notsi_shiftsi_compare0.
3185         (not_shiftsi_compare0_scratch): Likweise, renamed from
3186         arm_notsi_shiftsi_compare0_scratch.
3187         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3188         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3189         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3190         so that the register alternative is disabled when the shift_operator
3191         is MULT.  Use "M" as the constraint for constants.
3192         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3193         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3194         constraint for constants.
3195         (arith_shiftsi_compare0_scratch): Likewise.
3196         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3197         Handle Thumb2 alternative.
3198
3199 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3200
3201         * doc/options.texi (NoDriverArg): Document.
3202         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
3203         -MDX and -MMDX.
3204         * opt-functions.awk (switch_flags): Handle NoDriverArg.
3205         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
3206         marking for CL_NO_DRIVER_ARG options when in the driver.
3207         * opts.h (CL_NO_DRIVER_ARG): Define.
3208         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3209         CL_COMMON): Update values.
3210
3211 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3212
3213         * common.opt: Add driver options.
3214         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
3215         * doc/options.texi (Driver, RejectDriver): Document.
3216         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
3217         print_prog_name, print_multi_directory, print_sysroot,
3218         print_multi_os_directory, print_multi_lib,
3219         print_sysroot_headers_suffix, report_times, combine_flag,
3220         use_pipes, wrapper_string): Remove.
3221         (save_switch, driver_unknown_option_callback,
3222         driver_wrong_lang_callback, driver_post_handling_callback,
3223         driver_handle_option): New.
3224         (spec_lang, last_language_n_infiles): Make file-scope static
3225         instead of local to process_command.
3226         (process_command): Use decode_cmdline_options_to_array and
3227         read_cmdline_option for option processing.  Compute have_c in
3228         prescan of decoded options.
3229         * opt-functions.awk (switch_flags): Handle Driver and
3230         RejectDriver.
3231         (var_type, var_type_struct): Handle Separate options as generating
3232         const char * variables.
3233         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
3234         CL_TARGET to be passed by caller if required.
3235         (decode_cmdline_options_to_array): Update comment.
3236         * opts.c (complain_wrong_lang): Handle options only valid for the
3237         driver.
3238         (decode_options): Update call to decode_cmdline_options_to_array.
3239         (print_filtered_help): Ignore driver-only options.
3240         (print_specific_help): Ignore CL_DRIVER.
3241         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
3242         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
3243         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
3244         Update values.
3245
3246 2010-08-16  Richard Guenther  <rguenther@suse.de>
3247
3248         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3249         TARGET_MEM_REF a bit.
3250         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
3251         (create_mem_ref_raw): Always create TMR_OFFSET, store the
3252         alias pointer type via it.
3253         (copy_mem_ref_info): Adjust.
3254         (maybe_fold_tmr): Likewise.
3255         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
3256         (reference_alias_ptr_type): Likewise.
3257         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
3258         adjust documentation of TMR_OFFSET operand.
3259         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
3260         use the alias pointer type.
3261         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
3262         initialize mem attrs but the TMR itself.
3263         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
3264         similar to MEM_REF.
3265         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
3266         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
3267         (unshare_and_remove_ssa_names): Likewise.
3268         (copy_ref_info): Adjust.
3269         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
3270         TARGET_MEM_REF case.
3271         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
3272         at TMR_ORIGINAL.
3273         * tree.h (TMR_ORIGINAL): Remove.
3274         * gimple.c (get_base_address): For TARGET_MEM_REF with a
3275         symbol return that.
3276         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
3277         with a symbol.
3278         (get_addr_base_and_unit_offset): Likewise.
3279         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
3280         TARGET_MEM_REFs.
3281         (indirect_ref_may_alias_decl_p): Likewise.
3282         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
3283
3284 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
3285
3286         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
3287         with GCC version 4.6, the default setting (when not optimizing
3288         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
3289         been changed to -fomit-frame-pointer.
3290
3291 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
3292
3293         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
3294         Darwin10.  Do not link libgcc.a for Darwin >= 9.
3295
3296 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
3297
3298         * doc/invoke.texi (Warning Options): Fix terminology and markup
3299         in the description of how unknown warning options are handled.
3300
3301 2010-08-15  Ira Rosen  <irar@il.ibm.com>
3302
3303         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
3304         in basic blocks.
3305         (vect_supportable_dr_alignment): Check alignment for basic blocks.
3306         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
3307         data references.
3308         (vect_bb_vectorization_profitable_p): New function.
3309         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
3310         check if it's worthwhile to vectorize the basic block.
3311
3312 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
3313
3314         * reload.h (register_move_cost, memory_move_secondary_cost,
3315         secondary_reload_class): Adjust prototype.
3316         * rtl.h (reg_class_subset_p): Adjust prototype.
3317         * reload.c (secondary_reload_class): Change arguments type from
3318         enum reg_class to reg_class_t. Change result type to reg_class_t.
3319         * reginfo.c (register_move_cost, reg_class_subset_p): Change
3320         arguments type from enum reg_class to reg_class_t.
3321         (memory_move_secondary_cost): Change arguments type from
3322         enum reg_class to reg_class_t. Change type of saved_flags to
3323         reg_class_t.
3324
3325         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3326         Remove macros.
3327         (mips_cost): Remove.
3328         (struct mips_rtx_cost_data): Moved to mips.c.
3329         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
3330         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
3331         (mips_cost): Make static.
3332         (mips_canonicalize_move_class): Change argument type to reg_class_t.
3333         Change result type to reg_class_t.
3334         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
3335         type from enum reg_class to reg_class_t.
3336         (mips_register_move_cost): Make static. Change arguments
3337         type from enum reg_class to reg_class_t.
3338         (mips_memory_move_cost): New function.
3339         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3340
3341 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
3342
3343         PR rtl-optimization/43358
3344         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
3345         of a single hard register, using simplify_subreg_regno to decide
3346         what that register should be.
3347
3348 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
3349
3350         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
3351         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
3352         (loongson_pmull<V_suffix>): Rename to...
3353         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
3354
3355 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
3356
3357         * configure.ac: Enable -fomit-frame-pointer on darwin
3358         which support dwarf2.
3359         * config/i386/i386.c (override_options): Same.
3360
3361 2010-08-13  Jie Zhang  <jie@codesourcery.com>
3362
3363         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
3364
3365 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
3366
3367         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
3368         -MMD.
3369
3370 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
3371
3372         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
3373         up dot_prod pattern searching if a stmt is outside the loop.
3374
3375 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
3376             Uros Bizjak  <ubizjak@gmail.com>
3377
3378         * config.gcc: Handle --enable-frame-pointer.
3379
3380         * configure.ac: Add --enable-frame-pointer.
3381         * configure: Regenerated.
3382
3383         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
3384         (override_options): If not configured with --enable-frame-pointer,
3385         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
3386         optimizing for size), -fasynchronous-unwind-tables and
3387         -maccumulate-outgoing-args by default.
3388
3389 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3390
3391         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
3392
3393         PR middle-end/45262
3394         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
3395         -a overflows.  Normalize the range.
3396
3397 2010-08-12  Richard Guenther  <rguenther@suse.de>
3398
3399         PR tree-optimization/45232
3400         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
3401         for types with undefined overflow.
3402         (reassociate_bb): Allow re-associating of bit and min/max
3403         operations for types with undefined overflow.
3404         * tree-ssa-forwprop.c (associate_plusminus): New function.
3405         (tree_ssa_forward_propagate_single_use_vars): Call it.
3406
3407 2010-08-12  Richard Guenther  <rguenther@suse.de>
3408
3409         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
3410         * tree-ssa-alias.c (get_ptr_info): Move ...
3411         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
3412         align and misalign fields conservatively.
3413         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
3414         derive alignment information.
3415         (evaluate_stmt): Derive alignment information from memory
3416         allocation functions.
3417         * tree.h (get_pointer_alignment): Make unsigned.
3418         * builtins.c (get_object_alignment): Use alignment information we
3419         have computed for pointers.
3420         (get_pointer_alignment): Likewise.  Make conservative, return
3421         and unsigned value.
3422         (expand_builtin_strlen): Adjust.
3423         (expand_builtin_memcmp): Likewise.
3424         (expand_builtin_strcmp): Likewise.
3425         (expand_builtin_strncmp): Likewise.
3426         (get_builtin_sync_mem): Use at least mode alignment.
3427         (fold_builtin_memset): Adjust.
3428         (fold_builtin_memory_op): Likewise.
3429         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
3430         information also dump pointer alignment knowledge.
3431         (dump_gimple_stmt): Likewise.
3432
3433 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
3434
3435         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
3436         (EMPTY_FIELD_BOUNDARY): Remove.
3437         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
3438
3439 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3440
3441         PR debug/45259
3442         * caller-save.c (save_call_clobbered_regs): Only swap notes with
3443         DEBUG_INSNs if n_regs_saved.
3444
3445 2010-08-12  Wei Guozhi  <carrot@google.com>
3446
3447         PR target/44999
3448         * config/arm/arm.md (andsi3): Change to zero extension if possible.
3449         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
3450
3451 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
3452
3453         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
3454
3455         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
3456
3457 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3458
3459         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
3460         the case removed in the previous patch, when the only phi argument
3461         is defined in the same loop as the phi node itself.  Handle it
3462         separately from the invariant case by both propagating it outside
3463         the region and replacing the phi node with an assign.
3464
3465 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3466
3467         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
3468         constant phi nodes with one argument are is_gimple_min_invariant
3469         and SSA_NAME_IS_DEFAULT_DEF.
3470
3471 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3472
3473         * graphite-cloog-util.c (oppose_constraint):
3474         Extend loop counter's value range (CLOOG_ORG).
3475         (cloog_matrix_to_ppl_constraint): Same.
3476         (new_Constraint_System_from_Cloog_matrix): Same.
3477         * graphite-cloog-compat.h (matrix_num_type): New.
3478
3479 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3480
3481         * graphite.c (graphite_initialize): Do not initialize
3482         CLooG and initialize the Parma Polyhedra Library
3483         manually when using CLOOG_ORG.
3484         (graphite_finalize): Do not finalize CLooG and finalize
3485         the Parma Polyhedra Library manually when using CLOOG_ORG.
3486         * graphite-cloog-compat.h (cloog_initialize): Hide function
3487         when using CLOOG_ORG.
3488         (cloog_finalize): Same.
3489
3490 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3491
3492         * graphite-clast-to-gimple.c (free_scattering): Change
3493         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
3494         (CLOOG_ORG).
3495         (build_cloog_prog): Same.
3496         * graphite-cloog-compat.h (cloog_domain): Removed.
3497         (cloog_scattering): New.
3498         (cloog_set_domain): Removed.
3499         (cloog_set_scattering): New.
3500         (cloog_next_domain): Removed.
3501         (cloog_next_scattering): New.
3502         (cloog_set_next_domain): Removed.
3503         (cloog_set_next_scattering): New.
3504         (CloogScatteringList): New.
3505         (CloogScattering): New.
3506         (cloog_scattering_free): New.
3507         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
3508         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
3509         New.
3510
3511 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3512
3513         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
3514         CloogState.
3515         (set_cloog_options): Same.
3516         (print_clast_stmt): Same.
3517         (scop_to_clast): Same.
3518         (print_generated_program): Same.
3519         (gloog): Same.
3520         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
3521         (scop_to_clast): Extend with CloogState.
3522         * graphite-cloog-util.c: Include graphite-cloog-compat.h
3523         (new_Cloog_Domain_from_ppl_Polyhedron):
3524         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
3525         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
3526         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3527         * graphite-cloog-util.h (build_cloog_prog): Same.
3528         * graphite-cloog-copat.h (build_cloog_prog): New.
3529         (CloogState): New.
3530         (cloog_state_malloc): New.
3531         (cloog_state_free): New.
3532         (cloog_loop_malloc): New.
3533         (cloog_options_malloc): New.
3534         (cloog_statement_alloc): New.
3535         (cloog_domain_from_cloog_matrix): New.
3536         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
3537         (new_Cloog_Domain_from_ppl_Polyhedron): New.
3538
3539 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3540
3541         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
3542         type of NAME now depends on used CLooG version.
3543         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
3544         (gcc_type_for_clast_expr): Same.
3545         (print_clast_stmt): Replace pprint with clast_pprint.
3546         * graphite-cloog-compat.h: Provide compatibility macros for
3547         CLooG Legacy.
3548         (clast_name_p): New.
3549         (clast_expr_term): New.
3550         (clast_expr_red): New.
3551         (clast_expr_bin): New.
3552         (clast_pprint): New.
3553
3554 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3555
3556         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
3557         compatible to newer CLooG releases (CLOOG_ORG).
3558         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
3559         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
3560         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
3561         (build_cloog_prog) : New.
3562         (cloog_program_extract_scalars): New.
3563         (cloog_program_scatter): New.
3564
3565 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3566
3567         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
3568         conditionally (CLOOG_ORG).
3569         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
3570         (cloog_statement_usr): New.
3571         (cloog_domain): Same.
3572         (cloog_set_domain): Same.
3573         (cloog_next_domain): Same.
3574         (cloog_set_next_domain): Same.
3575         (cloog_program_nb_scattdims): Same.
3576         (cloog_program_set_nb_scattdims): Same.
3577         (cloog_program_names): Same.
3578         (cloog_program_set_names): Same.
3579         (cloog_program_set_context): Same.
3580         (cloog_program_set_loop): Same.
3581         (cloog_program_blocklist): Same.
3582         (cloog_program_set_blocklist): Same.
3583         (cloog_program_scaldims): Same.
3584         (cloog_program_set_scaldims): Same.
3585         (cloog_names_nb_parameters): Same.
3586         (cloog_names_set_nb_parameters): Same.
3587         (cloog_names_parameters): Same.
3588         (cloog_names_set_parameters): Same.
3589         (cloog_names_set_nb_iterators): Same.
3590         (cloog_names_set_iterators): Same.
3591         (cloog_names_set_nb_scattering): Same.
3592         (cloog_names_set_scattering): Same.
3593         (cloog_statement_set_usr): Same.
3594         (cloog_loop_set_next): Same.
3595         (cloog_loop_set_domain): Same.
3596         (cloog_loop_set_block): Same.
3597         (cloog_block_list_next): Same.
3598         (cloog_block_list_set_next):
3599         (cloog_block_list_set_block): Same.
3600
3601 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3602
3603         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
3604         a bool.
3605         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
3606         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
3607         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
3608         when something has been changed.
3609         (rewrite_commutative_reductions_out_of_ssa): Same.
3610
3611 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3612
3613         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
3614         handle the case when def is in the sese region.
3615         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
3616         for invariant expressions.
3617         (rewrite_cross_bb_phi_deps): Removed.
3618         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
3619         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
3620         rewrite_cross_bb_phi_deps.
3621
3622 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3623
3624         * graphite-sese-to-poly.c
3625         (rewrite_commutative_reductions_out_of_ssa_loop): Call
3626         scev_analyzable_p only on is_gimple_reg
3627
3628 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3629
3630         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
3631         (rewrite_close_phi_out_of_ssa): Propagate constant values or
3632         parametric expressions outside the scop region.
3633         (rewrite_cross_bb_scalar_deps): Same.
3634         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
3635
3636 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3637
3638         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
3639         SSA_NAME_DEF_STMT only on SSA_NAMEs.
3640
3641 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3642
3643         * tree-scalar-evolution.c (instantiate_scev_name): Do not
3644         instantiate default definitions.
3645
3646 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
3647             Sebastian Pop  <sebastian.pop@amd.com>
3648
3649         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
3650         (loop_exits_from_bb_p): New.
3651         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
3652         (loop_exits_from_bb_p): Declared.
3653         * graphite-scop-detection.c (scopdet_basic_block_info): Call
3654         loop_exits_to_bb_p.
3655
3656 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3657
3658         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
3659         extra parameter for the region.  Call scev_analyzable_p.
3660         (rewrite_reductions_out_of_ssa): Update call to
3661         rewrite_close_phi_out_of_ssa.
3662         (rewrite_cross_bb_phi_deps): Same.
3663         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
3664         parameter for the region.  Call scev_analyzable_p.
3665         (rewrite_commutative_reductions_out_of_ssa): Update call to
3666         rewrite_commutative_reductions_out_of_ssa_loop.
3667
3668 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3669
3670         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
3671
3672 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3673
3674         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
3675         SSA scalar phi nodes that can be scev_analyzable_p.
3676
3677 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3678
3679         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
3680         handle SSA_NAME_IS_DEFAULT_DEF.
3681
3682 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3683
3684         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
3685
3686 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3687
3688         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
3689         case non close-phi nodes with one argument.
3690
3691 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3692
3693         * sese.h (scev_analyzable_p): Scevs could be expressions without
3694         chrecs and still be scev_analyzable_p.
3695
3696 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3697
3698         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
3699
3700 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3701
3702         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
3703         * cfgloop.h (struct loop): Remove single_iv field.
3704         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
3705         (scop_canonicalize_loops): Removed.
3706         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
3707         over all the loop phi nodes in loop->header.
3708         (build_poly_scop): Remove use of scop_canonicalize_loops.
3709
3710 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3711
3712         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
3713         handle GIMPLE_CALL.
3714
3715 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3716
3717         * tree-chrec.c (chrec_apply): Should only apply to the specified
3718         variable.  Also handle multivariate chains of recurrences that
3719         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
3720
3721 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3722
3723         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
3724         (debug_clast_name_indexes_1): Removed.
3725         (debug_clast_name_indexes): Removed.
3726         (pbb_to_depth_to_oldiv): Removed.
3727         (build_iv_mapping): Replace the use of rename_map with iv_map.
3728         (translate_clast_user): Remove uses of rename_map.  Allocate and
3729         free iv_map.
3730         (translate_clast_for_loop): Remove uses of rename_map.
3731         (translate_clast_for): Same.
3732         (translate_clast_guard): Same.
3733         (translate_clast): Same.
3734         (gloog): Same.
3735         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
3736         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
3737         * sese.c (set_rename): Now static.
3738         (rename_variables_in_stmt): Removed.
3739         (rename_uses): New.
3740         (is_parameter): Removed.
3741         (is_iv): Removed.
3742         (expand_scalar_variables_call): Removed.
3743         (expand_scalar_variables_ssa_name): Removed.
3744         (expand_scalar_variables_expr): Removed.
3745         (expand_scalar_variables_stmt): Removed.
3746         (expand_scalar_variables): Removed.
3747         (rename_variables): Removed.
3748         (remove_condition): Removed.
3749         (get_true_edge_from_guard_bb): Removed.
3750         (get_false_edge_from_guard_bb): Removed.
3751         (struct igp): Removed.
3752         (default_before_guard): Removed.
3753         (convert_for_phi_arg): Removed.
3754         (add_guard_exit_phis): Removed.
3755         (insert_guard_phis): Removed.
3756         (graphite_copy_stmts_from_block): Now also uses iv_map and a
3757         region.  Do not copy conditions.  Do not copy induction variables.
3758         Call rename_uses.
3759         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
3760         the translated statement.  Use the iv_map for the induction
3761         variable renaming.
3762         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
3763         (set_rename): Removed declaration.
3764         (scev_analyzable_p): ...here.
3765         * tree-chrec.c (chrec_apply_map): New.
3766         * tree-chrec.h (chrec_apply_map): Declared.
3767
3768 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3769
3770         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
3771         insert_loop_close_phis.
3772         * sese.c (name_defined_in_loop_p): Removed.
3773         (expr_defined_in_loop_p): Removed.
3774         (alive_after_loop): Removed.
3775         (close_phi_not_yet_inserted_p): Removed.
3776         (struct alep): Removed.
3777         (add_loop_exit_phis): Removed.
3778         (insert_loop_close_phis): Removed.
3779
3780 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3781
3782         * graphite-cloog-util.c
3783         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
3784         * graphite-poly.c
3785         (psct_scattering_dim_for_loop_depth): Same.
3786
3787 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3788
3789         * graphite-cloog-util.h: Added cloog.h.
3790         * graphite-blocking.c: Removed cloog.h.
3791         * graphite-dependences.c: Same.
3792         * graphite-interchange.c: Same.
3793         * graphite-poly.c: Same.
3794         * graphite-ppl.c: Same.
3795         * graphite-scop-detection.c: Same.
3796         * graphite-sese-to-poly.c:
3797         Removed cloog.h.
3798         Removed graphite-clast-to-gimple.h.
3799         (check_poly_representation): Removed (unused).
3800         * graphite-sese-to-poly.h
3801         (check_poly_representation): Removed (unused).
3802
3803 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3804
3805         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
3806         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
3807         (graphite-cloog-util.o): New.
3808         (graphite-ppl.o): Added graphite-cloog-util.h.
3809         * graphite-clast-to-gimple.c:
3810         Added graphite-cloog-util.h to include statements.
3811         * graphite-cloog-util.c: New.
3812         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
3813         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3814         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3815         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3816         (insert_constraint_into_matrix): Same.
3817         (ppl_Constrain_System_number_of_constraints): Same.
3818         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3819         (oppose_constraint): Same.
3820         (cloog_matrix_to_ppl_constraint): Same.
3821         (new_Constraint_System_from_Cloog_Matrix): Same.
3822         * graphite-cloog-util.h: New.
3823         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
3824         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3825         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3826         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3827         (insert_constraint_into_matrix): Same.
3828         * graphite-ppl.c:
3829         Added graphite-cloog-util.h to include statements.
3830         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
3831         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3832         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3833         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3834         (insert_constraint_into_matrix): Same.
3835         (ppl_Constrain_System_number_of_constraints): Same.
3836         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3837         (oppose_constraint): Same.
3838         (cloog_matrix_to_ppl_constraint): Same.
3839         (new_Constraint_System_from_Cloog_Matrix): Same.
3840         * graphite-ppl.h:
3841         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
3842         graphite-cloog-util.h.
3843         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3844         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3845         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3846         (insert_constraint_into_matrix): Same.
3847
3848 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3849
3850         * graphite-clast-to-gimple.c
3851         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
3852         (precision_for_interval): Same.
3853         (gcc_type_for_interval): Same.
3854         (compute_type_for_level): Same.
3855         * graphite-interchange.c
3856         (lst_interchange_profitable_p): Same.
3857         * graphite-poly.c
3858         (psct_scattering_dim_for_loop_depth): Same.
3859         * graphite-ppl.c
3860         (ppl_max_for_le_pointset): Same.
3861         (ppl_min_for_le_pointset): Same.
3862
3863 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3864
3865         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
3866         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
3867
3868 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3869
3870         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
3871         rewrite_close_phi_out_of_ssa.
3872
3873 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3874
3875         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
3876
3877 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3878
3879         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
3880         rename_map.
3881         * sese.c (debug_rename_map): Same.
3882         (get_rename): Same.
3883         (set_rename): Same.
3884         (rename_variables_in_stmt): Same.
3885         (expand_scalar_variables_call): Same.
3886         (expand_scalar_variables_ssa_name): Same.
3887         (expand_scalar_variables_expr): Same.
3888         (expand_scalar_variables_stmt): Same.
3889         (expand_scalar_variables): Same.
3890         (rename_variables): Same.
3891         (graphite_copy_stmts_from_block): Same.
3892         (copy_bb_and_scalar_dependences): Same.
3893
3894 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3895
3896         * graphite-clast-to-gimple.c (copy_renames): Removed.
3897         (translate_clast_for): Do not call copy_renames.
3898         (translate_clast_guard): Same.
3899
3900 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3901
3902         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
3903         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
3904         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
3905         before rewrite_cross_bb_scalar_deps.
3906
3907 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3908
3909         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
3910         Early return in when flag_associative_math is not set.
3911
3912 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3913
3914         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
3915         of SSA copies on edges except for loop->latch.
3916
3917 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3918
3919         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
3920         Split out of rewrite_reductions_out_of_ssa.
3921         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
3922         Declared.
3923         * graphite.c (graphite_transform_loops): Call it.
3924
3925 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3926
3927         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
3928
3929 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
3930
3931         * dbgcnt.def (graphite_scop): New counter.
3932         * graphite.c: Include dbgcnt.h.
3933         (graphite_transform_loops): Use new counter to limit transformations.
3934         * Makefile.in (graphite.o): Depend on DBGCNT_H.
3935
3936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3937
3938         * passes.c (init_optimization_passes): Add pass_graphite.
3939         Schedule a pass_copy_prop before pass_graphite_transforms.
3940         * timevar.def (TV_GRAPHITE): Declared.
3941         * tree-pass.h (pass_graphite): Declared.
3942         * tree-ssa-loop.c (pass_graphite): New.
3943
3944 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3945
3946         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
3947         Remove calls to rename_nb_iterations and rename_sese_parameters.
3948         * graphite-clast-to-gimple.h (gloog): Update declaration.
3949         * graphite.c (graphite_transform_loops): Update call to gloog.
3950         * sese.c (rename_variables_in_expr): Removed.
3951         (rename_nb_iterations): Removed.
3952         (rename_sese_parameters): Removed.
3953         * sese.h (rename_nb_iterations): Removed.
3954         (rename_sese_parameters): Removed.
3955
3956 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3957
3958         * graphite-clast-to-gimple.c (gloog): Remove call to
3959         sese_adjust_liveout_phis.
3960         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
3961         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
3962         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
3963         rewrite_phi_out_of_ssa.
3964         * sese.c (get_vdef_before_sese): Removed.
3965         (sese_adjust_vphi): Removed.
3966         (sese_adjust_liveout_phis): Removed.
3967         * sese.h (sese_adjust_liveout_phis): Removed.
3968
3969 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3970
3971         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
3972         argument for the place after which to insert the out of SSA copy.
3973         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
3974         (rewrite_phi_out_of_ssa): Same.
3975         (rewrite_cross_bb_scalar_deps): Same.
3976         (insert_copyout): Removed.
3977         (insert_copyin): Removed.
3978         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
3979         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
3980         insert_copyin.
3981
3982 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3983
3984         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
3985         (rewrite_reductions_out_of_ssa): Same.
3986         (rewrite_commutative_reductions_out_of_ssa): Same.
3987         (build_poly_scop): Do not call these functions.
3988         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3989         (rewrite_reductions_out_of_ssa): Declared.
3990         (rewrite_commutative_reductions_out_of_ssa): Declared.
3991         * graphite.c (graphite_transform_loops): Call on every scop
3992         rewrite_commutative_reductions_out_of_ssa before calling
3993         rewrite_reductions_out_of_ssa and build_scop_bbs.
3994
3995 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3996
3997         * graphite-dependences.c (dot_deps): Make system call to dotty run
3998         in background.
3999         (dot_deps_stmt): Same.
4000         * graphite-poly.c (dot_lst): Same.
4001
4002 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4003
4004         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
4005         phi_arg_in_outermost_loop.
4006         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
4007         (remove_invariant_phi): Same.
4008
4009 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
4010
4011         * target.def (output_addr_const_extra): New hook.
4012         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
4013         * doc/tm.texi: Regenerate.
4014         * targhooks.c (default_asm_output_addr_const_extra): New function.
4015         * targhooks.h (default_asm_output_addr_const_extra): Declare.
4016         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
4017         target hook.
4018
4019         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4020         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
4021         * config/i386/i386.h (output_addr_const_extra): Rename to...
4022         (i386_asm_output_addr_const_extra): ...this. Make static.
4023         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4024
4025 2010-08-11  Richard Henderson  <rth@redhat.com>
4026
4027         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
4028
4029 2010-08-11  Nick Clifton  <nickc@redhat.com>
4030
4031         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
4032         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
4033         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4034         stormy16-lib2-cmpsi.c.
4035
4036         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
4037         -O2.
4038
4039 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
4040
4041         * opts.h (struct cl_option_handler_func): Make handler take
4042         cl_decoded_option structure as parameter, not individual elements.
4043         (struct cl_option_handlers): Make callbacks take cl_decoded_option
4044         structure as parameter, not individual elements.
4045         (handle_option): Take cl_decoded_option structure as parameter,
4046         not individual elements.
4047         (handle_generated_option): Declare.
4048         * opts-common.c (handle_option): Take cl_decoded_option structure
4049         as parameter, not individual elements.  Update calls to callback
4050         and handler functions.
4051         (handle_generated_option): New.
4052         (read_cmdline_option): Update calls to callback functions and
4053         handle_option.
4054         * opts.c (common_handle_option, complain_wrong_lang,
4055         unknown_option_callback, post_handling_callback,
4056         lang_handle_option, target_handle_option): Take cl_decoded_option
4057         structure as parameter, not individual elements.
4058         (lang_handle_option, target_handle_option, common_handle_option):
4059         Assert option has at most one argument.
4060         (enable_warning_as_error): Call handle_generated_option instead of
4061         handle_option.  Do not pass -Werror argument as argument of
4062         generated option.
4063
4064 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4065
4066         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4067         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4068         (SUBWORD_BOOL_CAS): Likewise.
4069         (SUBWORD_SYNC_OP): Likewise.
4070         (SUBWORD_TEST_AND_SET): Likewise.
4071         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4072         (SUBWORD_SYNC_OP): Likewise.
4073         (OP_AND_FETCH_WORD): Likewise.
4074
4075 2010-08-10  Xinliang David Li  <davidxl@google.com>
4076
4077         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
4078         compute max/min offset in address.
4079
4080 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
4081
4082         * ira-live.c: Include sbitmap.h.
4083         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
4084         Compress live ranges even more.
4085
4086 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4087
4088         * coverage.c (ctr_labels): Delete.
4089
4090 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4091
4092         PR bootstrap/45177
4093         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
4094         test here from arm_gen_load_multiple_1.
4095         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
4096         multiple_operation_profitable_p.
4097
4098 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4099
4100         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
4101         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
4102
4103 2010-08-10  Richard Henderson  <rth@redhat.com>
4104
4105         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
4106         after saving registers.  Assert that SSE registers are only saved
4107         with a sufficiently aligned frame.
4108         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
4109         remove stack_realign_fp handling.
4110         (ix86_expand_prologue): Save int registers before stack_realign_fp,
4111         and do not mark the stack alignment as frame related.
4112         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
4113
4114         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
4115         saves when re-aligning the stack.
4116
4117 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4118
4119         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
4120         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
4121         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
4122
4123 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4124
4125         * dwarf2out.c (struct die_struct): Move die_tag to the end.
4126
4127 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
4128
4129         * config/arm/iterators.md: New file.
4130         * config/arm/arm.md: Include iterators.md.
4131         (QHSI): Move to new file.
4132         (LTUGEU, cnb, optab, ior_xor): Likewise.
4133         * config/arm/iwmmxt.md (VMMX): Move to new file.
4134         (VSHFT, MMX_char): Likewise.
4135         * config/arm/neon.md (VD): Move to new file.
4136         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
4137         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
4138         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
4139         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
4140         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
4141         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
4142         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
4143         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
4144         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
4145         (Is_d_reg, V_mode_nunits): Likewise.
4146         * config/arm/vec-common.md (VALL): Move to new file.
4147         (VALLW, VINT, VINTW): Likewise.
4148
4149 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4150
4151         PR middle-end/45182
4152         * combine.c (make_compound_operation): Don't try to convert
4153         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
4154
4155 2010-08-10  Richard Guenther  <rguenther@suse.de>
4156
4157         * tree.h (get_object_alignment): Adjust prototype.
4158         * builtins.c (get_object_alignment): Return unsigned int,
4159         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
4160         and TARGET_MEM_REF properly.
4161         (get_pointer_alignment): Adjust.
4162         * emit-rtl.c (get_mem_align_offset): Adjust comment.
4163         (set_mem_attributes_minus_bitpos): Adjust.
4164         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
4165
4166 2010-08-10  Richard Guenther  <rguenther@suse.de>
4167
4168         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
4169         (copy_prop_visit_assignment): Simplify.
4170         (copy_prop_visit_stmt): Also visit assignments from
4171         constants.
4172         (copy_prop_visit_phi_node): Use operand_equal_p.
4173
4174 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4175
4176         * ipa-split.c (find_split_points): Free stack.
4177
4178 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4179
4180         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
4181         * tree.c (tree_node_kind): Delete corresponding entries.
4182
4183 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4184
4185         * alias.c (may_alias_p): Remove unused ret.
4186
4187 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
4188
4189         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
4190         alias_sets_conflict_p.
4191         (walk_mems_1): Moved from alias.c.
4192         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
4193         in alias.c.
4194         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
4195         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
4196         * alias.c (walk_mems_2): Moved to ddg.c.
4197         (walk_mems_1): Ditto.
4198         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
4199         to ddg.c.
4200         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
4201         disambiguation.
4202         *(may_alias_p): New function to check whether two memory expression
4203         may alias or not. Currently used in buidling inter-iteration memory
4204         dependence.
4205         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
4206         (insn_alias_sets_conflict_p): Removed
4207         *rtl.h (may_alias_p): New function prototype.
4208
4209 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4210
4211         * tree.c (nreverse): Assert that we don't have a BLOCK.
4212
4213 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4214
4215         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
4216         * config/arm/arm.c (arm_get_pcs_model): Likewise.
4217         * config/avr/avr.c (init_cumulative_args): Likewise.
4218         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4219         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4220         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
4221         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
4222         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
4223         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4224         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
4225         * dwarf2out.c (gen_subprogram_die): Likewise.
4226         * function.c (allocate_struct_function): Likewise.
4227         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
4228         (deserves_ellipsis): Delete.
4229
4230 2010-08-09  Richard Guenther  <rguenther@suse.de>
4231
4232         * tree-ssa-copy.c (cached_last_copy_of): Remove.
4233         (valueize_val): New function.
4234         (get_last_copy_of): Remove.
4235         (set_copy_of_val): Simplify.
4236         (dump_copy_of): Likewise.
4237         (copy_prop_visit_cond_stmt): Use valueize_val.
4238         (copy_prop_visit_phi_node): Properly handle unvisited names.
4239         Drop code managing copy-of chains.
4240         (init_copy_prop): Adjust.
4241         (fini_copy_prop): Likewise.
4242         (execute_copy_prop): Remove obsolete comment.
4243
4244 2010-08-09  Richard Guenther  <rguenther@suse.de>
4245
4246         PR middle-end/44632
4247         * function.c (gimplify_parameters): Do not clear addressable
4248         bit of the original parameter.
4249
4250 2010-08-09  Richard Guenther  <rguenther@suse.de>
4251
4252         PR middle-end/45212
4253         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
4254         alignment from MEM_REF offset only if we took it from the
4255         base object.
4256
4257 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
4258
4259         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
4260
4261 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4262
4263         * c-tree.h (build_arg_info): Declare.
4264         * c-decl.c (build_arg_info): Define.
4265         (get_parm_info): Call it.  Delete initialization code.
4266         * c-parser.c (c_parser_parms_declarator): Likewise.
4267         (c_parser_parms_list_declaractor): Likewise.
4268
4269 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4270
4271         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
4272         (struct c_arg_info): Change type of tags field.
4273         * c-decl.c (grokdeclarator): Update for changed type of tags field.
4274         (get_parm_info): Likewise.
4275         (store_parm_decls_newstyle): Likewise.
4276
4277 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4278
4279         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
4280         (branch_island_list): Delete.
4281         (branch_islands): Declare.
4282         (add_compiler_branch_island): Adjust for branch_islands instead of
4283         branch_island_list.
4284         (macho_branch_islands): Likewise.
4285         (no_previous_def): Likewise.
4286         (get_prev_label): Likewise.
4287
4288 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4289
4290         PR boehm-gc/34544
4291         * gthr-posix.h (__gthread_start): Delete.
4292         (__gthread_active_init): Use pthread_default_stacksize_np instead of
4293         pthread_create to determine if hpux pthreads are active.
4294         * gthr-posix95.h (__gthread_start): Delete.
4295         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
4296
4297 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
4298
4299         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
4300         _WIN64 not expanded.
4301
4302 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
4303             H.J. Lu  <hongjiu.lu@intel.com>
4304
4305         PR target/45213
4306         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
4307         to output 32bit SFmode immediate as 8 byte sign extended value.
4308
4309 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4310
4311         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4312         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4313         (SUBWORD_BOOL_CAS): Likewise.
4314         (SUBWORD_SYNC_OP): Likewise.
4315         (SUBWORD_TEST_AND_SET): Likewise.
4316         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4317         (SUBWORD_SYNC_OP): Likewise.
4318         (OP_AND_FETCH_WORD): Likewise.
4319
4320 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4321
4322         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
4323         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
4324         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
4325         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
4326         generic part.
4327         (cortex_a9_sched_adjust_cost): New function.
4328         (xscale_sched_adjust_cost): New function.
4329         * config/arm/arm-protos.h (struct tune_params): New field
4330         sched_adjust_cost.
4331         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
4332
4333 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
4334
4335         PR target/44942
4336         * config/sparc/sparc.c (function_arg_advance): Always take into account
4337         the padding, if any.
4338
4339 2010-08-06  Richard Guenther  <rguenther@suse.de>
4340
4341         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
4342         (dump_lattice_value): Dump it.
4343         (get_default_value): Adjust.
4344         (get_constant_value): Likewise.
4345         (set_value_varying): Likewise.
4346         (set_lattice_value): Make sure to not go up the lattice
4347         with bitwise constant values.
4348         (get_value_for_expr): Handle ADDR_EXPRs.
4349         (value_to_double_int): New function.
4350         (get_value_from_alignment): Likewise.
4351         (do_dbg_cnt): Adjust.
4352         (ccp_lattice_meet): Handle partially constant values.
4353         (bit_value_unop_1): New function.
4354         (bit_value_binop_1): Likewise.
4355         (bit_value_unop): Likewise.
4356         (bit_value_binop): Likewise.
4357         (evaluate_stmt): Track partially constant values if
4358         flag_tree_bit_ccp is set.
4359         (ccp_fold_stmt): Dump if we folded a predicate.
4360         (ccp_visit_stmt): Adjust.
4361         * common.opt (ftree-bit-ccp): New flag.
4362         * doc/invoke.texi (ftree-bit-ccp): Document.
4363         * opts.c (decode_options): Enable bit-CCP at -O1.
4364
4365 2010-08-06  Alan Modra  <amodra@gmail.com>
4366
4367         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
4368         and -mrelocatable-lib description.
4369
4370 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
4371
4372         From Martin Thuresson  <martint@google.com>
4373         * postreload.c (reload_cse_simplify_operands): Use
4374         SET_REGNO_RAW instead of SET_REGNO.
4375         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
4376         SET_REGNO.
4377         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
4378         instead of SET_REGNO.
4379         * rtl.h (SET_REGNO_RAW): New macro.
4380
4381 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
4382
4383         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
4384         computations.  Fix formatting issues.
4385         (num_sign_bit_copies1): Likewise.
4386         (canonicalize_condition): Likewise.
4387
4388 2010-08-05  Richard Henderson  <rth@redhat.com>
4389
4390         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
4391         (floor_log2): Use clz_hwi.
4392         (exact_log2): Use ctz_hwi.
4393         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
4394         * builtins.c (fold_builtin_bitop): Use them.
4395         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4396         * combine.c (get_pos_from_mask): Use ctz_hwi.
4397         * double-int.c (double_int_ctz): Likewise.
4398         * explow.c (force_reg): Likewise.
4399         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
4400
4401 2010-08-05  Richard Henderson  <rth@redhat.com>
4402
4403         PR target/45189
4404         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
4405         the alignment constant is properly sign-extended.
4406
4407 2010-08-05  Richard Guenther  <rguenther@suse.de>
4408
4409         * expr.c (store_expr): Use emit_block_move only if both
4410         source and target are MEMs.  Use store_bit_field if only
4411         the target is a MEM.
4412
4413 2010-08-05  Richard Henderson  <rth@redhat.com>
4414
4415         PR debug/45188
4416         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
4417         (INCOMING_RETURN_ADDR_RTX): Likewise.
4418         (dwarf2out_do_frame): Remove conditional compilation.
4419         (dwarf2out_frame_init): Likewise.
4420
4421 2010-08-05  Nicolas Setton  <setton@adacore.com>
4422
4423         * gcov.c (flag_display_progress): New static variable.
4424         (main): Display progress info on standard output if requested.
4425         (options): Add -d/--display-progress.
4426         (print_usage): Print them.
4427         (process_args): Handle them.
4428         * doc/gcov.texi: Document them.
4429
4430 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4431
4432         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
4433         (ipcp_insert_stage): Redirect only edges not flagged with
4434         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
4435         discovered constants.
4436
4437 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4438
4439         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
4440         (struct ipa_param_descriptor): New fields types and
4441         cannot_devirtualize.
4442         (ipa_param_cannot_devirtualize_p): New function.
4443         (ipa_param_types_vec_empty): Likewise.
4444         (ipa_make_edge_direct_to_target): Declare.
4445         * ipa-cp.c: Fixed first stage driver name in initial comment,
4446         described devirtualization there too.
4447         (ipcp_analyze_node): Call ipa_analyze_params_uses.
4448         (ipcp_print_all_lattices): Print devirtualization info.
4449         (ipa_set_param_cannot_devirtualize): New function.
4450         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
4451         lattice to BOTTOM.
4452         (ipcp_init_stage): Merged into...
4453         (ipcp_generate_summary): ...its caller.
4454         (ipcp_change_tops_to_bottom): Also process type lists.
4455         (ipcp_add_param_type): New function.
4456         (ipcp_copy_types): Likewise.
4457         (ipcp_propagate_types): Likewise.
4458         (ipcp_propagate_stage): Also propagate types.
4459         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
4460         Also return true if propagated types require it.
4461         (ipcp_update_callgraph): Dump redirection info.
4462         (ipcp_process_devirtualization_opportunities): New function.
4463         (ipcp_const_param_count): Include known type information.
4464         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
4465         on new node.  Fixed formatting.
4466         * ipa-prop.c (make_edge_direct_to_target): Renamed to
4467         ipa_make_edge_direct_to_target and changed all callers.  Made
4468         externally visible.
4469         (ipa_node_duplication_hook): Duplicate types vector.
4470         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
4471         redirect outgoing calls for which we can't get a decl from the
4472         statement.  Check that we can get a decl from the call statement.
4473         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4474         ipa_analyze_params_uses only when ipa-cp is disabled.
4475         * tree-inline.c (get_indirect_callee_fndecl): Removed.
4476         (expand_call_inline): Do not call get_indirect_callee_fndecl.
4477         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
4478         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
4479
4480 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4481
4482         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
4483         temporary. Emit move from temporary to accum, so REG_EQUAL note will
4484         be attached to this insn in correct mode.
4485
4486 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4487
4488         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
4489         using REGNO of base_reg directly.
4490
4491 2010-08-05  Jie Zhang  <jie@codesourcery.com>
4492
4493         PR tree-optimization/45144
4494         * tree-sra.c (type_consists_of_records_p): Return false
4495         if the record contains bit-field.
4496
4497 2010-08-04  Richard Henderson  <rth@redhat.com>
4498
4499         * config/i386/i386.c (struct ix86_frame): Remove padding and
4500         to_allocate members.
4501         (ix86_compute_frame_layout): Don't store them.
4502         (ix86_can_use_return_insn_p): Use a more direct and more obviously
4503         correct condition for the position of the stack pointer.
4504         (ix86_expand_prologue): Compute remaining stack allocation based
4505         on the ultimate stack pointer offset.
4506         (ix86_expand_epilogue): Use more obvious expressions testing for
4507         the stack pointer already pointing to the saved registers.
4508
4509         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
4510         duplication deconstructing the frame pointer.  Simplify
4511         deallocation of the local stack frame.
4512
4513         * reg-notes.def (CFA_EXPRESSION): New.
4514         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4515         (dwarf2out_frame_debug_cfa_expression): New.
4516         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
4517
4518         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
4519         * config/i386/i386.c (ix86_expand_prologue): Set it.
4520         (ix86_expand_epilogue): Clear it.
4521         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
4522         context, add REG_CFA_EXPRESSION notes.
4523
4524         * config/i386/i386.h (struct machine_frame_state): Rename from
4525         machine_cfa_state.  Add members tracking SP and FP regardless
4526         of the current CFA register.
4527         (ix86_cfa_state): Remove.
4528         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
4529         and sse_reg_save_offset members.
4530         (ix86_compute_frame_layout): Set them.
4531         (gen_push): Increment sp_offset too.
4532         (choose_baseaddr_len, choose_baseaddr): New.
4533         (ix86_emit_save_reg_using_mov): New.
4534         (ix86_emit_save_regs_using_mov): Use it.
4535         (ix86_emit_save_sse_regs_using_mov): Likewise.
4536         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
4537         compare vs the saved red_zone_offset.
4538         (pro_epilogue_adjust_stack): Adjust sp_offset.
4539         (ix86_adjust_stack_and_probe): Likewise.
4540         (ix86_expand_prologue): Set up, use, and validate the new
4541         frame_state_info members.  Use gen_frame_mem.
4542         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
4543         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
4544         new frame_state_info members.
4545         (ix86_emit_leave): Likewise.
4546         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
4547         out-of-range stack pointer offsets here.
4548         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4549         (ix86_expand_epilogue): Use and validate the new frame_state_info
4550         members.  Break up and simplify the logic selecting the
4551         restore_regs_via_mov code path.  Ensure that there will be no
4552         out-of-range stack pointer offsets.
4553
4554         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
4555
4556         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
4557         argument name to reflect the expected tree; fix indentation.
4558         (ix86_asm_output_function_label): Output the entire 32-bit
4559         ms_hook here as bytes ...
4560         (ix86_expand_prologue): ... not here as insns.  Attach the
4561         unwind info for the ms_hook to a blockage insn.
4562         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
4563         (ix86_ms_bitfield_layout_p): Fix indentation.
4564         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
4565
4566         * config/i386/i386.c (ix86_using_red_zone): New.
4567         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
4568         ix86_expand_prologue, ix86_force_to_memory): Use it.
4569
4570         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
4571         saving the int registers.
4572
4573         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
4574         and DWARF2_UNWIND_INFO conditional compilation.
4575
4576 2010-08-04  Richard Henderson  <rth@redhat.com>
4577
4578         PR debug/45171
4579         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
4580         an is_naming_typedef_decl.
4581
4582 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
4583
4584         PR rtl-optimization/45162
4585         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
4586         * dce.c (word_dce_process_block): Likewise.
4587
4588 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
4589
4590         PR target/44583
4591         * config/ia64/constraints.md (Z): New.
4592         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
4593         (xfreg_or_signed_fp01_operand): New.
4594         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
4595         with fr_reg_or_signed_fp01_operand and constraint G with Z.
4596         (subsf3): Ditto.
4597         (*maddsf4): Ditto.
4598         (*msubsf4): Ditto.
4599         (adddf3): Ditto.
4600         (adddf3_trunc): Ditto.
4601         (subdf3): Ditto.
4602         (*subdf3_trunc): Ditto.
4603         (*madddf4): Ditto.
4604         (*madddf4_trunc): Ditto.
4605         (*msubdf4): Ditto.
4606         (*msubdf4_trunc): Ditto.
4607         (addxf3): Replace xfreg_or_fp01_operand with
4608         xfreg_or_signed_fp01_operand and constraint G with Z.
4609         (*addxf3_truncsf): Ditto.
4610         (*addxf3_truncdf): Ditto.
4611         (subxf3): Ditto.
4612         (*subxf3_truncsf): Ditto.
4613         (*subxf3_truncdf): Ditto.
4614         (*maddxf4): Ditto.
4615         (*maddxf4_truncsf): Ditto.
4616         (*maddxf4_truncdf): Ditto.
4617         (*msubxf4): Ditto.
4618         (*msubxf4_truncsf): Ditto.
4619         (*msubxf4_truncdf): Ditto.
4620
4621 2010-08-04  Richard Guenther  <rguenther@suse.de>
4622
4623         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
4624         if either alias-set is zero.
4625
4626 2010-08-04  Richard Guenther  <rguenther@suse.de>
4627
4628         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
4629         * tree-ssa-ccp.c: ... here.
4630         * tree-ssa-copy.c: ... and here.
4631         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
4632         value_range_t): Move ...
4633         * tree-vrp.c: ... here.
4634         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
4635         (substitute_and_fold): Adjust prototype.
4636         * tree-ssa-propagate.c (replace_uses_in): Adjust.
4637         (replace_phi_args_in): Likewise.
4638         (substitute_and_fold): Take callback to query lattice instead
4639         of pointer to lattice.  Replace SSA name defs with lattice
4640         values first.
4641         * tree-ssa-ccp.c (ccp_finalize): Adjust.
4642         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
4643         (get_value): New function.
4644         (fini_copy_prop): Adjust.
4645         * tree-vrp.c (vrp_finalize): Adjust.
4646
4647 2010-08-04  Richard Guenther  <rguenther@suse.de>
4648
4649         PR middle-end/45176
4650         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
4651         points-to set for original MEM_REF.
4652
4653 2010-08-04  Richard Guenther  <rguenther@suse.de>
4654
4655         * tree-ssa-ccp.c (get_constant_value): New function.
4656         (get_rhs_assign_op_for_ccp): Remove.
4657         (valueize_op): New function.
4658         (ccp_fold): Use get_constant_value and valueize_op.
4659         (fold_const_aggregate_ref): Likewise.
4660         (ccp_fold_stmt): Likewise.
4661         (visit_assignment): Simplify.
4662
4663 2010-08-04  Richard Guenther  <rguenther@suse.de>
4664
4665         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
4666         * double-int.h (double_int_ctz): Declare.
4667         * double-int.c (double_int_ctz): New function.
4668
4669 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
4670
4671         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
4672         Define.
4673         picochip_expand_movmemhi : Expand movmem pattern.
4674         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
4675         Declare.
4676         * config/picochip/picochip.md (movmemhi) : New pattern.
4677
4678 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
4679
4680         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
4681
4682 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
4683
4684         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
4685         NEG as operand of a MULT by merging it with the other operand.
4686         * combine.c (make_compound_operation): Use trunc_int_for_mode when
4687         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
4688         MULT.
4689         * config/arm/constraints.md (M): Examine only 32 bits of a
4690         HOST_WIDE_INT.
4691         * config/arm/predicates.md (power_of_two_operand): Likewise.
4692
4693 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4694
4695         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
4696         non-NOTE insns.
4697
4698 2010-08-03  Jan Hubicka  <jh@suse.cz>
4699
4700         * ipa-split.c (struct split_point): Add split_part_set_retval.
4701         (find_retval): Forward declare.
4702         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
4703         (consider_split): Compute current->split_part_set_retval.
4704         (visit_bb): Do not look into return value.
4705         (split_function): Handle !split_part_set_retval
4706
4707 2010-08-03  Martin Jambor  <mjambor@suse.cz>
4708
4709         * tree-sra.c (completely_scalarize_record): New parameter REF, create
4710         its own access->expr intead of using build_ref_for_offset.
4711
4712 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
4713
4714         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
4715         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
4716         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
4717         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
4718         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
4719         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
4720         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
4721         DEFAULT_SWITCH_TAKES_ARG.
4722         * config/rx/rx.opt (-patch=): Remove option.
4723         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
4724         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
4725         * doc/invoke.texi (RX Options): Remove -patch=.
4726         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
4727         (option_map): Remove --profile-blocks, --quiet and --silent.
4728
4729 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
4730
4731         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
4732         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
4733         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
4734         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
4735         Update calls to ix86_expand_compare and ix86_expand_branch.
4736         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
4737         ix86_expand_compare.
4738         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
4739         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
4740         Make static.
4741         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
4742         and ix86_compare_op1.  Update calls to ix86_expand_compare.
4743         (ix86_expand_int_movcc): Ditto.
4744         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
4745         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
4746         (ix86_expand_setcc): Ditto.
4747         (ix86_expand_compare): Remove prototype.
4748         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
4749         ix86_compare_op0 and ix86_compare_op1.  Update calls
4750         to ix86_expand_branch to directly pass operands[1] and operands[2].
4751         (cbranchxf4): Ditto.
4752         (cbranch<MODEF:mode>4): Ditto.
4753         (cbranchcc4): Ditto.
4754         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
4755         Update calls to ix86_expand_setcc to directly pass operands[2] and
4756         operands[3].
4757         (cstorexf4): Ditto.
4758         (cstore<MODEF:mode>4): Ditto.
4759         (cstorecc4): Ditto.
4760
4761 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
4762
4763         PR target/45063
4764         * caller-save.c (save_call_clobbered_regs): Remove regs from
4765         hard_regs_saved when they are set.
4766
4767 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
4768
4769         PR target/41089
4770         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
4771         as volatile.
4772
4773 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
4774
4775         * common.opt (ftree-loop-distribute-patterns): New.
4776         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
4777         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
4778         at -O3.
4779         * tree-data-ref.c (stores_zero_from_loop): New.
4780         * tree-data-ref.h (stores_zero_from_loop): Declared.
4781         * tree-loop-distribution.c (tree_loop_distribution): Call
4782         stores_zero_from_loop.
4783         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
4784
4785 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
4786
4787         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
4788         into account.
4789
4790         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
4791         * config/arm/arm.c (thumb1_code): New variable.
4792         (arm_override_options): Set it.
4793         (thumb1_final_prescan_insn): Keep track of condition code status.
4794         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
4795         jumps that depend on them.
4796         * config/arm/arm.h (thumb1_code): Declare variable.
4797         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
4798         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
4799         thumb1_cc_mode.
4800         (CC_STATUS_INIT): New macro.
4801         * config/arm/constraints.md (Pd): New constraint.
4802         * config/arm/predicates.md (noov_comparison_operator): New predicate.
4803         * config/arm/arm.md (is_thumb1): New define_attr.
4804         (conds): Set default to "clob" when generating Thumb1 code.
4805         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
4806         code are set.  Use two-operand assembly syntax.
4807         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
4808         pattern.
4809         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
4810         codes are set.  Use two-operand assembly syntax.
4811         (zero_extendhisi splitter): Remove constraints.
4812         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
4813         thumb1_movsf_insn): Set conds attribute as appropriate.
4814         (cbranchsi4_insn): Use condition code status from struct
4815         machine_function to determine whether the comparison can be eliminated.
4816         Discourage the alternative using high registers.
4817         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
4818         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
4819         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
4820         subsi3_cbranch): Delete.
4821         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
4822         one subtract and one cbranch insn.
4823
4824         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
4825         thumb2_movdf_soft_insn): Delete patterns.
4826         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
4827         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
4828         (pool_range, neg_pool_range): Use them to define defaults.
4829         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
4830         and allow for TARGET_32BIT.
4831
4832         PR target/40457
4833         * config/arm/arm.h (arm_regs_in_sequence): Declare.
4834         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
4835         load_multiple_sequence, store_multiple_sequence): Delete
4836         declarations.
4837         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
4838         declarations.
4839         * config/arm/ldmstm.md: New file.
4840         * config/arm/arm.c (arm_regs_in_sequence): New array.
4841         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
4842         CHECK_REGS.  All callers changed.
4843         If SAVED_ORDER is nonnull, copy the computed order into it.
4844         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
4845         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
4846         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
4847         If SAVED_ORDER is nonnull, copy the computed order into it.
4848         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
4849         like REGS.  Handle Thumb mode.
4850         (arm_gen_load_multiple_1): New function, broken out of
4851         arm_gen_load_multiple.
4852         (arm_gen_store_multiple_1): New function, broken out of
4853         arm_gen_store_multiple.
4854         (arm_gen_multiple_op): New function, with code from
4855         arm_gen_load_multiple and arm_gen_store_multiple moved here.
4856         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
4857         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
4858         changed.
4859         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
4860         * config/arm/predicates.md (commutative_binary_operator): New.
4861         (load_multiple_operation, store_multiple_operation): Handle more
4862         variants of these patterns with different starting offsets.  Handle
4863         Thumb-1.
4864         * config/arm/arm.md: Include "ldmstm.md".
4865         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
4866         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
4867         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
4868         peepholes): Delete.
4869         * config/arm/ldmstm.md: New file.
4870         * config/arm/arm-ldmstm.ml: New file.
4871
4872         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
4873         if statement which adds extra costs to frame-related expressions.
4874
4875 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4876
4877         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
4878
4879 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
4880
4881         PR target/45142
4882         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
4883         alternative 2.
4884         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
4885         split V4SI operands.
4886
4887 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
4888
4889         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4890         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
4891         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
4892         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
4893
4894 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
4895
4896         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
4897         LOCAL_INCLUDE_DIR.
4898
4899 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
4900
4901         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
4902         used in the call to optab_for_tree_code.  Fix the second
4903         is_widening_mult_p call.  Check that both unwidened operands
4904         have the same sign.
4905
4906 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
4907
4908         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
4909
4910 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
4911
4912         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4913
4914 2010-07-30  DJ Delorie  <dj@redhat.com>
4915
4916         * config/rx/predicates.md (rx_constshift_operand): New.
4917         * config/rx/rx.md (zs_cond): New.
4918         (cbranchsi4): Remove mode.
4919         (*cbranchsi4_<code>): Likewise.
4920         (*tstbranchsi4_<code>): New.
4921         (*tstbranchsi4r_<code>): New.
4922         (*tstbranchsi4m_eq): New.
4923         (*tstbranchsi4m_ne): New.
4924         (cbranchsf4): Remove mode.
4925         (*cbranchsf4_<code>): Likewise.
4926
4927 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
4928
4929         * rtlanal.c (simplify_subreg_regno): Don't treat
4930         HARD_FRAME_POINTER_REGNUM specially.
4931
4932 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
4933
4934         * common.opt (-G): Don't define option here.
4935         * config/g.opt: New.
4936         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
4937         rs6000/powerpc and score targets.
4938         * opts.c (common_handle_option): Don't handle -G here.
4939         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
4940         * config/frv/frv.c (frv_handle_option): Handle -G.
4941         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
4942         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
4943         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
4944         * config/mips/mips.c (mips_handle_option): Handle -G.
4945         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
4946         * config/score/score.c (score_handle_option): Handle -G.
4947
4948 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
4949
4950         * config/mmix/mmix.c: Include basic-block.h.
4951
4952 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
4953
4954         PR debug/45055
4955         PR rtl-optimization/45137
4956         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
4957         prototypes.
4958         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
4959         New functions.
4960         * combine.c (next_nonnote_nondebug_insn): Removed.
4961         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
4962         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
4963         * sched-deps.c (sched_analyze_insn): Likewise.
4964         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
4965         * rtlanal.c (canonicalize_condition): Likewise.
4966         * postreload.c (reload_combine_recognize_pattern): Likewise.
4967         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
4968
4969 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
4970
4971         * config/i386/i386.md (int_cond): Remove code iterator.
4972         (fp_cond): Ditto.
4973         (cbranch<mode>4): Use ordered_comparison_operator predicate
4974         for operator0.
4975         (cstore<mode>4): Ditto for operator1.
4976         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
4977         (add<mode>cc): ditto.
4978
4979 2010-07-30  Richard Guenther  <rguenther@suse.de>
4980
4981         PR middle-end/45141
4982         * expr.c (expand_expr_real_1): Check for not handled base address.
4983
4984 2010-07-30  Richard Guenther  <rguenther@suse.de>
4985
4986         * ipa-prop.c (ipa_modify_formal_parameters): Use
4987         build_distinct_type_copy.
4988
4989 2010-07-30  Anthony Green  <green@moxielogic.com>
4990
4991         * config/moxie/rtems.h: New file.
4992         * config.gcc: Add moxie-rtems support.
4993
4994 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4995
4996         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
4997         df flags as in run_fast_df_dce.
4998
4999 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5000
5001         Revert:
5002         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5003
5004         * rtl.def (NOTE): Swap operands 4 and 5.
5005         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
5006         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
5007         Adjust accordingly.
5008         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
5009
5010 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5011
5012         PR debug/45110
5013         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
5014         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
5015         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
5016         formal parameters.
5017         (gen_decl_die): Change return type to dw_die_ref, return what
5018         gen_formal_parameter_die returned.
5019
5020 2010-07-29  Martin Jambor  <mjambor@suse.cz>
5021
5022         * dbgcnt.def (eipa_sra): New counter.
5023         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
5024
5025 2010-07-29  Xinliang David Li  <davidxl@google.com>
5026
5027         PR bootstrap/45119
5028         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
5029         in revision 162652.
5030
5031 2010-07-29  Richard Guenther  <rguenther@suse.de>
5032
5033         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
5034         (TV_TREE_STORE_CCP): Likewise.
5035         (TV_TREE_REDPHI): Likewise.
5036
5037 2010-07-29  Richard Guenther  <rguenther@suse.de>
5038
5039         * double-int.h (double_int_and_not): New function.
5040         * combine.c (try_combine): Use it.
5041         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
5042
5043 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5044
5045         PR rtl-optimization/42575
5046         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
5047         Argument AU removed.  All callers changed.  Ignore artificial refs.
5048         Use return value of df_word_lr_simulate_defs to decide whether an insn
5049         is necessary.
5050         (fast_dce): Rename arg to WORD_LEVEL.
5051         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
5052         static.
5053         (pass_fast_rtl_byte_dce): Delete.
5054         * dce.h (run_word_dce): Declare.
5055         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
5056         All callers changed.  Simplify code to only deal with two-word regs.
5057         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
5058         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
5059         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
5060         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
5061         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
5062         (df_word_lr_mark_ref): Declare.
5063         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
5064         df_word_lr_simulate_uses): Declare or rename from byte variants.
5065         (df_byte_lr_simulate_artificial_refs_at_top,
5066         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5067         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
5068         declarations.
5069         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
5070         (enum df_mm): Delete.
5071         * df-byte-scan.c: Delete file.
5072         * df-problems.c (df_word_lr_problem_data): Renamed from
5073         df_byte_lr_problem_data, all members deleted except for
5074         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
5075         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
5076         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5077         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
5078         df_byte_lr_confluence_0): Delete functions.
5079         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
5080         callers changed.
5081         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
5082         Don't initialize members that were deleted, don't try to discover data
5083         about registers.  Ignore hard regs.
5084         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
5085         (df_word_lr_mark_ref): New function.
5086         (df_word_lr_bb_local_compute): Renamed from
5087         df_byte_bb_lr_local_compute; all callers changed.  Use
5088         df_word_lr_mark_ref.  Assert that artificial refs don't include
5089         pseudos.  Ignore hard registers.
5090         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
5091         Assert that exit block uses don't contain pseudos.
5092         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
5093         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
5094         callers changed.  Ignore hard regs.
5095         (df_word_lr_transfer_function): Renamed from
5096         df_byte_lr_transfer_function; all callers changed.
5097         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
5098         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
5099         changed.
5100         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
5101         callers changed.
5102         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
5103         confluence operator 0 set to NULL.
5104         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
5105         callers changed.
5106         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
5107         Return bool, true if bitmap changed or insn otherwise necessary.
5108         All callers changed.  Simplify using df_word_lr_mark_ref.
5109         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
5110         all callers changed.  Simplify using df_word_lr_mark_ref.
5111         * lower-subreg.c: Include "dce.h"
5112         (decompose_multiword_subregs): Call run_word_dce if df available.
5113         * Makefile.in (lower-subreg.o): Adjust dependencies.
5114         (df-byte-scan.o): Delete.
5115         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
5116
5117 2010-07-29  Richard Guenther  <rguenther@suse.de>
5118
5119         * tree.c (build_vector): Assert that the vector constant
5120         has enough elements.
5121         (build_vector_from_ctor): Pad with trailing zeros.
5122
5123 2010-07-29  Richard Guenther  <rguenther@suse.de>
5124
5125         PR tree-optimization/45120
5126         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5127         Handle offset in DEREFs properly.
5128         (get_constraint_for_1): Handle MEM_REF offset properly.
5129
5130 2010-07-29  Richard Guenther  <rguenther@suse.de>
5131
5132         PR middle-end/45034
5133         * convert.c (convert_to_integer): Always use an unsigned
5134         type for narrowed negate and bitwise not.
5135
5136 2010-07-29  Ira Rosen  <irar@il.ibm.com>
5137
5138         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
5139         to outer loop when creating reduction epilogue for double reduction,
5140         and switch back to the inner loop when updating the phi nodes.
5141         Update uses of outer loop exit phi nodes in double reduction (instead
5142         of uses of reduction).
5143
5144 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5145
5146         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
5147         popcount on power7 and parity on power6 systems.
5148         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
5149         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
5150         instructions.
5151
5152         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
5153         (UNSPEC_PARITY): Ditto.
5154         (SFDF): New iterator for SF/DF.
5155         (rreg2): New mode attribute for floating register constraint.
5156         (TARGET_FLOAT): New mode attribute for whether single/double float
5157         is supported.
5158         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
5159         pattern.
5160         (parity<mode>2_cmpb): New insn for parity on power6 and newer
5161         machines.
5162         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
5163         pattern.  Add support for fcpsgn instruction added in power6.
5164         (copysignsf3): Delete.
5165         (copysigndf3): Delete.
5166         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
5167         instead of if_then_else in RTL to avoid problems with -0.
5168
5169         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
5170         of if_then_else to mirror scalar code.
5171         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
5172         rs6000.md.
5173
5174         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
5175         instead of if_then_else.
5176
5177 2010-07-28  Xinliang David Li  <davidxl@google.com>
5178
5179         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
5180         (dump_cand): Dump var_before/after.
5181         (htab_inv_expr_eq): New function.
5182         (htab_inv_expr_hash): New function.
5183         (tree_ssa_iv_optimize_init): Support pseudo invariants.
5184         (add_candidate_1): consider base type precision.
5185         (set_use_iv_cost): New parameter.
5186         (adjust_setup_cost): Use profile information.
5187         (get_address_cost): Do not hard code width in computing address
5188         offset limits.
5189         (compare_aff_trees): New function.
5190         (get_loop_invariant_expr_id): New function.
5191         (get_computation_cost_at): New parameter and use profile information.
5192         (get_computation_cost): New parameter.
5193         (determine_use_iv_cost_generic): Pass new parameter.
5194         (determine_use_iv_cost_address): Ditto.
5195         (determine_use_iv_cost_condition): Ditto.
5196         (autoinc_possible_for_pair): Ditto.
5197         (determine_use_iv_costs): More dumps.
5198         (iv_ca_get_num_inv_exprs): New function.
5199         (iv_ca_recount_cost): Consider loop invariants in register pressure
5200         cost.
5201         (iv_ca_add_use): New parameter.
5202         (iv_ca_dump): Better dumping.
5203         (iv_ca_extend): New parameter.
5204         (try_add_cand_for): Attempt to get better partial solution.
5205         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
5206         (create_new-ivs): More dumps.
5207         (rewrite_use_compare): Ditto.
5208         (free_loop_data): More cleanup.
5209         (treee_ssa_iv_optimize_finalize): Ditto.
5210
5211 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
5212
5213         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
5214         * config/i386/i386.c (ix86_profile_before_prologue): New.
5215         (override_options): Add special handling for -mfentry.
5216         (ix86_function_regparm): Likewise.
5217         (ix86_function_sseregparm): Likewise.
5218         (ix86_frame_pointer_required): Likewise.
5219         (ix86_expand_prologue): Check for ms_hook_prologue.
5220         (x86_function_profiler): Adjust mcount output.
5221         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
5222         * config/i386/i386.opt (mfentry): New.
5223         * doc/invoke.texi (mfentry): Add documentation.
5224         * doc/tm.texi: Regenerated..
5225         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
5226         * final.c (final_start_function): Replace macro
5227         PROFILE_BEFORE_PROLOGUE by target hook.
5228         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5229         * target.def (profile_before_prologue): New hook.
5230         * targhooks.c (default_profile_before_prologue): New.
5231         * targhooks.h (default_profile_before_prologue): New.
5232
5233 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
5234
5235         PR debug/45105
5236         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
5237
5238         PR debug/45103
5239         * dwarf2out.c (dwarf2out_var_location): Always consider
5240         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
5241
5242 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5243
5244         PR rtl-optimization/45107
5245         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
5246
5247 2010-07-28  Richard Guenther  <rguenther@suse.de>
5248
5249         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
5250         (set_lattice_value): Do not query an old default value.
5251         (get_value_for_expr): New function.  Properly canonicalize
5252         float values.
5253         (ccp_visit_phi_node): Use it.
5254
5255 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
5256
5257         * config/arm/arm.c (arm_pcs_default): Remove static.
5258         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
5259         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
5260         (arm_pcs_default): Declare.
5261
5262 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
5263
5264         * config/rs6000/rs6000.c (rs6000_override_options):
5265         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
5266         ... to darwin_rs6000_override_options.
5267         (rs6000_return_in_memory): Update preceding comment for darwin
5268         64 bit ABI.  Use TARGET_MACHO inline.
5269         (rs6000_darwin64_struct_check_p): New.
5270         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
5271         (function_arg): Likewise.
5272         (rs6000_arg_partial_bytes): Likewise.
5273         (rs6000_function_value): Likewise.
5274
5275 2010-07-28  Andi Kleen <ak@linux.intel.com>
5276
5277         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
5278
5279 2010-07-28  Richard Guenther  <rguenther@suse.de>
5280
5281         PR middle-end/44903
5282         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
5283         targets try harder to not generate unaligned accesses.
5284
5285 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5286
5287         PR rtl-optimization/45101
5288         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
5289         for gcse-las.
5290
5291 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5292
5293         PR tree-optimization/44885
5294         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
5295         with non-aliased component.
5296
5297 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
5298
5299         * config/darwin-driver.c (SWITCH_TAKES_ARG,
5300         WORD_SWITCH_TAKES_ARG): Remove.
5301         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5302         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
5303         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
5304         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
5305         definitions from gcc.c.
5306         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
5307         defaults.h.
5308         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
5309         Move to defaults.h.
5310         * opts-common.c: Include tm.h.
5311         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
5312         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
5313         Handle more than one argument.  Set canonical_option_num_elements.
5314         (decode_cmdline_options_to_array): Set
5315         canonical_option_num_elements and trailing elements of
5316         canonical_option.
5317         * opts.h (struct cl_decoded_option): Allow four elements in
5318         canonical_option.  Add field canonical_option_num_elements.
5319         * Makefile.in (opts-common.o): Update dependencies.
5320
5321 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5322
5323         PR middle-end/44790
5324         PR middle-end/44993
5325         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
5326         sure the base has address_mode before adding the offset.
5327
5328 2010-07-27  Xinliang David Li <davidxl@google.com>
5329
5330         * tree-flow.h (create_mem_ref): Add one new parameter.
5331         * tree-ssa-address.c (create_mem_ref): New parameter.
5332         (addr_to_parts): Ditto.
5333         (move_variant_to_index): New function.
5334         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
5335
5336 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5337
5338         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
5339         4 and 5.
5340         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
5341         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
5342         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
5343         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
5344         CODE_LABELs and NOTEs.
5345         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
5346         * combine.c (try_combine): Likewise.
5347         * ira.c (setup_prohibited_mode_move_regs): Likewise.
5348         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
5349
5350 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5351
5352         * coretypes.h (struct cl_option_handlers): Declare.
5353         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
5354         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
5355         * langhooks-def.h (lhd_handle_option): Declare.
5356         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
5357         * langhooks.c (lhd_handle_option): New.
5358         * langhooks.h (struct lang_hooks): Update prototype and return
5359         value type of handle_option hook.
5360         * optc-gen.awk: Generate target_flags_explicit definition for the
5361         driver.
5362         * opts-common.c: Include diagnostic.h.
5363         (handle_option): Move from opts.c.  Update prototype and return
5364         value type.  Use handlers structure.
5365         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
5366         handlers structure.
5367         (set_option): Move from opts.c.
5368         * opts.c (common_handle_option): Update prototype and return value
5369         type.  Update calls to handle_option and enable_warning_as_error.
5370         (unknown_option_callback, post_handling_callback,
5371         lang_handle_option, target_handle_option): New.
5372         (handle_option, read_cmdline_option): Move to opts-common.c.
5373         (read_cmdline_options): Update prototype.  Update call to
5374         read_cmdline_option.
5375         (decode_options): Initialize and use handlers structure.
5376         (set_option): Move to opts-common.c.
5377         (enable_warning_as_error): Update prototype.  Update call to
5378         handle_option.
5379         * opts.h (struct cl_option_handler_func, struct
5380         cl_option_handlers): New.
5381         (handle_option, enable_warning_as_error): Update prototypes.
5382         (read_cmdline_option): Declare.
5383         * Makefile.in (opts-common.o): Update dependencies.
5384
5385 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5386
5387         * config/arm/arm.c (params.h): Include.
5388         (arm_override_options): Tune gcse-unrestricted-cost.
5389         * config/arm/t-arm (arm.o): Define dependencies.
5390
5391 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5392
5393         PR target/42495
5394         PR middle-end/42574
5395         * basic-block.h (get_dominated_to_depth): Declare.
5396         * dominance.c (get_dominated_to_depth): New function, use
5397         get_all_dominated_blocks as a base.
5398         (get_all_dominated_blocks): Use get_dominated_to_depth.
5399
5400         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
5401         (hoist_exprs): Remove.
5402         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
5403         (compute_code_hoist_vbeinout): Add debug print outs.
5404         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
5405
5406         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
5407         quadratic behavior.
5408         * params.h (MAX_HOIST_DEPTH): New macro.
5409         * doc/invoke.texi (max-hoist-depth): Document.
5410
5411 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5412
5413         PR rtl-optimization/40956
5414         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
5415         constants.
5416
5417 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5418
5419         PR target/42495
5420         PR middle-end/42574
5421         * config/arm/arm.c (legitimize_pic_address): Use
5422         gen_calculate_pic_address pattern to emit calculation of PIC address.
5423         (will_be_in_index_register): New function.
5424         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
5425         (thumb1_legitimate_address_p): Use it provided !strict_p.
5426         * config/arm/arm.md (calculate_pic_address): New expand and split.
5427
5428 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5429
5430         PR target/42495
5431         PR middle-end/42574
5432         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
5433         * config/arm/arm.md (define_split "J", define_split "K"): Make
5434         IRA/reload friendly.
5435
5436 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5437
5438         * gcse.c (insert_insn_end_basic_block): Update signature, remove
5439         unused checks.
5440         (pre_edge_insert, hoist_code): Update.
5441
5442 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5443
5444         PR target/42495
5445         PR middle-end/42574
5446         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
5447
5448 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5449
5450         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
5451
5452 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5453
5454         PR rtl-optimization/40956
5455         PR target/42495
5456         PR middle-end/42574
5457         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
5458         for hoisting.
5459         (hoist_code): Count occurences in current block too.
5460
5461 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5462
5463         * gcse.c (struct expr:max_distance): New field.
5464         (doing_code_hoisting_p): New static variable.
5465         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
5466         simple expressions, don't change behavior for PRE.  Set max_distance.
5467         (insert_expr_in_table): Set new max_distance field.
5468         (hash_scan_set): Update.
5469         (hoist_expr_reaches_here_p): Stop search after max_distance
5470         instructions.
5471         (find_occr_in_bb): New static function.  Use it in ...
5472         (hoist_code): Calculate sizes of basic block before any changes are
5473         done.  Pass max_distance to hoist_expr_reaches_here_p.
5474         (one_code_hoisting_pass): Set doing_code_hoisting_p.
5475
5476         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
5477         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
5478         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
5479         macros.
5480         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
5481         Document.
5482
5483 2010-07-27  Jeff Law  <law@redhat.com>
5484             Maxim Kuvyrkov  <maxim@codesourcery.com>
5485
5486         * gcse.c (compute_transpout, transpout): Remove, move logic
5487         to prune_expressions.
5488         (compute_pre_data): Move pruning of trapping expressions ...
5489         (prune_expressions): ... here.  New static function.
5490         (compute_code_hoist_data): Use it.
5491         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
5492
5493 2010-07-27  Xinliang David Li  <davidxl@google.com>
5494
5495         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
5496         (rewrite_use_address): Adjust iv update position when needed.
5497
5498 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5499
5500         * dbgcnt.def (hoist_insn): New debug counter.
5501         * gcse.c (hoist_code): Use it.
5502
5503 2010-07-27  Xinliang David Li  <davidxl@google.com>
5504
5505         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
5506         (niter_for_single_dom_exit): Passes additional parameter.
5507         (iv_period): Fix comments.
5508         (may_eliminate_iv): Handles multiple exit loops properly.
5509         (free_tree_niter_desc): New function.
5510         (free_loop_data): Frees up loop iteration descriptors.
5511
5512 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5513
5514         PR target/44542
5515         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
5516         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
5517         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
5518         (expand_one_var): Don't consider DECL_ALIGN for variables for
5519         which expand_one_stack_var_at has been already called.
5520
5521         PR testsuite/44701
5522         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
5523         constraints on IA-64.
5524
5525 2010-07-27  Jie Zhang  <jie@codesourcery.com>
5526
5527         PR target/44290
5528         Revert:
5529         2010-07-23  Jie Zhang  <jie@codesourcery.com>
5530
5531         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5532         false if ! tree_versionable_function_p.
5533
5534 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5535
5536         * dwarf2out.c (add_data_member_location_attribute): Use
5537         add_AT_unsigned instead of add_AT_int if offset is non-negative.
5538
5539 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5540
5541         * postreload.c (try_replace_in_use): New static function.
5542         (reload_combine_recognize_const_pattern): Use it here.  Allow
5543         substituting into a final add insn, and substituting into a memory
5544         reference in an insn that sets the reg.
5545
5546 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5547
5548         * common.opt (o): Add MissingArgError.
5549         * doc/options.texi (MissingArgError): Document.
5550         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
5551         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
5552         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
5553         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
5554         * langhooks.h (struct lang_hooks): Remove missing_argument.
5555         * optc-gen.awk: Handle MissingArgError and output new structure
5556         field initializers.
5557         * opts.c (read_cmdline_option): Use missing_argument_error field
5558         instead of missing_argument langhook.
5559         * opts.h (struct cl_option): Add missing_argument_error field.
5560         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
5561
5562 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5563
5564         PR target/29090
5565         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
5566         Darwin64 ABI, for zero-sized objects.
5567
5568 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5569
5570         PR target/35491
5571         PR target/29090
5572
5573         Merge from Apple local 4.2.1.
5574         2005-05-11  Stan Shebs  <shebs@apple.com>
5575         Fix 64-bit varargs for Darwin (Radar 4028089).
5576         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
5577         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
5578         Add argument, add case for 8-byte register half-filled with a float.
5579         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
5580         single-precision floats specially.
5581
5582 2010-07-27  Ira Rosen  <irar@il.ibm.com>
5583
5584         PR tree-optimization/44152
5585         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
5586         complex numbers for further check.
5587         (vect_supported_load_permutation_p): Check nodes with
5588         complex numbers.
5589
5590 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5591
5592         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
5593         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
5594         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
5595         (LANG_HOOKS_INITIALIZER): Add new hooks.
5596         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
5597         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
5598         and complain_wrong_lang_p.  Update init_options prototype.
5599         * c-objc-common.c (c_initialize_diagnostics): First call
5600         c_common_initialize_diagnostics.
5601         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
5602         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
5603         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
5604         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
5605         (hook_uint_void_0): New.
5606         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
5607         (hook_uint_void_0): New.
5608         * opts-common.c (decode_cmdline_option,
5609         decode_cmdline_options_to_array): Also fill in canonical_option field.
5610         * opts.c (complain_wrong_lang): Use langhook to determine whether
5611         to complain instead of special-casing LTO.
5612         (decode_options): Separate lang_mask determination with
5613         option_lang_mask hook from call of init_options hook.
5614         * opts.h (struct cl_decoded_option): Add canonical_option.
5615
5616 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5617
5618         PR tree-optimization/45083
5619         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
5620
5621 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5622
5623         * postreload.c (reload_combine_recognize_const_pattern): Move test
5624         for limiting the insn movement to the right scope.
5625
5626         PR rtl-optimization/45051
5627         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
5628         than reg_mentioned_p.
5629
5630 2010-07-26  Richard Henderson  <rth@redhat.com>
5631
5632         PR target/44132
5633         * tree-emutls.c: New file.
5634         * Makefile.in (OBJS-common): Add it.
5635         * tree-pass.h (pass_ipa_lower_emutls): Declare.
5636         * passes.c (init_optimization_passes): Add it.
5637
5638         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
5639         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
5640         * expr.c (emutls_var_address): Delete.
5641         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
5642         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
5643         (emutls_finish): Delete.
5644         * toplev.c (compile_file): Don't call it.
5645         * tree.h (emutls_decl): Delete.
5646         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
5647         (emutls_finish, emutls_finalize_control_var): Delete.
5648         (emutls_object_type): Move to tree-emutls.c.
5649         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
5650         default_emutls_var_fields, get_emutls_object_type,
5651         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
5652         default_emutls_var_init): Likewise.
5653         (get_variable_section): Don't special case emutls.
5654         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
5655         default_elf_select_section, default_unique_section,
5656         default_encode_section_info): Likewise.
5657         * varpool.c (decide_is_variable_needed): Likewise.
5658         * gimple-iterator.c (update_call_edge_frequencies): New
5659         (gsi_insert_on_edge_immediate): Use it.
5660         (gsi_insert_seq_on_edge_immediate): Likewise.
5661         (gsi_commit_one_edge_insert): Likewise.
5662
5663         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
5664         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
5665         (x86_64_elf_unique_section): Likewise.
5666
5667 2010-07-26  Jan Hubicka  <jh@suse.cz>
5668
5669         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
5670         GTY((skip)).
5671
5672 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
5673
5674         * target.def (output_source_filename): New hook.
5675         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
5676         * doc/tm.texi: Regenerate.
5677         * toplev.c (output_file_directive) Remove function.
5678         * toplev.h (output_file_directive) Remove.
5679         * output.h (default_asm_output_source_filename,
5680         output_file_directive): Declare.
5681         * varasm.h (default_asm_output_source_filename,
5682         output_file_directive): New functions.
5683
5684         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5685         * config/mips/mips-protos.h (mips_output_filename): Remove.
5686         * config/mips/mips.c (mips_output_filename): Make Static.
5687         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5688
5689 2010-07-26  Richard Guenther  <rguenther@suse.de>
5690
5691         PR tree-optimization/43784
5692         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
5693         if the destination is used by the call.
5694
5695 2010-07-26  Richard Guenther  <rguenther@suse.de>
5696
5697         PR middle-end/45073
5698         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
5699         SSA updating on being in SSA form.
5700
5701 2010-07-26  Richard Guenther  <rguenther@suse.de>
5702
5703         PR middle-end/45056
5704         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
5705
5706 2010-07-26  Richard Guenther  <rguenther@suse.de>
5707
5708         PR tree-optimization/45071
5709         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
5710         adjust op->opcode.
5711
5712 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
5713
5714         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
5715         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
5716         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
5717         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
5718         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
5719         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
5720         save_r31, return_r31, save_interrupt, return_interrupt,
5721         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
5722         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
5723         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
5724         new ABI requirements.
5725         (save_r6_r9, L_callt_save_r6_r9): Remove.
5726         * config/v850/predicates.md (even_reg_operand, disp23_operand,
5727         const_float_1_operand const_float_0_operand): New Predicates.
5728         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
5729         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
5730         * config/v850/t-v850: Update multilibs for new target variants.
5731         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
5732         * config/v850/t-v850e: Likewise.
5733         * config/v850/v850.c (v850_issue_rate): New.
5734         (v850_strict_argument_naming): New.
5735         (function_arg): Modify to generate a different ABI.
5736         (print_operand): Update case 'z' to support float modes.
5737         (output_move_single): Modify to generate appropriate and better
5738         assembly.
5739         (v850_float_z_comparison_operator, v850_select_cc_mode,
5740         v850_float_nz_comparison_operator,  v850_gen_float_compare,
5741         v850_gen_compare): New functions to support comparison of float values.
5742         (ep_memory_offset): Add support for V850E2 targets.
5743         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
5744         (INTERRUPT_REGPARM_NUM): Remove.
5745         (compute_register_save_size): Add extra case to save/restore long call.
5746         (use_prolog_function): New function to support prologue.
5747         (expand_prologue): Add support for V850E2 targets and modified
5748         as per the current ABI requirements.
5749         (expand_epilogue): Likewise.
5750         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
5751         (construct_save_jarl): Likewise.
5752         (construct_dispose_instruction): Update as per the current ABI
5753         requirements.
5754         (construct_prepare_instruction): Likewise.
5755         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
5756         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
5757         (CPP_SPEC): Updated to support v850e2 targets.
5758         (STRICT_ALIGNMENT): Modified.
5759         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
5760         (FIXED_REGISTERS): Likewise.
5761         (CALL_USED_REGISTERS): Likewise.
5762         (CONDITIONAL_REGISTER_USAGE): Updated.
5763         (HARD_REGNO_MODE_OK): Updated.
5764         (reg_class): Updated to add even registers.
5765         (REG_CLASS_NAMES): Likewise.
5766         (REG_CLASS_CONTENTS): Likewise.
5767         (REGNO_REG_CLASS): Updated for CC registers.
5768         (REG_CLASS_FROM_LETTER): Added support for even registers.
5769         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
5770         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
5771         ARG_POINTER_REGNUM): Updated.
5772         (FUNCTION_ARG_ADVANCE): Define.
5773         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
5774         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
5775         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
5776         (GO_IF_LEGITIMATE_ADDRESS): Updated.
5777         (SELECT_CC_MODE): Define.
5778         (REGISTER_NAMES): Updated to add psw and fcc registers.
5779         (ADDITIONAL_REGISTER_NAMES): Updated.
5780         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
5781         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
5782         * config/v850/v850.md (define_constants): Define new constants.
5783         (type): Update store,bit1,macc,div,fpu and single attributes.
5784         (cpu): New attribute.
5785         (cc): Add set_z attribute.
5786         (unsign23byte_load, sign23byte_load, unsign23hword_load,
5787         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
5788         23word_store): New instructions for 23-bit displacement load and store.
5789         (movqi_internal, movhi_internal): Update the attributes.
5790         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
5791         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
5792         the attributes.
5793         (v850_tst1): Modified using CC_REGNUM.
5794         (tstsi): Remove.
5795         (cmpsi): Modified as define_expand from define_insn.
5796         (cmpsi_insn, cmpsf, cmpdf): New instructions.
5797         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
5798         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
5799         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
5800         one_cmplsi2): Clobber the CC_REGNUM register.
5801         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
5802         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
5803         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
5804         (setf_insn, set_z_insn, set_nz_insn): New instructions for
5805         v850e2v3 target.
5806         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
5807         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
5808         targets.
5809         (sasf_1, sasf_2): Remove.
5810         (sasf): New instruction.
5811         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
5812         targets. CC_REGNUM register is clobbered and attributes are
5813         updated.
5814         (branch_z_normal, branch_z_invert, branch_nz_normal,
5815         branch_nz_invert): New branch related instructions.
5816         (jump): Updated the attributes.
5817         (switch): Update to support new targets. CC_REGNUM register is
5818         clobbered and attributes are updated.
5819         (call_internal_short, call_internal_long, call_value_internal_short,
5820         call_value_internal_long): Updated the attributes.
5821         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
5822         clobbered and attributes are updated.
5823         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
5824         Update to support new targets. CC_REGNUM register is clobbered.
5825         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
5826         instructions.
5827         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
5828         are updated.
5829         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
5830         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
5831         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
5832         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
5833         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
5834         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
5835         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
5836         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
5837         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
5838         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
5839         point instructions defined for V850e2v3 target.
5840         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
5841         Add support for V850E2 targets and CC_REGNUM register is clobbered.
5842         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
5843         support for new targets.
5844         * config/v850/v850-modes.def: New file.
5845         * config/v850/v850.opt(mstrict-align): Remove.
5846         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
5847         mv850e2v3): New command line options for V850.
5848         * config.gcc: Update the newly added files.
5849         * doc/invoke.texi: Update the newly added command line options for
5850         V850 target.
5851
5852 2010-07-26  Richard Guenther  <rguenther@suse.de>
5853
5854         PR tree-optimization/45052
5855         * ipa-pure-const.c (check_stmt): Check volatileness.
5856
5857 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
5858
5859         PR target/44707
5860         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
5861         * config/sparc/sparc.c: Include reload.h.
5862         (legitimize_tls_address): Rename into...
5863         (sparc_legitimize_tls_address): ...this.
5864         (legitimize_pic_address): Rename into...
5865         (sparc_legitimize_pic_address): ...this.
5866         (sparc_expand_move): Adjust to above renaming.
5867         (sparc_tls_referenced_p): Likewise.
5868         (sparc_legitimize_tls_address): Likewise.
5869         (sparc_legitimize_pic_address): Likewise.
5870         (sparc_legitimize_address): Likewise.
5871         (sparc_output_mi_thunk): Likewise.
5872         (sparc_legitimize_reload_address): New global function.  Recognize
5873         (lo_sum (high ...) ...) patterns generated by earlier passes.
5874         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
5875
5876 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
5877
5878         PR target/44484
5879         * config/sparc/predicates.md (memory_reg_operand): Delete.
5880         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
5881         (*sync_compare_and_swap): Encode the address form in the pattern.
5882         (*sync_compare_and_swapdi_v8plus): Likewise.
5883
5884 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
5885
5886         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
5887         Streamline paragraph on compatibility with the system compiler.
5888
5889 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
5890
5891         PR middle-end/45035
5892         * alias.c (true_dependence_1): Fix thinko in merge of old
5893         true_dependence and canon_true_dependence.
5894
5895 2010-07-23  Jan Hubicka  <jh@suse.cz>
5896
5897         * lto-streamer-out.c (write_symbol): Fix visibilities of external
5898         references.
5899
5900 2010-07-23  Le-Chun Wu  <lcwu@google.com>
5901
5902         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
5903         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
5904         and an unnecessary assignment.
5905         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
5906         self-assign warning.
5907         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
5908         unnecessary self-init.
5909
5910 2010-07-23  Richard Guenther  <rguenther@suse.de>
5911
5912         PR lto/43071
5913         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
5914         for -flto and -fwhopr.
5915
5916 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
5917
5918         PR target/41943
5919         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
5920         (stmp-int-hdrs): Prefix/postfix headers by include_next.
5921         * config.gcc (user_headers_inc_next_pre): New.
5922         (user_headers_inc_next_post): Likewise.
5923         (*-w64-mingw*): Use for float.h post-fixing, and for
5924         stddef.h/stdarg.h pre-fixing by include_next.
5925         * configure.ac (user_headers_inc_next_post): New.
5926         (user_headers_inc_next_pre): New.
5927         * configure: Regenerated.
5928
5929 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5930
5931         * configure.ac: Don't disable TLS on Solaris 8/9 by default
5932         Set tga_func for Solaris 2/x86 resp. SPARC.
5933         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
5934         (LIB_THREAD_LDFLAGS_SPEC): Define.
5935         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
5936         * configure: Regenerate.
5937         * config.in: Regenerate.
5938         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
5939         -pthread, -threads, LIB_TLS_SPEC with -pthread.
5940         * doc/install.texi (Specific, *-*-solaris2*): Document use of
5941         alternate thread libraries on Solaris 8.
5942         Document TLS patch requirements.
5943         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
5944         Document tls.
5945
5946         PR target/18788
5947         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
5948         -shared.
5949
5950 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
5951
5952         * tree.h (struct tree_base): Add nameless_flag bitfield.
5953         (TYPE_NAMELESS, DECL_NAMELESS): Define.
5954         * omp-low.c (create_omp_child_function, scan_omp_parallel,
5955         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
5956         DECL_ARTIFICIAL where needed.
5957         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
5958         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
5959         has DECL_NAMELESS set.
5960
5961 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5962
5963         PR tree-optimization/44915
5964         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
5965         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
5966         (analyze_function): Likewise.
5967
5968 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5969
5970         PR tree-optimization/44914
5971         * tree-sra.c (sra_modify_function_body): Return true if CFG was
5972         changed, add purging dead eh edges.
5973         (ipa_sra_modify_function_body): Return true if CFG was changed,
5974         simplify purging dead eh edges.
5975         (modify_function): Return true if CFG was changed.
5976         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
5977         was changed.
5978         (ipa_early_sra): Likewise.
5979
5980 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5981
5982         PR target/44290
5983         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
5984         if "naked".
5985         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5986         false if ! tree_versionable_function_p.
5987
5988 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
5989
5990         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
5991         * ipa-pure-const.c (special_builtlin_state): Remove
5992         BUILT_IN_ARGS_INFO case.
5993         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5994         * builtins.c (expand_builtin): Likewise.
5995         (expand_builtin_args_info): Remove.
5996         * doc/tm.texi (__builtin_args_info): Remove.
5997         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
5998         * doc/tm.text.in: Likewise.
5999
6000 2010-07-23  Richard Guenther  <rguenther@suse.de>
6001
6002         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
6003         (lto_symtab_merge_decls_2): Likewise.
6004         * tree-ssa.c (useless_type_conversion_p): Likewise.
6005         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6006         * gimple.c (gtc_visited2, gtc_ob2): Remove.
6007         (struct type_pair_d): Make same_p an array indexed by mode.
6008         Update comment.
6009         (lookup_type_pair): Update initialization.
6010         (struct sccs): Adjust same_p type.
6011         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
6012         Adjust.
6013         (print_gimple_types_stats): Likewise.
6014         * gimple.h (enum gtc_mode): New.
6015         (gimple_types_compatible_p): Adjust prototype.
6016
6017 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
6018
6019         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
6020         again after processing insn.
6021
6022 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6023
6024         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
6025         proper words when !tree_versionable_function_p.
6026
6027 2010-07-23  Richard Guenther  <rguenther@suse.de>
6028
6029         PR tree-optimization/45037
6030         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
6031
6032 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6033
6034         * doc/extend.texi: Remove IP2K from the description of naked attribute.
6035         Add MCORE instead.
6036
6037 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6038
6039         PR lto/44992
6040         * lto-opts.c (lto_write_options): Add NULL file_data argument to
6041         lto_get_section_name.
6042         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
6043         * lto-streamer-out.c (produce_asm): Likewise.
6044         (copy_function): Likewise.
6045         (produce_symtab): Likewise.
6046         (produce_asm_for_decls): Likewise.
6047         * lto-streamer.c (lto_get_section_name): Add file_data argument.
6048         Rewrite to add random postfix to LTO sections.
6049         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
6050         (lto_get_section_name): Add file_data argument to prototype.
6051
6052 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6053
6054         * lto-section-in.c (lto_section_name): Synchronize names
6055         with lto_get_section_name.
6056
6057 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6058
6059         * lto-opts.c (lto_read_file_options): Check for missing section.
6060
6061 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6062
6063         * ira.c (check_allocation): Correctly handle the case where an allocno
6064         with two objects was allocated to a single reg.
6065
6066 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
6067
6068         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
6069         (is_widening_mult_p): Likewise.
6070         (convert_to_widen): Use them.
6071         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
6072         well as integer ones.
6073
6074 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
6075
6076         * alias.c (true_dependence_1): New function, merged version of
6077         true_dependence and canon_true_dependence.
6078         (true_dependence): Simplify.
6079         (canon_true_dependence): Simplify.
6080
6081 2010-07-22  Richard Henderson  <rth@redhat.com>
6082
6083         PR target/45027
6084         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
6085         of V4SFmode for the SSE saves; increase stack alignment if needed.
6086         (ix86_gimplify_va_arg): Don't increase stack alignment here.
6087
6088 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
6089
6090         PR bootstrap/45028
6091         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
6092         call cprop_find_used_regs again via note_uses.
6093
6094 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6095
6096         * alias.c (get_alias_set): Fix formatting issues.
6097
6098 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
6099
6100         PR middle-end/44878
6101         * stmt.c (expand_value_return):  Call promote_function_mode with
6102         a for_return argument of 2 when returning by reference.
6103
6104 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
6105
6106         PR debug/45024
6107         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
6108         unit DIE if we can find the scope DIE.
6109
6110 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6111
6112         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
6113         changed.  Initialize OBJECT_SUBWORD.
6114         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6115         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
6116         all callers changed.
6117         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
6118         (finish_allocno): Likewise.
6119         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
6120         (remove_low_level_allocnos): Likewise.
6121         (update_bad_spill_attribute): Likewise.
6122         (setup_min_max_allocno_live_range_point): Likewise.
6123         (sort_conflict_id_map): Likewise.
6124         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
6125         (ior_hard_reg_conflicts): New function.
6126         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
6127         (compress_conflict_vecs): Iterate over objects, not allocnos.
6128         (ira_add_live_range_to_object): New function.
6129         (object_range_compare_func): Renamed from allocno_range_compare_func.
6130         All callers changed.
6131         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
6132         subobjects, widen the min/max range of the lowest-order object to
6133         potentially include all other such low-order objects.
6134         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
6135         (check_allocation): Likewise.  Use more fine-grained tests for register
6136         conflicts.
6137         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
6138         allocno subobjects.
6139         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
6140         choices about which bits to set in each set.  Don't use
6141         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
6142         using the multiple sets we computed.
6143         (push_allocno_to_stack): Iterate over allocno subobjects.
6144         (all_conflicting_hard_regs_coalesced): New static function.
6145         (setup_allocno_available_regs_num): Use it.
6146         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
6147         subobjects.
6148         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
6149         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6150         by ALLOCNO_NUM_OBJECTS.
6151         (calculate_spill_cost): Likewise.
6152         (color_pass): Express if statement in a more normal way.
6153         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
6154         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
6155         (setup_slot_coalesced_allocno_live_ranges): Likewise.
6156         (allocno_reload_assign): Likewise.
6157         (ira_reassign_pseudos): Likewise.
6158         (fast_allocation): Likewise.
6159         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6160         (print_allocno_conflicts): Likewise.
6161         (ira_build_conflicts): Likewise.
6162         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
6163         callers changed.  Test subword 0 of each allocno for conflicts.
6164         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
6165         callers changed.  Iterate over allocno subobjects.
6166         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
6167         * ira-int.h (struct ira_allocno): New member: num_objects.
6168         Rename object to objects and change it into an array.
6169         (ALLOCNO_OBJECT): Add new argument N.
6170         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
6171         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
6172         (ior_hard_reg_conflicts): Declare.
6173         (ira_add_live_range_to_object): Declare.
6174         (ira_allocno_object_iterator): New.
6175         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
6176         (FOR_EACH_ALLOCNO_OBJECT): New macro.
6177         * ira-lives.c (objects_live): Renamed from allocnos_live; all
6178         uses changed.
6179         (allocnos_processed): New sparseset.
6180         (make_object_born): Renamed from make_allocno_born; take an
6181         ira_object_t argument.  All callers changed.
6182         (make_object_dead): Renamed from make_allocno_dead; take an
6183         ira_object_t argument.  All callers changed.
6184         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
6185         All callers changed.
6186         (mark_pseudo_regno_live): Iterate over allocno subobjects.
6187         (mark_pseudo_regno_dead): Likewise.
6188         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
6189         functions.
6190         (mark_ref_live): Detect subword accesses and call
6191         mark_pseudo_regno_subword_live as appropriate.
6192         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
6193         (process_bb_nodes_live): Deal with object-related updates first; set
6194         and test bits in allocnos_processed to avoid computing allocno
6195         statistics more than once.
6196         (create_start_finish_chains): Iterate over objects, not allocnos.
6197         (print_object_live_ranges): New function.
6198         (print_allocno_live_ranges): Use it.
6199         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
6200         and objects_live.
6201
6202 2010-07-22  Richard Guenther  <rguenther@suse.de>
6203
6204         PR lto/42451
6205         * gimple.c (gtc_next_dfs_num): New global.
6206         (struct sccs): Make value a union, add integer same_p member.
6207         (gtc_visit): New function.
6208         (gimple_types_compatible_p_1): New function, split out from ...
6209         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
6210         (iterative_hash_gimple_type): Adjust for sccs change.
6211
6212 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6213
6214         PR tree-optimization/44891
6215         * tree-sra.c: Include gimple-pretty-print.h.
6216         (replace_uses_with_default_def_ssa_name): Renamed to
6217         get_repl_default_def_ssa_name, return the new SSA name instead of
6218         replacing the old one.
6219         (sra_modify_assign): Dump a message when removing a load, if the LHS
6220         is an SSA_NAME, do not do any propagation, just set the RHS to a
6221         default definition SSA NAME, type convert if necessary.
6222         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
6223
6224 2010-07-22  Richard Guenther  <rguenther@suse.de>
6225
6226         PR tree-optimization/45017
6227         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
6228         TYPE_PRECISION of integral types in addition to size.
6229
6230 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6231
6232         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
6233         when no C library is specified.
6234
6235 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6236
6237         * ipa-prop.h (struct ipa_node_params): Updated comment.
6238         (struct ipa_edge_args): Likewise.
6239         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
6240
6241 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6242
6243         * cgraphunit.c (verify_edge_count_and_frequency): New function.
6244         (verify_cgraph_node): Verify frequencies of indirect edges.
6245         * tree-inline.c (tree_function_versioning): Update frequencies of
6246         indirect edges.
6247
6248 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6249
6250         PR target/43698
6251         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
6252         Set *arm_rev to be predicable.
6253
6254 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6255
6256         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
6257         (LINK_COMMAND_SPEC_A): New.
6258         (DSYMUTIL): New.
6259         (DSYMUTIL_SPEC): New.
6260         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
6261         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
6262
6263 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6264
6265         * calls.c (load_register_parameters): Move check for zero
6266         sized items so that only the call to
6267         mem_overlaps_already_clobbered_arg_p () is protected.
6268
6269 2010-07-22  Jan Hubicka  <jh@suse.cz>
6270
6271         * ipa-pure-const.c (varying_state): Break out from ...
6272         (get_function_state): ... here; always return varying_state
6273         when state would be NULL otherwise.
6274         (remove_node_data): Do not free varying state.
6275
6276 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6277
6278         PR bootstrap/44970
6279         PR middle-end/45009
6280         * postreload.c: Include "target.h".
6281         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
6282         into account.
6283         (fixup_debug_insns): Don't copy the rtx.
6284         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
6285         Don't copy when replacing.  Call fixup_debug_insns in the case where
6286         we merged one add with another.
6287         (reload_combine_recognize_pattern): Fail if there aren't any uses.
6288         Try harder to determine whether we're picking a valid index register.
6289         Don't set store_ruid for an insn we're going to scan in the
6290         next iteration.
6291         (reload_combine): Remove unused code.
6292         (reload_combine_note_use): When updating use information for
6293         an old insn, ignore a use that occurs after store_ruid.
6294         * Makefile.in (postreload.o): Update dependencies.
6295
6296         * function.c (record_hard_reg_sets): Restrict the previous change
6297         to cases where the incoming nominal mode is the same as the
6298         incoming promoted mode and everything happens in MODE_INT.
6299
6300 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6301
6302         PR debug/45015
6303         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
6304         ASM_OPERANDS_OUTPUT_IDX.
6305         (adjust_insn): For inline asm with multiple sets ensure first
6306         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
6307         the insn.
6308
6309 2010-07-21  Richard Henderson  <rth@redhat.com>
6310
6311         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
6312         comparison for avoiding xmm register saves.  Emit the xmm register
6313         saves explicitly.
6314         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
6315         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
6316         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
6317         Remove patterns and the associated splitters.
6318
6319 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
6320
6321         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
6322         and imagine parts of a complex, so that they can have the same
6323         base and fall into the same group.
6324
6325 2010-07-21  Richard Guenther  <rguenther@suse.de>
6326
6327         PR lto/45018
6328         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
6329         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
6330         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
6331
6332 2010-07-21  Martin Jambor  <mjambor@suse.cz>
6333
6334         PR tree-optimization/44900
6335         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
6336         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
6337
6338 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
6339
6340         PR middle-end/44738
6341         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
6342
6343 2010-07-21  Richard Guenther  <rguenther@suse.de>
6344
6345         PR middle-end/45013
6346         * tree-ssa.c (useless_type_conversion_p): Dispatch to
6347         gimple_types_compatible_p only when in lto.
6348         * gimple.c (gimple_types_compatible_p): Use canonical types
6349         to speed up comparison.
6350
6351 2010-07-21  Richard Guenther  <rguenther@suse.de>
6352
6353         * tree-flow.h (referenced_var): Move define ...
6354         * tree-flow-inline.h (referenced_var): ... here as an inline
6355         function.  Assert here ...
6356         * tree-dfa.c (referenced_var_lookup): ... instead of here.
6357         * tree-ssa.c (maybe_optimize_var): Check if the variable
6358         is in referenced vars.
6359         (execute_update_addresses_taken): Remove old broken check.
6360         * gimple-pretty-print.c (pp_points_to_solution): Use
6361         referenced_var_lookup.
6362         * tree-into-ssa.c (dump_decl_set): Likewise.
6363
6364 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6365
6366         PR debug/45003
6367         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
6368         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
6369         ZERO_EXTEND here.
6370
6371 2010-07-20  Richard Henderson  <rth@redhat.com>
6372
6373         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
6374
6375 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6376
6377         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
6378         computing the sum of the stack pointer and a large constant.
6379         * config/arm/constraints.md (M): Remove superfluous parentheses.
6380         (Pc): New constraint.
6381
6382 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6383
6384         PR debug/45006
6385         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
6386         operand's type if exp is tcc_unary class tree.
6387
6388 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6389
6390         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
6391         Reverse sense of if_then_else condition.
6392
6393 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6394
6395         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
6396         * config/rs6000/rs6000.c (rs6000_override_options): Set
6397         rs6000_block_move_inline_limit appropriately.
6398         (expand_block_move): Use rs6000_block_move_inline_limit.
6399         * doc/invoke.texi (mblock-move-inline-limit): Document.
6400
6401 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6402
6403         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
6404         FROM and TO.  All callers changed.  Don't look for tracked uses,
6405         just scan the RTL for DEBUG_INSNs and substitute.
6406         (reload_combine_recognize_pattern): Call fixup_debug_insns.
6407         (reload_combine): Ignore DEBUG_INSNs.
6408
6409 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6410
6411         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
6412         depth to 8 from 5.
6413
6414         PR debug/45003
6415         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
6416         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
6417         instead of the result's type.
6418
6419 2010-07-20  Richard Guenther  <rguenther@suse.de>
6420
6421         PR tree-optimization/44977
6422         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
6423         SSA form.
6424
6425 2010-07-20  Richard Guenther  <rguenther@suse.de>
6426
6427         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
6428         (lto_symtab_merge_decls_2): Likewise.
6429         * gimple.h (gimple_types_compatible_p): Declare.
6430         * gimple.c (gimple_queue_type_fixup): Remove.
6431         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
6432         (gimple_compatible_complete_and_incomplete_type_p): New function.
6433         (gimple_types_compatible_p): Adjust.
6434         (gimple_register_type): Remove type fixup code.
6435         (print_gimple_types_stats): Adjust.
6436         (free_gimple_type_tables): Likewise.
6437         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
6438         * tree-ssa.c (useless_type_conversion_p): Likewise.
6439
6440 2010-07-20  Richard Guenther  <rguenther@suse.de>
6441
6442         PR middle-end/44971
6443         PR middle-end/44988
6444         * tree-ssa.c (maybe_optimize_var): New function split out from ...
6445         (execute_update_addresses_taken): ... here.
6446         (non_rewritable_mem_ref_base): Likewise.
6447         (execute_update_addresses_taken): Do not iterate over all referenced
6448         vars but just all local decls and parms.
6449         Properly check call and asm arguments and rewrite call arguments.
6450
6451 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
6452
6453         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
6454         to top level.
6455         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
6456         definitions ...
6457         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
6458         New macro.
6459         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
6460
6461 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6462
6463         * gengtype.c (start_root_entry): New function, split out from
6464         write_root.  Check whether V is null and raise an error if so.
6465         (write_field_root): Check for V being null.  Don't raise an error here;
6466         set V to null instead.
6467         (write_root): Update comment above function.  Use start_root_entry.
6468
6469 2010-07-19  Xinliang David Li  <davidxl@google.com>
6470
6471         PR testsuite/44932
6472         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
6473         def edges.
6474         (find_uninit_use): Add dump.
6475         (is_use_properly_guarded): Ditto.
6476         (warn_uninitialized_phi): Ditto.
6477         (execute_late_warn_uninitialized): Ditto.
6478
6479 2010-07-19  Richard Guenther  <rguenther@suse.de>
6480
6481         PR middle-end/44941
6482         * expr.c (emit_block_move_hints): Move zero size check first.
6483         Move asserts to more useful places.
6484         * calls.c (load_register_parameters): Check for zero size.
6485
6486 2010-07-19  Richard Henderson  <rth@redhat.com>
6487
6488         * tree-optimize.c (execute_all_early_local_passes): New.  Change
6489         cgraph_state here ...
6490         (execute_early_local_optimizations): ... not here.  Remove.
6491         (pass_early_local_passes, pass_all_early_optimizations): Update.
6492
6493 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
6494
6495         * postreload.c (reload_combine_closest_single_use): Ignore the
6496         number of uses for DEBUG_INSNs.
6497         (fixup_debug_insns): New static function.
6498         (reload_combine_recognize_const_pattern): Use it.  Don't let the
6499         main loop be affected by DEBUG_INSNs.
6500         Really disallow moving adds past a jump insn.
6501         (reload_combine_recognize_pattern): Don't update use_ruid here.
6502         (reload_combine_note_use): Do it here.
6503         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
6504
6505 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
6506
6507         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
6508         of a loop.
6509         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
6510
6511 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
6512
6513         * config/i386/darwin.h: Define darwin_emit_branch_islands.
6514         (TARGET_MACHO_BRANCH_ISLANDS): New.
6515         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
6516         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
6517         default value.
6518         * config/i386/i386.c (output_pic_addr_const): Do not emit
6519         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
6520         (x86_output_mi_thunk): Adjust symbol creation.
6521         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
6522         Remove out of date comment.
6523         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
6524         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6525         (DARWIN_GENERATE_ISLANDS): Ditto.
6526         (output_call):  Do not emit branch islands unless
6527         darwin_emit_branch_islands is set.
6528         * config/darwin.c: Declare darwin_emit_branch_islands.
6529         (machopic_indirect_data_reference): Do not emit unless
6530         darwin_emit_branch_islands is set.
6531         (darwin_override_options): Set darwin_emit_branch_islands
6532         where it is needed.
6533         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6534
6535 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6536
6537         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6538         sse_runtime, sse2_runtime.
6539
6540 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
6541
6542         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
6543         low half of a single-register SCmode return value before ORing
6544         it with the high half.
6545         * config/mips/mips16.S (MERGE_GPRf): Likewise.
6546
6547 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6548
6549         PR target/44805
6550         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
6551         on all targets.
6552
6553 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
6554
6555         PR target/42235
6556         * postreload.c (reload_cse_move2add): Return bool, true if anything.
6557         changed.  All callers changed.
6558         (move2add_use_add2_insn): Likewise.
6559         (move2add_use_add3_insn): Likewise.
6560         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
6561         reload_combine.
6562         (RELOAD_COMBINE_MAX_USES): Bump to 16.
6563         (last_jump_ruid): New static variable.
6564         (struct reg_use): New members CONTAINING_MEM and RUID.
6565         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
6566         (reload_combine_split_one_ruid, reload_combine_split_ruids,
6567         reload_combine_purge_insn_uses, reload_combine_closest_single_use
6568         reload_combine_purge_reg_uses_after_ruid,
6569         reload_combine_recognize_const_pattern): New static functions.
6570         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
6571         is true for our reg and that we have available index regs.
6572         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
6573         callers changed.  Use them to initialize fields in struct reg_use.
6574         (reload_combine): Initialize last_jump_ruid.  Be careful when to
6575         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
6576         Call reload_combine_recognize_const_pattern.
6577         (reload_combine_note_store): Update REAL_STORE_RUID field.
6578
6579 2010-07-16  Jason Merrill  <jason@redhat.com>
6580
6581         * Makefile.in (opts-common.o): Depend on options.h.
6582
6583 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
6584
6585         * tree.c (build_common_builtin_nodes): Use build_function_type_list
6586         instead of build_function_type.
6587         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
6588         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6589
6590 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
6591
6592         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
6593         do all the work.
6594         (rs6000_emit_int_cmove): Use function pointers for insn generation.
6595         Don't force values into registers unnecessarily.
6596         (output_isel): Assert that we're not given conditions we can't handle.
6597         Delete corresponding code.
6598         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
6599         scc_comparison_operator constraint.  Permit 0 for the consequent
6600         operand.  Permit any GPR for the alternative operand.
6601         (isel_unsigned_<mode>): Likewise.
6602
6603 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
6604
6605         PR target/44942
6606         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
6607         argument to const_tree.
6608         * config/i386/i386.c (function_arg_advance): If padding needs to be
6609         inserted before argument, increment cum->words by number of padding
6610         words as well.
6611         (contains_aligned_value_p): Change argument to const_tree.
6612         (ix86_function_arg_boundary): Change second argument to const_tree.
6613
6614 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
6615
6616         PR target/42235
6617         * function.c (record_hard_reg_sets): New static function.
6618         (assign_parm_setup_reg): If an optab for extending exists and the
6619         generated code clobbbers no hard regs, emit the insn directly and
6620         create a REG_EQUIV note.
6621
6622 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6623
6624         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
6625         TREE_CHAIN.
6626         * c-typeck.c (push_init_level): Likewise.
6627         (process_init_element): Likewise.
6628
6629 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
6630
6631         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
6632         (integer_three_node): Add.
6633         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
6634         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
6635         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
6636         of call build_int_cst.
6637         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
6638         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
6639         (find_interesting_uses_address): Ditto.
6640         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
6641         * tree-eh.c (lower_eh_constructs_2): Ditto.
6642         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
6643         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
6644         * expmed.c (expand_divmod): Ditto.
6645         * tree-mudflap.c (mx_register_decls): Ditto.
6646         * varasm.c (array_size_for_constructor): Ditto.
6647         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
6648         * c-parser.c (c_parser_postfix_expression): Ditto.
6649
6650 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
6651
6652         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
6653         New static variables.
6654         (reload_combine_recognize_pattern): New static function, broken out
6655         of reload_combine.
6656         (reload_combine): Use it.  Only initialize first_index_reg and
6657         last_index_reg once.
6658
6659 2010-07-15  Richard Henderson  <rth@redhat.com>
6660
6661         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
6662         when done.
6663
6664 2010-07-15  Jan Hubicka  <jh@suse.cz>
6665
6666         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
6667         comdats for broken gold.
6668         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
6669
6670 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6671
6672         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
6673
6674 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6675
6676         * tree.h (DECL_CHAIN): Define.
6677         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
6678         * c-decl.c: Likewise.
6679         * c-parser.c: Likewise.
6680         * c-typeck.c: Likewise.
6681         * cfgexpand.c: Likewise.
6682         * cgraph.c: Likewise.
6683         * cgraphunit.c: Likewise.
6684         * combine.c: Likewise.
6685         * config/alpha/alpha.c: Likewise.
6686         * config/arm/arm.c: Likewise.
6687         * config/frv/frv.c: Likewise.
6688         * config/i386/i386.c: Likewise.
6689         * config/i386/winnt-cxx.c: Likewise.
6690         * config/ia64/ia64.c: Likewise.
6691         * config/iq2000/iq2000.c: Likewise.
6692         * config/mep/mep.c: Likewise.
6693         * config/mips/mips.c: Likewise.
6694         * config/pa/som.h: Likewise.
6695         * config/rs6000/rs6000.c: Likewise.
6696         * config/s390/s390.c: Likewise.
6697         * config/sh/sh.c: Likewise.
6698         * config/sh/symbian-cxx.c: Likewise.
6699         * config/sparc/sparc.c: Likewise.
6700         * config/spu/spu.c: Likewise.
6701         * config/stormy16/stormy16.c: Likewise.
6702         * config/vxworks.c: Likewise.
6703         * config/xtensa/xtensa.c: Likewise.
6704         * coverage.c: Likewise.
6705         * dbxout.c: Likewise.
6706         * dwarf2out.c: Likewise.
6707         * emit-rtl.c: Likewise.
6708         * expr.c: Likewise.
6709         * function.c: Likewise.
6710         * gimple-low.c: Likewise.
6711         * gimple-pretty-print.c: Likewise.
6712         * gimplify.c: Likewise.
6713         * integrate.c: Likewise.
6714         * ipa-inline.c: Likewise.
6715         * ipa-prop.c: Likewise.
6716         * ipa-split.c: Likewise.
6717         * ipa-struct-reorg.c: Likewise.
6718         * ipa-type-escape.c: Likewise.
6719         * langhooks.c: Likewise.
6720         * lto-cgraph.c: Likewise.
6721         * omp-low.c: Likewise.
6722         * stor-layout.c: Likewise.
6723         * tree-cfg.c: Likewise.
6724         * tree-complex.c: Likewise.
6725         * tree-dfa.c: Likewise.
6726         * tree-dump.c: Likewise.
6727         * tree-inline.c: Likewise.
6728         * tree-mudflap.c: Likewise.
6729         * tree-nested.c: Likewise.
6730         * tree-object-size.c: Likewise.
6731         * tree-pretty-print.c: Likewise.
6732         * tree-sra.c: Likewise.
6733         * tree-ssa-live.c: Likewise.
6734         * tree-ssa-loop-niter.c: Likewise.
6735         * tree-ssa-math-opts.c: Likewise.
6736         * tree-ssa-reassoc.c: Likewise.
6737         * tree-ssa-sccvn.c: Likewise.
6738         * tree-ssa-structalias.c: Likewise.
6739         * tree-tailcall.c: Likewise.
6740         * tree-vrp.c: Likewise.
6741         * tree.c: Likewise.
6742         * var-tracking.c: Likewise.
6743         * varasm.c: Likewise.
6744
6745 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6746
6747         PR target/44877
6748         * config/spu/spu.c (spu_expand_builtin_1): Allow references
6749         (as well as pointers) as argument to mask_for_load builtins.
6750
6751 2010-07-15  Richard Guenther  <rguenther@suse.de>
6752
6753         PR tree-optimization/44946
6754         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
6755         with accessing only padding properly.
6756
6757 2010-07-15  Jan Hubicka  <jh@suse.cz>
6758
6759         * ipa.c (function_and_variable_visibility): Variables marked as used
6760         should not be localized.
6761
6762 2010-07-15  Jan Hubicka  <jh@suse.cz>
6763
6764         * cgraph.c: Include lto-streamer.h
6765         (change_decl_assembler_name): Work when assembler name hash is at place.
6766         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
6767         be sure to rename it to avoid name clash.
6768         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
6769         Localize hidden symbols only when locally defined.
6770
6771 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
6772
6773         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
6774
6775 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
6776             Kevin F. Quinn  <kevquinn@gentoo.org>
6777
6778         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
6779         * common.opt: Add -Wtrampolines.
6780         * doc/invoke.texi: Add -Wtrampolines.
6781
6782 2010-07-15  Jie Zhang  <jie@codesourcery.com>
6783
6784         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
6785         cortex_a8_issue_ls.
6786
6787 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
6788
6789         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
6790         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
6791
6792 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6793
6794         * config/spu/spu.c (reg_names): Remove prototype.
6795         (call_used_regs): Likewise.
6796
6797 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
6798
6799         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
6800         "unused" with attribute "used".
6801         (__JCR_END__): Likewise.
6802         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
6803         "used" attribute.
6804         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
6805
6806 2010-07-14  Richard Guenther  <rguenther@suse.de>
6807
6808         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
6809         (maybe_fixup_decls): Likewise.
6810         (input_gimple_stmt): Do not fixup anything.
6811         * lto-streamer-out.c (output_gimple_stmt): Make sure all
6812         non-automatic variable uses are wrapped inside a MEM_REF.
6813
6814 2010-07-14  Richard Henderson  <rth@redhat.com>
6815
6816         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
6817         for functions.
6818         * varasm.c (assemble_variable): Remove early exit for functions;
6819         assert that we're given a variable.
6820
6821 2010-07-14  Jie Zhang  <jie@codesourcery.com>
6822
6823         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
6824         cortex_a8_default when neon_type is not none.
6825
6826 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6827
6828         * lower-subreg.c (subreg_context): New static bitmap.
6829         (decompose_multiword_subregs): Allocate and free it.
6830         (find_decomposable_subregs): Set a bit in it for a register that
6831         occurs in a subreg that changes mode but not size.
6832         (can_decompose_p): Test it instead of non_decomposable_context.
6833
6834 2010-07-14  Richard Guenther  <rguenther@suse.de>
6835
6836         PR tree-optimization/44824
6837         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
6838         is_gimple_mem_ref_addr.
6839         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
6840         non-decl_address_invariant_p addresses.
6841
6842 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6843
6844         * reload.c (find_reloads): Revert code to penalize small register
6845         classes that was brought in with the IRA merge.
6846
6847 2010-07-14  Richard Guenther  <rguenther@suse.de>
6848
6849         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
6850         as base of ARRAY_REFs.
6851
6852 2010-07-14  Richard Guenther  <rguenther@suse.de>
6853
6854         PR middle-end/44930
6855         * tree-pretty-print.c (do_niy): Do not print a newline.
6856
6857 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6858
6859         * ira-int.h (struct ira_object): New.
6860         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
6861         (struct ira_allocno): Remove members min, max,
6862         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
6863         conflict_allocnos_num and conflict_vec_p.  Add new member object.
6864         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
6865         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
6866         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
6867         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
6868         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
6869         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
6870         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
6871         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
6872         an ira_object_t rather than ira_allocno_t.  All uses changed.
6873         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
6874         contains a vector of ira_object_t; all uses changed.
6875         (ira_objects_num): Declare variable.
6876         (ira_create_allocno_object): Declare function.
6877         (ira_conflict_vector_profitable_p): Adjust prototype.
6878         (ira_allocate_conflict_vec): Renamed from
6879         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
6880         (ira_allocate_object_conflicts): Renamed from
6881         ira_allocate_allocno_conflicts; first arg now ira_object_t.
6882         (struct ira_object_iterator): New.
6883         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
6884         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
6885         to conflict_vec_p.  All uses changed.
6886         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
6887         Changed to take into account that conflicts are now tracked for
6888         objects.
6889         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
6890         Args changed to accept ira_object_t.  All uses changed.
6891         (allocnos_conflict_p): New static function.
6892         (collected_conflict_objects): Renamed from collected_allocno_objects;
6893         now a vector of ira_object_t.  All uses changed.
6894         (build_conflict_bit_table): Changed to take into account that
6895         conflicts are now tracked for objects.
6896         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
6897         (print_allocno_conflicts, ira_build_conflicts): Likewise.
6898         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
6899         setup_allocno_left_conflicts_size, allocno_reload_assign,
6900         fast_allocation): Likewise.
6901         * ira-lives.c (make_hard_regno_born, make_allocno_born)
6902         process_single_reg_class_operands, process_bb_node_lives): Likewise.
6903         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
6904         Likewise.
6905         * ira-build.c (ira_objects_num): New variable.
6906         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
6907         contains a vector of ira_object_t; all uses changed.
6908         (ira_object_id_map_vec): Corresponding change.
6909         (object_pool): New static variable.
6910         (initiate_allocnos): Initialize it.
6911         (finish_allocnos): Free it.
6912         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
6913         New functions.
6914         (ira_create_allocno): Don't set members that were removed.
6915         (ira_set_allocno_cover_class): Don't change conflict hard regs.
6916         (merge_hard_reg_conflicts): Changed to take into account that
6917         conflicts are now tracked for objects.
6918         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
6919         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
6920         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
6921         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
6922         setup_min_max_conflict_allocno_ids, ):  Likewise.
6923         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
6924         to ira_object_t; all callers changed.
6925         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
6926         to ira_object_t, all callers changed.
6927         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
6928         to ira_object_t, all callers changed.
6929         (conflict_check, curr_conflict_check_tick): Renamed from
6930         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
6931         changed.
6932         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
6933         arg changed to ira_object_t, all callers changed.
6934         (create_cap_allocno): Call ira_create_allocno_object.
6935         (finish_allocno): Free the corresponding object.
6936         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
6937         callers changed.  Adjusted for dealing with objects.
6938         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
6939         dealing with objects.
6940         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
6941
6942         * ira-int.h (struct live_range): Rename allocno member to object
6943         and change type to ira_object_t.
6944         (struct ira_object): New member live_ranges.
6945         (struct ira_allocno): Remove member live_ranges.
6946         (ALLOCNO_LIVE_RANGES): Remove.
6947         (OBJECT_LIVE_RANGES): New macro.
6948         (ira_create_live_range, ira_copy_live_range_list,
6949         ira_merge_live_range_list, ira_live_ranges_intersect_p,
6950         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
6951         * ira-build.c (ira_create_object): Initialize live ranges here.
6952         (ira_create_allocno): Not here.
6953         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
6954         changed to ira_object_t, all callers changed.
6955         (copy_live_range): Rename from copy_allocno_live_range, all callers
6956         changed.
6957         (ira_copy_live_range_list): Rename from
6958         ira_copy_allocno_live_range_list, all callers changed.
6959         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
6960         all callers changed.
6961         (ira_live_ranges_intersect_p): Rename from
6962         ira_allocno_live_ranges_intersect_p, all callers changed.
6963         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
6964         callers changed.
6965         (ira_finish_live_range_list): Rename from
6966         ira_finish_allocno_live_range_list, all callers changed.
6967         (change_object_in_range_list): Rename from change_allocno_in_range_list,
6968         last arg changed to ira_object_t, all callers changed.
6969         (finish_allocno): Changed to expect live ranges in the allocno's object.
6970         (move_allocno_live_ranges, copy_allocno_live_ranges,
6971         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
6972         ira_flattening, ira_build): Likewise.
6973         * ira-color.c (allocnos_have_intersected_live_ranges_p,
6974         slot_coalesced_allocno_live_ranges_intersect,
6975         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
6976         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6977         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
6978         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
6979         make_allocno_dead, create_start_finish_chains,
6980         remove_some_program_points_and_update_live_ranges,
6981         ira_debug_live_range_list): Likewise.
6982
6983         * ira-int.h (ira_object_conflict_iterator): Rename from
6984         ira_allocno_conflict_iterator.
6985         (ira_object_conflict_iter_init): Rename from
6986         ira_allocno_conflict_iter_init, second arg changed to
6987         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
6988         FOR_EACH_ALLOCNO_CONFLICT.
6989         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
6990         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
6991         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
6992         * ira-conflicts.c (print_allocno_conflicts): Likewise.
6993
6994 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
6995
6996         PR other/44874
6997         * tree-dump.c (dump_options): Add enumerate_locals entry.
6998         Add TDF_NOID exclusion to all entry.
6999         * tree-dump.h (dump_enumerated_decls): Declare.
7000         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
7001         Don't display type uid.
7002         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
7003         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
7004         * tree-ssa-live.c: Include gimple.h.
7005         (numbered_tree_d): New struct.
7006         (numbered_tree): New typedef.
7007         (DEF_VEC_O (numbered_tree): New.
7008         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
7009         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
7010         (dump_enumerated_decls): Likewise.
7011         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
7012         debug info and flag_dump_final_insns, call dump_enumerated_decls.
7013         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
7014         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
7015
7016 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
7017
7018         * expmed.h (MAX_BITS_PER_WORD): Move to...
7019         * defaults.h (MAX_BITS_PER_WORD): ...here.
7020
7021 2010-07-13  DJ Delorie  <dj@redhat.com>
7022
7023         * config/h8300/h8300.c (h8300_init_once): Default to
7024         -fstrict_volatile_bitfields.
7025
7026         * config/sh/sh.c (sh_override_options): Default to
7027         -fstrict_volatile_bitfields.
7028
7029         * config/rx/rx.c (rx_option_override): New.
7030
7031         * config/m32c/m32c.c (m32c_override_options): Default to
7032         -fstrict_volatile_bitfields.
7033
7034 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
7035
7036         * tree.h (build_function_call_expr): Delete.
7037         (build_call_expr_loc_array): New function.
7038         (build_call_expr_loc_vec): New function.
7039         * tree-flow.h (struct omp_region): Change type of ws_args field
7040         to a VEC.
7041         * builtins.c (build_function_call_expr): Delete.
7042         (build_call_expr_loc_array): New function.
7043         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
7044         (build_call_expr): Likewise.
7045         (build_call_expr_loc_vec): New function.
7046         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
7047         build_function_call_expr.
7048         * expr.c (emutls_var_address): Likewise.
7049         * varasm.c (emutls_common_1): Likewise.
7050         * omp-low.c (expand_omp_atomic_mutex): Likewise.
7051         (expand_omp_taskreg): Adjust for new type of region->ws_args.
7052         (get_ws_args_for): Return a VEC instead of a tree.
7053         (expand_parallel_call): Call build_call_expr_loc_vec instead of
7054         build_function_call_expr.
7055         * stor-layout.c (self_referential_size): Likewise.
7056
7057 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7058
7059         PR testsuite/44701
7060         * recog.c (constrain_operands): Allow side-effects in memory
7061         operands if either < or > constraint is used, rather than if
7062         both < and > is used.
7063
7064 2010-07-13  Richard Guenther  <rguenther@suse.de>
7065
7066         PR middle-end/44911
7067         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
7068         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
7069         without name.
7070
7071 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7072
7073         PR target/44761
7074         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
7075         to variable emited.
7076         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
7077         * config/sh/sh.md (symGOT_load): Likewise.
7078         (symDTPOFF2reg): Likewise.
7079         (symTPOFF2reg): Likewise.
7080
7081 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7082
7083         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
7084         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
7085
7086 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7087
7088         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
7089         explanation.
7090         Find ucontext_t * on Solaris 11.
7091         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
7092         Handle new Solaris 11 __sighndlr patterns.
7093
7094 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7095
7096         PR debug/44901
7097         * vec.h (VEC_block_remove): Fix comment.
7098         * tree-ssa-live.c (remove_unused_locals): Don't use
7099         VEC_unordered_remove on local_decls, instead replace a single
7100         vector element in each iteration if at least one element had
7101         to be removed and VEC_truncate at the end.
7102         * omp-low.c (expand_omp_taskreg): Likewise.
7103
7104 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7105
7106         * c-decl.c (finish_function): Fix typo in comment.
7107
7108 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
7109
7110         PR bootstrap/44921
7111         * postreload.c (move2add_use_add3_insn): Silence gcc warning
7112         on min_regno.
7113
7114 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
7115
7116         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
7117         (simplify_stmt_using_ranges): Use it.
7118
7119 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7120
7121         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
7122         member.  Do not mark as GTY(()).
7123         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
7124         (spu_builtin_decls): New static variable.
7125         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
7126         (spu_init_builtins): Likewise.
7127         (spu_builtin_mul_widen_even): Likewise.
7128         (spu_builtin_mul_widen_odd): Likewise.
7129         (spu_builtin_mask_for_load): Likewise.
7130         (spu_builtin_vec_perm): Likewise.
7131         * config/spu/spu-c.c: Include "target.h".
7132         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
7133         of using spu_builtins[].fndecl.
7134
7135 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7136
7137         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
7138         imply -minterlink-mips16.
7139
7140 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7141
7142         * config/mips/mips.h (mips16_globals): Declare.
7143         (SWITCHABLE_TARGET): Define.
7144         * config/mips/mips.c: Include target-globals.h.
7145         (mips16_globals): New variable.
7146         (mips_set_mips16_mode): Use save_target_globals and
7147         restore_target_globals instead of target_reinit.
7148
7149 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7150
7151         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
7152         to say that the function can be called more than once.
7153         * target-globals.c (save_target_globals): Call init_reg_sets.
7154
7155 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7156
7157         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
7158         * bb-reorder.h: New file.
7159         * bb-reorder.c (default_target_bb_reorder): New variable.
7160         (this_target_bb_reorder): New conditional variable.
7161         (uncond_jump_length): Redefine as a macro.
7162         * target-globals.h (this_target_bb_reorder): Declare.
7163         (target_globals): Add a bb_reorder field.
7164         (restore_target_globals): Copy the bb_reorder field to
7165         this_target_bb-reorder.
7166         * target-globals.c: Include bb-reorder.h.
7167         (default_target_globals): Initialize the bb_reorder field.
7168         (save_target_globals): Likewise.
7169
7170 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7171
7172         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
7173         * gcse.h: New file.
7174         * gcse.c: Include gcse.h.
7175         (default_target_gcse): New variable.
7176         (this_target_gcse): New conditional variable.
7177         (can_copy): Redefine as a macro.
7178         (can_copy_init_p): New macro.
7179         (can_copy_p): Remove can_copy_init_p.
7180         * target-globals.h (this_target_gcse): Declare.
7181         (target_globals): Add a gcse field.
7182         (restore_target_globals): Copy the gcse field to this_target_gcse.
7183         * target-globals.c: Include gcse.h.
7184         (default_target_globals): Initialize the gcse field.
7185         (save_target_globals): Likewise.
7186
7187 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7188
7189         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
7190         and x_ira_prohibited_mode_move_regs_initialized_p.
7191         (ira_prohibited_mode_move_regs): Redefine as a macro.
7192         * ira.c (ira_prohibited_mode_move_regs): Delete.
7193         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
7194
7195 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7196
7197         * reload.h (target_reload): Add x_cached_reg_save_code and
7198         x_cached_reg_restore_code.
7199         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
7200         Redefine as macros.
7201
7202 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7203
7204         * Makefile.in (target-globals.o): Depend on builtins.h.
7205         * builtins.h: New file.
7206         * builtins.c: Include builtins.h.
7207         (default_target_builtins): New variable.
7208         (this_target_builtins): New conditional variable.
7209         (apply_args_mode, apply_result_mode): Redefine as macros.
7210         * target-globals.h (this_target_builtins): Declare.
7211         (target_globals): Add a builtins field.
7212         (restore_target_globals): Copy the builtins field to
7213         this_target_builtins.
7214         * target-globals.c: Include builtins.h.
7215         (default_target_globals): Initialize the builtins field.
7216         (save_target_globals): Likewise.
7217
7218 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7219
7220         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
7221         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
7222         from expmed.c.
7223         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
7224         (alg_hash, alg_hash_used_p): New macros.
7225         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
7226         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
7227         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
7228
7229 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7230
7231         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
7232         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
7233         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
7234         (this_op_costs, costs_classes): Redefine as macros.
7235         (record_reg_classes): Don't take op_costs as a parameter.
7236         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
7237         (scan_one_insn): Update call to record_operand_costs.
7238
7239 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7240
7241         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
7242         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
7243         (target_ira_int): New structure.
7244         (default_target_ira_int): Declare.
7245         (this_target_ira_int): Declare as a variable or define as a macro.
7246         (ira_reg_mode_hard_regset, ira_register_move_cost)
7247         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
7248         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
7249         (prohibited_class_mode_regs, ira_important_classes_num)
7250         (ira_important_classes, ira_reg_class_intersect)
7251         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
7252         (ira_reg_class_union): Redefine as macros.
7253         * ira.h (target_ira): New structure.
7254         (default_target_ira): Declare.
7255         (this_target_ira): Declare as a variable or define as a macro.
7256         (ira_available_class_regs, ira_hard_regno_cover_class)
7257         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
7258         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
7259         (ira_class_hard_regs_num): Redefine as macros.
7260         * ira.c (default_target_ira, default_target_ira_int): New variables.
7261         (this_target_ira, this_target_ira_int): New conditional variables.
7262         (ira_reg_mode_hard_regset, ira_memory_move_cost)
7263         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
7264         (ira_class_subset_p): Delete.
7265         (no_unit_alloc_regs): Redefine as a macro.
7266         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
7267         (ira_class_hard_regs_num, ira_class_hard_reg_index)
7268         (ira_available_class_regs): Delete.
7269         (alloc_reg_class_subclasses): Redefine as a macro.
7270         (ira_reg_class_cover_size, ira_reg_class_cover)
7271         (ira_important_classes_num, ira_important_classes)
7272         (ira_important_class_nums, ira_class_translate): Delete.
7273         (cover_class_order): Document the variable's lifetime.
7274         (reorder_important_classes): Don't set ira_important_class_nums.
7275         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
7276         (ira_reg_class_super_classes, ira_reg_class_union)
7277         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
7278         Delete.
7279         (setup_reg_class_nregs): Don't set ira_max_regs.
7280         (prohibited_class_mode_regs): Delete.
7281         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
7282         (target_globals): Add ira and ira_int fields.
7283         (restore_target_globals): Copy the ira field to this_target_ira
7284         and the ira_int field to this_target_ira_int.
7285         * target-globals.c: Include ira-int.h.
7286         (default_target_globals): Initialize the ira and ira_int fields.
7287         (save_target_globals): Likewise.
7288
7289 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7290
7291         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
7292         * cfgloop.h (target_cfgloop): New structure.
7293         (default_target_cfgloop): Declare.
7294         (this_target_cfgloop): Declare as a variable or define as a macro.
7295         (target_avail_regs, target_clobbered_regs, target_res_regs)
7296         (target_reg_cost, target_spill_cost): Redefine as macros.
7297         * cfgloopanal.c (default_target_cfgloop): New variable.
7298         (this_target_cfgloop): New conditional variable.
7299         (target_avail_regs, target_clobbered_regs, target_res_regs)
7300         (target_reg_cost, target_spill_cost): Delete.
7301         * target-globals.h (this_target_cfgloop): Declare.
7302         (target_globals): Add a cfgloop field.
7303         (restore_target_globals): Copy the cfgloop field to
7304         this_target_cfgloop.
7305         * target-globals.c: Include cfgloop.h.
7306         (default_target_globals): Initialize the cfgloop field.
7307         (save_target_globals): Likewise.
7308
7309 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7310
7311         * regs.h (target_regs): Add x_direct_load, x_direct_store and
7312         x_float_extend_from_mem.
7313         (direct_load, direct_store, float_extend_from_mem): New macros.
7314         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
7315
7316 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7317
7318         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
7319         (target-globals.o): Depend on $(LIBFUNCS_H).
7320         * libfuncs.h: Include hashtab.h.
7321         (libfunc_entry): Moved from optabs.c.
7322         (target_libfuncs): New structure.
7323         (default_target_libfuncs): Declare.
7324         (this_target_libfuncs): Declare as a variable or define as a macro.
7325         (libfunc_table): Redefine as a macro.
7326         * optabs.c (default_target_libfuncs): New variable.
7327         (this_target_libfuncs): New conditional variable.
7328         (libfunc_table): Delete.
7329         (libfunc_entry): Moved to optabs.h.
7330         (libfunc_hash): Redefine as a macro.
7331         (hash_libfunc, eq_libfunc): Fix comments.
7332         (init_optabs): Use libfunc_hash to detect cases where the function
7333         has already been called.  Clear the hash table instead of
7334         recreating it.
7335         * target-globals.h (this_target_libfuncs): Declare.
7336         (target_globals): Add a libfuncs field.
7337         (restore_target_globals): Copy the libfuncs field to
7338         this_target_libfuncs.
7339         * target-globals.c: Include libfuncs.h.
7340         (default_target_globals): Initialize the libfuncs field.
7341         (save_target_globals): Likewise.
7342
7343 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7344
7345         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
7346         in all dependency lists.
7347
7348 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7349
7350         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
7351         * optabs.h (target_optabs): New structure.
7352         (default_target_optabs): Declare.
7353         (this_target_optabs): Declare as a variable or define as a macro.
7354         (optab_table, convert_optab_table, direct_optab_table): Redefine
7355         as macros.
7356         * optabs.c (default_target_optabs): New variable.
7357         (this_target_optabs): New conditional variable.
7358         (optab_table, convert_optab_table, direct_optab_table): Delete.
7359         * target-globals.h (this_target_optabs): Declare.
7360         (target_globals): Add a optabs field.
7361         (restore_target_globals): Copy the optabs field to
7362         this_target_optabs.
7363         * target-globals.c: Include expr.h and optabs.h.
7364         (default_target_globals): Initialize the optabs field.
7365         (save_target_globals): Likewise.
7366
7367 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7368
7369         * flags.h (target_flagstate): Add x_flag_excess_precision.
7370         (flag_excess_precision): Redefine as a macro.
7371         * toplev.c (flag_excess_precision): Delete.
7372
7373 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7374
7375         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
7376         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
7377         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
7378         (no_caller_save_reg_set): Redefine as a macro.
7379         * reload.h (target_reload): Add x_caller_save_initialized_p and
7380         x_regno_save_mode.
7381         (caller_save_initialized_p): Redefine as a macro.
7382         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
7383         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
7384         (regno_save_mode): Redefine as a macro.
7385
7386 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7387
7388         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
7389         * expmed.h: New file.
7390         * expmed.c (default_target_costs): New variable.
7391         (this_target_costs): New conditional variable.
7392         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
7393         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
7394         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
7395         * target-globals.h (this_target_expmed): Declare.
7396         (target_globals): Add a expmed field.
7397         (restore_target_globals): Copy the expmed field to
7398         this_target_expmed.
7399         * target-globals.c: Include expmed.h.
7400         (default_target_globals): Initialize the expmed field.
7401         (save_target_globals): Likewise.
7402
7403 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7404
7405         * Makefile.in (target-globals.o): Depend on reload.h.
7406         * reload.h (target_reload): New structure.
7407         (default_target_reload): Declare.
7408         (this_target_reload): Declare as a variable or define as a macro.
7409         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
7410         * reload1.c (default_target_reload): New variable
7411         (this_target_reload): New conditional variable.
7412         (indirect_symref_ok, double_reg_address_ok): Delete.
7413         (spill_indirect_levels): Redefine as a macro.
7414         * target-globals.h (this_target_reload): Declare.
7415         (target_globals): Add a reload field.
7416         (restore_target_globals): Copy the reload field to
7417         this_target_reload.
7418         * target-globals.c: Include hard-reg-set.h.
7419         (default_target_globals): Initialize the reload field.
7420         (save_target_globals): Likewise.
7421
7422 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7423
7424         * rtl.h (target_rtl): Add x_static_reg_base_value.
7425         * alias.c (static_reg_base_value): Redefine as a macro.
7426
7427 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7428
7429         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
7430         (GTFILES): Remove reginfo.c.
7431         * rtl.h (target_rtl): Add x_top_of_stack.
7432         (top_of_stack): New macro.
7433         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
7434         (top_of_stack): Delete.
7435
7436 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7437
7438         * regs.h (target_regs): Add x_hard_regs_of_mode,
7439         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
7440         x_may_move_out_cost and x_last_mode_for_init_move_cost.
7441         (have_regs_of_mode, contains_reg_of_mode, move_cost)
7442         (may_move_in_cost, may_move_out_cost): Redefine as macros.
7443         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
7444         (may_move_in_cost, may_move_out_cost): Delete.
7445         (last_mode_for_init_move_cost): Redefine as a macro.
7446
7447 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7448
7449         * hard-reg-set.h (target_hard_regs): New structure.
7450         (default_target_hard_regs): Declare.
7451         (this_target_hard_regs): Declare as a variable or define as a macro.
7452         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
7453         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
7454         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
7455         (reg_class_size, reg_class_subclasses, reg_class_subunion)
7456         (reg_class_superunion, reg_names): Redefine as macros.
7457         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
7458         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
7459         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
7460         (reg_class_contents, reg_class_size, reg_class_subclasses)
7461         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
7462         (default_target_hard_regs): New variable
7463         (this_target_hard_regs, initial_call_really_used_regs)
7464         (initial_reg_alloc_order): New conditional variables.
7465         (initial_reg_names): New variable.
7466         (init_reg_sets): Assert that initial_call_really_used_regs,
7467         initial_reg_alloc_order and initial_reg_names
7468         are all the same size as their variable counterparts.  Use them to
7469         initialize those counterparts.
7470         * target-globals.h (this_target_hard_regs): Declare.
7471         (target_globals): Add a hard_regs field.
7472         (restore_target_globals): Copy the hard_regs field to
7473         this_target_hard_regs.
7474         * target-globals.c: Include hard-reg-set.h.
7475         (default_target_globals): Initialize the hard_regs field.
7476         (save_target_globals): Likewise.
7477
7478 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7479
7480         * Makefile.in (target-globals.o): Depend on $(RTL_H).
7481         * rtl.h (target_rtl): New structure.
7482         (default_target_rtl): Declare.
7483         (this_target_rtl): Declare as a variable or define as a macro.
7484         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
7485         Redefine as macros.
7486         * emit-rtl.c (default_target_rtl): New variable.
7487         (this_target_rtl): New conditional variable.
7488         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
7489         (return_address_pointer_rtx): Delete.
7490         (initial_regno_reg_rtx): New macro.
7491         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
7492         (init_emit_regs): Likewise.
7493         * target-globals.h (this_target_rtl): Declare.
7494         (target_globals): Add a rtl field.
7495         (restore_target_globals): Copy the rtl field to this_target_rtl.
7496         * target-globals.c: Include rtl.h.
7497         (default_target_globals): Initialize the rtl field.
7498         (save_target_globals): Likewise.
7499
7500 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7501
7502         * Makefile.in (target-globals.o): Depend on $(REGS_H).
7503         * regs.h (target_reg_modes): New structure.
7504         (default_target_reg_modes): Declare.
7505         (this_target_reg_modes): Declare as a variable or define as a macro.
7506         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
7507         * reginfo.c (default_target_reg_modes): New variable.
7508         (this_target_reg_modes): New conditional variable.
7509         (hard_regno_nregs, reg_raw_mode): Delete.
7510         * target-globals.h (this_target_regs): Declare.
7511         (target_globals): Add a regs field.
7512         (restore_target_globals): Copy the regs field to this_target_regs.
7513         * target-globals.c: Include regs.h.
7514         (default_target_globals): Initialize the regs field.
7515         (save_target_globals): Likewise.
7516
7517 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7518
7519         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
7520         * doc/tm.texi: Regenerate.
7521         * Makefile.in (OBJS-common): Add target-globals.o.
7522         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
7523         and target-globals.h.
7524         (target-globals.o): New rule.
7525         (GTFILES): Include $(srcdir)/target-globals.h.
7526         * defaults.h (SWITCHABLE_TARGET): Define.
7527         * gengtype.c (open_base_files): Add target-globals.h to the
7528         list of includes.
7529         * target-globals.h: New file.
7530         * target-globals.c: Likewise.
7531
7532         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
7533         * flags.h (target_flag_state): New structure.
7534         (default_target_flag_state): Declare.
7535         (this_target_flag_state): Declare as a variable or define as a macro.
7536         (align_loops_log): Redefine as a macro.
7537         (align_loops_max_skip, align_jumps_log): Likewise.
7538         (align_jumps_max_skip, align_labels_log): Likewise.
7539         (align_labels_max_skip, align_functions_log): Likewise.
7540         * toplev.c (default_target_flag_state): New variable.
7541         (this_target_flag_state): New conditional variable.
7542         (align_loops_log): Delete.
7543         (align_loops_max_skip, align_jumps_log): Likewise.
7544         (align_jumps_max_skip, align_labels_log): Likewise.
7545         (align_labels_max_skip, align_functions_log): Likewise.
7546         * target-globals.h (this_target_flag_state): Declare.
7547         (target_globals): Add a flag_state field.
7548         (restore_target_globals): Copy the flag_state field to
7549         this_target_flag_state.
7550         * target-globals.c: Include flags.h.
7551         (default_target_globals): Initialize the flag_state field.
7552         (save_target_globals): Likewise.
7553
7554 2010-07-12  Jie Zhang  <jie@codesourcery.com>
7555
7556         * postreload.c (reg_symbol_ref[]): New.
7557         (move2add_use_add2_insn): New.
7558         (move2add_use_add3_insn): New.
7559         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
7560         (move2add_note_store): Likewise.
7561
7562 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
7563
7564         PR rtl-optimization/44752
7565         * genautomata.c (main): Don't emit an empty file even if there
7566         is no automaton.
7567
7568 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7569
7570         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
7571         ix86_solaris_return_in_memory.
7572         * config/i386-protos.h: Reflect this.
7573         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
7574         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
7575         Move ...
7576         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
7577
7578 2010-07-12  Jie Zhang  <jie@codesourcery.com>
7579
7580         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
7581         align the stack when it's going to be saved.
7582
7583 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7584
7585         PR pch/14940
7586         * config/host-solaris.c (mmap_fixed): New function.
7587         (sol_gt_pch_get_address): Use it.
7588         (sol_gt_pch_use_address): Likewise.
7589
7590 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7591
7592         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
7593         pentiumpro on Solaris 8 and 9/x86.
7594         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
7595         Document SSE/SSE2 support.
7596         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
7597
7598 2010-07-12  Andi Kleen  <ak@linux.intel.com>
7599
7600         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
7601         instead of gcc_assert to print better error message for multiple
7602         prevailing defs.
7603
7604 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
7605
7606         * config/i386/i386.c (ix86_asm_output_function_label): Change format
7607         string placeholder from 0x%x to %#x.
7608         (ix86_code_end): Use putc to output '\n'.
7609         (ix86_print_operand) <case ';'>: Use putc to output ';'.
7610
7611 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
7612
7613         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
7614         in directive -export.
7615
7616 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
7617
7618         * reginfo.h (reg_classes_intersect_p): Change arguments type to
7619         reg_class_t.
7620         * rtl.h (reg_classes_intersect_p): Adjust prototype.
7621
7622         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7623         Remove macros.
7624         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
7625         rs6000_memory_move_cost): Remove
7626         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
7627         TARGET_MEMORY_MOVE_COST): Define.
7628         (rs6000_register_move_cost): Make static. Change arguments type from
7629         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
7630         (rs6000_memory_move_cost): Make static. Change arguments type from
7631         'enum reg_class' to reg_class_t.
7632
7633 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
7634
7635         PR middle-end/42505
7636         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
7637         lookup code into....
7638         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
7639         new functions.
7640         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
7641         * cfgloopanal.c (target_clobbered_regs): Define.
7642         (init_set_costs): Initialize target_clobbered_regs.
7643         (estimate_reg_pressure_cost): Add call_p argument.  When true,
7644         adjust the number of available registers to exclude the
7645         call-clobbered registers.
7646         * cfgloop.h (target_clobbered_regs): Declare.
7647         (estimate_reg_pressure_cost): Adjust declaration.
7648         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
7649         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
7650         (determine_set_costs): Dump target_clobbered_regs.
7651         (loop_body_includes_call): New function.
7652         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
7653         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
7654         call_p flag through.
7655         (best_gain_for_invariant): Likewise.
7656         (find_invariants_to_move): Likewise.
7657         (move_single_loop_invariants): Likewise, using already-computed
7658         has_call field.
7659
7660 2010-07-10  Richard Guenther  <rguenther@suse.de>
7661             Joern Rennecke  <joern.rennecke@embecosm.com>
7662
7663         PR debug/44832
7664         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
7665         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
7666         unless they have DECL_IGNORED_P set.
7667
7668 2010-07-10  Richard Guenther  <rguenther@suse.de>
7669
7670         PR lto/44889
7671         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
7672         helper function.
7673         (gimple_types_compatible_p): Similar to pointed-to
7674         types allow and merge a mix of complete and incomplete aggregate.
7675         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
7676         (iterative_hash_gimple_type): Adjust for that.
7677
7678 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
7679
7680         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
7681
7682 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
7683
7684         PR objc/44140
7685         * config/darwin.c (output_objc_section_asm_op): Save and restore
7686         section when outputting ObjC section list.
7687
7688 2010-07-09  Jan Hubicka  <jh@suse.cz>
7689
7690         * lto-streamer-out.c (produce_symtab): Do not write alias
7691         cgraph/varpool nodes.
7692
7693 2010-07-09  Jan Hubicka  <jh@suse.cz>
7694
7695         * tree-inline.c (declare_return_variable): Fix ICE while
7696         inlining DECL_BY_VALUE function not in SSA form
7697
7698 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
7699
7700         PR tree-optimization/44576
7701         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
7702         New.  Pull out from is_loop_prefetching_profitable to implement
7703         the trip count to ahead ratio heuristic.
7704         (mem_ref_count_reasonable_p): New.  Pull out from
7705         is_loop_prefetching_profitable to implement the instruction to
7706         memory reference ratio heuristic.  Also consider not reasonable if
7707         the memory reference count is above a threshold (to avoid
7708         explosive compilation time.
7709         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
7710         is_loop_prefetching_profitable to implement the instruction to
7711         prefetch ratio heuristic.
7712         (is_loop_prefetching_profitable): Removed.
7713         (loop_prefetch_arrays): Distribute the cost analysis across the
7714         function to allow early exit of the prefetch analysis.
7715         is_loop_prefetching_profitable is splitted into three functions,
7716         with each one called as early as possible.
7717         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
7718         number of memory references in a loop is considered too many.
7719
7720 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
7721
7722         * reload.c (find_reloads): Don't clear badop if we have a winreg
7723         alternative, but not win, and the class only has fixed regs.
7724         * hard-reg-set.h (class_only_fixed_regs): Declare.
7725         * reginfo.c (class_only_fixed_regs): New array.
7726         (init_reg_sets_1): Initialize it.
7727         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
7728         discourage alternatives using the stack pointer.
7729
7730         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
7731
7732         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
7733
7734         * config/arm/arm.md (cbranchqi4): Fix array size.
7735         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
7736         calculating length.
7737
7738 2010-07-09  Richard Guenther  <rguenther@suse.de>
7739
7740         * gimple.c (struct type_fixup_s): New struct and VEC type.
7741         (gimple_register_type_fixups): New static global.
7742         (gimple_queue_type_fixup): New function.
7743         (gimple_types_compatible_p): Queue type fixups instead of
7744         applying them here.
7745         (gimple_register_type): Apply queued fixups for the
7746         canonical type.  Empty the type fixup queue.
7747
7748 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7749
7750         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
7751         * configure: Regenerate.
7752         * config.in: Ditto.
7753
7754 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
7755             Denys Vlasenko  <dvlasenk@redhat.com>
7756             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7757
7758         PR tree-optimization/28632
7759         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
7760         (extract_range_from_binary_expr): Further optimize
7761         BIT_AND_EXPR and BIT_IOR_EXPR.
7762
7763 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
7764
7765         * tree-if-conv.c (fold_or_predicates): New.
7766         (add_to_predicate_list): Call it.
7767
7768 2010-07-09  Richard Guenther  <rguenther@suse.de>
7769
7770         PR middle-end/44890
7771         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
7772         if base is a pointer.
7773         * tree-cfg.c (verify_expr): Update MEM_REF checking.
7774
7775 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
7776
7777         PR target/44877
7778         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
7779         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
7780         builtin mask for load/store builtins.
7781
7782 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7783
7784         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
7785         for "lock addl".
7786         * configure: Regenerate.
7787         * config/i386/i386.c (ix86_print_operand) <case ';'>:
7788         Remove TARGET_MACHO.
7789
7790 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
7791
7792         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
7793         default ISA flags.
7794         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
7795
7796 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
7797
7798         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
7799
7800 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
7801
7802         * config/picochip/picochip.md (commsTestPort): Emit more
7803         efficient sequence for tstport instruction.
7804
7805 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7806
7807         * config/i386/i386.c (ix86_veclib_handler): Make static.
7808
7809 2010-07-09  Richard Guenther  <rguenther@suse.de>
7810
7811         PR tree-optimization/44852
7812         * tree-ssa-alias.c: Include toplev.h for exact_log2.
7813         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
7814         in MEM_REF.
7815         (indirect_refs_may_alias_p): Likewise.
7816         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
7817
7818 2010-07-09  Richard Guenther  <rguenther@suse.de>
7819
7820         PR tree-optimization/44882
7821         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
7822         sets do conflict.
7823         (vectorizable_load): Likewise.
7824
7825 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
7826
7827         PR target/40657
7828         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
7829         All callers changed.
7830         Handle the case when we're called for the epilogue.
7831         (thumb_unexpanded_epilogue): Use it.
7832         (thumb1_expand_epilogue): Likewise.
7833
7834 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
7835
7836         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
7837         both ranges are range_int_cst_p with non-negative minimum,
7838         try harder to derive smaller range.
7839
7840 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7841
7842         * genrecog.c: Include diagnostic-core.h before toplev.h.
7843         * genoutput.c: Likewise.
7844         * genextract.c: Likewise.
7845         * genautomata.c: Likewise.
7846         * genemit.c: Likewise.
7847         * genpeep.c: Likewise.
7848         * genattrtab.c: Likewise.
7849         * genconditions.c: Likewise.
7850         * genpreds.c: Likewise.
7851
7852 2010-07-08  Andi Kleen  <ak@linux.intel.com>
7853
7854         * lto-section-in.c (lto_section_name): Add missing comma.
7855
7856 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
7857
7858         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
7859         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
7860         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
7861         (ia64_override_options): Rename to...
7862         (ia64_option_override): ... this one. Make static.
7863
7864 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7865
7866         PR middle-end/44843
7867         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
7868         pointed-to type of the offset in a MEM_REF to compute the alignment.
7869
7870 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
7871
7872         * final.c (final_scan_insn): Replace
7873         TARGET_UNWIND_INFO macro check by unwind_emit
7874         hook NULL check.
7875         * targhooks.c (default_unwind_emit): Removed.
7876         * targhooks.h (default_unwind_emit): Likewise.
7877         * target.def (unwind_emit): Set default value to NULL.
7878
7879         * config/i386/i386-protos.h (ix86_asm_output_function_label):
7880         New prototype.
7881         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
7882         for NULL fntype argument and allow 64-bit targets.
7883         (ix86_asm_output_function_label): New function.
7884         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
7885         (ix86_handle_fndecl_attribute): Likewise.
7886         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
7887         * doc/doc/tm.texi: Regenerated.
7888         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
7889         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
7890         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
7891         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
7892         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
7893         * config/elfos.h: Likewise.
7894         * config/i386/cygming.h: Likewise.
7895         * config/netbsd-aout.h: Likewise.
7896         * config/openbsd.h: Likewise.
7897         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
7898         by ix86_asm_output_function_label function call.
7899         * varasm.c (assemble_start_function): Use
7900         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
7901
7902 2010-07-08  Jan Hubicka  <jh@suse.cz>
7903
7904         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
7905         New function.
7906         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
7907         Declare.
7908         * ipa-cp.c (ipcp_estimate_growth): Use it.
7909         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
7910         Likewise.
7911
7912 2010-07-08  Jan Hubicka  <jh@suse.cz>
7913
7914         * tree-inline.c (declare_return_variable): Allocate annotation for new
7915         temporary.
7916
7917 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
7918
7919         PR tree-optimization/44710
7920         * tree-if-conv.c (parse_predicate): New.
7921         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
7922         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
7923
7924 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
7925
7926         * common.opt (ftree-loop-if-convert): New flag.
7927         * doc/invoke.texi (ftree-loop-if-convert): Documented.
7928         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
7929         when flag_tree_loop_if_convert is set.
7930
7931 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
7932
7933         * config/i386/i386.c: Use short syntax for function calls
7934         through function pointers.
7935         * config/i386/i386.md: Ditto.
7936
7937 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7938
7939         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
7940
7941 2010-07-08  Richard Guenther  <rguenther@suse.de>
7942
7943         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
7944         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
7945
7946 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
7947
7948         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
7949         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
7950         (loc_list_from_tree): Likewise.
7951         (output_loc_operands): Handle outputting DW_OP_const[48]u
7952         with loc->dtprel set.
7953         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
7954
7955 2010-07-08  Jan Hubicka  <jh@suse.cz>
7956
7957         * ipa.c: Include pointer-set.h
7958         (cgraph_externally_visible_p): New attribute ALIASED;
7959         when in LTO, hidden symbols are local unless they are aliased.
7960         (function_and_variable_visibility): Compute aliased nodes;
7961         handle LTO and hidden symbol on functions and vars.
7962         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
7963         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
7964
7965 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7966
7967         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7968         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7969         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7970         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7971         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7972         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
7973         (ix86_gen_probe_stack_range): Likewise.
7974         (override_options): Set them.
7975         (ix86_target_stack_probe): New function.
7976         (ix86_compute_frame_layout): Force use of push instructions to
7977         save registers if stack checking with probes is enabled.
7978         (get_scratch_register_on_entry): New function.
7979         (release_scratch_register_on_entry): Likewise.
7980         (ix86_adjust_stack_and_probe): Likewise.
7981         (output_adjust_stack_and_probe): Likewise.
7982         (ix86_emit_probe_stack_range): Likewise.
7983         (output_probe_stack_range): Likewise.
7984         (ix86_expand_prologue): Emit stack checking code if static built-in
7985         stack checking is enabled.
7986         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
7987         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
7988         (output_adjust_stack_and_probe): Likewise.
7989         (output_probe_stack_range): Likewise.
7990         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7991         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
7992         TARGET_STACK_PROBE.
7993         (allocate_stack_worker_64): Likewise.
7994         (allocate_stack): Likewise.
7995         (adjust_stack_and_probe): New insn.
7996         (probe_stack_range): Likewise.
7997
7998 2010-07-08  Richard Guenther  <rguenther@suse.de>
7999
8000         PR tree-optimization/44831
8001         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
8002         a MEM_REF preserving TBAA info of the original dereference.
8003         Dereference the original pointer if the address is not invariant.
8004         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
8005         at least one invariant address that we are going to dereference.
8006
8007 2010-07-08  Richard Guenther  <rguenther@suse.de>
8008
8009         PR tree-optimization/44861
8010         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
8011         information when building MEM_REFs.
8012         (vectorizable_load): Likewise.
8013         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
8014
8015 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8016
8017         * config/sol2-c.c: Do not include diagnostic-core.h.
8018
8019 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8020
8021         PR bootstrap/44768
8022         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
8023         with respect to current_function_decl. Pass decl of the function.
8024         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
8025         * ipa-inline.c (compute_inline_parameters): Pass decl to
8026         estimated_stack_frame_size.
8027
8028 2010-07-08  Richard Guenther  <rguenther@suse.de>
8029
8030         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8031         New function.
8032         (valueize_refs): Call it.
8033
8034 2010-07-08  Richard Guenther  <rguenther@suse.de>
8035
8036         PR rtl-optimization/44838
8037         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
8038         SSA form do not use pointer equivalence.
8039
8040 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8041
8042         * dwarf2out.c (AT_linkage_name): Delete.
8043         (add_linkage_attr): New function.
8044         (add_linkage_name): Call it to emit the linkage attribute.
8045         (dwarf2out_finish): Likewise.
8046         (move_linkage_attr): Explicitly accept both attribute variants.
8047
8048 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8049
8050         * toplev.h: Do not include diagnostic-core.h.
8051         Include diagnostic-core.h in every file that includes toplev.h.
8052         * c-tree.h: Do not include toplev.h.
8053         * pretty-print.h: Update comment.
8054         * Makefile.in: Update dependencies.
8055         * alias.c: Include diagnostic-core.h in every file that includes
8056         toplev.h.
8057         * attribs.c: Likewise.
8058         * auto-inc-dec.c: Likewise.
8059         * bb-reorder.c: Likewise.
8060         * bt-load.c: Likewise.
8061         * caller-save.c: Likewise.
8062         * calls.c: Likewise.
8063         * cfg.c: Likewise.
8064         * cfganal.c: Likewise.
8065         * cfgbuild.c: Likewise.
8066         * cfgcleanup.c: Likewise.
8067         * cfghooks.c: Likewise.
8068         * cfgloop.c: Likewise.
8069         * combine.c: Likewise.
8070         * config/alpha/alpha.c: Likewise.
8071         * config/arc/arc.c: Likewise.
8072         * config/arm/arm.c: Likewise.
8073         * config/arm/pe.c: Likewise.
8074         * config/avr/avr.c: Likewise.
8075         * config/bfin/bfin.c: Likewise.
8076         * config/cris/cris.c: Likewise.
8077         * config/crx/crx.c: Likewise.
8078         * config/darwin-c.c: Likewise.
8079         * config/darwin.c: Likewise.
8080         * config/fr30/fr30.c: Likewise.
8081         * config/frv/frv.c: Likewise.
8082         * config/h8300/h8300.c: Likewise.
8083         * config/host-darwin.c: Likewise.
8084         * config/i386/i386.c: Likewise.
8085         * config/i386/netware.c: Likewise.
8086         * config/i386/nwld.c: Likewise.
8087         * config/i386/winnt-cxx.c: Likewise.
8088         * config/i386/winnt-stubs.c: Likewise.
8089         * config/i386/winnt.c: Likewise.
8090         * config/ia64/ia64-c.c: Likewise.
8091         * config/ia64/ia64.c: Likewise.
8092         * config/iq2000/iq2000.c: Likewise.
8093         * config/lm32/lm32.c: Likewise.
8094         * config/m32c/m32c-pragma.c: Likewise.
8095         * config/m32c/m32c.c: Likewise.
8096         * config/m32r/m32r.c: Likewise.
8097         * config/m68hc11/m68hc11.c: Likewise.
8098         * config/m68k/m68k.c: Likewise.
8099         * config/mcore/mcore.c: Likewise.
8100         * config/mep/mep-pragma.c: Likewise.
8101         * config/mep/mep.c: Likewise.
8102         * config/mmix/mmix.c: Likewise.
8103         * config/mn10300/mn10300.c: Likewise.
8104         * config/moxie/moxie.c: Likewise.
8105         * config/pa/pa.c: Likewise.
8106         * config/pdp11/pdp11.c: Likewise.
8107         * config/picochip/picochip.c: Likewise.
8108         * config/rs6000/rs6000-c.c: Likewise.
8109         * config/rs6000/rs6000.c: Likewise.
8110         * config/rx/rx.c: Likewise.
8111         * config/s390/s390.c: Likewise.
8112         * config/score/score.c: Likewise.
8113         * config/score/score3.c: Likewise.
8114         * config/score/score7.c: Likewise.
8115         * config/sh/sh.c: Likewise.
8116         * config/sh/symbian-base.c: Likewise.
8117         * config/sh/symbian-c.c: Likewise.
8118         * config/sh/symbian-cxx.c: Likewise.
8119         * config/sol2-c.c: Likewise.
8120         * config/sol2.c: Likewise.
8121         * config/sparc/sparc.c: Likewise.
8122         * config/spu/spu.c: Likewise.
8123         * config/stormy16/stormy16.c: Likewise.
8124         * config/v850/v850-c.c: Likewise.
8125         * config/v850/v850.c: Likewise.
8126         * config/vax/vax.c: Likewise.
8127         * config/vxworks.c: Likewise.
8128         * config/xtensa/xtensa.c: Likewise.
8129         * convert.c: Likewise.
8130         * cse.c: Likewise.
8131         * cselib.c: Likewise.
8132         * dbgcnt.c: Likewise.
8133         * dbxout.c: Likewise.
8134         * ddg.c: Likewise.
8135         * dominance.c: Likewise.
8136         * emit-rtl.c: Likewise.
8137         * explow.c: Likewise.
8138         * expmed.c: Likewise.
8139         * fixed-value.c: Likewise.
8140         * fold-const.c: Likewise.
8141         * fwprop.c: Likewise.
8142         * gcse.c: Likewise.
8143         * ggc-common.c: Likewise.
8144         * ggc-page.c: Likewise.
8145         * ggc-zone.c: Likewise.
8146         * gimple-low.c: Likewise.
8147         * gimplify.c: Likewise.
8148         * graph.c: Likewise.
8149         * haifa-sched.c: Likewise.
8150         * ifcvt.c: Likewise.
8151         * implicit-zee.c: Likewise.
8152         * integrate.c: Likewise.
8153         * ira-build.c: Likewise.
8154         * ira-color.c: Likewise.
8155         * ira-conflicts.c: Likewise.
8156         * ira-costs.c: Likewise.
8157         * ira-lives.c: Likewise.
8158         * ira.c: Likewise.
8159         * lists.c: Likewise.
8160         * loop-doloop.c: Likewise.
8161         * loop-iv.c: Likewise.
8162         * lto-opts.c: Likewise.
8163         * lto-symtab.c: Likewise.
8164         * main.c: Likewise.
8165         * modulo-sched.c: Likewise.
8166         * optabs.c: Likewise.
8167         * params.c: Likewise.
8168         * plugin.c: Likewise.
8169         * postreload-gcse.c: Likewise.
8170         * postreload.c: Likewise.
8171         * predict.c: Likewise.
8172         * profile.c: Likewise.
8173         * real.c: Likewise.
8174         * regcprop.c: Likewise.
8175         * reginfo.c: Likewise.
8176         * regmove.c: Likewise.
8177         * reorg.c: Likewise.
8178         * resource.c: Likewise.
8179         * rtl.c: Likewise.
8180         * rtlanal.c: Likewise.
8181         * sched-deps.c: Likewise.
8182         * sched-ebb.c: Likewise.
8183         * sched-rgn.c: Likewise.
8184         * sdbout.c: Likewise.
8185         * sel-sched-dump.c: Likewise.
8186         * sel-sched-ir.c: Likewise.
8187         * simplify-rtx.c: Likewise.
8188         * stmt.c: Likewise.
8189         * stor-layout.c: Likewise.
8190         * store-motion.c: Likewise.
8191         * targhooks.c: Likewise.
8192         * tree-cfg.c: Likewise.
8193         * tree-cfgcleanup.c: Likewise.
8194         * tree-dump.c: Likewise.
8195         * tree-eh.c: Likewise.
8196         * tree-inline.c: Likewise.
8197         * tree-nomudflap.c: Likewise.
8198         * tree-object-size.c: Likewise.
8199         * tree-optimize.c: Likewise.
8200         * tree-outof-ssa.c: Likewise.
8201         * tree-phinodes.c: Likewise.
8202         * tree-profile.c: Likewise.
8203         * tree-ssa-ccp.c: Likewise.
8204         * tree-ssa-coalesce.c: Likewise.
8205         * tree-ssa-live.c: Likewise.
8206         * tree-ssa-loop-niter.c: Likewise.
8207         * tree-ssa-loop-prefetch.c: Likewise.
8208         * tree-ssa-loop.c: Likewise.
8209         * tree-ssa-structalias.c: Likewise.
8210         * tree-ssa-uninit.c: Likewise.
8211         * tree-ssa.c: Likewise.
8212         * tree-vect-data-refs.c: Likewise.
8213         * tree-vect-loop-manip.c: Likewise.
8214         * tree-vect-loop.c: Likewise.
8215         * tree-vect-patterns.c: Likewise.
8216         * tree-vect-stmts.c: Likewise.
8217         * tree-vrp.c: Likewise.
8218         * varasm.c: Likewise.
8219         * vec.c: Likewise.
8220         * web.c: Likewise.
8221         * xcoffout.c: Likewise.
8222
8223 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
8224
8225         * gengtype.c (write_field_root): New function.
8226         (write_root): Use it.
8227
8228 2010-07-07  Wei Guozhi  <carrot@google.com>
8229
8230         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8231         of lowest bits to lshift/compare): Add a missing line.
8232
8233 2010-07-07  Wei Guozhi  <carrot@google.com>
8234
8235         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8236         of lowest bits to lshift/compare): New.
8237
8238 2010-07-07  Tom Tromey  <tromey@redhat.com>
8239
8240         * doc/tm.texi: Update.
8241         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
8242         Add @hook.
8243         * target.def (want_debug_pub_sections): New hook.
8244         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
8245         * dwarf2out.c (add_pubname_string): Check
8246         targetm.want_debug_pub_sections.
8247         (add_pubname): Likewise.
8248         (add_pubtype): Likewise.
8249
8250 2010-07-07  Jie Zhang  <jie@codesourcery.com>
8251
8252         * genautomata.c (output_automata_list_min_issue_delay_code):
8253         Correctly decompress min_issue_delay.
8254
8255 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8256
8257         PR rtl-optimization/44404
8258         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
8259         possible, use reg_overlap_mentioned_p instead.
8260
8261 2010-07-07  Duncan Sands  <baldrick@free.fr>
8262
8263         PR middle-end/41355
8264         * tree.c (build_function_type_skip_args): Copy the original type using
8265         build_distinct_type_copy rather than copy_node.
8266
8267 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8268
8269         PR target/44850
8270         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
8271         revision 161876.
8272         (ix86_expand_prologue): Likewise.
8273         (ix86_handle_fndecl_attribute): Likewise.
8274         (ix86_asm_declare_function_name): Likewise.
8275         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8276         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8277         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
8278         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
8279         * doc/extend.texi: Likewise.
8280
8281 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8282
8283         PR target/44844
8284         * config/i386/i386.md (rdrand<mode>): Changed to expand to
8285         retry if the carry flag isn't valid.
8286         (rdrand<mode>_1): New.
8287
8288 2010-07-07  Richard Guenther  <rguenther@suse.de>
8289
8290         PR middle-end/44790
8291         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
8292         for expanding the constant offset for MEM_REFs.
8293
8294 2010-07-07  Richard Guenther  <rguenther@suse.de>
8295
8296         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
8297         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
8298         * gimple.h (is_gimple_operand): Remove.
8299         * gimple.c (is_gimple_operand): Likewise.
8300         (walk_gimple_op): Fix wi->val_only setting for calls.
8301         * tree-cfg.c (verify_gimple_call): Fix argument validation.
8302         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
8303         invalid gimple calls.
8304
8305 2010-07-06  Jan Hubicka  <jh@suse.cz>
8306
8307         * lto-cgraph.c (output_cgraph): Add missing declaration.
8308
8309 2010-07-06  Jan Hubicka  <jh@suse.cz>
8310
8311         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
8312         partition.
8313
8314 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
8315
8316         * doc/gimple.texi (GIMPLE_DEBUG): Document.
8317         * doc/rtl.texi (Debug Information): New node.
8318         (NOTE_INSN_VAR_LOCATION): Document.
8319         (debug_insn): Likewise.
8320         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
8321
8322 2010-07-07  Jan Hubicka  <jh@suse.cz>
8323
8324         With parts by Richard Guenther.
8325
8326         PR middle-end/44813
8327         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
8328         for functions passed by reference.
8329         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
8330         in memory when passed by reference.
8331         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
8332         beggining.
8333         * ipa-split.c (split_function): Cleanup way return value is passed;
8334         handle SSA DECL_BY_REFERENCE retvals.
8335         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
8336         DECL_BY_REFERENCE is set.
8337         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
8338         find_what_p_points_to): Handle RESULT_DECL.
8339         * tree-inline.c (declare_return_variable): Get new entry_block argument;
8340         when passing by reference ensure that RESULT_DECL is gimple_val.
8341         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
8342         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
8343
8344 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8345
8346         PR rtl-optimization/44787
8347         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
8348         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
8349
8350 2010-07-06  Jan Hubicka  <jh@suse.cz>
8351
8352         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
8353         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
8354         with body can prevail.
8355         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
8356         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
8357         * cgraph.c (cgraph_get_node_or_alias): New function.
8358         * cgraph.h (cgraph_get_node_or_alias): Declare.
8359
8360 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
8361
8362         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
8363         support.
8364         (ix86_expand_prologue): Likewise.
8365         (ix86_handle_fndecl_attribute): Likewise.
8366         (ix86_asm_declare_function_name): New function for
8367         ASM_DECLARE_FUNCTION_NAME.
8368         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
8369         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
8370         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
8371         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
8372         * doc/extend.texi: Adjust documentation about ms_hook_prologue
8373         attribute.
8374
8375 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8376
8377         * config/i386/i386.md (immediate_operand): New mode attribute.
8378
8379         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
8380         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
8381         using P mode iterator.
8382         (pro_epilogue_adjust_stack_di_2): Rename from
8383         pro_epilogue_adjust_stack_rex64_2.
8384
8385         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
8386
8387 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8388
8389         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
8390         through gen_mov_insv_1 function pointer.
8391         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
8392         gen_truncxf<mode>2 through gen_truncxf function pointer.
8393         (remainder<mode>3): Ditto.
8394         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
8395         (allocate_stack): Call gen_allocate_stack_worker_64 or
8396         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
8397         function pointer.
8398         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
8399         function pointer.
8400
8401 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8402
8403         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
8404         operand constraint instead of <r><i>m.
8405
8406 2010-07-06  Richard Guenther  <rguenther@suse.de>
8407
8408         PR middle-end/44828
8409         * convert.c (convert_to_integer): Watch out for overflowing
8410         MULT_EXPR as well.
8411
8412 2010-07-05  Jan Hubicka  <jh@suse.cz>
8413
8414         * lto-streamer.c (write_symbol_vec): Rename to ...
8415         (write_symbol) ... this one; write only symbol given and when
8416         present in cache. Sanity check that what is defined is present
8417         in cgraph/varpool with body/finalized decl.
8418         (write_symbols_of_kind): Remove.
8419         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
8420         pairs to produce symtab.
8421         (produce_asm_for_decls): Update call of produce_symtab; don't do so
8422         when doing WPA streaming.
8423
8424 2010-07-05  Jan Hubicka  <jh@suse.cz>
8425
8426         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
8427         function is still available to fold into.
8428
8429 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8430
8431         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
8432         * function.h (struct_function): Change type of local_decls field
8433         to a VEC.
8434         (add_local_decl): New function.
8435         (FOR_EACH_LOCAL_DECL): New macro.
8436         * cfgexpand.c (init_vars_expansion): Adjust for new type of
8437         cfun->local_decls.
8438         (estimated_stack_frame_size): Likewise.
8439         (expand_used_vars): Likewise.
8440         * cgraphbuild.c (build_cgraph_edges): Likewise.
8441         * function.c (instantiate_decls_1): Likewise.
8442         * ipa-struct-reorg.c (build_data_structure): Likewise.
8443         * ipa-type-escape.c (analyze_function): Likewise.
8444         * lto-streamer-in.c (input_function): Likewise.
8445         * lto-streamer-out.c (output_function): Likewise.
8446         * tree-ssa-live.c (remove_unused_locals): Likewise.
8447         * tree.c (free_lang_data_in_decl): Likewise.
8448         (find_decls_types_in_node): Likewise.
8449         * omp-low.c (remove_exit_barrier): Likewise.
8450         (expand_omp_taskreg): Likewise.
8451         (list2chain): Rename to...
8452         (vec2chain): ...this.  Adjust.
8453         * cgraphunit.c (assemble_thunk): Call add_local_decl.
8454         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
8455         * gimple-low.c (record_vars_into): Likewise.
8456         * tree-inline.c (remap_decls): Likewise.
8457         (declare_return_variable): Likewise.
8458         (declare_inline_vars): Likewise.
8459         (copy_forbidden): Adjust for new type of cfun->local_decls.
8460         (add_local_variables): New function.
8461         (expand_call_inline): Call it.
8462         (tree_function_versioning): Likewise.
8463
8464 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8465
8466         AVX Programming Reference (June, 2010)
8467         * config/i386/cpuid.h (bit_F16C): New.
8468         (bit_RDRND): Likewise.
8469         (bit_FSGSBASE): Likewise.
8470
8471         * config/i386/i386-builtin-types.def: Add
8472         "DEF_FUNCTION_TYPE (UINT16)", function types for
8473         float16 <-> float conversions and
8474         "DEF_FUNCTION_TYPE (VOID, UINT64)".
8475
8476         * config/i386/i386-c.c (ix86_target_macros_internal): Support
8477         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
8478         OPTION_MASK_ISA_F16C.
8479
8480         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
8481         (OPTION_MASK_ISA_RDRND_SET): Likewise.
8482         (OPTION_MASK_ISA_F16C_SET): Likewise.
8483         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
8484         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
8485         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
8486         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
8487         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
8488         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
8489         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
8490         (override_options): Handle them.
8491         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
8492         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
8493         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
8494         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
8495         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
8496         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
8497         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
8498         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
8499         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
8500         (bdesc_args): Likewise.
8501         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
8502         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
8503         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
8504         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
8505         Handle non-memory store.
8506
8507         * config/i386/i386.h (TARGET_FSGSBASE): New.
8508         (TARGET_RDRND): Likewise.
8509         (TARGET_F12C): Likewise.
8510
8511         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
8512         (UNSPEC_VCVTPS2PH): Likewise.
8513         (UNSPECV_RDFSBASE): Likewise.
8514         (UNSPECV_RDGSBASE): Likewise.
8515         (UNSPECV_WRFSBASE): Likewise.
8516         (UNSPECV_WRGSBASE): Likewise.
8517         (UNSPECV_RDRAND): Likewise.
8518         (rdfsbase<mode>): Likewise.
8519         (rdgsbase<mode>): Likewise.
8520         (wrfsbase<mode>): Likewise.
8521         (wrgsbase<mode>): Likewise.
8522         (rdrand<mode>): Likewise.
8523
8524         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
8525
8526         * config/i386/immintrin.h (_rdrand_u16): New.
8527         (_rdrand_u32): Likewise.
8528         (_readfsbase_u32): Likewise.
8529         (_readfsbase_u64): Likewise.
8530         (_readgsbase_u32): Likewise.
8531         (_readgsbase_u64): Likewise.
8532         (_writefsbase_u32): Likewise.
8533         (_writefsbase_u64): Likewise.
8534         (_writegsbase_u32): Likewise.
8535         (_writegsbase_u64): Likewise.
8536         (_rdrand_u64): Likewise.
8537         (_cvtsh_ss): Likewise.
8538         (_mm_cvtph_ps): Likewise.
8539         (_mm256_cvtph_ps): Likewise.
8540         (_cvtss_sh): Likewise.
8541         (_mm_cvtps_ph): Likewise.
8542         (_mm256_cvtps_ph): Likewise.
8543
8544         * config/i386/sse.md (vcvtph2ps): New.
8545         (*vcvtph2ps_load): Likewise.
8546         (vcvtph2ps256): Likewise.
8547         (vcvtps2ph): Likewise.
8548         (*vcvtps2ph): Likewise.
8549         (*vcvtps2ph_store): Likewise.
8550         (vcvtps2ph256): Likewise.
8551
8552         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
8553
8554         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
8555
8556 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
8557
8558         PR bootstrap/44512
8559         * genenums.c (main): Output include of insn-constants.h
8560         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
8561
8562 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
8563
8564         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
8565         (override_options): Initialize it.
8566         (ix86_expand_prologue): Use it.
8567
8568 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
8569
8570         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
8571
8572 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
8573
8574         * double-int.h (fit_double_type): Remove declaration.
8575         * double-int.c (fit_double_type): Remove function.
8576         * tree.h (int_fits_type_p): Adjust prototype.
8577         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
8578         instead of fit_double_type.
8579         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
8580         instead of fit_double_type and build_int_cst_wide.
8581         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
8582         instead of fit_double_type and build_int_cst_wide.
8583         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
8584         of fit_double_type.
8585
8586 2010-07-05  Jan Hubicka  <jh@suse.cz>
8587
8588         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
8589         in_other_partition.
8590         * lto-cgraph.c (referenced_from_other_partition_p,
8591         reachable_from_other_partition_p): Use in_other_partition flags.
8592         (output_node, output_varpool_node): COMDAT nodes always have private
8593         copies and thus are never used from other partition.
8594
8595 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
8596
8597         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
8598         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
8599         * config/ia64/ia64.c Include reload.h.
8600         (ia64_memory_move_cost): New function.
8601         (TARGET_MEMORY_MOVE_COST): Define.
8602         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
8603         memory_move_cost.
8604
8605 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
8606
8607         PR middle-end/42505
8608         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
8609         comments about cost model.
8610         (try_add_cand_for):  Add second strategy for choosing initial set
8611         based on original IVs, controlled by ORIGINALP argument.
8612         (get_initial_solution): Add ORIGINALP argument.
8613         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
8614         (find_optimal_iv_set): Try two different strategies for choosing
8615         the IV set, and return the one with lower cost.
8616
8617 2010-07-05  Richard Guenther  <rguenther@suse.de>
8618
8619         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
8620
8621 2010-07-05  Richard Guenther  <rguenther@suse.de>
8622
8623         * tree.c (reference_alias_ptr_type): New function.
8624         * tree.h (reference_alias_ptr_type): Declare.
8625         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
8626         allow non-TARGET_MEM_REF new refs.
8627         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
8628         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
8629         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
8630         (create_mem_ref): Get alias pointer type.  Adjust calls to
8631         create_mem_ref_raw.
8632         (maybe_fold_tmr): Likewise.
8633         * tree-flow.h (create_mem_ref): Adjust prototype.
8634
8635 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
8636
8637         PR c++/44808
8638         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
8639         *from_p is VAR_DECL.
8640
8641 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8642
8643         * tree.h (build_call_list): Remove.
8644         * tree.c (build_call_list): Remove.
8645
8646 2010-07-05  Richard Guenther  <rguenther@suse.de>
8647
8648         * double-int.h (double_int_sub): Declare.
8649         * double-int.c (double_int_sub): New function.
8650         * dwarf2out.c (field_byte_offset): Use it.
8651         * fixed-value.c (do_fixed_add): Likewise.
8652         (do_fixed_multiply): Likewise.
8653         (do_fixed_divide): Likewise.
8654         * tree-predcom.c (add_ref_to_chain): Likewise.
8655         (determine_roots_comp): Likewise.
8656         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
8657
8658 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8659
8660         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
8661         implementations.
8662
8663 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
8664
8665         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
8666         * arm-modes.def (CC_NOTB): Don't define.
8667         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
8668         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
8669         (LTUGEU): New code_iterator.
8670         (cnb, optab): New corresponding code_attrs.
8671         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
8672         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
8673         using LTUGEU.
8674         (addsi3_carryin_shift_<optab>): Likewise.
8675         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
8676         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
8677         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
8678         (subsi3_compare): Renamed from subsi3_compare0_c.
8679         Change CC_NOTB to CC.
8680         (arm_subsi3_insn): Allow constants for operand 0.
8681         (compare_scc peephole for eq case): New.
8682         (compare_scc splitters): Change CC_NOTB to CC.
8683
8684 2010-07-05  Richard Guenther  <rguenther@suse.de>
8685
8686         * tree-ssa-loop-im.c (for_each_index): Do not handle
8687         ALIGN_INDIRECT_REF.
8688         (gen_lsm_tmp_name): Likewise.
8689         * tree-dump.c (dequeue_and_dump): Likewise.
8690         * tree-pretty-print.c (dump_generic_node): Likewise.
8691         (op_code_prio): Likewise.
8692         (op_symbol_code): Likewise.
8693         * tree.c (staticp): Likewise.
8694         (build1_stat): Likewise.
8695         * tree.h (INDIRECT_REF_P): Likewise.
8696         * fold-const.c (maybe_lvalue_p): Likewise.
8697         (operand_equal_p): Likewise.
8698         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8699         (ao_ref_init_from_vn_reference): Likewise.
8700         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
8701         (find_interesting_uses_address): Likewise.
8702         * dwarf2out.c (loc_list_from_tree): Likewise.
8703         * gimplify.c (gimplify_expr): Likewise.
8704         * tree-eh.c (tree_could_trap_p): Likewise.
8705         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8706         * cfgexpand.c (expand_debug_expr): Likewise.
8707         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8708         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
8709         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
8710         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
8711         * tree-ssa-operands.c (get_expr_operands): Likewise.
8712         * expr.c (safe_from_p): Likewise.
8713         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
8714         * tree-vect-data-refs.c (vect_setup_realignment): Build
8715         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
8716         * tree-vect-stmts.c (vectorizable_load): Likewise.
8717         * tree.def (ALIGN_INDIRECT_REF): Remove.
8718
8719 2010-07-05  Richard Guenther  <rguenther@suse.de>
8720
8721         PR tree-optimization/44784
8722         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
8723         for inserted stmts.
8724         (find_or_generate_expression): Fix SCCVN insertion check.
8725
8726 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
8727
8728         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
8729         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8730         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
8731         directives.
8732
8733 2010-07-05  Ira Rosen  <irar@il.ibm.com>
8734
8735         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
8736         statements that are not vectorized.
8737         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
8738         in INSIDE_COST.
8739
8740 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
8741
8742         PR bootstrap/44820
8743         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
8744
8745 2010-07-05  Richard Guenther  <rguenther@suse.de>
8746
8747         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
8748         RESULT_DECLs properly.
8749
8750 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
8751
8752         PR rtl-optimization/44695
8753         * config/i386/i386.md (extract_code): Removed.
8754         (<u>divmodqi4): Likewise.
8755         (divmodqi4): New.
8756         (udivmodqi4): Likewise.
8757         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
8758         (udivmodhiqi3): Likewise.
8759
8760 2010-07-04  Jan Hubicka  <jh@suse.cz>
8761
8762         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
8763
8764 2010-07-04  Jan Hubicka  <jh@suse.cz>
8765
8766         * cgraphunit.c (init_cgraph): Only initialize dump file if it
8767         is not already initialized.
8768
8769 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8770
8771         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
8772         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
8773         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
8774         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
8775         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
8776         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
8777         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
8778         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
8779         (sync_new_nand_optab): Redefine as macros.
8780         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
8781         Delete.
8782         (direct_optab_index): New enum.
8783         (direct_optab_d): New structure.
8784         (direct_optab): New typedef.
8785         (direct_optab_table): Declare.
8786         (direct_optab_handler, set_direct_optab_handler): New functions.
8787         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
8788         (sync_lock_release_optab): New macros.
8789         * optabs.c (direct_optab_table): New variable.
8790         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
8791         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
8792         cmpstr_optab and cmpstrn_optab.
8793         (emit_conditional_move): Likewise for movcc_optab.
8794         (can_conditionally_move_p): Likewise for movcc_gen_code.
8795         (init_insn_codes): Clear direct_optab_table.
8796         (init_optabs): Don't initialize the new "direct optabs" here.
8797         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
8798         vcond_gen_code.
8799         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
8800         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
8801         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
8802         (expand_sync_operation): Likewise other sync_*_optabs.
8803         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
8804         to sync_compare_and_swap_optab.
8805         (expand_sync_lock_test_and_set): Use direct_optab_handler for
8806         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
8807         to the names of both.
8808         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
8809         cmpstr_optab and cmpstrn_optab.
8810         (expand_builtin_lock_release): Likewise sync_lock_release.
8811         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
8812         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
8813         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
8814         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
8815         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
8816         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
8817         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
8818         (sync_lock_test_and_set, sync_lock_release): Delete.
8819         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
8820         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
8821         * genopinit.c (optabs): Use set_direct_optab_handler for the new
8822         macro optabs.
8823         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
8824         the "optab" local variable.  Use direct_optab_handler for optab and
8825         sync_compare_and_swap_optab.
8826         * reload1.c (reload_in_optab, reload_out_optab): Delete.
8827         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
8828         reload_in_optab and reload_out_optab.
8829         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
8830         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
8831         * config/pa/pa.c (pa_secondary_reload): Likewise.
8832         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
8833         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
8834         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
8835         (VMSupportsCS8_builtin): Likewise.
8836
8837 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8838
8839         * optabs.h (optab_handlers): Change type of insn_code to int.
8840         (optab_handler, set_optab_handler, convert_optab_handler)
8841         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
8842         CODE_FOR_nothing".
8843         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
8844         (init_insn_codes): Zero both the above arrays.
8845         (init_optabs): Never call init_insn_codes first time around.
8846
8847 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8848
8849         * optabs.h (optab_handler, convert_optab_handler): Turn into
8850         inline functions that return an insn code.
8851         (set_optab_handler, set_convert_optab_handler): New functions.
8852         * builtins.c: Replace optab_handler(X)->insn_code with
8853         optab_handler or set_optab_handler thoughout.  Likewise
8854         convert_optab_handler(X)->insn_code with convert_optab_handler
8855         and set_convert_optab_handler.
8856         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
8857         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
8858         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
8859         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
8860         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
8861         config/spu/spu.c: Likewise.
8862
8863 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8864
8865         PR target/44531
8866         * config.gcc (sh*-*-*): Use regular expressions instead of
8867         the 'i' modifier for sed substitutions.
8868
8869 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8870
8871         * gimple.c (gimple_body): Comments added.
8872
8873 2010-07-04  Richard Guenther  <rguenther@suse.de>
8874
8875         PR middle-end/44809
8876         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
8877         of an INDIRECT_REF.
8878
8879 2010-07-04  Richard Guenther  <rguenther@suse.de>
8880
8881         PR tree-optimization/44479
8882         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
8883         extra SSA name copy statements which preserves points-to
8884         information.
8885         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8886         Copy points-to information for all pointers.  Properly handle
8887         MEM_REFs.
8888         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
8889         copy statements.
8890         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
8891         dependency.
8892
8893 2010-07-04  Richard Guenther  <rguenther@suse.de>
8894
8895         PR middle-end/44785
8896         * tree-inline.c (initialize_inlined_parameters): Do not
8897         re-use pointer-map slot over remap_type call.
8898
8899 2010-07-04  Richard Guenther  <rguenther@suse.de>
8900
8901         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
8902
8903 2010-07-04  Richard Guenther  <rguenther@suse.de>
8904
8905         PR tree-optimization/44656
8906         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
8907         again after value-replacing in the defintions lhs.
8908
8909 2010-07-04  Ira Rosen  <irar@il.ibm.com>
8910             Revital Eres  <eres@il.ibm.com>
8911
8912         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
8913         Document new arguments.
8914         * doc/tm.texi: Regenerate.
8915         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
8916         Handle unaligned store.
8917         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
8918         * target.def (builtin_vectorization_cost): Add new arguments.
8919         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
8920         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
8921         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
8922         (vect_vfa_segment_size): Fix indentation.
8923         * tree-vectorizer.h (struct _vect_peel_info): New.
8924         (struct _vect_peel_extended_info): New.
8925         (struct _loop_vec_info): Add new field for peeling hash table and a
8926         macro for its access.
8927         (VECT_MAX_COST): Define.
8928         (vect_get_load_cost): Declare.
8929         (vect_get_store_cost, vect_get_known_peeling_cost,
8930         vect_get_single_scalar_iteraion_cost): Likewise.
8931         (vect_supportable_dr_alignment): Add new argument.
8932         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
8933         field.
8934         (destroy_loop_vec_info): Free peeling hash table.
8935         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
8936         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
8937         vect_analyze_slp. Fix indentation.
8938         (vect_get_single_scalar_iteraion_cost): New function.
8939         (vect_get_known_peeling_cost): Likewise.
8940         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
8941         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
8942         statement. Move outside cost calculation inside unknown peeling case.
8943         Call vect_get_known_peeling_cost for known amount of peeling.
8944         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
8945         reference to the print message of forced alignment.
8946         (vect_verify_datarefs_alignment): Update call to
8947         vect_supportable_dr_alignment.
8948         (vect_get_data_access_cost): New function.
8949         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
8950         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
8951         vect_peeling_hash_choose_best_peeling): Likewise.
8952         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
8953         to store all the accesses in the loop and find best possible access to
8954         align using peeling for known alignment case. For unknown alignment
8955         check if stores are preferred or if peeling is worthy.
8956         (vect_find_same_alignment_drs): Analyze pairs of loads too.
8957         (vect_supportable_dr_alignment): Add new argument and check aligned
8958         accesses according to it.
8959         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
8960         (cost_for_stmt): Call vect_get_stmt_cost.
8961         (vect_model_simple_cost): Likewise.
8962         (vect_model_store_cost): Call vect_get_stmt_cost. Call
8963         vect_get_store_cost to calculate the cost of the statement.
8964         (vect_get_store_cost): New function.
8965         (vect_model_load_cost): Call vect_get_stmt_cost. Call
8966         vect_get_load_cost to calculate the cost of the statement.
8967         (vect_get_load_cost): New function.
8968         (vectorizable_store): Update call to vect_supportable_dr_alignment.
8969         (vectorizable_load): Likewise.
8970         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
8971         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
8972         arguments. Handle unaligned store.
8973         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
8974         (rs6000_builtin_support_vector_misalignment): Return true for word and
8975         double word alignments for VSX.
8976         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
8977         vect_supportable_dr_alignment and builtin_vectorization_cost.
8978
8979 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8980
8981         PR target/44597
8982         * config/pa/predicates.md (prefetch_cc_operand): Remove.
8983         (prefetch_nocc_operand): Likewise.
8984         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
8985         (prefetch_20): New insn.
8986         (prefetch_cc): Remove.
8987         (prefetch_nocc): Likewise.
8988
8989 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8990
8991         * expr.c (vector_mode_valid_p): Move to c-common.c.
8992         * expr.h (vector_mode_valid_p): Do not declare here.
8993         * system.h: Poison GCC_EXPR_H in front-ends.
8994         * Makefile.in: Update dependencies.
8995
8996 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8997
8998         PR target/44705
8999         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
9000
9001 2010-07-03  Jan Hubicka  <jh@suse.cz>
9002
9003         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
9004         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
9005         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
9006         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
9007         Likewise.
9008
9009         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
9010         Update timevars.V
9011         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
9012         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
9013         TV_IPA_LTO_DECL_OUT): New.
9014         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
9015
9016 2010-07-03  Jan Hubicka  <jh@suse.cz>
9017
9018         * ipa-inline.c (update_edge_key): Break out from ...
9019         update_callers_keys): ... here;
9020         (update_callee_keys): Update only the edges from caller to callee.
9021         (update_all_calle_keys): Do what update_calle_keys did.
9022         (decide_inlining_of_small_functions): Avoid recomputing of all
9023         callees when badness increase.
9024
9025 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9026
9027         * config/arm/arm.c (arm_attr_length_move_neon): New.
9028         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
9029         * config/arm/neon.md (define_mode_attr V_slen): Remove.
9030         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
9031         to compute length attribute.
9032
9033 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9034
9035         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
9036         as predicate for operand 1 and remove its constraint.
9037         * config/arm/predicates.md (vfp_register_operand): New.
9038         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
9039         (*push_fp_multi): Likewise.
9040
9041 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
9042
9043         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
9044
9045 2010-07-03  Jan Hubicka  <jh@suse.cz>
9046
9047         * config/i386/i386.c (override_options): Revert accidental commit.
9048
9049 2010-07-02  Le-Chun Wu  <lcwu@google.com>
9050
9051         PR c++/44128
9052         * doc/invoke.texi: Update documentation of -Wshadow.
9053
9054 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
9055             Julian Brown  <julian@codesourcery.com>
9056             Sandra Loosemore <sandra@codesourcery.com>
9057
9058         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
9059         comparisons.  Adjust to take both operands.
9060         (arm_select_cc_mode): Handle DImode comparisons.
9061         (arm_gen_compare_reg): Generate a scratch register for DImode
9062         comparisons which require one.  Use xor for Thumb equality checks.
9063         (arm_const_double_by_immediates): New.
9064         (arm_print_operand): Allow 'Q' and 'R' for constants.
9065         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
9066         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
9067         arm_canonicalize_comparison.
9068         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
9069         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9070         prototype.
9071         (arm_const_double_by_immediates): Declare.
9072         * config/arm/constraints.md (Di): New constraint.
9073         * config/arm/predicates.md (arm_immediate_di_operand)
9074         (arm_di_operand, cmpdi_operand): New.
9075         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
9076         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
9077         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
9078         (cstoredi4): Handle non-Cirrus also.
9079
9080 2010-07-02  Julian Brown  <julian@codesourcery.com>
9081             Sandra Loosemore <sandra@codesourcery.com>
9082
9083         PR target/43703
9084         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
9085         (smax<mode>3): Disable for NEON float modes when
9086         flag_unsafe_math_optimizations is false.
9087         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
9088         (*mul<mode>3_neon)
9089         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
9090         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
9091         for NEON float modes when flag_unsafe_math_optimizations is false.
9092         (quad_halves_<code>v4sf): Only enable if
9093         flag_unsafe_math_optimizations is true.
9094         * doc/invoke.texi (ARM Options): Add note about floating point
9095         vectorization requiring -funsafe-math-optimizations.
9096
9097 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9098             Julian Brown  <julian@codesourcery.com>
9099
9100         * config/arm/neon.md (UNSPEC_VABA): Delete.
9101         (UNSPEC_VABAL): Delete.
9102         (UNSPEC_VABS): Delete.
9103         (UNSPEC_VMUL_N): Delete.
9104         (adddi3_neon): New.
9105         (subdi3_neon): New.
9106         (mul<mode>3add<mode>_neon): Make the pattern named.
9107         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
9108         (neon_vadd<mode>): Replace with define_expand, and move the remaining
9109         unspec parts...
9110         (neon_vadd<mode>_unspec): ...to this.
9111         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
9112         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
9113         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
9114         (neon_vaba<mode>): Rewrite in terms of vabd.
9115         (neon_vabal<mode>): Rewrite in terms of vabdl.
9116         (neon_vabs<mode>): Rewrite without unspec.
9117         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
9118         (*arm_subdi3): Likewise.
9119         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
9120         No_op attribute to disable assembly output checks.
9121         * config/arm/arm_neon.h: Regenerated.
9122         * doc/arm-neon-intrinsics.texi: Regenerated.
9123
9124 2010-07-02  Jan Hubicka  <jh@suse.cz>
9125
9126         * ipa-split.c (split_function): For aggregate values, set the return
9127         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
9128         *<retval> = fncall.part ().
9129         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
9130
9131 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9132
9133         * config/arm/neon.md (UNSPEC_VAND): Delete.
9134         (UNSPEC_VBIC): Delete.
9135         (UNSPEC_VCLZ): Delete.
9136         (UNSPEC_VCNT): Delete.
9137         (UNSPEC_VEOR): Delete.
9138         (UNSPEC_VORN): Delete.
9139         (UNSPEC_VORR): Delete.
9140         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
9141         core registers too.
9142         (anddi3_neon): Likewise.
9143         (orndi3_neon): Likewise.
9144         (bicdi3_neon): Likewise.
9145         (xordi3_neon): Likewise.
9146         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
9147         rid of unspec and handle unused operand.
9148         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
9149         * config/arm/predicates.md (imm_for_neon_logic_operand):
9150         Require TARGET_NEON.
9151         (imm_for_neon_inv_logic_operand): Likewise.
9152         * config/arm/arm.md (define_split for logical_binary_operator):
9153         Disable for NEON registers.
9154         (anddi3): Add new define_expand, and rename the insn.  Disable
9155         this insn for NEON, where anddi3_neon now applies.
9156         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
9157         (iordi3): As for anddi3.
9158         (xordi3): Likewise.
9159         * config/arm/neon.ml (Vand): Split DImode variants and mark them
9160         as No_op to disable testing for exact instruction match.
9161         (Vorr): Likewise.
9162         (Veor): Likewise.
9163         (Vbic): Likewise.
9164         (Vorn): Likewise.
9165         * config/arm/arm_neon.h: Regenerated.
9166         * doc/arm-neon-intrinsics.texi: Regenerated.
9167
9168 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9169
9170         * expr.h (emit_stack_probe): Declare.
9171         * explow.c (emit_stack_probe): Make global.
9172         (anti_adjust_stack_and_probe): Fix comments.
9173         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9174         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9175         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9176         * config/sparc/sparc.c: Include except.h.
9177         (sparc_emit_probe_stack_range): New function.
9178         (output_probe_stack_range): Likewise.
9179         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
9180         built-in stack checking is enabled.
9181         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
9182         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9183         (probe_stack_range): New insn.
9184
9185 2010-07-02  Richard Guenther  <rguenther@suse.de>
9186
9187         PR target/43958
9188         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
9189         for argument alignment.
9190
9191 2010-07-02  Jan Hubicka  <jh@suse.cz>
9192
9193         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
9194         walk backwards from entry_bb to check only those basic block of header
9195         that might lead to execution of split part.
9196         (consider_split) ... here.
9197         (find_return_bb): Allow assignment in return BB.
9198         (find_retval): New.
9199         (split_function): Fix name of cloned function; take care of updating
9200         return value in return_bb containing move.
9201
9202 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
9203
9204         PR target/44771
9205         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
9206         used variable insn.
9207
9208 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9209
9210         * implicit-zee.c (combine_reaching_defs): Fix long lines.
9211         (is_set_with_extension_DI): Delete.
9212         (struct zero_extend_info): New structure.
9213         (add_removable_zero_extend): New function.
9214         (find_removable_zero_extends): Use note_stores to find SETs.
9215         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
9216
9217 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9218
9219         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
9220         is_miss_rate_acceptable. Pull total_positions computation
9221         out of the loops.  Early return if miss_positions exceeds
9222         the acceptable threshold.
9223         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
9224         is_miss_rate_acceptable after renaming of compute_miss_rate.
9225
9226 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9227
9228         PR middle-end/44576
9229         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
9230         of 1000) for miss rate if the address diference is greater than or
9231         equal to the cache line size (the two reference will never hit the
9232         same cache line).
9233
9234 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
9235
9236         PR target/42835
9237         * config/arm/arm-modes.def (CC_NOTB): New mode.
9238         * config/arm/arm.c (get_arm_condition_code): Handle it.
9239         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
9240         * config/arm/arm.md (subsi3_compare0_c): New pattern.
9241         (compare_scc): Now a define_and_split.  Add a number of extra
9242         splitters before it.
9243
9244         PR target/42172
9245         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
9246         and ZERO_EXTEND.
9247         (arm_rtx_costs_1): Likewise.
9248         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
9249         * config/arm/arm.md (is_arch6): New attribute.
9250         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
9251         extendqisi2): Tighten the code somewhat, avoiding invalid
9252         RTL to occur in the expander patterns.
9253         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
9254         (thumb1_zero_extendhisi2_v6): Delete.
9255         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
9256         (thumb1_extendhisi2_v6): Delete.
9257         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
9258         (thumb1_extendqisi2_v6): Delete.
9259         (zero_extendhisi2 for register input splitter): New.
9260         (zero_extendqisi2 for register input splitter): New.
9261         (thumb1_extendhisi2 for register input splitter): New.
9262         (extendhisi2 for register input splitter): New.
9263         (extendqisi2 for register input splitter): New.
9264         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
9265         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
9266         and add support for a register alternative requiring a split.
9267         (thumb1_zero_extendqisi2): Likewise.
9268         (arm_zero_extendqisi2): Likewise.
9269         (arm_extendhisi2): Likewise.
9270         (arm_extendqisi2): Likewise.
9271
9272 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9273
9274         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
9275         instead of an unspec.
9276         (neon_expand_vector_init): Likewise.
9277         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
9278         (UNSPEC_VDUP_LANE): Delete.
9279         (UNSPEC VDUP_N): Delete.
9280         (UNSPEC_VGET_HIGH): Delete.
9281         (UNSPEC_VGET_LANE): Delete.
9282         (UNSPEC_VGET_LOW): Delete.
9283         (UNSPEC_VMVN): Delete.
9284         (UNSPEC_VSET_LANE): Delete.
9285         (V_double_vector_mode): New.
9286         (vec_set<mode>_internal): Make code emitted match that for the
9287         corresponding intrinsics.
9288         (vec_setv2di_internal): Likewise.
9289         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
9290         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
9291         (neon_vset_lane<mode>): Combine double and quad patterns and
9292         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
9293         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
9294         (neon_vdup_n<mode>): Rewrite RTL without unspec.
9295         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
9296         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
9297         with neon_vdup_lanev2di, adjusting the pattern from the latter
9298         to be predicable for consistency.
9299         (neon_vdup_lane<mode>_internal): New.
9300         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
9301         to avoid using an unspec.
9302         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
9303         (neon_vdup_lanev2di): Turn into a define_expand.
9304         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
9305         (neon_vget_high<mode>): Replace with....
9306         (neon_vget_highv16qi): New pattern using canonical RTL.
9307         (neon_vget_highv8hi): Likewise.
9308         (neon_vget_highv4si): Likewise.
9309         (neon_vget_highv4sf): Likewise.
9310         (neon_vget_highv2di): Likewise.
9311         (neon_vget_low<mode>): Replace with....
9312         (neon_vget_lowv16qi): New pattern using canonical RTL.
9313         (neon_vget_lowv8hi): Likewise.
9314         (neon_vget_lowv4si): Likewise.
9315         (neon_vget_lowv4sf): Likewise.
9316         (neon_vget_lowv2di): Likewise.
9317
9318         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
9319         test for this emitting vmov.
9320         (Vset_lane): Likewise.
9321         (Vdup_n): Likewise.
9322         (Vmov_n): Likewise.
9323
9324         * doc/arm-neon-intrinsics.texi: Regenerated.
9325
9326 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9327
9328         * config/arm/neon.md (vec_extractv2di): Correct error in register
9329         numbering to reconcile with neon_vget_lanev2di.
9330
9331 2010-07-02  Richard Guenther  <rguenther@suse.de>
9332
9333         * tree-ssa-structalias.c (pt_solution_set_var): New function.
9334         * tree-ssa-alias.h (pt_solution_set_var): Declare.
9335         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
9336         points-to information.
9337
9338 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
9339
9340         * config/s390/s390.c (override_options): Adopt prefetching
9341         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
9342
9343 2010-07-02  Jan Hubicka  <jh@suse.cz>
9344
9345         * df-problems.c (df_kill_notes): Do not collect dead  notes.
9346         (df_set_note): Just call add_reg_note.
9347         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
9348         df_create_unused_note): Do not deal with lists of old notes.
9349         (df_note_bb_compute): Likewise.
9350
9351 2010-07-02  Richard Guenther  <rguenther@suse.de>
9352
9353         * tree-ssa-structalias.c (find_func_aliases): Handle
9354         pointer alignment via BIT_AND_EXPR.
9355         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
9356
9357 2010-07-02  Richard Guenther  <rguenther@suse.de>
9358
9359         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9360         mismatching number of dimensions properly.
9361
9362 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9363
9364         PR target/44707
9365         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
9366         (lo_sum (high ...) ...) patterns generated by earlier passes.
9367
9368 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9369
9370         * doc/install.texi (Prerequisites): Document Perl requirement on
9371         Solaris 2.
9372         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
9373
9374 2010-07-02  Richard Guenther  <rguenther@suse.de>
9375
9376         PR middle-end/44777
9377         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
9378
9379 2010-07-02  Jan Hubicka  <jh@suse.cz>
9380
9381         PR middle-end/44706
9382         * predict.c (predict_paths_for_bb): Handle case when control dependence
9383         BB has only abnormal edges.
9384
9385 2010-07-02  Richard Guenther  <rguenther@suse.de>
9386
9387         PR tree-optimization/44748
9388         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
9389         the embedded conversion in MEM_REFs.
9390
9391 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
9392
9393         * reload.c: Include toplev.h.
9394         * recog.c:  Likewise.
9395         * Makefile.in: Adjust dependencies.
9396
9397 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
9398
9399         PR debug/44694
9400         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
9401         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
9402
9403 2010-07-01  Richard Guenther  <rguenther@suse.de>
9404
9405         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
9406         types for offsets.
9407
9408 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
9409
9410         PR target/44732
9411         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
9412         Fix argument types.
9413
9414 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
9415
9416         PR target/44727
9417         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9418         Make sure operand 0 dies.
9419
9420 2010-07-01  Richard Guenther  <rguenther@suse.de>
9421
9422         PR middle-end/42834
9423         PR middle-end/44468
9424         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
9425         * doc/generic.texi (References to storage): Document MEM_REF.
9426         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
9427         (print_call_name): Likewise.
9428         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
9429         (build_simple_mem_ref_loc): New function.
9430         (mem_ref_offset): Likewise.
9431         * tree.h (build_simple_mem_ref_loc): Declare.
9432         (build_simple_mem_ref): Define.
9433         (mem_ref_offset): Declare.
9434         * fold-const.c: Include tree-flow.h.
9435         (operand_equal_p): Handle MEM_REF.
9436         (build_fold_addr_expr_with_type_loc): Likewise.
9437         (fold_comparison): Likewise.
9438         (fold_unary_loc): Fold
9439         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
9440         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
9441         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
9442         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
9443         (ptr_deref_may_alias_ref_p_1): Likewise.
9444         (ao_ref_base_alias_set): Properly differentiate base object for
9445         offset and TBAA.
9446         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
9447         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
9448         (indirect_refs_may_alias_p): Likewise.
9449         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
9450         chasing code.
9451         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
9452         (call_may_clobber_ref_p_1): Likewise.
9453         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
9454         * expr.c (expand_assignment): Handle MEM_REF.
9455         (store_expr): Handle MEM_REFs from STRING_CSTs.
9456         (store_field): If expanding a MEM_REF of a non-addressable
9457         decl use bitfield operations.
9458         (get_inner_reference): Handle MEM_REF.
9459         (expand_expr_addr_expr_1): Likewise.
9460         (expand_expr_real_1): Likewise.
9461         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
9462         * alias.c (ao_ref_from_mem): Handle MEM_REF.
9463         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
9464         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
9465         (dr_analyze_indices): Likewise.
9466         (dr_analyze_alias): Likewise.
9467         (object_address_invariant_in_loop_p): Likewise.
9468         * gimplify.c (mark_addressable): Handle MEM_REF.
9469         (gimplify_cond_expr): Build MEM_REFs.
9470         (gimplify_modify_expr_to_memcpy): Likewise.
9471         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
9472         (gimple_fold_indirect_ref): Adjust.
9473         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
9474         * tree.def (MEM_REF): New tree code.
9475         * tree-dfa.c: Include toplev.h.
9476         (get_ref_base_and_extent): Handle MEM_REF.
9477         (get_addr_base_and_unit_offset): New function.
9478         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
9479         * gimple-fold.c (may_propagate_address_into_dereference): Handle
9480         MEM_REF.
9481         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
9482         accesses if the array has just one dimension.  Remove always true
9483         parameter.  Do not require type compatibility here.
9484         (maybe_fold_offset_to_component_ref): Remove.
9485         (maybe_fold_stmt_indirect): Remove.
9486         (maybe_fold_reference): Remove INDIRECT_REF handling.
9487         Fold back to non-MEM_REF.
9488         (maybe_fold_offset_to_address): Simplify.  Deal with type
9489         mismatches here.
9490         (maybe_fold_reference): Likewise.
9491         (maybe_fold_stmt_addition): Likewise.  Also handle
9492         &ARRAY + I in addition to &ARRAY[0] + I.
9493         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
9494         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
9495         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
9496         * tree-ssa.c (useless_type_conversion_p): Make most pointer
9497         conversions useless.
9498         (warn_uninitialized_var): Handle MEM_REF.
9499         (maybe_rewrite_mem_ref_base): New function.
9500         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
9501         to SSA form.
9502         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
9503         INDIRECT_REF handling.
9504         (copy_tree_body_r): Handle MEM_REF.
9505         * gimple.c (is_gimple_addressable): Adjust.
9506         (is_gimple_address): Likewise.
9507         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
9508         invariant base are invariant.
9509         (is_gimple_min_lval): Adjust.
9510         (is_gimple_mem_ref_addr): New function.
9511         (get_base_address): Handle MEM_REF.
9512         (count_ptr_derefs): Likewise.
9513         (get_base_loadstore): Likewise.
9514         * gimple.h (is_gimple_mem_ref_addr): Declare.
9515         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
9516         * tree-cfg.c (verify_address): New function, split out from ...
9517         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
9518         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
9519         INDIRECT_REFs.
9520         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
9521         INDIRECT_REF.  Allow conversions.
9522         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
9523         a register does not change its size.
9524         (verify_types_in_gimple_reference): Verify MEM_REF.
9525         (verify_gimple_assign_single): Disallow INDIRECT_REF.
9526         Handle MEM_REF.
9527         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
9528         New.
9529         (mark_address_taken): Handle MEM_REF.
9530         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
9531         (get_asm_expr_operands): Pass opf_not_non_addressable.
9532         (get_expr_operands): Handle opf_[not_]non_addressable.
9533         Handle MEM_REF.  Remove INDIRECT_REF handling.
9534         * tree-vrp.c (check_array_ref): Handle MEM_REF.
9535         (search_for_addr_array): Likewise.
9536         (check_array_bounds): Likewise.
9537         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
9538         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
9539         (ref_always_accessed_p): Likewise.
9540         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
9541         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
9542         Handle MEM_REF.
9543         * cgraphbuild.c (mark_load): Properly check for NULL result
9544         from get_base_address.
9545         (mark_store): Likewise.
9546         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
9547         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
9548         handling for MEM_REF.
9549         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
9550         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
9551         * builtins.c (stabilize_va_list_loc): Use the function ABI
9552         valist type if we couldn't canonicalize the argument type.
9553         Always dereference with the canonical va-list type.
9554         (maybe_emit_free_warning): Handle MEM_REF.
9555         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
9556         memmove to memcpy.
9557         * builtins.c (fold_builtin_memory_op): Use ref-all types
9558         for all memcpy foldings.
9559         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
9560         (build_outer_var_ref): Likewise.
9561         (scan_omp_1_op): Likewise.
9562         (lower_rec_input_clauses): Likewise.
9563         (lower_lastprivate_clauses): Likewise.
9564         (lower_reduction_clauses): Likewise.
9565         (lower_copyprivate_clauses): Likewise.
9566         (expand_omp_atomic_pipeline): Likewise.
9567         (expand_omp_atomic_mutex): Likewise.
9568         (create_task_copyfn): Likewise.
9569         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
9570         Remove old union trick.  Initialize constant offsets.
9571         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
9572         INDIRECT_REF.  Init base_alias_set properly.
9573         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
9574         (vn_reference_fold_indirect): Adjust for MEM_REFs.
9575         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
9576         for ARRAY_REFs.
9577         (may_insert): Remove.
9578         (visit_reference_op_load): Do not test may_insert.
9579         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
9580         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
9581         a field to store the constant offset this op applies.
9582         (run_scc_vn): Adjust prototype.
9583         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
9584         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
9585         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
9586         bother about volatile qualifiers on pointers.
9587         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
9588         * tree-ssa-loop-ivopts.c
9589         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
9590         (strip_offset_1): Likewise.
9591         (find_interesting_uses_address): Replace INDIRECT_REF handling with
9592         MEM_REF handling.
9593         (get_computation_cost_at): Likewise.
9594         * ipa-pure-const.c (check_op): Handle MEM_REF.
9595         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
9596         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
9597         and constants.
9598         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
9599         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
9600         (eliminate_local_variables_1): Likewise.
9601         (create_call_for_reduction_1): Likewise.
9602         (create_loads_for_reductions): Likewise.
9603         (create_loads_and_stores_for_name): Likewise.
9604         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
9605         (ssa_accessed_in_tree): Handle MEM_REF.
9606         (ssa_accessed_in_assign_rhs): Likewise.
9607         (update_type_size): Likewise.
9608         (analyze_accesses_for_call_stmt): Likewise.
9609         (analyze_accesses_for_assign_stmt): Likewise.
9610         (transform_access_sites): Likewise.
9611         (transform_allocation_sites): Likewise.
9612         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
9613         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
9614         not handle INDIRECT_REF.
9615         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
9616         (cond_store_replacement): Likewise.
9617         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
9618         MEM_REF, no not handle INDIRECT_REFs.
9619         (insert_into_preds_of_block): Properly initialize avail.
9620         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
9621         for ARRAY_REFs.  Properly handle reference lookups that
9622         require a bit re-interpretation.
9623         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
9624         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
9625         (build_ref_for_offset_1): Remove.
9626         (build_ref_for_offset): Build MEM_REFs.
9627         (gate_intra_sra): Disable for now.
9628         (sra_ipa_modify_expr): Handle MEM_REF.
9629         (ipa_early_sra_gate): Disable for now.
9630         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
9631         MEM_REF handling.
9632         (disqualify_base_of_expr): Likewise.
9633         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
9634         MEM_REF handling.
9635         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
9636         Use mem_ref_offset.  Remove bogus folding.
9637         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
9638         (make_fancy_name_1): Add support for MEM_REF.
9639         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
9640         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
9641         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
9642         (compute_complex_ancestor_jump_func): Likewise.
9643         (ipa_analyze_virtual_call_uses): Likewise.
9644         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
9645         INDIRECT_REF folding with more generalized MEM_REF folding.
9646         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
9647         (forward_propagate_addr_into_variable_array_index): Also handle
9648         &ARRAY + I in addition to &ARRAY[0] + I.
9649         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
9650         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
9651         creates assignments with overlap.
9652         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
9653         (get_frame_field): Likewise.
9654         (get_nonlocal_debug_decl): Likewise.
9655         (convert_nonlocal_reference_op): Likewise.
9656         (struct nesting_info): Add mem_refs pointer-set.
9657         (create_nesting_tree): Allocate it.
9658         (convert_local_reference_op): Insert to be folded mem-refs.
9659         (fold_mem_refs): New function.
9660         (finalize_nesting_tree_1): Perform defered folding of mem-refs
9661         (free_nesting_tree): Free the pointer-set.
9662         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
9663         (vectorizable_load): Likewise.
9664         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
9665         (propagate_with_phi): Likewise.
9666         * tree-object-size.c (addr_object_size): Handle MEM_REFs
9667         instead of INDIRECT_REFs.
9668         (compute_object_offset): Handle MEM_REF.
9669         (plus_stmt_object_size): Handle MEM_REF.
9670         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
9671         for &MEM_REF.
9672         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
9673         (symbol_marked_for_renaming): Likewise.
9674         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
9675         (fold-const.o): Add $(TREE_FLOW_H).
9676         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
9677         (find_func_clobbers): Likewise.
9678         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
9679         (decompose_access): Likewise.
9680         (replace_field_acc): Likewise.
9681         (replace_field_access_stmt): Likewise.
9682         (insert_new_var_in_stmt): Likewise.
9683         (get_stmt_accesses): Likewise.
9684         (reorg_structs_drive): Disable.
9685         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
9686         (ix86_canonical_va_list_type): Likewise.
9687
9688 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
9689
9690         PR other/44566
9691         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
9692         * target.def (struct gcc_target): Replace enum reg_class with
9693         reg_class_t in hook argument / return types.
9694         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
9695         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
9696         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
9697         * targhooks.h (default_branch_target_register_class): Likewise.
9698         (default_ira_cover_classes, default_secondary_reload): Likewise.
9699         (default_memory_move_cost, default_register_move_cost): Likewise.
9700         * targhooks.c (default_branch_target_register_class): Likewise.
9701         (default_ira_cover_classes, default_secondary_reload): Likewise.
9702         (default_memory_move_cost, default_register_move_cost): Likewise.
9703         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
9704         * bt-load.c (branch_target_load_optimize): Likewise.
9705         * ira.c (setup_cover_and_important_classes): Likewise.
9706         * ira-costs.c (copy_cost): Likewise.
9707         * reload1.c (emit_input_reload_insns): Likewise.
9708         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9709         * config/frv/frv.c (frv_secondary_reload): Likewise.
9710         * config/s390/s390.c (s390_secondary_reload): Likewise.
9711         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
9712         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
9713         (ix86_register_move_cost): Likewise.
9714         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
9715         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
9716         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
9717         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
9718         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
9719         (rs6000_ira_cover_classes): Likewise.
9720         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
9721         * config/picochip/picochip-protos.h (picochip_secondary_reload):
9722         Likewise.
9723         * config/pa/pa.c (pa_secondary_reload): Likewise.
9724         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
9725         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
9726         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
9727         * doc/tm.texi: Regenerate.
9728
9729 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
9730
9731         PR bootstrrap/44726
9732         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
9733         use.
9734         (build_alias_set_optimal_p): Likewise.
9735         (build_base_obj_set_for_drs): Likewise.
9736
9737 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
9738
9739         * target.def: Remove comment about licensing problems of function
9740         declarations.
9741
9742         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
9743         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
9744         * doc/tm.texi: Regenerate.
9745
9746         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
9747         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
9748
9749         * target.def (enum_va_list_p): Use DEFHOOK.
9750         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
9751         Rename ptype to ptree.
9752         * doc/tm.texi: Regenerate.
9753
9754         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
9755         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
9756         * doc/tm.texi: Regenerate.
9757
9758         * target.def (memory_move_cost): Use DEFHOOK.
9759         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
9760         Rename regclass AKA class to rclass.
9761         * doc/tm.texi: Regenerate.
9762
9763         * target.def (pragma_parse): Use DEFHOOK.
9764         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
9765         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
9766         * doc/tm.texi: Regenerate.
9767
9768         * target.def (pass_by_reference): Use DEFHOOK.
9769         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
9770         * doc/tm.texi: Regenerate.
9771
9772         * target.def (resolve_overloaded_builtin): Rename params to arglist.
9773         Use DEFHOOK.
9774         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
9775         * doc/tm.texi: Regenerate.
9776
9777         * target.def (return_pops_args): Use DEFHOOK.
9778         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
9779         Rename stack-size to size.
9780         * doc/tm.texi: Regenerate.
9781
9782         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
9783         last-sched_cycle to last_clock, cur_cycle to clock.
9784         * doc/tm.texi.in: Use @hook.
9785         * doc/tm.texi: Regenerate.
9786
9787         * target.def (print_operand, print_operand_address): Update comment.
9788         (print_operand_punct_valid_p): Likewise.
9789
9790 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9791
9792         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
9793         to rtl.h.
9794         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
9795         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
9796         * rtl-error.h: New.
9797         * regrename.c: Do not include toplev.h. Include rtl-error.h.
9798         * rtl-error.c: Likewise.
9799         * reload.c: Likewise.
9800         * recog.c:  Likewise.
9801         * sel-sched.c: Likewise.
9802         * function.c: Likewise.
9803         * reg-stack.c: Likewise.
9804         * cfgrtl.c: Likewise.
9805         * reload1.c: Likewise.
9806         * final.c: Include rtl-error.
9807         * Makefile.in: Adjust dependencies.
9808
9809 2010-06-30  Jan Hubicka  <jh@suse.cz>
9810
9811         PR middle-end/PR44706
9812         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
9813         to return the value.
9814
9815 2010-06-30  Michael Matz  <matz@suse.de>
9816
9817         PR bootstrap/44699
9818         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
9819         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
9820         a gimple reg, attach the original VDEF to the last store in the
9821         sequence.
9822
9823 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
9824
9825         PR other/44034
9826         * config/darwin.c (darwin_override_options): Use renamed
9827         targetm.asm_out.emit_unwind_label.
9828
9829 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
9830
9831         PR tree-optimization/39799
9832         * tree-inline.c (remap_ssa_name): Initialize variable only if
9833         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
9834
9835 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
9836
9837         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
9838
9839 2010-06-30  Richard Guenther  <rguenther@suse.de>
9840
9841         PR target/44722
9842         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
9843         against oscillation with reverse peephole2.
9844
9845 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
9846
9847         PR target/44721
9848         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9849         Fix last commit.
9850
9851 2010-06-30  Nick Clifton  <nickc@redhat.com>
9852
9853         * config/rx/rx-modes.def: New file.
9854         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
9855         (CC_REGNUM): Define.
9856         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
9857         register.
9858         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
9859         (SELECT_CC_MODE): Define.
9860         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
9861         (reg:CC CC_REG) instead of (cc0).
9862         (attr "cc"): Delete.
9863         (cbranchsi4): Do not split compare and branch here. Instead move
9864         it to...
9865         (cbranchsi4_<code>): ... here.  New patterns.
9866         (cmpsi): Call rx-compare_redundant to find out if it is necessary
9867         to emit the compare instruction.
9868         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
9869         cc_status flags.
9870         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
9871         FIRST_PSEUDO_REGNUM.
9872         (rx_expand_prologue, rx_expand_epilogue): Likewise.
9873         (rx_notice_update_cc): Delete.
9874         (rx_cc_modes_compatible): New function.
9875         (flags_needed_for_conditional): New function.
9876         (flags_from_mode): New function.
9877         (rx_compare_redundant): New function - scans backwards through
9878         insn list to find out if condition flags are already set correctly.
9879         (TARGET_CC_MODES_COMPATIBLE): Define.
9880         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
9881
9882         * config/rx/rx.h (BRANCH_COST): Define.
9883         (REGISTER_MOVE_COST): Define.
9884         * config/rx/predicates (rx_source_operand): Allow all constant types.
9885         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
9886         (tstsi4): New pattern.
9887         * config/rx/rx.c (rx_memory_move_cost): Define.
9888         (TARGET_MEMORY_MOVE_COST): Define.
9889
9890 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9891
9892         * tree.h (block_may_fallthru): Declare here.
9893         * tree-flow.h (block_may_fallthru): Do not declare here.
9894         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
9895         bitmap.h
9896         * Makefile.in (c-typeck.o): Update dependencies.
9897
9898 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
9899
9900         PR debug/44694
9901         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
9902         * cselib.c (cfa_base_preserved_regno): New static variable.
9903         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
9904         of REGNO (cfa_base_preserved_val->locs->loc).
9905         (cselib_preserve_cfa_base_value): Add regno argument, set
9906         cfa_base_preserved_regno to it.
9907         (cselib_invalidate_regno): Allow removal of registers other than
9908         cfa_base_preserved_regno from cfa_base_preserved_val.
9909         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
9910         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
9911         of MEM addresses, if not on LHS.
9912         (reverse_op): Don't add reverse ops for cfa_base_rtx.
9913         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
9914
9915 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
9916
9917         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
9918         static variables.
9919         (peep2_buf_position): New static function.
9920         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
9921         peephole2_optimize): Use it.
9922         (peep2_attempt, peep2_update_life): New static functions, broken out
9923         of peephole2_optimize.
9924         (peep2_fill_buffer): New static function.
9925         (peephole2_optimize): Change the main loop to try to fill the buffer
9926         with the maximum number of insns before matching them against
9927         peepholes.  Use a forward scan.  Remove special case for targets with
9928         conditional execution.
9929         * genrecog.c (change_state): Delete dead code.
9930         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9931         Rewrite so as not to expect the second insn to have had a peephole
9932         applied yet.
9933
9934 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9935
9936         * genhooks.c (emit_findices): Cast field precision to int.
9937         (emit_documentation): Likewise.
9938
9939 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
9940
9941         PR tree-optimization/43801
9942         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
9943         if old_decl was DECL_ONE_ONLY.
9944
9945         PR debug/44668
9946         * dwarf2out.c (add_accessibility_attribute): New function.
9947         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
9948         instead of adding DW_AT_accessibility manually.
9949         (gen_enumeration_type_die, gen_struct_or_union_type_die,
9950         gen_typedef_die): Use it.
9951
9952 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9953
9954         * vmsdbgout.c (full_name): Just output the file name if not native.
9955
9956 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9957
9958         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
9959         (funcnam_table): New static table.
9960         (funcnum_table): New static table.
9961         (write_rtnbeg): Write value saved in funcnum_table.
9962         (write_rtnend): Write value saved in funcnum_table.
9963         (vmsdbgout_begin_function): Save current function info in
9964         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
9965         (vmsdbgout_finish): Iterate over funcnum_table.
9966
9967 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9968
9969         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
9970         (vmsdbgout_type_decl): Declare
9971         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
9972         (FUNC_EPILOGUE_LABEL): New macro
9973         (vmsdbgout_begin_epilogue): New function.
9974         (vmsdbgout_type_decl): New function.
9975
9976 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9977
9978         * vmsdbg.h: Update copyright.
9979
9980 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9981
9982         * vmsdbg.h (DST_K_TBG): New DST constant.
9983         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
9984         (write_modbeg): Cast module_language to avoid warning.
9985         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
9986
9987 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9988
9989         PR other/44034
9990         * target.def, doc/tm.texi.in, genhooks.c: New files.
9991         * target.h: Instead of defining individual hook members,
9992         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
9993         include target.def.
9994         * target-def.h: Instead of defining individual hook initializers,
9995         include target-hooks-def.h.
9996         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
9997         targetm.live_on_entry -> targetm.extra_live_on_entry
9998         targetm.sched.md_finish ->targetm.sched.finish
9999         targetm.sched.md_init -> targetm.sched.init
10000         targetm.sched.md_init_global -> targetm.sched.init_global
10001         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
10002         targetm.asm_out.except_table_label ->
10003           targetm.asm_out.emit_except_table_label
10004         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
10005         targetm.target_help -> targetm.help
10006         targetm.vectorize.builtin_support_vector_misalignment ->
10007           targetm.vectorize.support_vector_misalignment
10008         targetm.file_start_app_off -> targetm.asm_file_start_app_off
10009         targetm.file_start_file_directive ->
10010          targetm.asm_file_start_file_directive
10011         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
10012         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
10013         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
10014         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
10015           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
10016         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
10017           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
10018         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
10019         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
10020         * Makefile.in (TARGET_H): Depend on target.def.
10021         (TARGET_DEF_H): Depend on target-hooks-def.h.
10022         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
10023         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
10024         * doc/tm.texi: Regenerate.
10025
10026         * Makefile.in (s-tm-texi): Remove stray tab / rule.
10027
10028         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
10029         (targetm.sched.init): Likewise.
10030
10031 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10032
10033         PR bootstrap/44713
10034         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
10035         (function_arg_advance_32): Const-ify TYPE parameter.
10036         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
10037         (ix86_function_arg_advance): Change type of NAMED to bool.
10038         (function_arg_32): Const-ify CUM and TYPE parameters.
10039         (function_arg_64): Likewise.  Change type of NAMED to bool.
10040         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
10041         to bool.
10042         (ix86_function_arg): Change type of NAMED to bool.
10043         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
10044         last argument as a bool.
10045
10046 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10047
10048         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
10049         (OVERRIDE_OPTIONS): Add note of obsolescence.
10050         Replace references with references to TARGET_OPTION_OVERRIDE.
10051         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
10052          the macro).
10053         * targhooks.c (default_target_option_override): New function.
10054         * targhooks.h (default_target_option_override): Declare.
10055         * target.h (struct gcc_target): Add override member to
10056         target_option member.
10057         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
10058         targetm.target_option.override call.
10059         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
10060         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
10061
10062 2010-06-29  Jan Hubicka  <jh@suse.cz>
10063
10064         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
10065
10066 2010-06-29  Jan Hubicka  <jh@suse.cz>
10067
10068         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
10069         unreachable.
10070         (rebuild_frequencies): New function.
10071         * predict.h (rebuild_frequencies): Declare.
10072         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
10073         entry block and edge reaching new_entry.
10074         (tree_function_versioning): When doing partial cloning, rebuild
10075         frequencies when done.
10076         * passes.c (execute_function_todo): Use rebild_frequencies.
10077
10078 2010-06-29  Richard Guenther  <rguenther@suse.de>
10079
10080         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
10081         * tree-flow.h (enum noalias_state): Remove.
10082         (struct var_ann_d): Remove noalias_state member.
10083
10084 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10085
10086         PR target/43902
10087         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
10088         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
10089         (maddhidi4): Likewise.
10090
10091         Revert parts of the change for PR25130.
10092         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10093         MEM_ALIAS_SET.
10094
10095 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10096
10097         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
10098         targetm.calls.function_incoming_arg, and
10099         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
10100         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
10101         * target.h (struct gcc_target): Add function_arg_advance,
10102         function_arg, and function_incoming_arg fields.
10103         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
10104         (TARGET_FUNCTION_INCOMING_ARG): Define.
10105         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
10106         and TARGET_FUNCTION_INCOMING_ARG.
10107         * targhooks.h (default_function_arg_advance): Declare.
10108         (default_function_arg, default_function_incoming_arg): Declare.
10109         * targhooks.c (default_function_arg_advance): New function.
10110         (default_function_arg, default_function_incoming_arg): New function.
10111         * config/i386/i386.c (function_arg_advance): Rename to...
10112         (ix86_function_arg_advance): ...this.  Make static.
10113         (function_arg): Rename to...
10114         (ix86_function_arg): ...this.  Make static.
10115         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10116         (TARGET_FUNCTION_ARG): Define.
10117         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
10118         (FUNCTION_ARG): Delete.
10119         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
10120         (function_arg): Delete prototype.
10121
10122 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10123
10124         * reginfo.c (init_reg_sets_1): Adjust comments.
10125         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
10126         * calls.c (prepare_call_address): Likewise.
10127         (emit_call_1): Use targetm.calls.return_pops_args.
10128         (expand_call): Likewise.
10129         * function.c (assign_parms): Likewise.
10130         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
10131         * target.h (struct gcc_target) [struct calls]: Add
10132         return_pops_args field.
10133         * targhooks.h (default_return_pops_args): Declare.
10134         * targhooks.c (default_return_pops_args): Define.
10135         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
10136         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
10137         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
10138         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
10139         documentation.
10140         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
10141         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
10142         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
10143         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
10144         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
10145         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
10146         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
10147         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
10148         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
10149         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
10150         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
10151         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
10152         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
10153         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
10154         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
10155         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
10156         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
10157         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
10158         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
10159         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
10160         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
10161         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
10162         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
10163         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
10164         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
10165         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
10166         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
10167         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
10168         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
10169         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
10170         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
10171         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
10172         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
10173         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
10174         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
10175         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
10176         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
10177         * config/i386/i386.c (ix86_return_pops_args): Make static.
10178         Constify arguments.
10179         (TARGET_RETURN_POPS_ARGS): Define.
10180         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
10181         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
10182         (TARGET_RETURN_POPS_ARGS): Define.
10183         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
10184         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
10185         (TARGET_RETURN_POPS_ARGS): Define.
10186
10187 2010-06-29  Richard Guenther  <rguenther@suse.de>
10188
10189         PR middle-end/44667
10190         * tree-inline.c (initialize_inlined_parameters): Make sure
10191         to remap the inlined parameter variable substitutions types.
10192
10193 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10194
10195         PR rtl-optimization/44659
10196         * combine.c (make_compound_operation) <SUBREG>: Do not return the
10197         result of force_to_mode if it partially re-expanded the compound.
10198
10199 2010-06-28  Jan Hubicka  <jh@suse.cz>
10200
10201         PR middle-end/44671
10202         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
10203         RESULT_DECL.
10204
10205 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
10206
10207         * double-int.h (force_fit_type_double): Remove declaration.
10208         * double-int.c (force_fit_type_double): Move to tree.c.
10209         * tree.h (force_fit_type_double): Declare.
10210         * tree.h (force_fit_type_double): Moved from double-int.c. Use
10211         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
10212         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
10213         * convert.c (convert_to_pointer): Adjust call to
10214         force_fit_type_double.
10215         * tree-vrp.c (extract_range_from_assert,
10216         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
10217         * fold-const.c: Update comment.
10218         (int_const_binop, fold_convert_const_int_from_int,
10219         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
10220         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
10221         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
10222         round_up_loc): Adjust call to force_fit_type_double.
10223
10224 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10225
10226         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
10227
10228 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10229
10230         * tree-sra.c (convert_callers): New parameter, change fndecls of
10231         recursive calls.
10232         (modify_function): Pass the old decl to convert_callers.
10233
10234 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10235
10236         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
10237         ipa_check_create_node_params and ipa_initialize_node_params with
10238         checking asserts they are not necessary.
10239
10240 2010-06-28  Jan Hubicka  <jh@suse.cz>
10241
10242         PR tree-optimization/44687
10243         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
10244
10245 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10246
10247         PR c++/44535
10248         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
10249         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
10250         instead of BINFO_BASE_BINFO.
10251
10252 2010-06-28  Michael Matz  <matz@suse.de>
10253
10254         PR middle-end/44592
10255         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
10256         proper VDEF chain for intermediate stores in the sequence.
10257
10258 2010-06-28  Jan Hubicka  <jh@suse.cz>
10259
10260         PR tree-optimization/44357
10261         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
10262         uninlinable functions.
10263
10264 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10265
10266         * config.gcc (powerpc*-*-*): Handle titan.
10267         * config/rs6000/rs6000.c (titan_cost): New costs.
10268         (rs6000_override_options): Add "titan" to processor_target_table.
10269         Add Titan to branch alignment logic.
10270         Correctly set rs6000_cost for titan.
10271         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
10272         * config/rs6000/titan.md: New file.
10273         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
10274
10275 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10276
10277         * tree-browser.c (TB_history_stack): Convert to a VEC.
10278         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
10279         (TB_history_prev): Likewise.
10280
10281 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10282
10283         * vec.h (vec_heap_free): Add parentheses around free.
10284
10285 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
10286
10287         * system.h: Poison GCC_EXCEPT_H for front-end files.
10288
10289         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
10290         langhook.
10291         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
10292         Define to NULL by default.
10293         * except.h: Define GCC_EXCEPT_H.
10294         (doing_eh): Remove prototype.
10295         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
10296         (lang_protect_cleanup_actions): Remove.
10297         * except.c (lang_protect_cleanup_actions): Remove.
10298         (doing_eh): Remove.
10299         (gen_eh_region): Don't check doing_eh here.
10300         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
10301         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
10302         instead of lang_protect_cleanup_actions.
10303         * omp-low.c (maybe_catch_exception): Likewise.
10304         * Makefile.in: Update dependencies.
10305
10306 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
10307
10308         * cgraph.h (struct varpool_node): new used_from_object_file flag.
10309         (struct cgraph_local_info): new used_from_object_file flag.
10310         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
10311         (cgraph_clone_node): initialize used_from_object_file.
10312         (cgraph_create_virtual_clone): initialize used_from_object_file.
10313         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
10314         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
10315         when compiling with -fwhole-program.
10316         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
10317         internal resolver.
10318         * ipa.c (function_and_variable_visibility): Set externally_visible
10319         flag of varpool_node if used_from_object_file flag is set.
10320         (cgraph_externally_visible_p): check used_from_object_file flag.
10321         * doc/invoke.texi (-fwhole-program option): Change description of
10322         externally_visible attribute accordingly.
10323         * doc/extend.texi (externally_visible): Ditto.
10324
10325 2010-06-27  Jan Hubicka  <jh@suse.cz>
10326
10327         * params.def (max-inline-insns-auto): Default to 40.
10328         * doc/invoke.texi (max-inline-insns-auto): Document the change.
10329
10330 2010-06-27  Jan Hubicka  <jh@suse.cz>
10331
10332         PR middle-end/44671
10333         PR middle-end/44686
10334         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
10335         signature change.
10336         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
10337         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
10338
10339 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
10340
10341         * target.h (struct gcc_target): Add register_move_cost field.
10342         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
10343         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
10344         * targhooks.c (default_register_move_cost): New function.
10345         * targhooks.h (default_register_move_cost): Declare function.
10346         * defaults.h (REGISTER_MOVE_COST): Delete.
10347         * ira-int.h (ira_register_move_cost): Update comment.
10348         * ira.c (ira_register_move_cost): Update comment.
10349         * reload.h (register_move_cost): Declare.
10350         * reginfo.c (register_move_cost): New function.
10351         (move_cost): Update comment.
10352         (init_move_cost, memory_move_secondary_cost): Replace
10353         REGISTER_MOVE_COST with register_move_cost.
10354         * postreload.c (reload_cse_simplify_set): (Ditto.).
10355         * reload.c (find_valid_class, find_reloads): (Ditto.).
10356         * reload1.c (choose_reload_regs): (Ditto.).
10357         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
10358         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
10359         * doc/md.texi (can_create_pseudo_p): Update documentation.
10360
10361         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
10362         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
10363         * config/i386/i386.h (ix86_memory_move_cost): Make static.
10364         (TARGET_MEMORY_MOVE_COST): Define.
10365
10366         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10367         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
10368         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
10369         (TARGET_MEMORY_MOVE_COST): Define.
10370
10371 2010-06-27  Richard Guenther  <rguenther@suse.de>
10372
10373         PR tree-optimization/44683
10374         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
10375         false edge from the inverted condition.
10376
10377 2010-06-27  Richard Guenther  <rguenther@suse.de>
10378
10379         PR middle-end/44684
10380         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
10381         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
10382         for register LHS.  Or non-store assignments.
10383
10384 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
10385
10386         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
10387         (sparc_emit_set_const64): Likewise.  Remove disabled code.
10388         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
10389         (sparc_emit_set_const64): Likewise.
10390
10391 2010-06-26  Catherine Moore  <clm@codesourcery.com>
10392
10393         * config/mips/mips.md (alu_type): New attribute.
10394         (type): Infer type from alu_type.
10395         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
10396         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
10397         *subsi3_extended, negsi2, negdi2, *low<mode>,
10398         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
10399         xor<mode>3, *nor<mode>3,
10400         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
10401         *zero_extendhi_truncqi):  Set alu_type instead of type.
10402
10403 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
10404
10405         * config/alpha/alpha.c (alpha_need_linkage): Adjust
10406         splay_tree_new_ggc call.
10407         (alpha_use_linkage): Likewise.
10408
10409 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10410
10411         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
10412         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
10413         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
10414         (static_specs): Remove switches_need_spaces.
10415         (process_command, do_self_spec): Hardcode handling "-o" instead of
10416         checking switches_need_spaces.
10417         * system.h (SWITCHES_NEED_SPACES): Poison.
10418
10419 2010-06-26  Richard Guenther  <rguenther@suse.de>
10420
10421         PR tree-optimization/44393
10422         * tree-loop-distribution.c (generate_loops_for_partition): Fix
10423         stmt removal and VOP renaming.
10424         (generate_memset_zero): Remove redundant stmt updating.
10425         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
10426         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
10427
10428 2010-06-26  Jan Hubicka  <jh@suse.cz>
10429
10430         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
10431         edges comming from header are equivalent.
10432         (visit_bb): Handle PHIs correctly.
10433         * tree-inline.c (copy_phis_for_bb): Be able to copy
10434         PHI from entry edge.
10435         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
10436
10437 2010-06-26  Richard Guenther  <rguenther@suse.de>
10438
10439         PR middle-end/44674
10440         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
10441         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
10442
10443 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10444
10445         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
10446         add_infile, alloc_switch): New.
10447         (process_command): Remove variable lang_n_infiles.  Process
10448         options in a single pass.  Use new functions for allocating
10449         infiles and switches arrays.  Properly skip operands of
10450         -Xpreprocessor and -Xassembler.
10451
10452 2010-06-26  Jan Hubicka  <jh@suse.cz>
10453
10454         PR middle-end/44671
10455         * cgraphunit.c (cgraph_function_versioning): Remove wrong
10456         cgraph_make_decl_local call; fix typo copying RTL data.
10457
10458 2010-06-25  DJ Delorie  <dj@redhat.com>
10459
10460         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
10461         (m32c_output_aligned_common): Likewise.
10462         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
10463         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
10464         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
10465         (m32c_register_pragmas): Register it.
10466         * config/m32c/m32c.c (m32c_get_pragma_address): New.
10467         (m32c_insert_attributes): Set #pragma address decls volatile.
10468         (pragma_entry_eq): New.
10469         (pragma_entry_hash): New.
10470         (m32c_note_pragma_address): New.
10471         (m32c_get_pragma_address): New.
10472         (m32c_output_aligned_common): New.
10473         * doc/extend.texi: Document the new pragma.
10474
10475         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
10476         also.
10477         * config/m32c/predicates.md (m32c_any_operand): Check the code
10478         instead of memory_operand so as to allow matching volatile MEMs.
10479         (m32c_nonimmediate_operand): Likewise.
10480         (mra_operand): Allow volatiles.
10481
10482 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
10483
10484         PR debug/44610
10485         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
10486         address if the offset is unknown.
10487
10488 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
10489
10490         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
10491         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
10492         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
10493         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
10494         to ia64_start_function. Invoke it.
10495         * config/ia64/ia64.c (ia64_start_function): Call new function
10496         dwarf2out_vms_debug_main_pointer.
10497
10498 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10499
10500         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
10501         statements computing the true predicate.
10502
10503 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10504
10505         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
10506         to boolean_true_node.
10507         (reset_bb_predicate): New.
10508         (predicate_bbs): Call reset_bb_predicate.
10509
10510 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10511
10512         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
10513         (tree_if_conversion): Returns true when something has been changed.
10514         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
10515         changed something.
10516
10517 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10518
10519         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
10520         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
10521         * tree-if-conv.c: Include dbgcnt.h.
10522         (tree_if_conversion): Use if_conversion_tree to count the number of
10523         if-convertible loops.
10524
10525 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
10526
10527         * common.opt (fprefetch-loop-arrays): Re-define
10528         -fprefetch-loop-arrays as a tri-state option with the initial
10529         value of -1.
10530         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
10531         pass only when flag_prefetch_loop_arrays > 0.
10532         * toplev.c (process_options): Note that, with tri-states,
10533         flag_prefetch_loop_arrays>0 means prefetching is enabled.
10534         * config/i386/i386.c (override_options): Enable prefetching at -O3
10535         for a set of CPUs that sw prefetching is helpful.
10536         (software_prefetching_beneficial_p): New.  Return TRUE if software
10537         prefetching is beneficial for the given CPU.
10538
10539 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
10540
10541         PR rtl-optimization/44326
10542         * implicit-zee.c (find_removable_zero_extends): Replace
10543         INSN_P with NONDEBUG_INSN_P.
10544
10545 2010-06-25  Martin Jambor  <mjambor@suse.cz>
10546
10547         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
10548         (struct ipa_node_params): Removed the modification_analysis_done flag.
10549         (ipa_is_param_modified): Removed.
10550         (ipa_analyze_node): Declare.
10551         (ipa_compute_jump_functions): Remove declaration.
10552         (ipa_count_arguments): Likewise.
10553         (ipa_detect_param_modifications): Likewise.
10554         (ipa_analyze_params_uses): Likewise.
10555         * ipa-prop.c (struct param_analysis_info): New type.
10556         (visit_store_addr_for_mod_analysis): Removed.
10557         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
10558         moved down in the file.
10559         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
10560         (ipa_count_arguments): Made static.
10561         (mark_modified): New function.
10562         (is_parm_modified_before_call): New function.
10563         (compute_pass_through_member_ptrs): New parameter parms_info, call
10564         is_parm_modified_before_call instead of ipa_is_param_modified.
10565         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
10566         it to compute_pass_through_member_ptrs.
10567         (ipa_compute_jump_functions): New parameter parms_info, pass it to
10568         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
10569         on the callee if it is analyzed.  Made static.
10570         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
10571         is_parm_modified_before_call instead of ipa_is_param_modified.
10572         (ipa_analyze_call_uses): New parameter parms_info, pass it to
10573         ipa_analyze_indirect_call_uses.
10574         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
10575         ipa_analyze_call_uses.
10576         (ipa_analyze_params_uses): New parameter parms_info, pass it to
10577         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
10578         (ipa_analyze_node): New function.
10579         (ipa_print_node_params): Do not dump the modified flag.
10580         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
10581         it.  Do not stream the modified parameter flag.
10582         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
10583         it.  Do not stream the modified parameter flag.
10584         * ipa-cp.c (ipcp_analyze_node): Removed.
10585         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
10586         with only a call to ipa_analyze_node.
10587         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
10588         node with only a call to ipa_analyze_node.
10589
10590 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10591
10592         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
10593
10594 2010-06-25  Jan Hubicka  <jh@suse.cz>
10595
10596         * tree-pass.h (pass_split_functions): Declare.
10597         * opts.c (decode_options): Enable function splitting at -O2
10598         * timevar.def (TV_IPA_FNSPLIT): New macro.
10599         * ipa-split.c: New file.
10600         * common.opt (-fpartial-inlining): New flag.
10601         * Makefile.in (ipa-split.o): New object file.
10602         * passes.c (init_optimization_passes): Add ipa-split.
10603         * params.def (partial-inlining-entry-probability): New parameters.
10604         * doc/invoke.texi (-fpartial-inlining): New.
10605
10606 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10607
10608         PR 44665
10609         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
10610         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
10611         (gimplify_expr): Likewise.
10612
10613 2010-06-25  Martin Jambor  <mjambor@suse.cz>
10614
10615         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
10616         statements instead of bailing out on them.
10617         (ipa_analyze_indirect_call_uses): Do not require that loads from the
10618         parameter are in the same BB as the condition.  Update comments.
10619
10620 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
10621
10622         PR middle-end/43866
10623         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
10624         true or always false, return NULL_TREE.
10625         (tree_unswitch_single_loop): Optimize conditions even when reaching
10626         max-unswitch-level parameter.  If num > 0, optimize first all conditions
10627         using entry checks, then do still reachable block discovery and consider
10628         only conditions in still reachable basic blocks in the loop.
10629
10630         PR tree-optimization/44539
10631         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
10632         the call doesn't have LHS, but has VDEF.
10633
10634 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
10635
10636         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
10637         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
10638         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
10639         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
10640         * system.h (MODIFY_TARGET_NAME): Poison.
10641
10642 2010-06-25  Alan Modra  <amodra@gmail.com>
10643
10644         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
10645         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
10646         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10647         CMODEL_LARGE as default.
10648         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
10649         (offsettable_ok_by_alignment): Delete.
10650         (rs6000_emit_move): Remove mcmodel=medium optimization.
10651
10652 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
10653
10654         With large parts from Jim Wilson:
10655         PR target/43902
10656         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
10657         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
10658         * optabs.c (optab_for_tree_code): Likewise.
10659         (expand_widen_pattern_expr): Likewise.
10660         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
10661         out of execute_optimize_widening_mul.
10662         (convert_plusminus_to_widen): New function.
10663         (execute_optimize_widening_mul): Use the two new functions.
10664         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
10665         Remove code to generate widening multiply-accumulate.  Add support
10666         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
10667         * gimple-pretty-print.c (dump_ternary_rhs): New function.
10668         (dump_gimple_assign): Call it when appropriate.
10669         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
10670         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
10671         (expand_gimple_stmt_1): Likewise.
10672         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
10673         WIDEN_MULT_MINUS_EXPR.
10674         * tree-ssa-operands.c (get_expr_operands): Likewise.
10675         * tree-inline.c (estimate_operator_cost): Likewise.
10676         * gimple.c (extract_ops_from_tree_1): Renamed from
10677         extract_ops_from_tree.  Add new arg for a third operand; fill it.
10678         (gimple_build_assign_stat): Support operations with three operands.
10679         (gimple_build_assign_with_ops_stat): Likewise.
10680         (gimple_assign_set_rhs_from_tree): Likewise.
10681         (gimple_assign_set_rhs_with_ops_1): Renamed from
10682         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
10683         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
10684         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
10685         WIDEN_MULT_MINUS_EXPR.
10686         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
10687         (extract_ops_from_tree_1): Adjust declaration.
10688         (gimple_assign_set_rhs_with_ops_1): Likewise.
10689         (gimple_build_assign_with_ops): Pass NULL for last operand.
10690         (gimple_build_assign_with_ops3): New macro.
10691         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
10692         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
10693         functions.
10694         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
10695         (verify_gimple_assign): Call it.
10696         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
10697         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
10698         functions for dealing with three-operand statements.
10699         * tree.c (commutative_ternary_tree_code): New function.
10700         * tree.h (commutative_ternary_tree_code): Declare it.
10701         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
10702         ternary statements.
10703         (gimple_assign_nonzero_warnv_p): Likewise.
10704         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
10705         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
10706         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
10707         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
10708         (struct hashtable_expr): New member ternary in the union.
10709         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
10710         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
10711         (iterative_hash_hashable_expr): Likewise.
10712         (print_expr_hash_elt): Handle EXPR_TERNARY.
10713         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
10714         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
10715         statements.  Handle GIMPLE_TERNARY_RHS.
10716
10717 2010-06-25  Jan Hubicka  <jh@suse.cz>
10718
10719         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
10720
10721 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
10722
10723         PR c/44517
10724         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
10725         parameters are not good.
10726         (c_parser_parameter_declaration): Error unknown type name if the type
10727         name can't start declaration specifiers.
10728
10729 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
10730
10731         * gcc.c (translate_options): Don't mention +e in comment.
10732         (process_command): Don't handle +e specially.
10733
10734 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
10735
10736         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
10737
10738         * ira-build.c (merge_hard_reg_conflicts): New function.
10739         (create_cap_allocno, copy_info_to_removed_store_destinations,
10740         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
10741         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
10742         (remove_unnecessary_allocnos, remove_low_level_allocnos)
10743         copy_nifo_to_removed_store_destination): Use them.
10744         * ira-lives.c (make_hard_regno_born): New function, split out of
10745         make_regno_born.
10746         (make_allocno_born): Likewise.
10747         (make_hard_regno_dead): New function, split out of make_regno_dead.
10748         (make_allocno_dead): Likewise.
10749         (inc_register_pressure): New function, split out of set_allocno_live.
10750         (dec_register_pressure): New function, split out of clear_allocno_live.
10751         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
10752         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
10753         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
10754         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
10755         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
10756         mark_pseudo_regno_live.
10757         (process_bb_node_lives): Use mark_pseudo_regno_live,
10758         make_hard_regno_born and make_allocno_dead.
10759         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
10760         set_allocno_live, clear_allocno_live): Delete functions.
10761
10762         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
10763         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
10764         functions.
10765         (ira_flattening): Use ira_parent_allocno.
10766         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
10767         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
10768
10769         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
10770         statement.
10771
10772         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
10773         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
10774         minmax_set_iter_cond, minmax_set_iter_next,
10775         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
10776         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
10777         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
10778         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
10779         uses changed.
10780
10781         * ira-int.h (struct live_range, live_range_t): Renamed from struct
10782         ira_allocno_live_range and allocno_live_range_t; all uses changed.
10783         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
10784         All uses changed.
10785
10786 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
10787
10788         * thumb2.md (thumb2_tlobits_cbranch): Delete.
10789         (peephole2 to convert zero_extract/compare of single bit to
10790          lshift/compare): New.
10791
10792 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
10793
10794         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
10795         recursive call and call to 'int_const_binop'.
10796         (build_range_check, fold_cond_expr_with_comparison, unextend,
10797         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
10798         multiple_of_p): Adjust call to const_binop.
10799
10800 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
10801
10802         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
10803         determine size of XFmode operand.
10804         (XFmode extended DFmode push splitter): Ditto.
10805         (XFmode extended SFmode push splitter): Ditto.
10806
10807 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
10808
10809         PR target/44588
10810         * config/i386/i386.md (extract_code): New.
10811         (<u>divmodqi4): Likewise.
10812         (divmodhiqi3): Likewise.
10813         (udivmodhiqi3): Likewise.
10814         (<u>divqi3): Remvoved.
10815
10816 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
10817
10818         PR middle-end/44492
10819         * recog.h (struct recog_data): Add is_asm field.
10820         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
10821         present in constraints of inline-asm operand and memory operand
10822         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
10823         (extract_insn): Initialize recog_data.is_asm.
10824         * doc/md.texi (Constraints): Document operand side-effect rules.
10825
10826 2010-06-24  Andi Kleen  <ak@linux.intel.com>
10827
10828         * c-parser.c (c_parser_conditional_expression): Call
10829         warn_for_omitted_condop.
10830         * doc/invoke.texi: Document omitted condop warning.
10831
10832 2010-06-24  Nick Clifton<nickc@redhat.com>
10833
10834         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
10835         insn in the sequence is a jump insn before setting its label.
10836
10837 2010-06-24  Alan Modra  <amodra@gmail.com>
10838
10839         * collect2.c (main): Match exactly --version and --help.
10840
10841 2010-06-24  DJ Delorie  <dj@redhat.com>
10842
10843         * config/m32c/m32c-pragma.c: Don't include rtl.h.
10844
10845 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
10846
10847         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
10848         using X87MODEF mode iterator.
10849         (pushsf splitter): Macroize splitter using P mode iterator.
10850         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
10851         mode iterator.
10852
10853         (*movxf_internal): Rename from *movxf_integer.
10854         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
10855         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
10856         (*movdf_internal): Rename from *movdf_integer.
10857         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
10858         (*movsf_internal): Rename from *movdf_1.
10859
10860 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
10861
10862         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
10863         (const_gimple_seq_node): Removed typedefs.
10864
10865         * gimple.h (gimple_seq_node_d, gimple_seq_node)
10866         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
10867
10868 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
10869
10870         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
10871         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
10872         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
10873         and CODE_FOR_vec_extract_lo_v4df.
10874
10875         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
10876         Changed to define_insn_and_split.
10877         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
10878         (vec_extract_lo_v16hi): Likewise.
10879         (vec_extract_lo_v32qi): Likewise.
10880         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
10881         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
10882
10883 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
10884
10885         PR target/44640
10886         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
10887         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
10888         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
10889         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
10890         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
10891
10892         PR target/44640
10893         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
10894
10895         PR other/44644
10896         * df-core.c (struct df): Rename to df_d.
10897         * df.h (struct df): Likewise.
10898         * dse.h (struct df): Remove forward declaration.
10899         * recog.h (struct insn_data): Rename to:
10900         (struct_insn_data_d).  Adjusted all users.
10901
10902 2010-06-23  Arnaud Charlet  <charlet@adacore.com
10903
10904         PR ada/22220
10905         * doc/install.texi: Update requirements to build GNAT.
10906
10907 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
10908
10909         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
10910         enum type.
10911         (m68k_sched_attr_opx_type): Remove unreachable return.
10912         (m68k_sched_attr_opy_type): Likewise.
10913         (m68k_sched_attr_size): Likewise.
10914         (sched_get_opxy_mem_type): Likewise.
10915         (m68k_sched_attr_op_mem): Likewise.
10916
10917 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
10918
10919         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
10920         new statement and adjust VDEF only if necessary.  Remove superfluous
10921         call to maybe_clean_or_replace_eh_stmt.
10922         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
10923         copy the flags.
10924         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
10925         * tree-inline.c (copy_bb): ...and not there.
10926
10927 2010-06-22  Cary Coutant  <ccoutant@google.com>
10928
10929         * dwarf2out.c (is_nested_in_subprogram): New function.
10930         (should_move_die_to_comdat): Use it.
10931         (copy_ancestor_tree): Don't mark DIEs here.
10932         (copy_decls_walk): Start walk from root of newly-added tree;
10933         mark DIEs here instead.
10934
10935 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
10936
10937         * config/i386/i386.md (unit): Also check sseishft1.
10938
10939 2010-06-22  Jan Hubicka  <jh@suse.cz>
10940
10941         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
10942         enabled.
10943
10944 2010-06-22  Jan Hubicka  <jh@suse.cz>
10945
10946         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
10947         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
10948         Return true if something changed.
10949         * df.h (df_confluence_function_n): Return bool.
10950         * df-core.c (df_worklist_propagate_forward,
10951         df_worklist_propagate_backward): Track changes and ages.
10952         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
10953         track ages.
10954         * dse.c (dse_confluence_n): Return always true.
10955
10956 2010-06-22  Jan Hubicka  <jh@suse.cz>
10957
10958         * bitmap.c (bitmap_clear_bit): Micro optimize.
10959
10960 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
10961
10962         * config/i386/i386.md (SWI1248x): New mode iterator.
10963         (SWI48x): Ditto.
10964         (SWI12): Ditto.
10965         (SWI24): Ditto.
10966
10967         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
10968         SWI1248x mode iterator.
10969         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
10970         using SWI124 mode iterator.
10971         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
10972         mode iterator.
10973         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
10974         *pushdi2_prologue_rex64 using P mode iterator.
10975         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
10976         using SWI48 mode iterator.
10977         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
10978         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
10979         using SWI1248x mode iterator.
10980         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
10981         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
10982         SWI48 mode iterator.
10983         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
10984         iterator.
10985         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
10986         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
10987         SWI12 mode iterator.
10988         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
10989         SWI12 mode iterator.
10990         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
10991         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
10992         SWI24 mode iterator.
10993         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
10994         SWI48 mode iterator.
10995         (mov<mode>_insn_1): New expander.
10996         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
10997         using SWI48x mode iterator.
10998
10999         (*movoi_internal_avx): Rename from *movoi_internal.
11000         (*movti_internal_rex64): Rename from *movti_rex64.
11001         (*movti_internal_sse): Rename from *movti_sse.
11002         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
11003         (*movdi_internal): Rename from *movdi_2.
11004         (*movsi_internal): Rename from *movsi_1.
11005         (*movhi_internal): Rename from *movhi_1.
11006         (*movqi_internal): Rename from *movqi_1.
11007
11008         (insv): Update the call to gen_movsi_insv_1 for rename.
11009         * config/i386/i386.c (promote_duplicated_reg): Ditto.
11010
11011 2010-06-22  Jan Hubicka  <jh@suse.cz>
11012
11013         * passes.c (execute_function_todo): Move call of statistics_fini_pass
11014         to ...
11015         (execute_todo) ... this one.
11016
11017 2010-06-22  Alan Modra  <amodra@gmail.com>
11018
11019         PR target/44364
11020         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11021         * caller-save.c (insert_restore, insert_save): Use non-validate
11022         form of adjust_address.
11023
11024 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11025
11026         PR target/39690
11027         * config/pa/pa.c (override_options): Disable
11028         -freorder-blocks-and-partition.
11029
11030 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
11031
11032         PR target/44615
11033         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
11034
11035         * config/i386/i386.md (type): Add sseishft1
11036
11037         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
11038         (ppro_insn_load): Likewise.
11039         (ppro_insn_store): Likewise.
11040         (ppro_insn_both): Likewise.
11041
11042         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
11043         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
11044         for type.
11045         (*vec_extractv2di_1_avx): Likewise.
11046         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
11047         type.  Remove atom_unit.
11048         (*vec_extractv2di_1_sse2): Likewise.
11049
11050 2010-06-21  DJ Delorie  <dj@redhat.com>
11051
11052         * diagnostic.h (diagnostic_classification_change_t): New.
11053         (diagnostic_context): Add history and push/pop list.
11054         (diagnostic_push_diagnostics): Declare.
11055         (diagnostic_pop_diagnostics): Declare.
11056         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
11057         from pragmas in a history chain instead of the global table.
11058         (diagnostic_push_diagnostics): New.
11059         (diagnostic_pop_diagnostics): New.
11060         (diagnostic_report_diagnostic): Scan history chain to find state
11061         of diagnostics as of the diagnostic location.
11062         * opts.c (set_option): Pass UNKNOWN_LOCATION to
11063         diagnostic_classify_diagnostic.
11064         (enable_warning_as_error): Likewise.
11065         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
11066         use in the history chain.
11067         * doc/extend.texi: Document pragma GCC diagnostic changes.
11068
11069 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
11070
11071         * dwarf2out.c (add_linkage_name): New function.  Don't add
11072         anything to DW_TAG_member DIEs.
11073         (add_name_and_src_coords_attributes): Use it.
11074         (gen_variable_die): Call it for C++ static data members if
11075         specification is DW_TAG_member.
11076
11077         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
11078         C++ char16_t and char32_t.
11079
11080         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
11081         * genattrtab.c: Include vecprim.h.
11082         (cached_attrs, cached_attr_count, attrs_seen_once,
11083         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
11084         attrs_cached_after): New variables.
11085         (find_attrs_to_cache): New function.
11086         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
11087         (write_test_expr): Add attrs_cached argument, return it too,
11088         attempt to cache non-const attributes used more than once in
11089         a single case handling.
11090         (write_attr_get): Use find_attrs_to_cache, for caching candidates
11091         emit cached_* variables.  Adjust write_attr_set callers.
11092         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
11093         to find attributes that should be cached in this block.  Adjust
11094         write_test_expr callers.
11095         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
11096         callers.
11097         (make_automaton_attrs): Adjust write_test_expr caller.
11098
11099         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
11100         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
11101         (make_automaton_attrs): If find_tune_attr returns non-NULL,
11102         write separate internal_dfa_insn_code_* and insn_default_latency_*
11103         functions for each attribute's value and emit init_sched_attrs
11104         function and function pointers.
11105         * genattr.c (const_attrs, reservations): New variables.
11106         (gen_attr): Add const attributes to const_attrs vector.
11107         (check_tune_attr, find_tune_attr): New functions.
11108         (main): Add reservations to reservations vector.  If find_tune_attr
11109         returns true, add prototype for init_sched_attrs and make
11110         internal_dfa_insn_code and insn_default_latency function pointers,
11111         otherwise define init_sched_attrs as dummy macro.
11112         * cfgexpand.c: Include insn-attr.h.
11113         (gimple_expand_cfg): Call init_sched_attrs.
11114
11115         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
11116
11117         PR target/44575
11118         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
11119         va_arg from a set of register save slots into a temporary,
11120         if the container is bigger than type size, do the copying
11121         using smaller mode or using memcpy.
11122
11123         PR bootstrap/44426
11124         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
11125         prototype.
11126         (sel_print_to_dot): Remove macro.
11127         (sel_print): Likewise.  New prototype.
11128         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
11129         (sel_print): New function.
11130
11131 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11132
11133         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
11134         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
11135
11136 2010-06-21  Nick Clifton  <nickc@redhat.com>
11137
11138         * config/rx/rx.h (PTRDIFF_TYPE): Define.
11139         (SMALL_REGISTER_CLASS): Define (to zero).
11140         (PRINT_OPERAND): Delete.
11141         (PRINT_OPERAND_ADDRESS): Delete.
11142         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
11143         (rx_print_operand_address): Delete prototype.
11144         * config/rx/rx.c (rx_print_operand): Make static.
11145         Allow %H and %L to handle CONST_DOUBLEs.
11146         (rx_print_operand_address): Make static.
11147         (rx_gen_move_template): Rename local variable 'template' to
11148         out_template.
11149         (rx_function_arg): Do not pass unknown sized objects in registers.
11150         (TARGET_PRINT_OPERAND): Define.
11151         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11152
11153 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
11154
11155         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
11156
11157 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
11158
11159         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
11160         stack-alignment for simple leaf-functions.
11161
11162 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11163
11164         * doc/install.texi: Document bootstrap-lto.
11165
11166 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11167
11168         PR debug/44248
11169         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
11170         (input_function): Drop them here, if VTA is disabled.
11171
11172 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
11173
11174         PR target/44546
11175         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
11176         New predicate.
11177         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
11178         ix86_swapped_fp_comparsion_operator instead of
11179         ix86_fp_comparison_operator.
11180
11181         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
11182         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
11183         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
11184         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
11185         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
11186         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
11187
11188 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
11189
11190         PR other/32998
11191         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
11192         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
11193         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
11194         (decode_cmdline_option): Update for this return value.  Set
11195         orig_option_with_args_text field.  Set arg field for unknown
11196         options.  Make static.
11197         (decode_cmdline_options_to_array): New.
11198         (prune_options): Update handling of find_opt return value.
11199         * opts.c (read_cmdline_option): Take decoded option.  Return void.
11200         (read_cmdline_options): Take decoded options.
11201         (decode_options): Add parameters for decoded options.  Use
11202         decode_cmdline_options_to_array.  Use decoded options for -O
11203         scan.  Use integral_argument for -O parameters.  Update call to
11204         read_cmdline_options.
11205         (enable_warning_as_error): Update handling of find_opt return value.
11206         * opts.h: Update comment on unknown options.
11207         (struct cl_decoded_option): Update comments on opt_index and arg.
11208         Add orig_option_with_args_text.
11209         (decode_cmdline_option): Remove.
11210         (decode_cmdline_options_to_array): Declare.
11211         (decode_options): Update prototype.
11212         * toplev.c (save_argv): Remove.
11213         (save_decoded_options, save_decoded_options_count): New.
11214         (read_integral_parameter): Remove.
11215         (print_switch_values): Use decoded options.
11216         (toplev_main): Don't set save_argv.  Update call to decode_options.
11217         * toplev.h (read_integral_parameter): Remove.
11218         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
11219
11220 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
11221
11222         PR target/44072
11223         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
11224         immediate.
11225         * constraints.md (Pw, Px): New constraints.
11226         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
11227
11228 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
11229
11230         * config/i386/sse.md (fma4modesuffixf4): Removed.
11231         (ssemodesuffixf2s): Likewise.
11232         (ssemodesuffixf4): Likewise.
11233         (ssemodesuffixf2c): Likewise.
11234         (ssescalarmodesuffix2s): Likewise.
11235         (avxmodesuffixf2c): Likewise.
11236         (ssemodesuffix): New.
11237         (ssescalarmodesuffix): Likewise.
11238         Update patterns with ssemodesuffix and ssescalarmodesuffix.
11239
11240 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
11241
11242         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
11243
11244 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11245
11246         * stor-layout.c (debug_rli): Remove unused local variables.
11247
11248 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11249
11250         PR rtl-optimization/40900
11251         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
11252         original expression for later reuse.
11253         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
11254         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
11255
11256 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
11257
11258         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
11259         double_int_fits_in_uhwi_p): Implement as static inline.
11260         (double_int_xor): New inline function.
11261         (double_int_lrotate, double_int_rrotate, double_int_max,
11262         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11263         double_int_smin): Declare.
11264         (lrotate_double, rrotate_double): Remove declaration.
11265         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
11266         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
11267         (double_int_lrotate, double_int_rrotate, double_int_max,
11268         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11269         double_int_smin): New function.
11270         * fold-const.c (int_const_binop): Clean up, use double_int_*
11271         functions.
11272         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
11273         double_int_* and immed_double_int_const functions.
11274
11275 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11276
11277         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
11278         * function.c (types_used_by_cur_var_decl): Likewise.
11279         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
11280
11281 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11282
11283         * tree.h (record_layout_info): Change type of pending_statics field
11284         to a VEC.
11285         * stor-layout.c (start_record_layout): Store NULL into
11286         pending_statics.
11287         (debug_rli): Call debug_vec_tree instead of debug_tree.
11288         (place_field): Likewise.
11289         (finish_record_layout): Likewise.
11290
11291 2010-06-18  Alan Modra  <amodra@gmail.com>
11292
11293         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
11294
11295 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11296
11297         PR target/43740
11298         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
11299         for SET source operand from SET destination operand.
11300
11301 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
11302
11303         PR rtl-optimization/39871
11304         * reload1.c (init_eliminable_invariants): For flag_pic, disable
11305         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
11306         (function_invariant_p): Rule out a plus of frame or arg pointer with
11307         a SYMBOL_REF.
11308         * ira.c (find_reg_equiv_invariant_const): Likewise.
11309
11310 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
11311
11312         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
11313         print_operand_address and puts to output the operand for CONST.
11314
11315 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
11316
11317         PR debug/44572
11318         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
11319         hook.
11320
11321 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11322
11323         * v850-protos.h (print_operand): Delete.
11324         (print_operand_address): Delete.
11325         * v850.h (PRINT_OPERAND): Delete.
11326         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11327         (PRINT_OPERAND_ADDRESS): Delete.
11328         * v850.c (print_operand_address): Rename to...
11329         (v850_print_operand_address): ...this.  Make static. Call
11330         v850_print_operand.
11331         (print_operand): Rename to...
11332         (v850_print_operand): ...this.  Make static.  Call
11333         v850_print_operand_address.
11334         (v850_print_operand_punct_valid_p): New function.
11335         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11336         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11337
11338 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11339
11340         * config/sh/sh-protos.h (print_operand): Delete.
11341         (print_operand_address): Delete.
11342         * config/sh/sh.h (PRINT_OPERAND): Delete.
11343         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11344         (PRINT_OPERAND_ADDRESS): Delete.
11345         * config/sh/sh.c (sh_print_operand_address): Make static.
11346         (sh_print_operand): Make static.  Call sh_print_operand_address
11347         and sh_print_operand.
11348         (sh_print_operand_punct_valid_p): New function.
11349         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11350         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11351
11352 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11353
11354         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
11355         (mcore_print_operand_address): Delete.
11356         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
11357         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11358         (PRINT_OPERAND_ADDRESS): Delete.
11359         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
11360         (mcore_print_operand): Make static.
11361         (mcore_print_operand_punct_valid_p): New function.
11362         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
11363         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11364
11365 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11366
11367         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
11368         (print_operand_address): Delete.
11369         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
11370         (PRINT_OPERAND_ADDRESS): Delete.
11371         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
11372         static.
11373         (m68hc11_print_operand): Make static.
11374         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11375
11376 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11377
11378         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
11379         (m32r_print_operand_address): Delete.
11380         * config/m32r/m32r.h (m32r_punct_chars): Delete.
11381         (PRINT_OPERAND): Delete.
11382         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11383         (PRINT_OPERAND_ADDRESS): Delete.
11384         * config/m32r/m32r.c (m32r_punct_chars): Make static.
11385         (m32r_print_operand_address): Make static.
11386         (m32r_print_operand): Make static.
11387         (m32r_print_operand_punct_valid_p): New function.
11388         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11389         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11390
11391 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11392
11393         * config/iq2000/iq2000-protos.h (print_operand): Delete.
11394         (print_operand_address): Delete.
11395         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
11396         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11397         (PRINT_OPERAND_ADDRESS): Delete.
11398         (iq2000_print_operand_punct): Delete.
11399         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
11400         (iq2000_print_operand_address): Make static.
11401         (iq2000_print_operand): Make static.
11402         (iq2000_print_operand_punct_valid_p): New function.
11403         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11404         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11405
11406 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11407
11408         * config/frv/frv-protos.h (frv_print_operand): Delete.
11409         (frv_print_operand_address): Delete.
11410         * config/frv/frv.h (PRINT_OPERAND): Delete.
11411         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11412         (PRINT_OPERAND_ADDRESS): Delete.
11413         * config/frv/frv.c (frv_print_operand_address): Make static.
11414         (frv_print_operand): Make static.
11415         (frv_print_operand_punct_valid_p): New function.
11416         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11417         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11418
11419 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11420
11421         * tree.h (vec_member): Declare.
11422         * tree.c (vec_member): Define.
11423
11424 2010-06-17  Richard Guenther  <rguenther@suse.de>
11425
11426         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
11427         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
11428
11429 2010-06-17  Richard Guenther  <rguenther@suse.de>
11430
11431         * tree-inline.c (declare_return_variable): Remove bogus code.
11432
11433 2010-06-17  Richard Guenther  <rguenther@suse.de>
11434
11435         * gimplify.c (gimplify_bind_expr): Always promote complex
11436         and vector variables to registers if possible.
11437
11438 2010-06-17  Richard Guenther  <rguenther@suse.de>
11439
11440         * expr.c (get_inner_reference): Use double_int for bit_offset
11441         calculation.
11442
11443 2010-06-16  DJ Delorie  <dj@redhat.com>
11444
11445         * common.opt (-fstrict-volatile-bitfields): new.
11446         * doc/invoke.texi: Document it.
11447         * fold-const.c (optimize_bit_field_compare): For volatile
11448         bitfields, use the field's type to determine the mode, not the
11449         field's size.
11450         * expr.c (expand_assignment): Likewise.
11451         (get_inner_reference): Likewise.
11452         (expand_expr_real_1): Likewise.
11453         * expmed.c (store_fixed_bit_field): Likewise.
11454         (extract_bit_field_1): Likewise.
11455         (extract_fixed_bit_field): Likewise.
11456
11457 2010-06-16  Richard Guenther  <rguenther@suse.de>
11458
11459         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
11460
11461 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
11462
11463         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
11464         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
11465         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
11466         * debug.c: Likewise.
11467         * sdbout.c: Likewise.
11468         * vmsdbgout.c: Likewise.
11469         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
11470         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
11471         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
11472         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
11473         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
11474         * dwarf2out.c (dw_fde_struct): New fields
11475         dw_fde_vms_{end,begin}_prologue.
11476         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
11477         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
11478         (dwarf2out_vms_end_prologue): New function.
11479         (dwarf2out_vms_begin_epilogue): New function.
11480         (dw_val_struct): New value dw_val_class_vms_delta.
11481         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
11482         begin_epilogue for VMS.
11483         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
11484         new static functions.
11485         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
11486         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
11487         static functions.
11488         (print_die): New case dw_val_class_vms_delta.
11489         (attr_checksum): Likewise.
11490         (same_dw_val_p: Likewise.
11491         (size_of_die): Likewise.
11492         (value_format): Likewise.
11493         (output_die): Likewise.
11494         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
11495         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
11496         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
11497         dwarf2out_cfi_begin_epilogue
11498         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
11499
11500 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11501
11502         * config/cris/cris-protos.h (cris_print_operand): Delete.
11503         (cris_print_operand_address): Delete.
11504         * config/cris/cris.h (PRINT_OPERAND): Delete.
11505         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11506         (PRINT_OPERAND_ADDRESS): Delete.
11507         * config/cris/cris.c (cris_print_operand_address): Make static.
11508         (cris_print_operand): Make static.
11509         (cris_print_operand_punct_valid_p): New function.
11510         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11511         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11512
11513 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11514
11515         * config/arm/arm-protos.h (arm_print_operand): Delete.
11516         (arm_print_operand_address): Delete.
11517         * config/arm/arm.h (PRINT_OPERAND): Delete.
11518         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11519         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
11520         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
11521         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
11522         (arm_print_operand): Make static.
11523         (arm_print_operand_punct_valid_p): New function.
11524         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11525         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11526
11527 2010-06-16  Nick Clifton  <nickc@redhat.com>
11528
11529         * config/rx/constraints.md (NEGint4): New constraint.
11530         * config/rx/rx.md (attr cc): Add set_zsc.
11531         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
11532         initialised.
11533         (cmpsf): Likewise.
11534         (call_internal): Clobber the cc0 register.
11535         (call_value_internal): Likewise.
11536         (cstoresi4): Likewise.
11537         (movsieq): Likewise.
11538         (movsine): Likewise.
11539         (addsi3): Add alternative to handle small negative constants.
11540         (sunsi3): Likewise.
11541         (addsi3): Do not set the O bit in the cc0 register.
11542         (adddi3): Likewise.
11543         (subsi3): Likewise.
11544         (subdi3): Likewise.
11545         (andsi3): Reorder alternatives to prefer shorter forms.
11546         (mulsi3): Likewise.
11547         (iorsi3): Likewise.
11548         (negsi2): Note that the cc0 flags are set.
11549         (rotlsi3): Note that only the Z and S bits are set in cc0.
11550         (lshrsi3): Likewise.
11551         (ashlsi3): Likewise.
11552         (subsf3): Use %Q for the MEM operand.
11553         (fix_truncsfsi2): Likewise.
11554         (floatsisf2): Likewise.
11555         (bitset): Remove early clobber from destination.
11556         (bitset_in_memory): Likewise.
11557         (lrintsf2): Clobber the cc0 register.
11558         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
11559         (rx_print_operand): Handle %N.
11560
11561 2010-06-16  Jan Hubicka  <jh@suse.cz>
11562
11563         * df-core.c (df_compact_blocks): Free problem_temps vector.
11564
11565 2010-06-16  Martin Jambor  <mjambor@suse.cz>
11566
11567         PR tree-optimization/43905
11568         * tree-sra.c: Include tree-inline.h.
11569         (create_abstract_origin): Removed.
11570         (modify_function): Version the call graph node instead of creating
11571         abstract origins and dealing with same_body aliases.
11572         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
11573         function is versionable.
11574         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
11575
11576 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
11577
11578         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
11579         (CHOOSE_DYNAMIC_LINKER): Update.
11580
11581 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
11582
11583         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
11584         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
11585         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
11586         *prefetch_3dnow_rex.
11587
11588 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
11589
11590         * target.h (struct asm_out):Add declare_constant_name field.
11591         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
11592         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
11593         * output.h (default_asm_declare_constant_name): Declare.
11594         (assemble_label): Update prototype.
11595         * varasm.c (assemble_constant_contents): Use
11596         targetm.asm_out.declare_constant_name target hook.
11597         (assemble_label): Add 'file' argument.
11598         (default_asm_declare_constant_name): New function.
11599         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
11600         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
11601         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
11602
11603         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
11604         * config/darwin.c (darwin_asm_declare_constant_name): New function.
11605         (machopic_output_indirection): Update assemble_label argument list.
11606         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
11607         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
11608
11609 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
11610
11611         PR middle-end/44391
11612         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
11613         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
11614
11615 2010-06-15  Richard Guenther  <rguenther@suse.de>
11616
11617         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
11618
11619 2010-06-15  Paul Brook  <paul@codesourcery.com>
11620
11621         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
11622         hard-float ABI.
11623
11624 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
11625
11626         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
11627         don't get a vector type for output.
11628
11629 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
11630
11631         PR fortran/44536
11632         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
11633         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
11634         (LANG_HOOKS_DECLS): Add it.
11635         * gimplify.c (omp_notice_variable): Call
11636         lang_hooks.decls.omp_report_decl.
11637
11638 2010-06-15  Martin Jambor  <mjambor@suse.cz>
11639
11640         PR lto/44464
11641         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
11642         on the newly dead SSA name.
11643
11644 2010-06-15  Alan Modra  <amodra@gmail.com>
11645
11646         * doc/invoke.texi: Add mcmodel to powerpc options.
11647         * configure.ac: Add HAVE_LD_LARGE_TOC test.
11648         * configure: Regenerate.
11649         * config.in: Regenerate.
11650         * config/rs6000/linux64.opt (mcmodel): New.
11651         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
11652         (TARGET_CMODEL, SET_CMODEL): Define.
11653         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
11654         select CMODEL_MEDIUM default.
11655         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
11656         (TARGET_CMODEL): Define default.
11657         * config/rs6000/rs6000.c (cmodel): New variable.
11658         (rs6000_explicit_options): Add cmodel field.
11659         (rs6000_handle_option): Handle -mcmodel.
11660         (create_TOC_reference): Add largetoc_reg param.  Generate high,
11661         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
11662         (rs6000_delegitimize_address): Recognise new toc reference rtl
11663         and minimal-toc rtl.
11664         (rs6000_legitimize_reload_address): Handle new toc references.
11665         (print_operand_address): Handle legitimate_constant_pool_address_p
11666         match before lo_sum.
11667         (rs6000_eliminate_indexed_memrefs): Tidy.
11668         (rs6000_emit_move): Tweak threshold for inlining constants.
11669         Keep rs6000_emit_allocate_stack large stack frame offsets
11670         loaded into r0 inline.
11671         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
11672         (tocrel_base, tocrel_offset): New variables.
11673         (toc_relative_expr_p): Set them here.
11674         (print_operand_address): Skip over any offset on constant pool address.
11675         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
11676         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
11677         (offsettable_ok_by_alignment): New function.
11678         (rs6000_emit_move): Address suitably aligned local symbol_refs
11679         relative to the toc pointer for -mcmodel=medium.
11680         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
11681         strict param.  Allow lo_sum version of addressing.  Verify reg
11682         used for -mminimal-toc and -mcmodel != small.  Update all callers.
11683         * config/rs6000/constraints.md: Update for above change.
11684         * config/rs6000/predicates.md: Likewise.
11685         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
11686         code.
11687         (tls_gd): Split for -mcmodel=medium/large.
11688         (tls_gd_high, tls_gd_low): New.
11689         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
11690         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
11691         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
11692         (largetoc_high, largetoc_low): New.
11693         (cmptf_internal2): Add clobber.
11694         * config/rs6000/rs6000-protos.h: Update.
11695
11696 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
11697
11698         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
11699         true if no prefetch is going to be generated for a given group.
11700         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
11701         estimate the prefetch_count.
11702         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
11703         prefetch count by considering the unroll_factor and prefetch_mod
11704         for is_loop_prefetching_profitable.
11705
11706 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
11707
11708         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
11709         anything if the argument is not a MEM.
11710
11711 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
11712
11713         PR debug/43650
11714         PR debug/44181
11715         PR debug/44247
11716         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
11717         debug stmts.
11718         (canonicalize_loop_ivs): Likewise.
11719
11720 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
11721
11722         PR debug/43656
11723         * haifa-sched.c (setup_insn_reg_pressure_info,
11724         update_register_pressure): Reject debug insns.
11725         (ready_sort): Don't setup reg pressure for debug insns.
11726         (schedule_insn): Don't update reg pressure for debug insns.
11727
11728 2010-06-14  Richard Guenther  <rguenther@suse.de>
11729
11730         * lto-streamer.c (cached_bp): Remove.
11731         (bitpack_delete): Likewise.
11732         (bitpack_create): Likewise.
11733         (bp_get_next_word): Likewise.
11734         (bp_pack_value, bp_unpack_value): Move ...
11735         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
11736         Re-implement.
11737         (struct bitpack_d): Likewise.
11738         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
11739         New inline functions.
11740         * lto-streamer-out.c (lto_output_bitpack): Remove.
11741         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
11742         (pack_value_fields): Adjust.
11743         (lto_write_tree): Likewise.
11744         (output_gimple_stmt): Likewise.
11745         (output_function): Likewise.
11746         * lto-streamer-in.c (input_gimple_stmt): Adjust.
11747         (input_function): Likewise.
11748         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
11749         (lto_input_bitpack): Remove.
11750         (lto_materialize_tree): Adjust.
11751         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
11752         * lto-cgraph.c (lto_output_edge): Adjust.
11753         (lto_output_node): Likewise.
11754         (lto_output_varpool_node): Likewise.
11755         (lto_output_ref): Likewise.
11756         (input_node): Likewise.
11757         (input_varpool_node): Likewise.
11758         (input_ref): Likewise.
11759         (input_edge): Likewise.
11760         (output_node_opt_summary): Likewise.
11761         (input_node_opt_summary): Likewise.
11762         * ipa-pure-const.c (pure_const_write_summary): Likewise.
11763         (pure_const_read_summary): Likewise.
11764         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
11765         (ipa_read_indirect_edge_info): Likewise.
11766         (ipa_write_node_info): Likewise.
11767         (ipa_read_node_info): Likewise.
11768
11769 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
11770
11771         PR target/44534
11772         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
11773         (vec_extract_lo_v16hi): Likewise.
11774         (vec_extract_lo_v32qi): Likewise.
11775
11776 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
11777
11778         PR bootstrap/44426
11779         * tree.h (build_call_expr): Don't define as vararg macro, instead
11780         add a prototype.
11781         * builtins.c (build_call_nofold): Remove.
11782         (expand_builtin_int_roundingfn, expand_builtin_pow,
11783         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
11784         expand_builtin_memset_args, expand_builtin_strcmp,
11785         expand_builtin_strncmp, expand_builtin_memory_chk): Use
11786         build_call_nofold_loc instead of build_call_nofold.
11787         (build_call_expr): New function.
11788
11789         PR tree-optimization/44508
11790         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
11791         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
11792         don't eliminate trivially dead stmts.
11793         * tree-vrp.c (vrp_finalize): Pass false as last argument
11794         to substitute_and_fold.
11795         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
11796         to substitute_and_fold.
11797         * tree-ssa-ccp.c (ccp_finalize): Likewise.
11798
11799         PR bootstrap/44509
11800         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
11801
11802 2010-06-14  Ira Rosen  <irar@il.ibm.com>
11803
11804         PR tree-optimization/44507
11805         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
11806         to build initial vector for BIT_AND_EXPR.
11807         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
11808
11809 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
11810
11811         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
11812         adjust z10prop set_attr.
11813
11814 2010-06-13  Jan Hubicka  <jh@suse.cz>
11815
11816         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
11817         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
11818         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
11819         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
11820         datastructure checks into checking asserts.
11821         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
11822         * tree-ssa-sccvn.c (VN_INFO): Likewise.
11823         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
11824         df_ref_create_structure): Likewise.
11825         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
11826         pool_free): Use gcc_checking_assert.
11827         * alias.c (get_alias_set): Likewise.
11828         * var-tracking.c (variable_htab_free, shared_hash_copy,
11829         canonicalize_values_mark, variable_merge_over_cur): Likewise.
11830         * lto-streamer.c (bp_unpack_value): Likewise.
11831
11832 2010-06-13  Richard Guenther  <rguenther@suse.de>
11833
11834         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
11835         Do not stream but initialize TYPE_CANONICAL to NULL.
11836         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
11837         * gimple.c (gimple_types_compatible_p): Disregard
11838         TYPE_STRUCTURAL_EQUALITY_P.
11839         (gimple_register_type): Use TYPE_CANONICAL as cache.
11840         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
11841         before registering common types.
11842         * config/i386/i386.c (ix86_function_arg_boundary): Do not
11843         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
11844         * tree.h (TYPE_CANONICAL): Clarify documentation.
11845
11846 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
11847
11848         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11849         LIBCALL_VALUE): Remove macros.
11850         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
11851         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11852         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11853         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
11854         (ia64_function_value): Make static. Handle receiving the function
11855         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
11856
11857 2010-06-12  Jan Hubicka  <jh@suse.cz>
11858
11859         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
11860         at correct place.
11861
11862 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
11863
11864         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
11865
11866 2010-06-12  Jan Hubicka  <jh@suse.cz>
11867
11868         * df-core.c (df_clear_bb_info): New function.
11869         (df_set_blocks): bb_info is always allocated.
11870         (df_get_bb_info): Use block_info_elt_size.
11871         (df_set_bb_info): Likewise.
11872         (df_compact_blocks): Update for new block_info.
11873         (grow_bb_info): New function.
11874         * df-problems.c (df_grow_bb_info): Move to df-core.c
11875         (df_rd_set_bb_info): Remove.
11876         (df_rd_free_bb_info): Do not free block pool.
11877         (df_rd_alloc): Do not create pool, use check for
11878         obstack presence instead of NULL pointer for new blocks.
11879         (df_rd_free): DO not free alloc pool; clear block_info.
11880         (problem_RD): Add size of block info structure.
11881         (df_lr_set_bb_info): Remove.
11882         (df_lr_free_bb_info): Do not free block pool.
11883         (df_lr_alloc): Do not create pool, use check for
11884         obstack presence instead of NULL pointer for new blocks.
11885         (df_lr_free): DO not free alloc pool; clear block_info.
11886         (problem_LR): Add size of block info structure.
11887         (df_live_set_bb_info): Remove.
11888         (df_live_free_bb_info): Do not free block pool.
11889         (df_live_alloc): Do not create pool, use check for
11890         obstack presence instead of NULL pointer for new blocks.
11891         (df_live_free): DO not free alloc pool; clear block_info.
11892         (problem_LIVE): Add size of block info structure.
11893         (problem_CHAIN): Add size of block info structure.
11894         (df_byte_lr_set_bb_info): Remove.
11895         (df_byte_lr_free_bb_info): Do not free block pool.
11896         (df_byte_lr_alloc): Do not create pool, use check for
11897         obstack presence instead of NULL pointer for new blocks.
11898         (df_byte_lr_free): DO not free alloc pool; clear block_info.
11899         (problem_BYTE_LR): Add size of block info structure.
11900         (problem_NOTE): Add size of block info structure.
11901         (df_byte_MD_set_bb_info): Remove.
11902         (df_byte_MD_free_bb_info): Do not free block pool.
11903         (df_byte_MD_alloc): Do not create pool, use check for
11904         obstack presence instead of NULL pointer for new blocks.
11905         (df_byte_MD_free): DO not free alloc pool; clear block_info.
11906         (problem_BD): Add size of block info structure.
11907         * df-scan.c (df_scan_free_internal): Free block pool.
11908         (df_scan_set_bb_info): Remove.
11909         (df_scan_free_bb_info): Check for artificial_defs instead
11910         of bb_info being non-NULL.
11911         (df_scan_alloc): DO not create df_scan_block pool.
11912         (problem_SCAN): Set size of block info.
11913         (df_bb_refs_record): Do not allocate bb_info.
11914         * df.h (df_problem): Add block_info_elt_size.
11915         (struct dataflow): Change block_info to void *.
11916         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
11917         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
11918         in-line structures.
11919
11920 2010-06-12  Jan Hubicka  <jh@suse.cz>
11921
11922         PR tree-optimize/44485
11923         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
11924         containing use of return value of noreturn function.
11925
11926 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
11927
11928         * targhooks.c (default_function_value): Don't use
11929         FUNCTION_OUTGOING_VALUE.
11930         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
11931         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
11932
11933 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
11934
11935         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
11936         Add crtfastmath.o to extra_parts.
11937         * config/mips/crtfastmath.c: New.
11938         * config/mips/linux.h (ENDFILE_SPEC): New.
11939
11940 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
11941
11942         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
11943         old_type in parameter.
11944         (gcc_type_for_value): Update call to gcc_type_for_interval.
11945         (compute_type_for_level_1): Renamed compute_type_for_level.
11946         Update call to gcc_type_for_interval.
11947
11948 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11949
11950         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
11951         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
11952
11953 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11954
11955         * opts-common.c: Include options.h.
11956         (integral_argument): Move from opts.c.
11957         (decode_cmdline_option): New.  Based on read_cmdline_option.
11958         * opts.c (integral_argument): Move to opts-common.c.
11959         (read_cmdline_option): Move most contents to
11960         decode_cmdline_option.  Use %qs in diagnostics.
11961         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
11962         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
11963         decode_cmdline_option): New.
11964
11965 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11966
11967         PR target/44481
11968         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
11969         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
11970         (partiysi2_cmp): Ditto.
11971         (*partiyhi2_cmp): Ditto.
11972         (*parityqi2_cmp): Remove.
11973
11974 2010-06-11  Jan Hubicka  <jh@suse.cz>
11975
11976         * bitmap.h (bmp_iter_next_bit): New.
11977         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
11978
11979 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
11980             Eric Botcazou  <ebotcazou@adacore.com>
11981
11982         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
11983         computed cost.
11984
11985 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11986
11987         * config/i386/i386.md (unspec): New define_c_enum.
11988         (unspecv): Ditto.
11989
11990 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
11991
11992         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
11993
11994 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
11995
11996         PR middle-end/44483
11997         * tree-if-conv.c (bb_predicate_s): New struct.
11998         (bb_predicate_p): New.
11999         (bb_has_predicate): New.
12000         (bb_predicate): New.
12001         (set_bb_predicate): New.
12002         (bb_predicate_gimplified_stmts): New.
12003         (set_bb_predicate_gimplified_stmts): New.
12004         (add_bb_predicate_gimplified_stmts): New.
12005         (init_bb_predicate): New.
12006         (free_bb_predicate): New.
12007         (is_predicated): Use bb_predicate.
12008         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
12009         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
12010         before processing their successors.
12011         (clean_predicate_lists): Removed.
12012         (find_phi_replacement_condition): Use bb_predicate.
12013         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
12014         computations.
12015         (insert_gimplified_predicates): New.
12016         (combine_blocks): Call insert_gimplified_predicates.
12017         (tree_if_conversion): Call free_bb_predicate instead of
12018         clean_predicate_lists.
12019
12020 2010-10-11  Paul Brook  <paul@codesourcery.com>
12021
12022         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
12023         * config/arm/arm.c (all_architectures): Change v7e-m default to
12024         cortexm4.
12025         * config/arm/arm-cores.def: Add cortex-m4.
12026         * config/arm/arm-tune.md: Regenerate.
12027
12028 2010-06-11  Jan Hubicka  <jh@suse.cz>
12029
12030         * ipa-pure-const.c (special_builtlin_state): New function.
12031         (check_call): Use it instead of special casign BUILT_IN_RETURN.
12032         (propagate_pure_const): Use it.
12033
12034 2010-06-11  Jan Hubicka  <jh@suse.cz>
12035
12036         * df-problems.c (df_live_scratch): Convert to bitmap_head.
12037         (df_live_alloc): Initialize df_live_scratch when initializing
12038         problem_data.
12039         (df_live_transfer_function): Update uses of df_live_scratch.
12040         (df_live_free): Free problem_data; clear df_live_scratch before
12041         releasing the obstack.
12042         (df_md_free): Free problem data.
12043
12044 2010-06-11  Jan Hubicka  <jh@suse.cz>
12045
12046         * doc/invoke.texi (Wsuggest-attribute): Document.
12047         (Wmissing-noreturn): Remove.
12048         * ipa-pure-const.c (warn_function_noreturn): New function.
12049         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
12050         warn_missing_noreturn.
12051         * common.opt (Wsuggest-attribute=noreturn): New.
12052         * tree-flow.h (warn_function_noreturn): Declare.
12053         * tree-cfg.c (execute_warn_function_noreturn): Use
12054         warn_function_noreturn.
12055         (gate_warn_function_noreturn): New.
12056         (pass_warn_function_noreturn): Update.
12057
12058 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12059
12060         * c-typeck.c (handle_warn_cast_qual): Add loc
12061         parameter. Improve warning message.
12062         (build_c_cast): Pass location to handle_warn_cast_qual.
12063
12064 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12065
12066         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
12067         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
12068         insn mnemonic.
12069         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
12070
12071 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
12072
12073         Fix bootstap on mips
12074         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
12075         be naming typedefs.
12076
12077 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
12078
12079         * system.h (helper_const_non_const_cast): New inline for
12080         gcc version <= 4.0.
12081         (CONST_CAST2): For gcc version <= 4.0 use
12082         new helper to do const/non-const casting.
12083
12084 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12085
12086         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
12087         * Makefile.in (OBJS-common): Include insn-enums.o.
12088         (insn-enums.o): New rule.
12089         (simple_generated_c): Add insn-enums.c.
12090         (build/genenums.o): New rule.
12091         (genprogmd): Add "enums".
12092         * genconstants.c (print_enum_type): Declare a C string array
12093         for each enum.
12094         * genenums.c: New file.
12095         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
12096         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
12097         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
12098
12099 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12100
12101         * doc/md.texi (define_enum_attr): Document.
12102         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
12103         * read-md.h (lookup_enum_type): Declare.
12104         * read-md.c (lookup_enum_type): New function.
12105         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
12106         * genattrtab.c (attr_desc): Add an enum_name field.
12107         (evaluate_eq_attr): Take the associated attribute as argument.
12108         Get the enum prefix from the enum_name field, if defined.
12109         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
12110         (simplify_test_exp): Pass attr to evaluate_eq_attr.
12111         (add_attr_value): New function, split out from...
12112         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
12113         (write_test_expr): Pass attr to evaluate_eq_attr.
12114         (write_attr_get): Use the enum_name as the enum tag, if defined.
12115         (write_attr_valueq): Use the enum_name as a prefix, if defined.
12116         (find_attr): Initialize enum_name.
12117         (main): Handle DEFINE_ENUM_ATTR.
12118         * gensupport.c (process_rtx): Likewise.
12119         * config/mips/mips.h (mips_tune_attr): Delete.
12120         * config/mips/mips.md (cpu): Use define_attr_enum.
12121
12122 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12123
12124         * doc/md.texi (define_c_enum, define_enum): Document.
12125         * read-md.h (md_constant): Add a parent_enum field.
12126         (enum_value, enum_type): New structures.
12127         (upcase_string, traverse_enum_types): Declare.
12128         * read-md.c (enum_types): New variable.
12129         (upcase_string, add_constant): New functions.
12130         (handle_constants): Don't create the hash table here.
12131         Use add_constant.
12132         (traverse_md_constants): Don't check for a null md_constants.
12133         (decimal_string, handle_enum, traverse_enum_types): New functions.
12134         (read_md_files): Initialize md_constants and md_enums.
12135         * genconstants.c (print_md_constant): Ignore info argument.
12136         Only print constants that belong to no enum.
12137         (print_enum_type): New function.
12138         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
12139         for each defined enum type.
12140         * config/mips/mips.md (processor): New define_enum.
12141         (unspec): New define_c_enum.
12142         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
12143         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
12144         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
12145         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
12146         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
12147         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
12148         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
12149         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
12150         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
12151         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
12152         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
12153         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
12154         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
12155         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
12156         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
12157         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
12158         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
12159         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
12160         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
12161         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
12162         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
12163         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
12164         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12165         (UNSPEC_RDDSP): Move to mips-dsp.md.
12166         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
12167         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
12168         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
12169         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
12170         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
12171         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
12172         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
12173         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
12174         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
12175         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
12176         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
12177         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
12178         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
12179         Moved to mips-dspr2.md.
12180         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
12181         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
12182         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
12183         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
12184         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
12185         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
12186         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12187         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12188         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12189         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12190         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12191         UNSPEC_LOONGSON_PSADBH)
12192         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12193         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12194         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
12195         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12196         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12197         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12198         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
12199         (cpu): Update comment.
12200         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
12201         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
12202         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
12203         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
12204         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
12205         UNSPEC_LOONGSON_PCMPEQ)
12206         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
12207         UNSPEC_LOONGSON_PINSR_0)
12208         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12209         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12210         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12211         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12212         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12213         UNSPEC_LOONGSON_PSADBH)
12214         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12215         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12216         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
12217         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12218         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12219         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12220         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
12221         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
12222         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
12223         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
12224         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
12225         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
12226         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
12227         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
12228         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
12229         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
12230         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
12231         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
12232         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
12233         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
12234         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
12235         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
12236         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
12237         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
12238         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
12239         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
12240         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12241         (UNSPEC_RDDSP): Moved from mips.md.
12242         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
12243         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
12244         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
12245         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
12246         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
12247         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
12248         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
12249         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
12250         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
12251         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
12252         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
12253         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
12254         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
12255         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
12256         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
12257         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
12258         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
12259         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
12260         (UNSPEC_SCC): Moved from mips.md.
12261         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
12262         "processor_type" to "processor".
12263         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
12264         * config/mips/mips.h (processor_type): Delete.
12265         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
12266         "processor_type" to "processor".
12267
12268 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12269
12270         * configure.ac (tm_include_list): Add insn-constants.h.
12271         * configure: Regenerate.
12272         * Makefile.in (GTM_H): Move insn-constants.h here from...
12273         (TM_H): ...here.
12274         * mkconfig.sh: Remove special handling for insn-constants.h.
12275
12276 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12277
12278         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
12279         (BUILD_MD): ...this new variable.
12280         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
12281         that include the old contents of simple_generated_h and
12282         simple_generated_c.
12283         (simple_generated_h, simple_generated_c): Include them.  Add
12284         insn-constants.h.
12285         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
12286         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
12287         Remove these dependencies from the main rule and include
12288         insn-conditions.md in the command line only if it appears
12289         in the dependency list.
12290         (insn-constants.h, s-constants): Delete.
12291         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
12292         or gensupport.h.
12293         (build/genmddeps.o): Likewise.
12294         (genprogrtl): New variable that contains everything from genprogmd
12295         except mddeps and constants.
12296         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
12297         depend on $(BUILD_MD)
12298         (genprog): New variable.  Make these programs depend on
12299         $(BUILD_ERRORS).
12300         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
12301         (main): Use read_md_files instead of init_rtx_reader_args.
12302         * genconstants.c: As for genmddeps.c.
12303         * read-md.h (read_skip_construct): Declare.
12304         * read-md.c (read_skip_construct): New function.
12305         (handle_file): Allow a null handle_directive, skipping the
12306         construct if so.
12307         (parse_include): Update the comment accordingly.
12308
12309 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12310
12311         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
12312         * genmddeps.c: Include read-md.h.
12313         (main): Call init_rtx_reader_args instead of init_md_reader_args.
12314         * genattr.c (main): Likewise.
12315         * genattrtab.c (main): Likewise.
12316         * genautomata.c (main): Likewise.
12317         * gencodes.c (main): Likewise.
12318         * genconditions.c (main): Likewise.
12319         * genconfig.c (main): Likewise.
12320         * genconstants.c (main): Likewise.
12321         * genemit.c (main): Likewise.
12322         * genextract.c (main): Likewise.
12323         * genflags.c (main): Likewise.
12324         * genopinit.c (main): Likewise.
12325         * genoutput.c (main): Likewise.
12326         * genpeep.c (main): Likewise.
12327         * genrecog.c (main): Likewise.
12328         * genpreds.c (main): Likewise.
12329         * gensupport.h (in_fname): Move to read-md.h.
12330         (init_md_reader_args_cb): Rename to...
12331         (init_rtx_reader_args_cb): ...this and return a bool.
12332         (init_md_reader_args): Rename to...
12333         (init_rtx_reader_args): ...this and return a bool.
12334         (include_callback): Move to read-md.h.
12335         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
12336         (file_name_list, first_dir_md_include): Move to read-md.c
12337         (first_bracket_include): Delete unused variable.
12338         (last_dir_md_include): Move to read-md.c.
12339         (process_include): Delete, moving code to read-md.c:handle_include.
12340         (process_rtx): Don't handle INCLUDE.
12341         (save_string): Delete.
12342         (rtx_handle_directive): New function.
12343         (init_md_reader_args_cb): Rename to...
12344         (init_rtx_reader_args_cb): ...this and return a boolean success value.
12345         Use read_md_args.
12346         (init_md_reader_args): Rename to...
12347         (init_rtx_reader_args): ...this and return a boolean success value.
12348         * rtl.def (INCLUDE): Delete.
12349         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
12350         argument.
12351         * read-rtl.c (read_conditions): Don't gobble ')' here.
12352         (read_mapping): Likewise.
12353         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
12354         Handle top-level non-rtx constructs here rather than in read_rtx_1.
12355         Store the whole queue in *X.  Remove call to init_md_reader.
12356         (read_rtx_1): Rename to...
12357         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
12358         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
12359         here.
12360         (read_nested_rtx): New function.  Handle (nil) here rather than
12361         in read_rtx_code.
12362         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
12363         gobble ')' here.
12364         * read-md.h (directive_handler_t): New type.
12365         (in_fname, include_callback): Moved from read-md.h.
12366         (read_constants, init_md_reader): Delete.
12367         (read_md_files): Declare.
12368         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
12369         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
12370         from gensupport.c.
12371         (read_constants): Rename to...
12372         (handle_constants): ...this.  Don't gobble ')' here.
12373         (handle_include, handle_file, handle_toplevel_file)
12374         (parse_include): New functions, mostly taken from gensupport.c.
12375         (init_md_reader): Subsume into...
12376         (read_md_files): ...this new function.
12377
12378 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12379
12380         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
12381         (unread_char): Decrement read_md_lineno after putting back '\n'.
12382         * read-md.c (fatal_with_file_and_line): Push back any characters
12383         that we decide not to add to the context.
12384         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
12385         fatal_expected_char in cases where '/' ends a line (for example).
12386         (read_name): Don't increment read_md_lineno here.
12387         (read_escape): Likewise.
12388         (read_quoted_string): Likewise.
12389         (read_braced_string): Likewise.
12390
12391 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12392
12393         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
12394         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
12395         * genconstants.c: Include read-md.h.
12396         * read-rtl.c (md_constants): Move to read-md.c.
12397         (md_name): Move to read-md.h.
12398         (initialize_iterators): Use leading_string_hash instead of def_hash
12399         and leading_string_eq_p instead of def_name_eq_p.
12400         (read_name): Move to read-md.c.
12401         (def_hash, def_name_eq_p): Delete.
12402         (read_constants, traverse_md_constants): Move to read-md.c.
12403         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
12404         * read-md.h: Include hashtab.h.
12405         (md_name): Moved from read-rtl.c.
12406         (md_constant): Moved from read-md.h.
12407         (leading_string_hash, leading_string_eq_p, read_name)
12408         (read_constants, traverse_md_constants): Declare.
12409         * read-md.c (md_constants): Moved from read-rtl.c.
12410         (leading_string_hash, leading_string_eq_p): New functions.
12411         (read_name, read_constants, traverse_md_constants): Moved from
12412         read-rtl.c.
12413
12414 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12415
12416         * read-rtl.c (md_name): New structure.
12417         (read_name): Take an md_name instead of a buffer pointer.
12418         Use the "string" field instead of strcpy when expanding constants.
12419         (read_constants): Remove the tmp_char argument.  Update the calls
12420         to read_name, using two local name buffers instead of the tmp_char
12421         argument.  Merge the constant-creation code.
12422         (read_conditions): Remove the tmp_char argument.  Update the calls
12423         to read_name, using a local name buffer instead of the tmp_char
12424         argument.
12425         (read_mapping): Replace tmp_char variable with a local name buffer.
12426         Update the calls to read_name.
12427         (read_rtx_1): Likewise.  Update the calls to read_constants and
12428         read_conditions.
12429
12430 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12431
12432         * Makefile.in (build/read-md.o): Depend on errors.h.
12433         * read-md.h (error_with_line): Declare.
12434         * read-md.c: Include errors.h.
12435         (message_with_line_1): New function, extracted from...
12436         (message_with_line): ...here.
12437         (error_with_line): New function.
12438         * genattrtab.c: If a call to message_with_line is followed by
12439         "have_error = 1;", replace both statements with a call to
12440         error_with_line.
12441         * genoutput.c: Likewise.
12442         * genpreds.c: Likewise.
12443         * genrecog.c: If a call to message_with_line is followed by
12444         "error_count++;", replace both statements with a call to
12445         error_with_line.
12446         (errorcount): Delete.
12447         (main): Don't check it.
12448         * gensupport.c: If a call to message_with_line is followed by
12449         "errors = 1;", replace both statements with a call to error_with_line.
12450         (errors): Delete.
12451         (process_define_cond_exec): Check have_error instead of errors.
12452         (init_md_reader_args_cb): Likewise.  Don't set errors.
12453
12454 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12455
12456         * read-md.h (read_md_file): Declare.
12457         (read_char, unread_char): New functions.
12458         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12459         (read_quoted_string, read_string): Remove FILE * argument.
12460         * read-md.c (read_md_file): New variable.
12461         (read_md_filename, read_md_lineno): Update comments and remove
12462         unnecessary initialization.
12463         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12464         (read_escape, read_quoted_string, read_braced_string, read_string):
12465         Remove FILE * argument.  Update calls accordingly, using read_char
12466         and unread_char instead of getc and ungetc.
12467         * rtl.h (read_rtx): Remove FILE * argument.
12468         * read-rtl.c (iterator_group): Remove FILE * argument from
12469         "find_builtin".
12470         (iterator_traverse_data): Remove "infile" field.
12471         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
12472         (add_mapping, read_name, read_constants, read_conditions)
12473         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
12474         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
12475         Remove file arguments from all calls, using read_char and unread_char
12476         instead of getc and ungetc.
12477         * gensupport.c (process_include): Preserve read_md_file around
12478         the include.  Set read_md_file to the handle of the included file.
12479         Update call to read_rtx.
12480         (init_md_reader_args_cb): Set read_md_file to the handle of the file
12481         and remove local FILE *.  Update calls to read_rtx.
12482
12483 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12484
12485         * read-md.h (read_rtx_lineno): Rename to...
12486         (read_md_lineno): ...this.
12487         (read_rtx_filename): Rename to...
12488         (read_md_filename): ...this.
12489         (copy_rtx_ptr_loc): Rename to...
12490         (copy_md_ptr_loc): ...this.
12491         (print_rtx_ptr_loc): Rename to...
12492         (print_md_ptr_loc): ...this.
12493         * read-md.c: Likewise.  Update references after renaming.
12494         (string_obstack): Replace RTL with MD in comment.
12495         (set_rtx_ptr_loc): Rename to...
12496         (set_md_ptr_loc): ...this.
12497         (get_rtx_ptr_loc): Rename to...
12498         (get_md_ptr_loc): ...this.
12499         * genconditions.c: Update references after renaming.
12500         * genemit.c: Likewise.
12501         * genoutput.c: Likewise.
12502         * genpreds.c: Likewise.
12503         * gensupport.c: Likewise.
12504         * read-rtl.c: Likewise.
12505
12506 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12507
12508         * Makefile.in (READ_MD_H): New variable.
12509         (BUILD_RTL): Add build/read-md.o.
12510         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
12511         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
12512         (build/genattrtab.o, build/genconditions.o build/genemit.o)
12513         (build/genextract.o, build/genflags.o, build/genoutput.o)
12514         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
12515         (build/read-md.o): New rule.
12516         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
12517         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
12518         * coretypes.h: ...here.
12519         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
12520         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
12521         * genattr.c: Include read-md.h.
12522         * genattrtab.c: Likewise.
12523         * genconditions.c: Likewise.
12524         * genemit.c: Likewise.
12525         * genextract.c: Likewise.
12526         * genflags.c: Likewise.
12527         * genoutput.c: Likewise.
12528         * genpreds.c: Likewise.
12529         * genrecog.c: Likewise.
12530         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
12531         (join_c_conditions, print_c_condition, read_rtx_filename)
12532         (read_rtx_lineno): Move to read-md.h.
12533         * read-rtl.c: Include read-md.h.
12534         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
12535         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
12536         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
12537         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
12538         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
12539         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
12540         (read_braced_string, read_string): Move to read-md.c.
12541         (read_rtx): Move some initialization to init_md_reader and call
12542         init_md_reader here.
12543         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
12544         Move to read-md.h.
12545         * gensupport.c: Include read-md.h.
12546         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
12547         * read-md.h, read-md.c: New files.
12548
12549 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
12550
12551         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12552         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12553         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
12554         * config/moxie/moxie.c (moxie_function_value): Make static.
12555         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
12556         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12557
12558 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12559
12560         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
12561         * dbgcnt.def (tree_sra): New counter.
12562         * tree-sra.c: Include dbgcnt.h.
12563         (gate_intra_sra): Check tree_sra debug counter.
12564
12565 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12566
12567         PR tree-optimization/44258
12568         * tree-sra.c (build_access_subtree): Return false iff there is a
12569         partial overlap.
12570         (build_access_trees): Likewise.
12571         (analyze_all_variable_accesses): Disqualify candidates if
12572         build_access_trees returns true for them.
12573
12574 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
12575
12576         PR debug/41371
12577         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
12578         tail-recurse into canonical node.  Fast-forward over
12579         non-canonical VALUEs.
12580
12581 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
12582
12583         PR boostrap/44470
12584         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
12585         (*addsi_1_zext) <TYPE_LEA>: Likewise.
12586         (add lea splitter): Likewise.
12587         (add_zext lea splitter): Likewise.
12588
12589 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
12590
12591         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
12592
12593 2010-06-10  Jan Hubicka  <jh@suse.cz>
12594
12595         * df-problems.c (df_live_problem_data): Add live_bitmaps.
12596         (df_live_alloc): Initialize problem data and live_osbtacks.
12597         (df_live_finalize): Remove obstack, problem data; do not
12598         clear all bitmaps.
12599         (df_live_top_dump, df_live_bottom_dump): Do not dump old
12600         data when not allocated.
12601         (df_live_verify_solution_start): Do not allocate problem data.
12602         (df_live_verify_solution_end): Check if out is allocated.
12603         (struct df_md_problem_data): New structure.
12604         (df_md_alloc): Allocate problem data.
12605         (df_md_free): Free problem data; do not clear bitmaps.
12606
12607 2010-06-10  Jan Beulich  <jbeulich@novell.com>
12608
12609         PR bootstrap/37304
12610         * configure.ac: Replace $() with ${} when intending to expand
12611         variables rather than invoking commands.
12612         * configure: Re-generate.
12613
12614 2010-06-10  Jan Hubicka  <jh@suse.cz>
12615
12616         PR rtl-optimization/44460
12617         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
12618         TYPE_NEEDS_CONSTRUCTING sanity check.
12619
12620 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
12621
12622         * doc/include/fdl.texi: Move to GFDL version 1.3.
12623
12624         * doc/cpp.texi: Move to GFDL version 1.3.
12625         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
12626         * doc/gccint.texi: Move to GFDL version 1.3.
12627         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
12628         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
12629         * doc/invoke.texi: Move to GFDL version 1.3.
12630
12631 2010-06-09  Jan Hubicka  <jh@suse.cz>
12632
12633         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
12634         Break out from ...
12635         (propagate) ... here; swap the order.
12636
12637 2010-06-09  Jan Hubicka  <jh@suse.cz>
12638
12639         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
12640         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
12641         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
12642         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
12643
12644 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
12645
12646         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
12647         Do not the gather memory reference in the outer loop if the step
12648         is not a constant.
12649
12650 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
12651
12652         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
12653         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
12654         8 to 4.  Minor change of the related comments.
12655
12656 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12657
12658         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
12659         the scev analysis when the variable is not used outside the loop
12660         in a close phi node: call compute_overall_effect_of_inner_loop.
12661
12662 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12663
12664         * graphite-sese-to-poly.c (single_pred_cond): Renamed
12665         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
12666         (build_sese_conditions_before): Renamed call to single_pred_cond.
12667         (build_sese_conditions_after): Same.
12668
12669 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12670
12671         * graphite-poly.h: Fix comments and indentation.
12672         * graphite-sese-to-poly.c: Same.
12673         (build_sese_conditions_before): Compute stmt and gbb only when needed.
12674         * tree-chrec.c: Fix comments and indentation.
12675         (tree-ssa-loop-niter.c): Same.
12676
12677 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
12678
12679         PR rtl-optimization/42461
12680         * dce.c (deletable_insn_p): Return true for const or pure calls again.
12681         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
12682
12683 2010-06-09  Jan Hubicka  <jh@suse.cz>
12684
12685         * bitmap.c (bitmap_and): Walk array forward.
12686         (bitmap_and_compl_into): Likewise.
12687         (bitmap_xor): Likewise.
12688         (bitmap_xor_into):  Likewise.
12689         (bitmap_equal_p): Likewise.
12690         (bitmap_intersect_p): Likewise.
12691         (bitmap_intersect_compl_p): Likewise.
12692         (bitmap_ior_and_into): Likewise.
12693         (bitmap_elt_copy): Likewise.
12694         (bitmap_and_compl): Likewise.
12695         (bitmap_elt_ior): Likewise.
12696
12697 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
12698
12699         * opts-common.c (prune_options): Ensure replacement argv array
12700         is correctly terminated by a NULL entry.
12701
12702 2010-06-09  Jan Hubicka  <jh@suse.cz>
12703
12704         * cgraph.h (varpool_first_static_initializer,
12705         varpool_next_static_initializer): Make checking only when
12706         checking enabled.
12707         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
12708         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
12709         gcc_assert to gcc_checking_assert.
12710         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
12711         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
12712         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
12713         op_iter_init_phiuse, op_iter_init_phidef,
12714         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
12715         gcc_checking_assert.
12716         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
12717         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
12718         partition_is_global, live_on_entry, live_on_exit,
12719         live_merge_and_clear): Likewise.
12720         * system.h (gcc_checking_assert): New macro.
12721         * gimple.h (set_bb_seq): Use gcc_checking_assert.
12722
12723 2010-06-09  Jason Merrill  <jason@redhat.com>
12724
12725         * Makefile.in (TAGS): Collect tags info from c-family.
12726
12727 2010-06-09  Jan Hubicka  <jh@suse.cz>
12728
12729         * gimple.h (gcc_gimple_checking_assert): New macro.
12730         (gimple_set_def_ops, gimple_set_use_ops,
12731         gimple_set_vuse, gimple_set_vdef,
12732         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
12733         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
12734         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
12735         gimple_asm_output_op, gimple_asm_output_op_ptr,
12736         gimple_asm_set_output_op, gimple_asm_clobber_op,
12737         gimple_asm_set_clobber_op, gimple_asm_label_op,
12738         gimple_asm_set_label_op, gimple_try_set_kind,
12739         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
12740         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
12741         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
12742         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
12743         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
12744         gimple_omp_for_set_initial, gimple_omp_for_final,
12745         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
12746         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
12747         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
12748         conditional with ENABLE_GIMPLE_CHECKING.
12749         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
12750
12751 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
12752
12753         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
12754         (get_computation_cost_at): Use it.
12755         (determine_use_iv_cost_condition): Likewise.
12756         (determine_iv_cost): Likewise.
12757
12758 2010-06-09  Richard Guenther  <rguenther@suse.de>
12759
12760         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
12761         replace constants.
12762
12763 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
12764
12765         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
12766
12767 2010-06-09  Martin Jambor  <mjambor@suse.cz>
12768
12769         PR tree-optimization/44423
12770         * tree-sra.c (dump_access): Dump also grp_assignment_read.
12771         (analyze_access_subtree): Pass negative allow_replacements to children
12772         if the current type is scalar.
12773
12774 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
12775
12776         PR testsuite/42843
12777         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
12778         * doc/plugins.texi (Plugin license check): Update information
12779         on type of plugin_is_GPL_compatible.
12780         * Makefile.in (PLUGINCC): Define as $(COMPILER).
12781         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
12782
12783 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
12784
12785         * config/arm/arm.c (thumb2_reorg): New function.
12786         (arm_reorg): Call it.
12787         * config/arm/thumb2.md (define_peephole2 for flag clobbering
12788         arithmetic operations): Delete.
12789
12790 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
12791
12792         PR target/44067
12793         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
12794         e500v2 target.
12795
12796 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
12797
12798         PR plugins/44459
12799         * gcc-plugin.h: Encapsulate all declarations in extern "C".
12800
12801 2010-06-08  Jan Hubicka  <jh@suse.cz>
12802
12803         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
12804         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
12805
12806 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
12807
12808         PR tree-optimization/39874
12809         PR middle-end/28685
12810         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
12811         Declare.
12812         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
12813         same_bool_result_p): New.
12814         (and_var_with_comparison, and_var_with_comparison_1,
12815         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
12816         (or_var_with_comparison, or_var_with_comparison_1,
12817         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
12818         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
12819         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
12820         of combine_comparisons.
12821         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
12822
12823 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
12824
12825         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12826         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12827         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
12828         pdp11_function_value_regno_p): New functions.
12829         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12830         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12831
12832 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
12833
12834         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
12835         Thumb-2 in the MINUS case.
12836
12837 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12838
12839         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
12840
12841         * doc/gty.texi (GTY Options): Document typed GC allocation and
12842         variable_size GTY option.
12843
12844         * ggc-internal.h: New.
12845
12846         * ggc.h: Update copyright year.
12847         (digit_string): Move to stringpool.c.
12848         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
12849         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
12850         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
12851         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
12852         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
12853         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
12854         (ggc_force_collect, ggc_get_size, ggc_statistics)
12855         (ggc_print_common_statistics): Move to ggc-internal.h.
12856         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
12857         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
12858         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
12859         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
12860         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
12861         (ggc_alloc_zone_pass_stat): Remove.
12862         (ggc_internal_alloc_stat, ggc_internal_alloc)
12863         (ggc_internal_cleared_alloc_stat): New.
12864         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
12865         (ggc_internal_vec_alloc_stat)
12866         (ggc_internal_cleared_vec_alloc_stat)
12867         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
12868         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
12869         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
12870         (ggc_cleared_alloc_ptr_array_two_args): New.
12871         (htab_create_ggc, splay_tree_new_ggc): Redefine.
12872         (ggc_splay_alloc): Change the type of the first argument to
12873         enum gt_types_enum.
12874         (ggc_alloc_string): Make macro.
12875         (ggc_alloc_string_stat): New.
12876         (ggc_strdup): Redefine.
12877         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
12878         (ggc_alloc_rtvec_sized): New.
12879         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
12880         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
12881         (ggc_internal_cleared_alloc_zone_stat)
12882         (ggc_internal_zone_alloc_stat)
12883         (ggc_internal_zone_cleared_alloc_stat)
12884         (ggc_internal_zone_vec_alloc_stat)
12885         (ggc_alloc_zone_rtx_def_stat)
12886         (ggc_alloc_zone_tree_node_stat)
12887         (ggc_alloc_zone_cleared_tree_node_stat)
12888         (ggc_alloc_cleared_gimple_statement_d_stat): New.
12889
12890         * ggc-common.c: Include ggc-internal.h.
12891         (ggc_internal_cleared_alloc_stat): Rename from
12892         ggc_alloc_cleared_stat.
12893         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
12894         (ggc_calloc): Remove.
12895         (ggc_cleared_alloc_htab_ignore_args): New.
12896         (ggc_cleared_alloc_ptr_array_two_args): New.
12897         (ggc_splay_alloc): Add obj_type parameter.
12898         (init_ggc_heuristics): Formatting fixes.
12899
12900         * ggc-none.c: Update copyright year.
12901         (ggc_alloc_stat): Rename to ggc_alloc_stat.
12902         (ggc_alloc_cleared_stat): Rename to
12903         ggc_internal_cleared_alloc_stat.
12904         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
12905
12906         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
12907         Remove references to ggc_alloc in comments.
12908         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
12909         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
12910         (new_ggc_zone, destroy_ggc_zone): Remove.
12911         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
12912
12913         * ggc-zone.c: Include ggc-internal.h.  Remove references to
12914         ggc_alloc in comments.
12915         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
12916         (ggc_internal_alloc_zone_pass_stat): New.
12917         (ggc_internal_cleared_alloc_zone_stat): New.
12918         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
12919         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
12920         (new_ggc_zone, destroy_ggc_zone): Remove.
12921
12922         * stringpool.c: Update copyright year.  Include ggc-internal.h
12923         (digit_vector): Make static.
12924         (digit_string): Moved from ggc.h.
12925         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
12926         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
12927
12928         * Makefile.in (GGC_INTERNAL_H): New.
12929         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
12930         $(GGC_INTERNAL_H) to dependencies.
12931
12932         * gentype.c: Update copyright year.
12933         (walk_type): Accept variable_size GTY option.
12934         (USED_BY_TYPED_GC_P): New macro.
12935         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
12936         whitespace at the end of strings.
12937         (get_type_specifier, variable_size_p): New functions.
12938         (alloc_quantity, alloc_zone): New enums.
12939         (write_typed_alloc_def): New function.
12940         (write_typed_struct_alloc_def): Likewise.
12941         (write_typed_typed_typedef_alloc_def): Likewise.
12942         (write_typed_alloc_defns): Likewise.
12943         (output_typename, write_splay_tree_allocator_def): Likewise.
12944         (write_splay_tree_allocators): Likewise.
12945         (main): Call write_typed_alloc_defns and
12946         write_splay_tree_allocators.
12947
12948         * lto-streamer.h (lto_file_decl_data_ptr): New.
12949
12950         * passes.c (order): Define using cgraph_node_ptr.
12951
12952         * strinpool.c (struct string_pool_data): Declare nested_ptr using
12953         ht_identifier_ptr.
12954
12955         * gimple.h (union gimple_statement_d): Likewise.
12956
12957         * rtl.h (struct rtx_def): Likewise.
12958         (struct rtvec_def): Likewise.
12959
12960         * tree.h (union tree_node): Likewise.
12961
12962         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
12963
12964         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
12965
12966         * tree-scalar-evolution.c (scev_initialize): Likewise.
12967
12968         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
12969
12970         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12971
12972         * omp-low.c (lower_omp_critical): Likewise.
12973
12974         * bitmap.h (struct bitmap_head_def): Update comment to not
12975         reference ggc_alloc.
12976
12977         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
12978
12979         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
12980
12981         * ipa-prop.c (duplicate_ggc_array): Rename to
12982         duplicate_ipa_jump_func_array.  Use typed GC allocation.
12983         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
12984
12985         * gimple.c (gimple_alloc_stat): Use
12986         ggc_alloc_cleared_gimple_statement_d_stat.
12987
12988         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
12989
12990         * tree.c (make_node_stat): Use
12991         ggc_alloc_zone_cleared_tree_node_stat.
12992         (make_tree_vec_stat): Likewise.
12993         (build_vl_exp_stat): Likewise.
12994         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
12995         (make_tree_binfo_stat): Likewise.
12996         (tree_cons_stat): Likewise.
12997
12998         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
12999         (shallow_copy_rtx_stat): Likewise.
13000         (make_node_stat): Likewise.
13001
13002         * lto-symtab.c: Fix comment.
13003
13004         * tree-cfg.c (create_bb): Update comment to not reference
13005         ggc_alloc_cleared.
13006         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
13007
13008         * varpool.c (varpool_node): Use typed GC allocation.
13009         (varpool_extra_name_alias): Likewise.
13010
13011         * varasm.c (emutls_decl): Likewise.
13012         (get_unnamed_section): Likewise.
13013         (get_noswitch_section): Likewise.
13014         (get_section): Likewise.
13015         (get_block_for_section): Likewise.
13016         (build_constant_desc): Likewise.
13017         (create_constant_pool): Likewise.
13018         (force_const_mem): Likewise.
13019
13020         * tree.c (build_vl_exp_stat): Likewise.
13021         (build_real): Likewise.
13022         (build_string): Likewise.
13023         (decl_debug_expr_insert): Likewise.
13024         (decl_value_expr_insert): Likewise.
13025         (type_hash_add): Likewise.
13026         (build_omp_clause): Likewise.
13027
13028         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
13029
13030         * tree-ssa.c (init_tree_ssa): Likewise.
13031
13032         * tree-ssa-structalias.c (heapvar_insert): Likewise.
13033
13034         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
13035
13036         * tree-ssa-loop-niter.c (record_estimate): Likewise.
13037
13038         * tree-ssa-alias.c (get_ptr_info): Likewise.
13039
13040         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
13041
13042         * tree-phinodes.c (allocate_phi_node): Likewise.
13043
13044         * tree-iterator.c (tsi_link_before): Likewise.
13045         (tsi_link_after): Likewise.
13046
13047         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
13048
13049         * tree-dfa.c (create_var_ann): Likewise.
13050
13051         * tree-cfg.c (create_bb): Likewise.
13052
13053         * toplev.c (alloc_for_identifier_to_locale): Likewise.
13054         (general_init): Likewise.
13055
13056         * stringpool.c (stringpool_ggc_alloc): Likewise.
13057         (gt_pch_save_stringpool): Likewise.
13058
13059         * sese.c (if_region_set_false_region): Likewise.
13060
13061         * passes.c (do_per_function_toporder): Likewise.
13062
13063         * optabs.c (set_optab_libfunc): Likewise.
13064         (set_conv_libfunc): Likewise.
13065
13066         * lto-symtab.c (lto_symtab_register_decl): Likewise.
13067
13068         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
13069         (input_eh_region): Likewise.
13070         (input_eh_lp): Likewise.
13071         (make_new_block): Likewise.
13072         (unpack_ts_real_cst_value_fields): Likewise.
13073
13074         * lto-section-in.c (lto_new_in_decl_state): Likewise.
13075
13076         * lto-cgraph.c (input_node_opt_summary): Likewise.
13077
13078         * loop-init.c (loop_optimizer_init): Likewise.
13079
13080         * lambda.h (lambda_vector_new): Likewise.
13081
13082         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13083
13084         * ira.c (update_equiv_regs): Likewise.
13085
13086         * ipa.c (cgraph_node_set_new): Likewise.
13087         (cgraph_node_set_add): Likewise.
13088         (varpool_node_set_new): Likewise.
13089         (varpool_node_set_add): Likewise.
13090
13091         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
13092         (duplicate_ipa_jump_func_array): Likewise.
13093         (ipa_read_node_info): Likewise.
13094
13095         * ipa-cp.c (ipcp_create_replace_map): Likewise.
13096
13097         * integrate.c (get_hard_reg_initial_val): Likewise.
13098
13099         * gimple.c (gimple_alloc_stat): Likewise.
13100         (gimple_build_omp_for): Likewise.
13101         (gimple_seq_alloc): Likewise.
13102         (gimple_copy): Likewise.
13103
13104         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
13105         (gsi_insert_after_without_update): Likewise.
13106
13107         * function.c (add_frame_space): Likewise.
13108         (insert_temp_slot_address): Likewise.
13109         (assign_stack_temp_for_type): Likewise.
13110         (allocate_struct_function): Likewise.
13111         (types_used_by_var_decl_insert): Likewise.
13112
13113         * except.c (init_eh_for_function): Likewise.
13114         (gen_eh_region): Likewise.
13115         (gen_eh_region_catch): Likewise.
13116         (gen_eh_landing_pad): Likewise.
13117         (add_call_site): Likewise.
13118
13119         * emit-rtl.c (get_mem_attrs): Likewise.
13120         (get_reg_attrs): Likewise.
13121         (start_sequence): Likewise.
13122         (init_emit): Likewise.
13123
13124         * dwarf2out.c (new_cfi): Likewise.
13125         (queue_reg_save): Likewise.
13126         (dwarf2out_frame_init): Likewise.
13127         (new_loc_descr): Likewise.
13128         (find_AT_string): Likewise.
13129         (new_die): Likewise.
13130         (add_var_loc_to_decl): Likewise.
13131         (clone_die): Likewise.
13132         (clone_as_declaration): Likewise.
13133         (break_out_comdat_types): Likewise.
13134         (new_loc_list): Likewise.
13135         (loc_descriptor): Likewise.
13136         (add_loc_descr_to_each): Likewise.
13137         (add_const_value_attribute): Likewise.
13138         (tree_add_const_value_attribute): Likewise.
13139         (add_comp_dir_attribute): Likewise.
13140         (add_name_and_src_coords_attributes): Likewise.
13141         (lookup_filename): Likewise.
13142         (store_vcall_insn): Likewise.
13143         (dwarf2out_init): Likewise.
13144
13145         * dbxout.c (dbxout_init): Likewise.
13146
13147         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13148
13149         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13150
13151         * config/score/score7.c (score7_output_external): Likewise.
13152
13153         * config/score/score3.c (score3_output_external): Likewise.
13154
13155         * config/s390/s390.c (s390_init_machine_status): Likewise.
13156
13157         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
13158         (rs6000_init_machine_status): Likewise.
13159         (output_toc): Likewise.
13160
13161         * config/pa/pa.c (pa_init_machine_status): Likewise.
13162         (get_deferred_plabel): Likewise.
13163
13164         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
13165
13166         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
13167
13168         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
13169
13170         * config/mep/mep.c (mep_init_machine_status): Likewise.
13171         (mep_note_pragma_flag): Likewise.
13172
13173         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
13174
13175         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
13176
13177         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
13178
13179         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
13180         (i386_pe_maybe_record_exported_symbol): Likewise.
13181
13182         * config/i386/i386.c (get_dllimport_decl): Likewise.
13183         (ix86_init_machine_status): Likewise.
13184         (assign_386_stack_local): Likewise.
13185
13186         * config/frv/frv.c (frv_init_machine_status): Likewise.
13187
13188         * config/darwin.c (machopic_indirection_name): Likewise.
13189
13190         * config/cris/cris.c (cris_init_machine_status): Likewise.
13191
13192         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
13193
13194         * config/avr/avr.c (avr_init_machine_status): Likewise.
13195
13196         * config/arm/arm.c (arm_init_machine_status): Likewise.
13197
13198         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
13199         (alpha_need_linkage): Likewise.
13200         (alpha_use_linkage): Likewise.
13201
13202         * cgraph.c (cgraph_allocate_node): Likewise.
13203         (cgraph_create_edge_1): Likewise.
13204         (cgraph_create_indirect_edge): Likewise.
13205         (cgraph_add_asm_node): Likewise.
13206
13207         * cfgrtl.c (init_rtl_bb_info): Likewise.
13208
13209         * cfgloop.c (alloc_loop): Likewise.
13210         (rescan_loop_exit): Likewise.
13211
13212         * cfg.c (init_flow): Likewise.
13213         (alloc_block): Likewise.
13214         (unchecked_make_edge): Likewise.
13215
13216         * c-parser.c (c_parse_init): Likewise.
13217         (c_parse_file): Likewise.
13218
13219         * c-decl.c (bind): Likewise.
13220         (record_inline_static): Likewise.
13221         (push_scope): Likewise.
13222         (make_label): Likewise.
13223         (lookup_label_for_goto): Likewise.
13224         (finish_struct): Likewise.
13225         (finish_enum): Likewise.
13226         (c_push_function_context): Likewise.
13227
13228         * bitmap.c (bitmap_element_allocate): Likewise.
13229         (bitmap_gc_alloc_stat): Likewise.
13230
13231         * alias.c (record_alias_subset): Likewise.
13232         (init_alias_analysis): Likewise.
13233
13234 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
13235
13236         * fold-const.c (fold_comparison): Remove redundant parenthesis.
13237         * tree-inline.c (expand_call_inline): Pass translated return value of
13238         cgraph_inline_failed_string to diagnostic function.
13239
13240 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
13241             Shujing Zhao  <pearly.zhao@oracle.com>
13242
13243         PR c/37724
13244         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
13245         implicit bad conversions is initialization.
13246         (error_init): Use gmsgid instead of msgid for argument name and change
13247         the call for error.
13248         (pedwarn_init): Use gmsgid instead of msgid for argument name and
13249         change the call for pedwarn.
13250         (warning_init): Use gmsgid instead of msgid for argument name and
13251         change the call for warning.
13252
13253 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
13254
13255         * config/mips/mips-protos.h (mips_print_operand): Delete.
13256         (mips_print_operand_address): Delete.
13257         * config/mips/mips.h (mips_print_operand_punct): Delete.
13258         (PRINT_OPERAND): Delete.
13259         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13260         (PRINT_OPERAND_ADDRESS): Delete.
13261         * config/mips/mips.c (mips_print_operand_punct): Make static.
13262         (mips_print_operand_address): Make static.
13263         (mips_print_operand): Make static.  Call
13264         mips_print_operand_punct_valid_p.
13265         (mips_print_operand_punct_valid_p): New function.
13266         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13267         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13268
13269 2010-06-07  Jan Hubicka  <jh@suse.cz>
13270
13271         PR middle-end/44454
13272         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
13273         are allocated.
13274
13275 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
13276
13277         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
13278         name of RECORD.
13279
13280 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13281
13282         * doc/sourcebuild.texi (Effective-Target Keywords, Other
13283         attributes): Document gas.
13284
13285 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
13286
13287         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
13288         <TYPE_LEA>: Split instruction.
13289         <default>: Remove alternative 2 handling.
13290         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
13291         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
13292         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
13293
13294         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
13295         (ashift_zext lea splitter): Use DImode for multiplication.
13296
13297         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
13298         to generate addition.
13299
13300 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
13301
13302         * common.opt (fira-verbose): Use Var.
13303         (fpcc-struct-return): Use Init instead of VarExists.
13304         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
13305         toplev.c.
13306         * flags.h (flag_signed_char, flag_short_enums,
13307         flag_pcc_struct_return, flag_ira_verbose,
13308         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
13309         * toplev.c (flag_detailed_statistics, flag_signed_char,
13310         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
13311         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
13312         * toplev.h (flag_crossjumping, flag_if_conversion,
13313         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
13314         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
13315         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
13316         flag_cprop_registers, time_report, flag_ira_loop_pressure,
13317         flag_ira_coalesce, flag_ira_move_spills,
13318         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
13319
13320 2010-06-07  Jan Hubicka  <jh@suse.cz>
13321
13322         * df-core.c (df_analyze_problem): Do verification after allocation.
13323
13324         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
13325         (df_lr_alloc): Initialize problem data; move bitmaps to
13326         lr_bitmaps obstack.
13327         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
13328         (df_lr_verify_solution_start): Do not initialize problem data;
13329         allocate bitmaps in lr_bitmaps.
13330         (df_lr_verify_solution_end): Do not free problem data.
13331
13332 2010-06-07  Jan Hubicka  <jh@suse.cz>
13333
13334         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
13335         if caller is noreturn.
13336         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
13337         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
13338         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
13339         * ipa-pure-const.c (check_decl): Add IPA parameter.
13340         (state_from_flags): New function.
13341         (better_state, worse_state): New functions.
13342         (check_call): When in IPA mode, do not care about callees.
13343         (check_load, check_store): Update.
13344         (check_ipa_load, check_ipa_store): New.
13345         (check_stmt): When in IPA mode, use IPA checkers.
13346         (analyze_function): Use state_from_flags.
13347         (propagate): Check indirect edges and references.
13348
13349 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
13350
13351         PR rtl-optimization/44404
13352         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
13353         of count_occurrences to see if it's safe to modify mem_insn.
13354
13355 2010-06-07  Richard Guenther  <rguenther@suse.de>
13356
13357         * gimplify.c (gimplify_cleanup_point_expr): For empty body
13358         and EH-only cleanup drop the cleanup instead of inserting it
13359         unconditionally.
13360
13361 2010-06-07  Ira Rosen  <irar@il.ibm.com>
13362
13363         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
13364         documentation.
13365         * targhooks.c (default_builtin_vectorization_cost): New function.
13366         * targhooks.h (default_builtin_vectorization_cost): Declare.
13367         * target.h (enum vect_cost_for_stmt): Define.
13368         (builtin_vectorization_cost): Change argument and comment.
13369         * tree-vectorizer.h: Remove cost model macros.
13370         * tree-vect-loop.c: Include target.h.
13371         (vect_get_cost): New function.
13372         (vect_estimate_min_profitable_iters): Replace cost model macros with
13373         calls to vect_get_cost.
13374         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
13375         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
13376         default implementation.
13377         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
13378         calls to target hook builtin_vectorization_cost.
13379         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
13380         Likewise.
13381         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
13382         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
13383         implementation to return costs.
13384         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
13385         * config/spu/spu.h: Remove vectorizer cost model macros.
13386         * config/i386/i386.h: Likewise.
13387         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
13388         a call to target hook builtin_vectorization_cost.
13389
13390 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
13391
13392         PR target/44319
13393         * config/i386/i386.c (override_options): Turn zee pass on for level 2
13394         and above and defer till target is known.
13395         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
13396         turn off otherwise.
13397
13398 2010-05-25  Jan Hubicka  <jh@suse.cz>
13399
13400         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
13401         (df_compact_blocks): Likewise.
13402         * df.h (struct df): Turn hardware_regs_used,
13403         regular_block_artificial_uses, eh_block_artificial_uses,
13404         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
13405         bitmap_head.
13406         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
13407         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
13408         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
13409         df_scan_blocks, df_insn_delete, df_insn_rescan,
13410         df_insn_rescan_debug_internal, df_insn_rescan_all,
13411         df_process_deferred_rescans, df_process_deferred_rescans,
13412         df_notes_rescan, df_get_call_refs, df_get_call_refs,
13413         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
13414         df_record_entry_block_defs, df_record_exit_block_uses,
13415         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
13416         df_scan_verify): Update.
13417
13418 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
13419
13420         PR c++/44188
13421         * c-common.c (is_typedef_decl): Move this definition ...
13422         * tree.c (is_typedef_decl): ... here.
13423         (typdef_variant_p): Move definition here from cp/tree.c.
13424         * c-common.h (is_typedef_decl): Move this declaration ...
13425         * tree.h (is_typedef_decl): ... here.
13426         (typedef_variant_p): Move declaration here from cp/cp-tree.h
13427         * dwarf2out.c (is_naming_typedef_decl): New function.
13428         (gen_tagged_type_die): Split out of ...
13429         (gen_type_die_with_usage): ... this function. When an anonymous
13430         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
13431         is emitted for the typedef.
13432         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
13433         anonymous tagged types.
13434
13435 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13436
13437         PR c/20000
13438         * c-decl.c (grokdeclarator): Delete warning.
13439
13440 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13441
13442         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
13443         newly built CALL_EXPR.
13444         * tree-profile.c (tree_profiling): Don't profile functions produced
13445         for built-in stuff.
13446
13447 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
13448
13449         PR bootstrap/44427
13450         PR bootstrap/44428
13451         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
13452         endianness-independent.
13453
13454 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
13455
13456         * c-common.c: Move to c-family/.
13457         * c-common.def: Likewise.
13458         * c-common.h: Likewise.
13459         * c-cppbuiltin.c: Likewise.
13460         * c-dump.c: Likewise.
13461         * c-format.c: Likewise.
13462         * c-format.h : Likewise.
13463         * c-gimplify.c: Likewise.
13464         * c-lex.c: Likewise.
13465         * c-omp.c: Likewise.
13466         * c.opt: Likewise.
13467         * c-opts.c: Likewise.
13468         * c-pch.c: Likewise.
13469         * c-ppoutput.c: Likewise.
13470         * c-pragma.c: Likewise.
13471         * c-pragma.h: Likewise.
13472         * c-pretty-print.c: Likewise.
13473         * c-pretty-print.h: Likewise.
13474         * c-semantics.c: Likewise.
13475         * stub-objc.c: Likewise.
13476
13477         * gengtype.c (get_file_langdir): Special-case files in c-family/.
13478         (get_output_file_with_visibility): Fix name for c-common.h.
13479         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
13480
13481         * c-tree.h: Update include path for moved files.
13482         * c-lang.c: Likewise.
13483         * c-lang.h: Likewise.
13484         * c-parser.c: Likewise.
13485         * c-convert.c: Likewise.
13486         * c-decl.c: Likewise.
13487         * c-objc-common.c: Likewise.
13488         * configure.ac: Make sure c-family/ exists in the build directory.
13489         * configure: Regenerate.
13490         * Makefile.in: Update paths for moved files.  Regroup files per
13491         location and update dependencies.  Move generated_files down after
13492         ALL_GTFILES_H.
13493
13494         * config/spu/spu-c.c: Update paths for moved files.
13495         * config/mep/mep-pragma.c: Likewise.
13496         * config/darwin-c.c: Likewise.
13497         * config/i386/msformat-c.c: Likewise.
13498         * config/i386/i386-c.c: Likewise.
13499         * config/avr/avr-c.c: Likewise.
13500         * config/sol2-c.c: Likewise.
13501         * config/ia64/ia64-c.c: Likewise.
13502         * config/rs6000/rs6000-c.c: Likewise.
13503         * config/arm/arm.c: Likewise.
13504         * config/arm/arm-c.c: Likewise.
13505         * config/h8300/h8300.c: Likewise.
13506         * config/v850/v850-c.c: Likewise.
13507
13508         * config/t-darwin: Fix dependencies for moved files.
13509         * config/t-sol2: Fix dependencies for moved files.
13510         * config/mep/t-mep: Fix dependencies for moved files.
13511         * config/ia64/t-ia64: Fix dependencies for moved files.
13512         * config/rs6000/t-rs6000: Fix dependencies for moved files.
13513         * config/v850/t-v850: Fix dependencies for moved files.
13514         * config/v850/t-v850e: Fix dependencies for moved files.
13515
13516         * config/m32c/m32c-pragma.c
13517
13518         * po/exgettext: Look in c-family/ also.
13519
13520 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
13521
13522         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
13523         (mark_control_dependent_edges_necessary): Call it instead of marking
13524         the last statement manually.
13525         (propagate_necessity): Likewise.
13526
13527 2010-06-05  Jan Hubicka  <jh@suse.cz>
13528
13529         * basic-block.h (compute_dominance_frontiers): Updated.
13530         (compute_idf): Likewise.
13531
13532         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
13533         for dominance frontiers.
13534         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
13535         (insert_updated_phi_nodes_for): Likewise.
13536         (update_ssa): Likewise.
13537         * cfganal.c (compute_dominance_frontiers_1): Likewise.
13538         (compute_dominance_frontiers): Likewise.
13539         (compute_idf): Likewise.
13540         * df-problems.c (df_md_local_compute): Likewise.
13541
13542 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
13543
13544         * target.h (struct gcc_target): Add memory_move_cost field.
13545         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
13546         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
13547         * targhooks.c (default_memory_move_cost): New function.
13548         * targhooks.h (default_memory_move_cost): Declare function.
13549         * reload.h (memory_move_cost): Declare.
13550         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13551         * reginfo.c (memory_move_cost): New function.
13552         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13553         * ira.h (ira_memory_move_cost): Update comment.
13554         * ira.c (ira_memory_move_cost): Update comment.
13555         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
13556         with memory_move_cost.
13557         * postreload.c (reload_cse_simplify_set): (Ditto.).
13558         * reload1.c (choose_reload_regs): (Ditto.).
13559         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
13560         (MEMORY_MOVE_COST):  Revise documentation.
13561
13562         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
13563         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
13564         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
13565         type of 'in' argument to bool.
13566         (TARGET_MEMORY_MOVE_COST): Define.
13567
13568 2010-06-05  Jan Hubicka  <jh@suse.cz>
13569
13570         * ipa-pure-const.c (propagate): Fix typo in handling of functions
13571         that cannot return.  Be more careful when merging the results with
13572         previously known ones.
13573
13574 2010-06-05  Matthias Klose  <doko@ubuntu.com>
13575
13576         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
13577         function to add the -iplugindir option.
13578         (find_plugindir_spec_function): Add new declaration and function.
13579         (static_spec_func): Use it for "find-plugindir".
13580
13581 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
13582
13583         PR c++/44361
13584         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
13585         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
13586         statement expression.
13587
13588 2010-06-05  Jan Hubicka  <jh@suse.cz>
13589
13590         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
13591         (df_rd_problem_data): Convert sparse_invalidated_by_call,
13592         dense_invalidated_by_call to bitmap head.
13593         (df_rd_alloc, df_rd_bb_local_compute_process_def,
13594         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
13595         df_rd_start_dump, df_lr_verify_transfer_functions,
13596         df_live_verify_transfer_functions, df_chain_create_bb,
13597         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
13598         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
13599         df_simulate_one_insn_forwards, df_md_alloc,
13600         df_md_bb_local_compute_process_def,
13601         df_md_bb_local_compute_process_def, df_md_local_compute,
13602         df_md_transfer_function df_md_free): Update.
13603
13604 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
13605
13606         PR c/44322
13607         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
13608         target type for ADDR_EXPR; require no changes to qualifiers except
13609         for function types.
13610         * c-tree.h (c_build_type_variant): Remove.
13611
13612 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
13613
13614         * genautomata.c (get_excl_set): Do work per element, not per char.
13615         (check_presence_pattern_sets): Similar.
13616         (check_absence_pattern_sets): Similar.
13617
13618 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
13619
13620         * genautomata.c (curr_state_pass_num): Delete.
13621         (min_issue_delay_pass_states): Delete.
13622         (min_issue_delay): Delete.
13623         (initiate_min_issue_delay_pass_states): Delete.
13624         (output_min_issue_delay_table): Compute min_issue_delay_vect
13625         using a breadth-first search variant.
13626         (output_tables): Don't call initiate_min_issue_delay_pass_states.
13627
13628 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
13629
13630         PR boostrap/44421
13631         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
13632         (df_byte_lr_bb_local_compute): Likewise.
13633
13634 2010-06-03  Jason Merrill  <jason@redhat.com>
13635
13636         Implement noexcept operator (5.3.7)
13637         * c-common.c (c_common_reswords): Add noexcept.
13638         * c-common.h (enum rid): Add RID_NOEXCEPT.
13639
13640 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
13641
13642         * config/darwin-driver.c (darwin_default_min_version): Use
13643         GCC-specific formats in diagnostics.
13644         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
13645         diagnostics.
13646         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
13647         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
13648         eval_spec_function, handle_braces, process_brace_body, main,
13649         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
13650         getenv_spec_function, compare_version_strings,
13651         version_compare_spec_function): Use GCC-specific formats in
13652         diagnostics.
13653
13654 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13655
13656         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
13657         that operand 0 and operand 1 are equal.
13658         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
13659         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
13660         and operand 1 are equal.
13661         <default>: Ditto.  Remove ??? comment.
13662         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
13663         and operand 1 are equal.
13664         <default>: Ditto.  Remove ??? comment.
13665         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
13666         are equal.
13667         (*add<mode>_4) <default>: Ditto.
13668         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
13669
13670 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
13671
13672         * config/i386/i386-protos.h (ix86_print_operand): Declare.
13673         * config/i386/i386.c (ix86_print_operand): Make non-static.
13674         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
13675         * output.h (output_operand): Declare.
13676         * final.c (output_operand): Make non-static.
13677
13678 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
13679
13680         PR rtl-optimization/44013
13681         * sched-deps.c (add_dependence_list_and_free): Don't free lists
13682         when processing debug insns.
13683
13684         PR debug/41371
13685         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
13686         recursing.  Check that recursion is bounded.  Rename inner var
13687         to avoid hiding incoming argument.
13688
13689 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13690
13691         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
13692         operands[2] == 255.
13693         (*addqi_3): Ditto.
13694         (*addqi_4): Ditto.
13695         (*addqi_5): Ditto.
13696         (*addqi_ext_1_rex64): Ditto.
13697         (*addqi_ext_1): Ditto.
13698
13699         (*addqi_4): Check for incdec_operand in QImode.
13700
13701         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
13702         using SWI mode iterator.
13703         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
13704         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
13705         mode iterator.
13706         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
13707         using SWI mode iterator.
13708
13709 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13710
13711         PR c/25880
13712         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
13713         * c-format.c (gcc_diag_flag_specs): Add hash.
13714         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
13715         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
13716         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
13717         pp_c_cv_qualifiers. Handle qualifiers spelling here.
13718         (pp_c_type_qualifier_list): Call the function above.
13719         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
13720         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
13721         (WARN_FOR_QUALIFIERS): New macro.
13722         (convert_for_assignment): Use it.
13723
13724 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
13725
13726         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
13727
13728 2010-06-04  Jan Hubicka  <jh@suse.cz>
13729
13730         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
13731         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
13732         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
13733         DF_BYTE_LR_OUT): Update for embedded bitmaps.
13734         * fwprop.c (single_def_use_enter_block): Likewise.
13735         * ddg.c (create_ddg_dep_from_intra_loop_link,
13736         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
13737         * loop-iv.c (latch_dominating_def): Likewise.
13738         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
13739         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
13740         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
13741         df_rd_transfer_function, df_rd_top_dump,
13742         df_rd_bottom_dump): Update.
13743         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
13744         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
13745         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
13746         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
13747         df_lr_verify_solution_start, df_lr_verify_solution_end,
13748         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
13749         df_live_free_bb_info, df_live_alloc, df_live_reset,
13750         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
13751         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
13752         df_live_verify_solution_start, df_live_verify_solution_end,
13753         df_live_verify_transfer_functions, df_chain_create_bb,
13754         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
13755         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
13756         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
13757         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
13758         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13759         df_byte_lr_transfer_function, df_byte_lr_top_dump,
13760         df_byte_lr_bottom_dump, df_create_unused_note,
13761         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
13762         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
13763         df_md_transfer_function, df_md_init, df_md_confluence_0,
13764         df_md_confluence_n,
13765         df_md_top_dump, df_md_bottom_dump): Update.
13766         (struct df_lr_problem_data): Embedd bitmap headers.
13767
13768 2010-06-04  Jan Hubicka  <jh@suse.cz>
13769
13770         * dce.c (dce_process_block): Do not re-scan already marked
13771         instructions.
13772
13773 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
13774
13775         PR rtl-optimization/39871
13776         PR rtl-optimization/40615
13777         PR rtl-optimization/42500
13778         PR rtl-optimization/42502
13779         * ira.c (init_reg_equiv_memory_loc: New function.
13780         (ira): Call it twice.
13781         * reload.h (calculate_elim_costs_all_insns): Declare.
13782         * ira-costs.c: Include "reload.h".
13783         (regno_equiv_gains): New static variable.
13784         (init_costs): Allocate it.
13785         (finish_costs): Free it.
13786         (ira_costs): Call calculate_elim_costs_all_insns.
13787         (find_costs_and_classes): Take estimated elimination costs
13788         into account.
13789         (ira_adjust_equiv_reg_cost): New function.
13790         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
13791         * reload1.c (init_eliminable_invariants, free_reg_equiv,
13792         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
13793         (elim_bb): New static variable.
13794         (reload): Move code out of here into init_eliminable_invariants and
13795         free_reg_equiv.  Call them.
13796         (calculate_elim_costs_all_insns): New function.
13797         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
13798         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
13799         but call note_reg_elim_costly if we turned a valid memory address
13800         into an invalid one.
13801         * Makefile.in (ira-costs.o): Depend on reload.h.
13802
13803 2010-06-04  Julian Brown  <julian@codesourcery.com>
13804
13805         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
13806         for pool ranges.
13807
13808 2010-06-04  Richard Guenther  <rguenther@suse.de>
13809
13810         PR lto/41584
13811         * cgraph.h (struct varpool_node): Add lto_file_data field.
13812         * lto-cgraph.c (input_varpool_node): Initialize it.
13813
13814 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13815
13816         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
13817         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
13818         predicate in "type" attribute calculation.
13819         (*addsi_1_zext): Ditto.
13820         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
13821         (*addsi_2_zext): Ditto.
13822         (*add<mode>_3): Ditto.
13823         (*addsi_3_zext): Ditto.
13824         (*add<mode>_5): Ditto.
13825
13826 2010-06-03  Jan Hubicka  <jh@suse.cz>
13827
13828         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
13829         of bitmap_bit_p.
13830         * cfganal.c (compute_dominance_frontiers_1): Likewise.
13831
13832 2010-06-03  Jan Hubicka  <jh@suse.cz>
13833
13834         * df-problems.c (df_create_unused_note, df_note_bb_compute):
13835         micro-optimize the checks when to add new note.
13836
13837 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
13838
13839         * final.c (output_asm_insn): Call
13840         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
13841         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
13842         (output_address): Call targetm.asm_out.print_operand_address.
13843         Update comments.
13844         * target.h (struct gcc_target): Add print_operand,
13845         print_operand_address, and print_operand_punct_valid_p fields.
13846         * targhooks.h (default_print_operand): Declare.
13847         (default_print_operand_address): Declare.
13848         (default_print_operand_punct_valid_p): Declare.
13849         * targhooks.c (default_print_operand): Define.
13850         (default_print_operand_address): Define.
13851         (default_print_operand_punct_valid_p): Define.
13852         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
13853         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
13854         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
13855         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
13856         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
13857         * vmsdbgout.c (addr_const_to_string): Update comment.
13858         * config/i386/i386.c (print_operand): Rename to...
13859         (ix86_print_operand): ...this.  Make static.
13860         (print_operand_address): Rename to...
13861         (ix86_print_operand_address): ...this.  Make static.  Call
13862         ix86_print_operand instead of PRINT_OPERAND.
13863         (ix86_print_operand_punct_valid_p): New function.
13864         (TARGET_PRINT_OPERAND): Define.
13865         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13866         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13867         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
13868         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13869         (PRINT_OPERAND): Delete.
13870         (PRINT_OPERAND_ADDRESS): Delete.
13871         * config/i386/i386-protos.h (print_operand): Delete prototype.
13872         (print_operand_address): Delete prototype.
13873
13874 2010-06-03  Richard Guenther  <rguenther@suse.de>
13875
13876         PR tree-optimization/44403
13877         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
13878         Preserve pointer qualifiers.
13879         (vect_create_data_ref_ptr): Likewise.
13880
13881 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
13882
13883         PR c++/44294
13884         * defaults.h (MAX_FIXED_MODE_SIZE): New.
13885
13886         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
13887
13888 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
13889
13890         PR debug/44375
13891         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
13892         return false if merging the bbs would lead to goto_locus
13893         location being lost from the IL.
13894
13895 2010-06-03  Jan Hubicka  <jh@suse.cz>
13896             Jakub Jelinek  <jakub@redhat.com>
13897
13898         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
13899         set->regs[i] is NULL or has just one entry.
13900
13901 2010-06-03  Jan Hubicka  <jh@suse.cz>
13902
13903         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
13904         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
13905
13906 2010-06-03  Paul Brook  <paul@codesourcery.com>
13907
13908         * config/arm/arm.c (FL_TUNE): Define.
13909         (arm_default_cpu, arm_cpu_select): Remove.
13910         (all_cores): Populate core field.
13911         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
13912         (arm_find_cpu): New function.
13913         (arm_handle_option): Lookup cpu/architecture names.
13914         (arm_override_options): Cleanup mcpu/march/mtune handling.
13915         (arm_file_start): Ditto.
13916
13917 2010-06-03  Alan Modra  <amodra@gmail.com>
13918
13919         PR target/44169
13920         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
13921         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
13922         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
13923         (rs6000_emit_load_toc_table): Likewise.
13924
13925 2010-06-02  Jan Hubicka  <jh@suse.cz>
13926
13927         * passes.c (init_optimization_passes): Put ipa reference
13928         after ipa pure-const.
13929
13930 2010-06-02  Jan Hubicka  <jh@suse.cz>
13931
13932         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
13933         calls_read_all and calls_write_all.
13934         (get_reference_optimization_summary): Fix formatting.
13935         (is_proper_for_analysis): Check that decl is not readonly.
13936         (propagate_bits): Check CONST/PURE/noreturn flags.
13937         (ipa_init): Move all_module_statics to optimization_summary_obstack.
13938         (analyze_function): Ignore indirect edges.
13939         (copy_global_bitmap): For all module statics, do nothing.
13940         (generate_summary): Do not print calls_read_all/calls_write_all.
13941         (read_write_all_from_decl): Take node as argument; check
13942         cgraph_node_cannot_return.
13943         (propagate): Reorganize read_all/write_all computation;
13944         check indirect edges; check ecf flags; use all_module_statics
13945         in the results; do not free all_module_statics.
13946         (stream_out_bitmap): Handle all_module_statics.
13947         (ipa_reference_write_optimization_summary): Likewise; use
13948         varpool/cgraph encoders to get boundaries.
13949         (ipa_reference_read_optimization_summary): Read in all_module_statics;
13950         use it when possible.
13951
13952 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13953
13954         PR target/44218
13955         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
13956         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
13957
13958         * doc/extend.texi (powerpc builtins): Document vec_recip,
13959         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
13960
13961         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
13962         (rs6000_emit_swrsqrt): Ditto.
13963         (rs6000_emit_swdivsf): Delete.
13964         (rs6000_emit_swdivdf): Ditto.
13965         (rs6000_emit_swrsqrtsf): Ditto.
13966
13967         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
13968         describe the reciprocal estimate support for each type.
13969         (recip_options): Map -mrecip=<opt> into option bits.
13970         (gen_2arg_fn_t): New typedef for binary rtx gen function.
13971         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
13972         reciprocal estimate instructions.
13973         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
13974         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
13975         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
13976         cost information if -mdebug=cost or -mdebug=reg.
13977         (rs6000_override_options): Set -mrecip-precision for power6, and
13978         power7 machines.  If -mvsx or -mdfp, enable various options that
13979         came in previous instruction set ISAs, unless the option was
13980         explicitly disabled by the command line option.  Parse
13981         -mrecip=<opt> options.
13982         (rs6000_builtin_vectorized_function): Add support for vectorizing
13983         the reciprocal estimate builtins and expansions.
13984         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
13985         (bdesc_2arg): Add reciprocal estimate builtins.
13986         (bdesc_1arg): Add reciprocal square root estimate builtins.
13987         (rs6000_expand_builtin): Rewrite to use a switch statement,
13988         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
13989         (rs6000_init_builtins): Create declarations for reciprocal
13990         estimate builtins.
13991         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
13992         sized, prefer traditional floating point registers, if integer
13993         vector types, prefer altivec registers.  Don't actually look at
13994         the memory address any more.
13995         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
13996         builtins.
13997         (rs6000_load_constant_and_splat): New helper function to load up
13998         the constant for reciprocal estimate instructions.
13999         (rs6000_emit_madd): New helper function for generating
14000         multiply/add type instructions, based on the current switches.
14001         (rs6000_emit_msub): Ditto.
14002         (rs6000_emit_mnsub): Ditto.
14003         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
14004         replace a divide with a reciprocal estimate and fixup, adding
14005         support for machines with high precision and vectors.
14006         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
14007         low precision machines.
14008         (rs6000_emit_swdiv): New common function to be called to replace a
14009         division with reciprocal estimate and fixup.
14010         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
14011         for double and vector types.  Add support for high precision machines.
14012
14013         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
14014         the reciprocal estimate instructions can be generated.
14015         (TARGET_FRE): Ditto.
14016         (TARGET_FRSQRTES): Ditto.
14017         (TARGET_FRSQRTE): Ditto.
14018         (RS6000_RECIP_*): New macros for reciprocal estimate support.
14019
14020         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
14021         square root estimate on vectors.
14022         (re<mode>2): New insn for reciprocal division estimate on vectors.
14023
14024         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
14025         New builtin.
14026         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
14027         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
14028         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
14029         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
14030         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
14031         (RS6000_BUILTIN_RSQRT): Ditto.
14032         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
14033         floating point builtin.
14034
14035         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14036         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
14037         __RECIP_PRECISION__ based on the command line switches.
14038         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
14039
14040         * config/rs6000/rs6000.opt (-mrecip): Document add support for
14041         replacing division instructions with reciprocal estimate and fixup.
14042         (-mrecip=<opt>): New option.
14043         (-mrecip-precision): Ditto.
14044
14045         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
14046         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
14047         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
14048         precision scalar.
14049
14050         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
14051         (UNSPEC_VREFP): Ditto.
14052         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
14053         conterparts with regard to support of -mno-fused-madd and -ffast-math.
14054         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
14055         reciprocal estimate instructions to be generated.
14056         (altivec_vrefp): Ditto.
14057
14058         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
14059         estimate support.
14060         (rreg): New mode attribute for reciprocal estimate support.
14061         (recip<mode>3): New insn for division using reciprocal estimate
14062         and fixup builtins.
14063         (divide define_split): New define_split to convert floating point
14064         division to use reciprocal estimate if the user used the
14065         appropriate options and the split is run when we can add new
14066         pseudo registers for the fixup.
14067         (rsqrt<mode>2): New insn for reciprocal square root support.
14068         (recipsf3): Move into recip<mode>3.
14069         (recipdf3): Ditto.
14070         (fres): Use TARGET_FRES.
14071         (rsqrtsf2): Move into rsqrt<mode>2.
14072         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
14073         (copysignsf3): Add support for VSX.
14074         (fred): Use TARGET_FRE.
14075         (fred_fpr): Ditto.
14076         (rsqrtdf_internal1): New function for frsqrte instruciton.
14077
14078         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
14079         (vec_rsqrt): Ditto.
14080
14081 2010-06-03  Richard Guenther  <rguenther@suse.de>
14082
14083         PR middle-end/44291
14084         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
14085         (set_user_assembler_libfunc): Likewise.
14086
14087 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14088
14089         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
14090         defaults.h.
14091         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
14092         to defaults.h
14093         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
14094         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
14095         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
14096         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
14097         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
14098         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
14099         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
14100         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
14101         * defaults.h: Updated for above mentioned changes.
14102
14103 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
14104
14105         * c-common.c: Remove header include of tm_p.h.
14106         * Makefile.in (c-common.o): Remove TM_P_H dependency.
14107
14108 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
14109
14110         * tree.h (struct tree_decl_map): New type.
14111         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
14112         (tree_decl_map_hash): New prototype.
14113         (debug_expr_for_decl, value_expr_for_decl): Change into
14114         tree_decl_map hashtab from tree_map.
14115         (init_ttree): Adjust initialization.
14116         (tree_decl_map_hash): New function.
14117         (decl_debug_expr_lookup, decl_debug_expr_insert,
14118         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
14119
14120 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14121
14122         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
14123         linker emulations.
14124         * configure: Regenerate.
14125         * config.in: Regenerate.
14126
14127         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
14128         (X86_64_EMULATION): Define.
14129         (TARGET_LD_EMULATION): Use them.
14130
14131         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
14132         (SPARC64_EMULATION): Define.
14133         (LINK_ARCH_SPEC): Use them.
14134
14135 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14136
14137         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
14138         smallest_mode_for_size for computing the precision types of new
14139         graphite IVs.  Do not call lang_hooks.types.type_for_size.
14140
14141 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14142
14143         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
14144         information.
14145         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
14146
14147 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14148
14149         PR middle-end/44363
14150         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
14151         return false instead.
14152
14153 2010-06-02  Jan Hubicka  <jh@suse.cz>
14154
14155         PR middle-end/44295
14156         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
14157         create new cgraph node to check callee.
14158
14159 2010-06-02  Richard Guenther  <rguenther@suse.de>
14160
14161         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
14162
14163 2010-06-02  Richard Guenther  <rguenther@suse.de>
14164
14165         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
14166         (lto_wrapper_cleanup): ... this.  Do not exit.
14167         (fatal): Adjust.  Exit here.
14168         (fatal_perror): Likewise.
14169         (fatal_signal): New function.
14170         (main): Set up signal handlers to cleanup temporary files.
14171         * Makefile.in (lto-wrapper.o): Adjust dependencies.
14172
14173 2010-06-02  Richard Guenther  <rguenther@suse.de>
14174
14175         PR tree-optimization/44377
14176         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
14177
14178 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14179
14180         * config/s390/2097.md (z10_fhex): Remove insn reservation.
14181         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
14182         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
14183         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
14184         instruction.
14185         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
14186
14187 2010-06-02  Jan Hubicka  <jh@suse.cz>
14188
14189         * bitmap.c (bitmap_descriptor): Add search_iter.
14190         (bitmap_find_bit): Increment it.
14191         (print_statistics): Print it.
14192
14193 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
14194
14195         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
14196         instead of gimple_build_call_vec.  Delete unnecessary local variable.
14197
14198 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14199
14200         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
14201         change from yesterday.
14202
14203 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14204
14205         * c-ada-spec.c: Clean up redundant includes.
14206
14207 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
14208
14209         * gimplify.c: Do not include except.h and optabs.h.
14210         (gimplify_body): Do not initialize RTL profiling.
14211         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
14212         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
14213         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
14214         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
14215         langhooks.h.
14216
14217         * tree-pretty-print.h: Include pretty-print.h.
14218         * gimple-pretty-print.h: Include pretty-print.h.
14219
14220         * tree-pretty-print.c: Do not include diagnostic.h.
14221         * tree-vrp.c: Likewise.
14222         * tree-tailcall.c: Likewise
14223         * tree-scalar-evolution.c: Likewise
14224         * tree-ssa-dse.c: Likewise
14225         * tree-chrec.c: Likewise
14226         * tree-ssa-sccvn.c: Likewise
14227         * tree-ssa-copyrename.c: Likewise
14228         * tree-nomudflap.c: Likewise
14229         * tree-call-cdce.c: Likewise
14230         * tree-stdarg.c: Likewise
14231         * tree-ssa-math-opts.c: Likewise
14232         * tree-nrv.c: Likewise
14233         * tree-ssa-sink.c: Likewise
14234         * tree-browser.c: Likewise
14235         * tree-ssa-loop-ivcanon.c: Likewise
14236         * tree-ssa-loop.c: Likewise
14237         * tree-parloops.c: Likewise
14238         * tree-ssa-address.c: Likewise
14239         * tree-ssa-ifcombine.c: Likewise
14240         * tree-if-conv.c: Likewise
14241         * tree-data-ref.c: Likewise
14242         * tree-affine.c: Likewise
14243         * tree-ssa-phiopt.c: Likewise
14244         * tree-ssa-coalesce.c: Likewise
14245         * tree-ssa-pre.c: Likewise
14246         * tree-ssa-live.c: Likewise
14247         * tree-predcom.c: Likewise
14248         * tree-ssa-forwprop.c: Likewise
14249         * tree-ssa-dce.c: Likewise
14250         * tree-ssa-ter.c: Likewise
14251         * tree-ssa-loop-prefetch.c: Likewise
14252         * tree-optimize.c: Likewise
14253         * tree-ssa-phiprop.c: Likewise
14254         * tree-object-size.c: Likewise
14255         * tree-outof-ssa.c: Likewise
14256         * tree-ssa-structalias.c: Likewise
14257         * tree-switch-conversion.c: Likewise
14258         * tree-ssa-reassoc.c: Likewise
14259         * tree-ssa-operands.c: Likewise
14260         * tree-vectorizer.c: Likewise
14261         * tree-vect-data-refs.c: Likewise
14262         * tree-vect-generic.c: Likewise
14263         * tree-vect-stmts.c: Likewise
14264         * tree-vect-patterns.c: Likewise
14265         * tree-vect-slp.c: Likewise
14266         * tree-vect-loop.c: Likewise
14267         * tree-ssa-loop-ivopts.c: Likewise
14268         * tree-ssa-loop-im.c: Likewise
14269         * tree-ssa-loop-niter.c: Likewise
14270         * tree-ssa-loop-unswitch.c: Likewise
14271         * tree-ssa-loop-manip.c: Likewise
14272         * tree-ssa-loop-ch.c: Likewise
14273         * tree-dump.c: Likewise
14274         * tree-complex.c: Likewise
14275
14276         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
14277         * tree-ssa-uninit.c: Likewise
14278         * tree-ssa-threadupdate.c: Likewise
14279         * tree-ssa-uncprop.c: Likewise
14280         * tree-ssa-ccp.c: Likewise
14281         * tree-ssa-dom.c: Likewise
14282         * tree-ssa-propagate.c: Likewise
14283         * tree-ssa-alias.c: Likewise
14284         * tree-dfa.c: Likewise
14285         * tree-cfgcleanup.c: Likewise
14286         * tree-sra.c: Likewise
14287         * tree-ssa-copy.c: Likewise
14288         * tree-ssa.c: Likewise
14289         * tree-profile.c: Likewise
14290         * tree-cfg.c: Likewise
14291         * tree-ssa-threadedge.c: Likewise
14292         * tree-vect-loop-manip.c: Likewise
14293
14294         * tree-inline.c: Do not include diagnostic.h and expr.h.
14295         Include rtl.h.
14296         (copy_decl_for_dup_finish): Do not use NULL_RTX.
14297
14298         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
14299         * tree-loop-distribution.c: Likewise.
14300
14301 2010-06-01  Jan Hubicka  <jh@suse.cz>
14302
14303         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
14304
14305 2010-06-01  Jan Hubicka  <jh@suse.cz>
14306
14307         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
14308         remove return value.
14309         (split_bbs_on_noreturn_calls) .... here.
14310         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
14311         * tree-flow.h (fixup_noreturn_call): New.
14312
14313 2010-06-01  Jan Hubicka  <jh@suse.cz>
14314
14315         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
14316
14317 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
14318
14319         * tree.h (build_nt_call_list): Delete.
14320         * tree.c (build_nt_call_list): Delete.
14321
14322 2010-06-01  Jan Hubicka  <jh@suse.cz>
14323
14324         * fwprop.c: Make emit-rtl.h include last.
14325         * rtlanal.c: Include emit-rtl.h.
14326         * genautomata.c: Output emit-rtl include into insn-automata.c
14327         * df-scan.c: Include emit-rtl.h.
14328         * haifa-sched.c: Indlude emit-rtl.h.
14329         * mode-switching.c: Indlude emit-rtl.h.
14330         * graph.c: Indlude emit-rtl.h.
14331         * sel-sched.c: Include emit-rtl.h.
14332         * sel-sched-ir.c: Include emit-rtl.h.
14333         * ira-build.c: Include emit-rtl.h.
14334         * emit-rtl.c (first_insn, last_insn): Remove defines.
14335         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
14336         Move to emit-rtl.h.
14337         (set_new_first_and_last_insn, get_last_insn_anywhere,
14338         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
14339         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
14340         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
14341         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
14342         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
14343         Use accessor functions.
14344         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14345          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14346         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14347         mem_expr_equal_p): Move here from rtl.h.
14348         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
14349         Move here from emit-rtl.c; make inline.
14350         * cfglayout.h: Include emit-rtl.h.
14351         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14352          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14353         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14354         mem_expr_equal_p, get_insns, set_first-insn,
14355         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
14356         * reg-stack.c: Include emit-rtl.h.
14357         * dce.c: Likewise.
14358
14359 2010-06-01  Jan Hubicka  <jh@suse.cz>
14360
14361         * cgraph.h (tree_function_versioning): Update prototype.
14362         (cgraph_function_versioning): Update prototype.
14363         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
14364         bitmap.
14365         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
14366         (cgraph_materialize_clone, save_inline_function_body): Update use of
14367         tree_function_versioning.
14368         * tree-inline.c (copy_bb): Look for previous copied block to link
14369         after; fix debug output.
14370         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
14371         (copy_body): Likewise.
14372         (expand_call_inline): Update use of copy_body.
14373         (tree_function_versioning): Update use of copy body; accept
14374         blocks_to_copy and new_entry.
14375
14376 2010-06-01  Jan Hubicka  <jh@suse.cz>
14377
14378         * gegenrtl.c: Remove unnecesary prototypes.
14379         (gendecl): Remove.
14380         (gendef): Produce static inline.
14381         (gencode): Remove.
14382         (main): Do not decode parameters; generate header only.
14383         * Makefile.in (genrtl.c): Remove.
14384
14385 2010-06-01  Jan Hubicka  <jh@suse.cz>
14386
14387         * tree-switch-conversion.c (build_one_array): Make it readonly.
14388
14389 2010-06-01  Richard Guenther  <rguenther@suse.de>
14390
14391         * optabs.c (init_optabs): Guard all accesses to reinit.
14392         * ipa-pure-const.c (propagate): Fix another typo.
14393         * opts.c (common_handle_option): Split assignment to bool.
14394         * c-opts.c (c_common_handle_option): Likewise.
14395
14396 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
14397             Matthew Gingell  <gingell@adacore.com>
14398
14399         * doc/invoke.texi: Mention -fdump-ada-spec.
14400         * tree-dump.c (dump_files): Add ada-spec.
14401         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
14402         * tree-pass.h (tree_dump_index): Add TDI_ada.
14403         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
14404         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
14405         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
14406         * c-decl.c: Include c-ada-spec.h.
14407         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
14408         functions.
14409         (c_write_global_declarations): Add handling of -fdump-ada-spec.
14410         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
14411         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
14412         * c-ada-spec.h, c-ada-spec.c: New files.
14413
14414 2010-06-01  Richard Guenther  <rguenther@suse.de>
14415
14416         PR lto/43853
14417         * ipa-pure-const.c (get_function_state): Hand back varying state
14418         if we do not have one.
14419         (has_function_state): New function.
14420         (duplicate_node_data): Adjust.
14421         (remove_node_data): Likewise.
14422         (pure_const_write_summary): Likewise.
14423         (propagate): Likewise.  Fix typo.
14424
14425 2010-06-01  Jan Hubicka  <jh@suse.cz>
14426
14427         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
14428         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
14429         (execute_all_ipa_transforms): Do not play with the states.
14430
14431 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
14432
14433         * config/arm/t-linux-androideabi: New.
14434         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
14435
14436 2010-06-01  Jan Hubicka  <jh@suse.cz>
14437
14438         * tree-inline.c (estimate_num_insns): For stdarg functions look
14439         into call statement to count cost of argument passing.
14440
14441 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
14442
14443         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
14444         argument for fprintf.
14445         (ix86_output_addr_diff_elt): Likewise.
14446         (x86_function_profiler): Likewise.
14447         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
14448         (LPREFIX): Likewise.
14449         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
14450
14451 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14452
14453         PR target/44338
14454         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
14455         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
14456         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
14457         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
14458         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
14459         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
14460         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
14461         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
14462         TARGET_FUSED_MADD.
14463
14464 2010-05-31  Jan Hubicka  <jh@suse.cz>
14465
14466         * tree.h (tree_range_check_failed): Declare noreturn.
14467
14468 2010-05-31  Jan Hubicka  <jh@suse.cz>
14469
14470         * gimple.c (gimple_call_builtin_p): New function.
14471         * gimple.h (gimple_call_builtin_p): Declare.
14472         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
14473         to exit.
14474         (execute_warn_function_return): BUILT_IN_RETURN is return.
14475         (split_critical_edges): Return edges are not critical.
14476         (is_ctrl_altering_stmt): Builtin_in_return is altering.
14477         (gimple_verify_flow_info): Handle built_in_return.
14478         (execute_warn_function_return): Handle built_in_return.
14479         * ipa-pure-const.c (check_call): Ignore builtin_return.
14480
14481 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14482
14483         PR middle-end/44337
14484         * expr.c (expand_assignment): Don't store anything for out-of-bounds
14485         array accesses with non-MEM.
14486
14487         PR tree-optimization/44182
14488         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
14489         newly needs to end a bb is followed by debug stmts, instead return
14490         true from the function at the end.
14491         (maybe_move_debug_stmts_to_successors): New function.
14492         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
14493
14494 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
14495
14496         PR target/44161
14497         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
14498
14499 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
14500
14501         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
14502         for nested functions in non-optimized compilation.
14503
14504 2010-05-31  Richard Guenther  <rguenther@suse.de>
14505
14506         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
14507
14508 2010-05-30  Jan Hubicka  <jh@suse.cz>
14509
14510         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
14511
14512 2010-05-30  Richard Guenther  <rguenther@suse.de>
14513
14514         PR lto/42975
14515         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
14516         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
14517         no longer needed.
14518
14519 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
14520
14521         * config/darwin.c (output_objc_section_asm_op): Add comment.
14522         (name_needs_quotes): Add '_' to list of valid comment chars.
14523         (machopic_output_function_base_name): Remove unneeded quotes.
14524         (darwin_encode_section_info): Adjust asm whitespace.
14525         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
14526         (ASM_OUTPUT_LOCAL): Ditto.
14527         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
14528         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
14529         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
14530
14531 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14532
14533         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
14534         RS6000_OUTPUT_BASENAME unconditionally.
14535         (rs6000_output_function_epilogue): Likewise.
14536
14537 2010-05-30  Jan Hubicka  <jh@suse.cz>
14538
14539         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
14540         nodes.
14541
14542 2010-05-30  Richard Guenther  <rguenther@suse.de>
14543
14544         * tree-cfg.c (verify_gimple_assign_single): Implement
14545         verification for COND_EXPR rhs.
14546
14547 2010-05-30  Jan Hubicka  <jh@suse.cz>
14548
14549         * cgraph.h (cgraph_dump_file): Declare.
14550         * cgraphunit.c (cgraph_dump_file): Export.
14551         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
14552
14553 2010-05-30  Jan Hubicka  <jh@suse.cz>
14554
14555         * dwarf2out.c (reference_to_unused,
14556         premark_types_used_by_global_vars_helper): Avoid creation of new
14557         varpool nodes.
14558
14559 2010-05-30  Jan Hubicka  <jh@suse.cz>
14560
14561         * cgraph.h (cgraph_node_cannot_return,
14562         cgraph_edge_cannot_lead_to_return): New functions.
14563         * cgraph.c (cgraph_node_cannot_return,
14564         cgraph_edge_cannot_lead_to_return): Use them.
14565         * ipa-pure-const.c (pure_const_names): New static var.
14566         (check_call): Handle calls not leading to return.
14567         (pure_const_read_summary): Dump info read.
14568         (propagate): Dump info about propagation process; ignore side effects
14569         of functions not leading to exit; fix handling of pure functions.
14570
14571 2010-05-30  Jan Hubicka  <jh@suse.cz>
14572
14573         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
14574         for tail call epilogues.
14575
14576 2010-05-30  Jan Hubicka  <jh@suse.cz>
14577
14578         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
14579         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
14580         dump files.
14581
14582 2010-05-29  Jan Hubicka  <jh@suse.cz>
14583
14584         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
14585         node; remove references in node we no longer keep in cgrpah but need
14586         body of.
14587
14588 2010-05-29  Jan Hubicka  <jh@suse.cz>
14589
14590         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
14591
14592 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14593
14594         PR target/44165
14595         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
14596
14597 2010-05-29  Jan Hubicka  <jh@suse.cz>
14598
14599         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
14600         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
14601         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
14602         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
14603         debug_names_replaced_by, debug_update_ssa): Likewise.
14604         * sbitmap.c (debug_sbitmap): Likewise.
14605         * genrecog.c (debug_decision, debug_decision_list): Likewise.
14606         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
14607         debug_tree_chain): Likewise.
14608         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
14609         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
14610         * optabs.c (debug_optab_libfuncs): Likewise.
14611         (verify_loop_closed_ssa): Likewise.
14612         * value-prof.c (verify_histograms): Likewise.
14613         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
14614         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
14615         * cfghooks.c (verify_flow_info): Likewise.
14616         * fold-const.c (debug_fold_checksum): Likewise.
14617         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
14618         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
14619         Likewise.
14620         * omega.c (debug_omega_problem): Likewise.
14621         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
14622         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
14623         * dominance.c (verify_dominators, debug_dominance_info,
14624         debug_dominance_tree): Likewise.
14625         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
14626         * df_regno_debug, df_ref_debug,
14627         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
14628         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
14629         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
14630         * sel-sched.c (debug_state): Likewise.
14631         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
14632         Likewise.
14633         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
14634         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
14635         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
14636         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
14637         Likewise.
14638         * c-pretty-print.c (debug_c_tree): Likewise.
14639         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
14640         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
14641         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
14642         * ebitmap.c (debug_ebitmap): Likewise.
14643         * function.c (debug_find_var_in_block_tree): Likewise.
14644         * print-rtl.c (debug_rtx): Likewise.
14645         (debug_rtx_count): Likewise.
14646         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
14647         * stor-layout.c (debug_rli): Likewise.
14648         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
14649         * tree-data-ref.c (debug_data_references,
14650         debug_data_dependence_relations, debug_data_reference,
14651         debug_data_dependence_relation, debug_rdg_vertex,
14652         debug_rdg_component, debug_rdg): Likewise.
14653         * tree-affine.c (debug_aff): Likewise.
14654         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
14655         Likewise.
14656         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
14657         * emit-rtl.c (verify_rtl_sharing): Likewise.
14658         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
14659         debug_value_expressions): Likewise.
14660         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
14661         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
14662         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
14663         * cfglayout.c (verify_insn_chain): Likewise.
14664         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
14665         debug_clast_stmt, debug_generated_program): Likewise.
14666         * ggc-page.c (debug_print_page_list): Likewise.
14667         * tree-ssa-ter.c (debug_ter): Likewise.
14668         * graphite-dependences.c (debug_pddr): Likewise.
14669         * sched-deps.c (debug_ds): Likewise.
14670         * tree-ssa.c (verify_ssa): Likewise.
14671         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
14672         debug_scattering_functions, debug_iteration_domains, debug_pdr,
14673         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
14674         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
14675         * tree-inline.c (debug_find_tree): Likewise.
14676         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
14677         debug_ppl_powerset_matrix): Likewise.
14678         * var-tracking.c (debug_dv): Likewise.
14679         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
14680         * cfgloop.c (verify_loop_structure): Likewise.
14681         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
14682         * c-common.c (verify_sequence_points): Likewise.
14683         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
14684         debug_candidates, debug_rgn_dependencies): Likewise.
14685         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
14686         * debug_constraint_graph, debug_solution_for_var,
14687         debug_sa_points_to_info): Likewise.
14688         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
14689         Likewie.
14690         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
14691         debug_loops, debug_loop, debug_loop_num): Likewise.
14692         * passes.c (debug_pass): Likewise.
14693         (dump_properties): Likewise; add cfglayout property.
14694         (debug_properties): Likewise.
14695         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
14696         * varpool.c (debug_varpool): Likewise.
14697         * regcprop.c (debug_value_data): Likewise.
14698         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
14699         debug_immediate_uses_for): Likewise.
14700
14701 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14702
14703         PR bootstrap/44315
14704         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
14705         Filter out insn-flags.h.
14706
14707 2010-05-29  Jan Hubicka  <jh@suse.cz>
14708
14709         * cgraph.h (struct varpool_node_set_def,
14710         struct cgraph_node_set_def): Remove unused AUX pointer.
14711         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
14712         VEC_empty macro.
14713
14714 2010-05-29  Jan Hubicka  <jh@suse.cz>
14715
14716         PR middle-end/44324
14717         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
14718
14719 2010-05-29  Richard Guenther  <rguenther@suse.de>
14720
14721         * lto-streamer.c (cached_bp): New global variable.
14722         (bitpack_create): Return the cached bitpack, if available.
14723         (bitpack_delete): Clear and cache the bitpack, if appropriate.
14724         (bp_pack_value): Remove redundant asserts.
14725
14726 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
14727
14728         PR middle-end/44306
14729         * tree-if-conv.c (is_true_predicate): New.
14730         (is_predicated): Use is_true_predicate.
14731         (add_to_predicate_list): Same.  Do not use unshare_expr.
14732         (add_to_dst_predicate_list): Same.
14733
14734 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
14735
14736         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
14737         field on edges.
14738         (predicate_bbs): Same.
14739         (clean_predicate_lists): Same.
14740         (find_phi_replacement_condition): Do not AND the predicate from
14741         edge->aux.
14742
14743 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14744
14745         PR bootstrap/44315
14746         * Makefile.in (build/gencondmd.o): Add a missing `\'.
14747
14748 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14749
14750         PR target/44261
14751         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
14752         (negdf2): Adjust expander pattern and use negdf2_slow.
14753         (negsf2): Likewise.
14754
14755 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
14756
14757         * basic-block.h (struct control_flow_graph): Move last_label_uid field
14758         up.
14759         * df.h (struct df_base_ref): Move regno field up.
14760         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
14761         * expr.h (struct separate_ops): Move location field up.
14762         * optabs.h (struct optab_d): Move libcall_basename field down.
14763         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
14764         * config/i386/i386.h (struct machine_function): Convert call_abi field
14765         into a bitfield.  Move cfa field to the end of the structure.
14766
14767 2010-05-29  Jan Hubicka  <jh@suse.cz>
14768
14769         * varpool.c (varpool_get_node): Fix lookup.
14770
14771 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14772
14773         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
14774         RTL specific prototypes with #ifdef RTX_CODE.
14775         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
14776         * config/spu/t-spu-elf: Fix dependencies.
14777
14778         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
14779
14780 2010-05-29  Mike Stump  <mikestump@comcast.net>
14781
14782         PR bootstrap/44315
14783         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
14784         TM_H when building to avoid dependency loops.
14785
14786 2010-05-29  Jan Hubicka  <jh@suse.cz>
14787
14788         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
14789         refs and body; not the whole node for masters of materialized clones.
14790
14791 2010-05-29  Mike Stump  <mikestump@comcast.net>
14792
14793         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
14794
14795 2010-05-29  Jan Hubicka  <jh@suse.cz>
14796
14797         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
14798         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
14799         use of clone_function_name.
14800         * cgraph.h (cgraph_create_virtual_clone,
14801         cgraph_function_versioning): update prototypes.
14802         (clone_function_name): Declare.
14803         * ipa-cp.c (ipcp_insert_stage): Update call of
14804         cgraph_create_virtual_clone.
14805         * omp-low.c (create_omp_child_function_name): Use
14806         cgraph_create_virtual_clone.
14807         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
14808         (cgraph_function_versioning): Take SUFFIX argument; produce new name
14809         and make decl local.
14810
14811 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14812
14813         * vec.h: Include statistics.h
14814         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
14815         with VEC_H.
14816
14817 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14818
14819         * c-lex.c: Do not include c-tree.h.
14820         * c-pretty-print.c: Likewise.
14821         * c-opts.c: Likewise.
14822         * c-gimplify.c: Likewise.
14823         * c-common.c: Likewise.
14824         * c-dump.c: Likewise.  Include c-common.h.
14825
14826 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14827
14828         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
14829         before including diagnostic-core.h.
14830         (c_cpp_error): New prototype moved from c-tree.h.
14831         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
14832         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
14833         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
14834         (c_cpp_error): Prototype moved to c-common.h.
14835         * Makefile.in: Update dependency for C_COMMON_H.
14836
14837 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14838
14839         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
14840         * c-common.c (c_register_addr_space): Remove here.
14841         * c-decl.c (c_register_addr_space): Re-add here.
14842
14843 2010-05-28  Mike Stump  <mikestump@comcast.net>
14844
14845         * config/darwin-c.c: Remove c-tree.h include.
14846
14847 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14848
14849         * gcc.c: Include diagnostic.h.
14850         (error_count): Remove.  All users changed to use errorcount.
14851         (programname): Remove.  All users changed to use progname.
14852         (fancy_abort, internal_error, fatal_error, error, warning, inform,
14853         fnotice): Remove.
14854         (execute): Don't include "Internal error" and bug reporting
14855         information in argument of internal_error call.
14856         (process_command): Don't increment error_count after calling
14857         perror_with_name.
14858         (input_filename): Rename to gcc_input_filename.  All users
14859         changed.
14860         (main): Call diagnostic_initialize.  Register delete_temp_files
14861         with atexit.  Use seen_error to test for errors.
14862         * gcc.h: Include diagnostic-core.h.
14863         (fatal_error, error, warning): Remove.
14864         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
14865         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
14866         (gcc.o): Update dependencies.
14867
14868 2010-05-28  Jeff Law  <law@redhat.com>
14869
14870         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
14871         functions.
14872         * ira.h (ira_bad_reload_regno): Declare
14873         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
14874
14875         * ira-color.c (update_curr_costs): Free updated hard reg costs.
14876         (ira_reassign_conflict_allocnos): Remove bogus asserts.
14877         (allocno_reload_assign): Likewise.
14878
14879 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
14880
14881         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
14882         build1_stat.
14883
14884 2010-05-28  Richard Guenther  <rguenther@suse.de>
14885
14886         PR lto/44312
14887         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
14888         Stream fixed-point constants mode.
14889         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
14890         and TYPE_PRECISION.
14891         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
14892         Stream fixed-point constants mode.
14893         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
14894         and TYPE_PRECISION.
14895
14896 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14897
14898         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
14899         only place it was called from.
14900         (number_of_latch_executions): Do not return chrec_dont_know when the
14901         may_be_zero is a runtime condition: instead, return a COND_EXPR
14902         including the may_be_zero condition.
14903         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
14904         of nb_iterations.
14905         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
14906         COND_EXPRs.
14907
14908 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14909
14910         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
14911         generate COND_EXPRs for degenerate_phi_result.
14912
14913 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14914
14915         PR middle-end/44293
14916         * tree-if-conv.c (if_convertible_loop_p): Check the
14917         if-convertibility of phi nodes in non predicated BBs.
14918
14919 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14920
14921         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
14922
14923 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14924
14925         PR driver/15303
14926         * gcc.c (inform, warning, inform): New functions.
14927         (fatal_ice): Rename to internal_error; change cmsgid parameter to
14928         gmsgid.  All callers changed.
14929         (notice): Rename to fnotice; add parameter fp.  All callers changed.
14930         (fatal_error): Rename to fatal_signal.  All users changed.
14931         (fatal): Rename to fatal_error; change cmsgid parameter to
14932         gmsgid.  All callers changed.
14933         (process_command): Use warning instead of error for warnings.
14934         (end_going_arg): Don't use _() around argument of error.
14935         (do_spec_1): Use inform for message from %n specs.  Use warning
14936         instead of error for warnings.
14937         (main): Use inform for comparison messages.  Use warning for
14938         message about unused linker input.
14939         (error): Increment error_count.  Print "error: ".
14940         * gcc.h (fatal): Change to fatal_error.
14941         (warning): Declare.
14942         * config/darwin-driver.c (darwin_default_min_version): Use warning
14943         instead of fprintf for warnings.
14944         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
14945
14946 2010-05-28  Julian Brown  <julian@codesourcery.com>
14947
14948         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
14949         (*thumb2_addsi3_compare0_scratch): New.
14950         * config/arm/constraints.md (Pv): New.
14951         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
14952         for ARM mode only.
14953         (*addsi3_compare0_scratch): Likewise.
14954
14955 2010-05-28  Jan Hubicka  <jh@suse.cz>
14956
14957         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
14958         check.
14959         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
14960         only on local statics.
14961
14962 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
14963
14964         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
14965
14966 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14967
14968         PR bootstrap/44314
14969         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
14970         (OPTION_GLIBC): Define.
14971
14972 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
14973
14974         PR debug/41048
14975         * dwarf2out.c (double_int_type_size_in_bits): New function.
14976         (round_up_to_align): Change first argument and return value to
14977         double_int.
14978         (field_byte_offset): Work internally on double_ints.
14979
14980         PR target/43636
14981         * builtins.c (expand_movstr): Use a temporary pseudo instead
14982         of target even when target is not NULL and not const0_rtx, but
14983         fails movstr predicate.
14984         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
14985
14986 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14987
14988         * final.c (rest_of_clean_state): Use %m in errors instead of
14989         strerror (errno).
14990         * gengtype.c (read_input_list, close_output_files): Use xstrerror
14991         instead of strerror.
14992         * toplev.c (process_options): Use %m in errors instead of strerror
14993         (errno).
14994         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
14995         (errno).
14996
14997 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
14998
14999         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
15000         (ix86_canonical_va_list_type): Make static.  Add declaration.
15001         (ix86_enum_va_list): Make static.  Reindent.
15002         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
15003         (ix86_canonical_va_list_type): Ditto.
15004         (ix86_enum_va_list): Ditto.
15005
15006 2010-05-28  Richard Guenther  <rguenther@suse.de>
15007
15008         * lto-wrapper.c (run_gcc): With -save-temps generate a
15009         user-visible ltrans filename.  Fixup ltrans unit numbering.
15010
15011 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
15012
15013         * c-common.c (c_common_nodes_and_builtins): Replace use
15014         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
15015         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
15016         to ix86_enum_va_list.
15017         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
15018         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
15019         (TARGET_ENUM_VA_LIST_P): Add hook description.
15020         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
15021         * target.h (gcc_target): Add enum_va_list hook.
15022
15023         PR bootstrap/44299
15024         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
15025         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
15026         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
15027
15028 2010-05-28  Alan Modra  <amodra@gmail.com>
15029
15030         PR target/44266
15031         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
15032         emit_library_call machinery to set up __tls_get_addr calls.
15033
15034 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15035
15036         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
15037
15038 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
15039
15040         Revert fix for PR c++/44188
15041         * c-common.c (is_typedef_decl): Revert the moving of  this
15042         definition ...
15043         * tree.c (is_typedef_decl): ... here.
15044         (typdef_variant_p): Revert the moving of this  definition
15045         here from cp/tree.c.
15046         * c-common.h (is_typedef_decl): Revert the moving of this
15047         declaration ...
15048         * tree.h (is_typedef_decl): ... here.
15049         (typedef_variant_p): Revert the moving of this  declaration here
15050         from cp/cp-tree.h
15051         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15052         (gen_tagged_type_die): Revert the splitting out of ...
15053         (gen_type_die_with_usage): ... this function. Revert the anonymous
15054         tagged type handling.
15055         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
15056         typedefs naming anonymous tagged types.
15057
15058 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15059
15060         * config/rs6000/rs6000-modes.def (PSImode): Delete.
15061
15062 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15063
15064         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
15065         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
15066         throughout.
15067         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
15068         "xer" to "ca".
15069         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
15070         XER_REGS to CA_REGS throughout.
15071         * config/rs6000/rs6000.h: Same.
15072         (ADDITIONAL_REGISTER_NAMES): Add "xer".
15073         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
15074         that mode_iterator "P" is the size for arithmetic carries as well.
15075         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15076
15077 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15078
15079         PR bootstrap/44255
15080         * combine.c (struct rtx_subst_pair): Define unconditionally.
15081         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
15082         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
15083         Call make_compound_operation on pair->to.
15084         (propagate_for_debug): Don't call make_compound_operation here.
15085         Always use simplify_replace_fn_rtx.
15086
15087 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
15088
15089         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
15090         * config/xtensa/xtensa.c (override_options): Check
15091           TARGET_FORCE_NO_PIC and set flag_pic.
15092         * config/xtensa/xtensa.opt: Document -mforce-no-pic
15093
15094 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15095
15096         PR bootstrap/44299
15097         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
15098         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
15099
15100 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15101
15102         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
15103         toplev.h.
15104         * diagnostic.c: Don't include toplev.h.
15105         (progname): Define.  Moved from toplev.c.
15106         (seen_error): New function.
15107         * diagnostic.h: Include diagnostic-core.h.
15108         (diagnostic_t, emit_diagnostic): Don't declare here.
15109         * toplev.c (progname): Move to toplev.c.
15110         (emit_debug_global_declarations, compile_file, finalize,
15111         do_compile, toplev_main): Use seen_error.
15112         * toplev.h: Include diagnostic-core.h.
15113         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15114         internal_error, warning, warning_at, error, error_n, error_at,
15115         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
15116         verbatim, fnotice, progname): Move to diagnostic-core.h.
15117         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
15118         (expand_builtin_expect): Use seen_error.
15119         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
15120         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
15121         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
15122         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
15123         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
15124         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
15125         errorcount for errors.
15126         * c-opts.c (c_common_finish): Use seen_error.
15127         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15128         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
15129         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
15130         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
15131         (get_coverage_counts): Use seen_error.
15132         * dwarf2out.c (dwarf2out_finish): Use seen_error.
15133         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
15134         gimplify_body): Use seen_error.
15135         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
15136         * ipa-pure-const.c (gate_pure_const): Use seen_error.
15137         * ipa-reference.c (gate_reference): Use seen_error.
15138         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
15139         * lambda-code.c: Include diagnostic-core.h instead of
15140         diagnostic.h.
15141         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15142         * lto-compress.c: Include diagnostic-core.h instead of
15143         diagnostic.h.
15144         * lto-section-in.c: Include diagnostic-core.h instead of
15145         diagnostic.h.
15146         * lto-streamer-out.c: Include diagnostic-core.h instead of
15147         diagnostic.h.
15148         * lto-streamer.c: Include diagnostic-core.h instead of
15149         diagnostic.h.
15150         (gate_lto_out): Use seen_error.
15151         * matrix-reorg.c: Include diagnostic-core.h instead of
15152         diagnostic.h.
15153         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
15154         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
15155         (gate_expand_omp, lower_omp_1): Use seen_error.
15156         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
15157         (rest_of_decl_compilation, rest_of_type_compilation,
15158         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
15159         * tree-cfg.c (label_to_block_fn): Use seen_error.
15160         * tree-inline.c (optimize_inline_calls): Use seen_error.
15161         * tree-mudflap.c (mudflap_finish_file): Use
15162         seen_error.
15163         * tree-optimize.c (gate_all_optimizations,
15164         gate_all_early_local_passes, gate_all_early_optimizations): Use
15165         seen_error.
15166         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
15167         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
15168         (varpool_remove_unreferenced_decls,
15169         varpool_assemble_pending_decls): Use seen_error.
15170         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
15171         (TOPLEV_H, DIAGNOSTIC_H): Update.
15172         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
15173         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
15174         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
15175         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
15176         coverage.o, lambda-code.o): Update dependencies.
15177
15178 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15179
15180         PR c++/44188
15181         * c-common.c (is_typedef_decl): Move this definition ...
15182         * tree.c (is_typedef_decl): ... here.
15183         (typdef_variant_p): Move definition here from cp/tree.c.
15184         * c-common.h (is_typedef_decl): Move this declaration ...
15185         * tree.h (is_typedef_decl): ... here.
15186         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15187         * dwarf2out.c (is_naming_typedef_decl): New function.
15188         (gen_tagged_type_die): Split out of ...
15189         (gen_type_die_with_usage): ... this function. When an anonymous
15190         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15191         is emitted for the typedef.
15192         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15193         anonymous tagged types.
15194
15195 2010-05-27  Jason Merrill  <jason@redhat.com>
15196
15197         * print-tree.c (debug_vec_tree): New fn.
15198         (print_vec_tree): New fn.
15199         * tree.h: Declare them.
15200         * gdbinit.in (pvt): New command.
15201
15202         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
15203
15204         * gdbinit.in (pdd): New command.
15205
15206 2010-05-27  Jan Hubicka  <jh@suse.cz>
15207
15208         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
15209         (update_caller_keys): Return early if there are no callers;
15210         only update fibheap when decresing the key.
15211         (update_callee_keys): Avoid recursion.
15212         (decide_inlining_of_small_functions): When badness does not match;
15213         re-insert into fibheap.
15214
15215 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
15216
15217         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
15218         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
15219         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
15220         (ALL_HOST_OBJS): Now a union of the above two.
15221         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
15222         all files in ALL_HOST_FRONTEND_OBJS.
15223         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
15224
15225         * c-common.c: Pretend to be a backend file by undefining
15226         IN_GCC_FRONTEND (still need rtl.h here).
15227
15228 2010-05-27  Jan Hubicka  <jh@suse.cz>
15229
15230         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
15231         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
15232
15233 2010-05-27  Jan Hubicka  <jh@suse.cz>
15234
15235         * sched-ebb.c: Rename struct deps to struct deps_desc.
15236         * ddg.c: Likewise.
15237         * sel-sched-ir.c: Likewise.
15238         * sched-deps.c: Likewise.
15239         * sched-int.h: Likewise.
15240         * sched-rgn.c: Likewise.
15241
15242 2010-05-27  Jon Beniston  <jon@beniston.com>
15243
15244         PR 43726
15245         * config/lm32/lm32.h: Remove definition of
15246         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
15247
15248 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15249
15250         PR lto/44230
15251         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
15252
15253 2010-05-27  Richard Guenther  <rguenther@suse.de>
15254
15255         PR tree-optimization/44284
15256         * tree-vect-stmts.c (vectorizable_assignment): Handle
15257         sign-changing conversions as simple copy.
15258
15259 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15260
15261         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
15262         Bionic C library.
15263         (__gthread_active_p): Check for pthread_create if compiling against
15264         Bionic C library.
15265
15266 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15267
15268         Support compilation for Android platform.  Reimplement -mandroid.
15269
15270         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
15271         (*android*): Set ANDROID_DEFAULT.
15272         (arm*-*-linux*): Include linux-android.h.
15273         (arm*-*-eabi*): Don't include previous -mandroid implementation.
15274         * config/arm/eabi.h: Remove, move Android-specific parts ...
15275         * config/linux-android.h: ... here.  New file.
15276         * config/arm/eabi.opt: Rename to ...
15277         * config/linux-android.opt: ... this.
15278         (mandroid): Allow -mno-android option.  Initialize based on
15279         ANDROID_DEFAULT.
15280         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
15281         Move logic to corresponding LINUX_TARGET_* macros.
15282         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
15283         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
15284         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
15285         Android definitions.
15286         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
15287         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
15288         Document.
15289
15290 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15291
15292         Add support for Bionic C library
15293
15294         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
15295         macro.
15296         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
15297         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
15298
15299         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
15300         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
15301         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
15302         to support multiple C libraries.  Handle Bionic.
15303         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
15304         (BIONIC_DYNAMIC_LINKER64): Define.
15305         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
15306         Update.
15307         (TARGET_HAS_SINCOS): Enable for Bionic.
15308
15309         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
15310         the last option specified on command line take effect.
15311         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
15312         (mbionic): New.
15313         (mglibc, muclibc): Update.
15314
15315         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
15316         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
15317         DEFAULT_LIBC.
15318
15319         * doc/invoke.texi (-mglibc, -muclibc): Update.
15320         (-mbionic): Document.
15321
15322 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15323
15324         * c-common.h (c_register_addr_space): Add prototype.
15325         (ADDR_SPACE_KEYWORD): Remove.
15326         * c-common.c (c_register_addr_space): New function.
15327         (c_addr_space_name): Reimplement.
15328         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
15329
15330         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
15331         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
15332
15333         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
15334         Remove TARGET_ADDR_SPACE_KEYWORDS.
15335
15336 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15337
15338         * input.c: New file.
15339         * input.h (main_input_filename): Move declaration to toplev.h.
15340         * toplev.c (input_location, line_table): Move to input.c
15341         * toplev.h (main_input_filename): Move declaration from input.h.
15342         * tree.c (expand_location): Move to input.c.
15343         * Makefile.in (OBJS-common): Add input.o.
15344         (input.o): Add dependencies.
15345
15346 2010-05-27  Richard Guenther  <rguenther@suse.de>
15347
15348         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
15349         for non-existant files.
15350         (fork_execute): Mark args_name file as deleted.
15351
15352 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15353
15354         PR bootstrp/44287
15355         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
15356         (narrow_signed_type): Likewise.
15357
15358 2010-05-26  Jan Hubicka  <jh@suse.cz>
15359
15360         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
15361         edge only when checking is enabled; check using former_clone_of;
15362         check inline clones too.
15363         (cgraph_materialize_clone): Record former_clone_of pointer.
15364         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
15365         combining redirections; dump args_to_skip bitmap
15366         (cgraph_materialize_all_clones): Do no redirection here.
15367         * ipa-inline.c (inline_transform): Do redirection here.
15368         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
15369         cheking only).
15370
15371 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15372
15373         * config/avr/avr-c.c: Do not include regs.h.
15374         Include cpplib.h for cpp_define and tree.h for c-common.h.
15375         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
15376         * config/avr/t-avr: Fix dependencies for avr-c.o.
15377
15378 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15379
15380         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
15381         string instead of SYMBOL_REF rtx.
15382         * rtl.h (set_stack_check_libfunc): Move prototype from here...
15383         * libfuncs.h: ...to here.  Adjust for explow.c change.
15384
15385 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15386
15387         * pretty-print.c: Don't include ggc.h.
15388         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
15389         (identifier_to_locale): Use them for allocation.
15390         * pretty-print.h (identifier_to_locale_alloc,
15391         identifier_to_locale_free): Declare.
15392         * toplev.c (alloc_for_identifier_to_locale): New.
15393         (general_init): Set identifier_to_locale_alloc and
15394         identifier_to_locale_free.
15395         * Makefile.in (pretty-print.o): Update dependencies.
15396
15397 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15398
15399         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
15400         pointer types if they have different alignment or mode.
15401
15402 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
15403
15404         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15405         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15406         * config/sparc/sparc-protos.h (function_value): Remove declaration.
15407         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
15408         sparc_function_value_regno_p): New functions.
15409         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15410         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15411         (function_value): Rename to...
15412         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
15413         argument to 'outgoing'.
15414         (function_arg_record_value, function_arg_union_value,
15415         function_arg_vector_value): Update comment.
15416
15417 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15418
15419         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
15420         (fde_needed_for_eh_p): New predicate.
15421         (output_call_frame_info): Use it throughout to decide whether FDEs
15422         are needed for EH purpose.
15423         (dwarf2out_begin_prologue): Reorder assignments.
15424
15425 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15426
15427         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
15428         special case loop->header.
15429         (is_predicated): New.
15430         (if_convertible_loop_p): Call it.
15431
15432 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15433
15434         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
15435         iterator in parameter.  Do not generate code during the analysis.
15436         (tree_if_convert_cond_stmt): Removed.
15437         (tree_if_convert_stmt): Removed.
15438         (predicate_bbs): New.
15439         (if_convertible_loop_p): Call predicate_bbs.
15440         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
15441         now contains all the analysis part.
15442
15443 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15444
15445         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
15446         statements in the analysis part.
15447         (tree_if_convert_stmt): Update comment.
15448         (remove_conditions_and_labels): New.
15449         (combine_blocks): Call remove_conditions_and_labels.
15450         (tree_if_conversion): Update comment.
15451
15452 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15453
15454         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
15455         than 2 predecessors or more than 2 successors.
15456
15457 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15458
15459         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
15460         of loops in which the data dependence analysis fails.
15461
15462 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15463
15464         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
15465         CDI_POST_DOMINATORS.
15466         (tree_if_conversion): Same.
15467
15468 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15469
15470         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
15471
15472 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15473
15474         * tree-if-conv.c: Update copyright years.  Fix comments.
15475         Fix indentation.
15476
15477 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
15478
15479         * builtin-types.def (BT_INT128): New primitive type.
15480         (BT_UINT128): Likewise.
15481         * c-common.c (c_common_r): Add __int128 keyword.
15482         (c_common_type_for_size): Handle __int128.
15483         (c_common_type_for_mode): Likewise.
15484         (c_common_signed_or_unsigned_type): Likewise.
15485         (c_common_nodes_and_builtins): Add builtin type
15486         if target supports 128-bit integer scalar.
15487         * c-common.h (enum rid): Add RID_INT128.
15488         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
15489         if target supports 128-bit integer scalar.
15490         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
15491         (finish_declspecs): Likewise.
15492         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
15493         (c_token_starts_declspecs): Likewise.
15494         (c_parser_declspecs): Likewise.
15495         (c_parser_attributes): Likewise.
15496         (c_parser_objc_selector): Likewise.
15497         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
15498         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
15499         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
15500         * tree.c (make_or_reuse_type): Likewise.
15501         (make_unsigned_type): Likewise.
15502         (build_common_tree_nodes_2): Likewise.
15503         * tree.h (enum integer_type_kind): Add itk_int128 and
15504         itk_unsigned_int128.
15505         (int128_integer_type_node): New define.
15506         (int128_unsigned_type_node): New define.
15507         * doc/extend.texi: Add documentation about __int128 type.
15508
15509 2010-05-26  Richard Guenther  <rguenther@suse.de>
15510
15511         * tree-ssa-sccvn.c (copy_nary): Adjust.
15512         (copy_phis): Rename to ...
15513         (copy_phi): ... this.  Adjust.
15514         (copy_references): Rename to ...
15515         (copy_reference): ... this.  Adjust.
15516         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
15517         result into the valid table.
15518
15519 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15520
15521         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
15522         insn-config.h, insn-codes.h, recog.h, and optabs.h.
15523
15524 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15525
15526         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
15527
15528 2010-05-26  Richard Guenther  <rguenther@suse.de>
15529
15530         * opts.c (common_handle_option): Handle OPT_Ofast.
15531
15532 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15533
15534         * diagnostic.c: Don't include opts.h.
15535         (permissive_error_option): Define.
15536         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
15537         for classify_diagnostic.  Don't use memset for
15538         classify_diagnostic.  Initialize new and recently added fields.
15539         (diagnostic_classify_diagnostic): Use context->n_opts instead of
15540         N_OPTS.
15541         (diagnostic_report_diagnostic): Pass context parameter to
15542         diagnostic_report_warnings_p.  Use option_enabled and option_name
15543         hooks from context.
15544         (emit_diagnostic): Use permissive_error_option.
15545         (permerror): Likewise.
15546         * diagnostic.h: Don't include options.h.
15547         (struct diagnostic_context): Add n_opts, opt_permissive,
15548         inhibit_warnings, warn_system_headers, option_enabled and
15549         option_name fields.  Change classify_diagnostic to a pointer.
15550         * opts-diagnostic.h: New file.
15551         * opts.c: Include opts-diagnostic.h.
15552         (common_handle_option): Set global_dc fields for -Wfatal-errors,
15553         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
15554         (option_name): New function.
15555         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
15556         (c_common_handle_option): Set global_dc->permissive for
15557         -fpermissive.
15558         * c-common.c (c_cpp_error): Save and restore
15559         global_dc->warn_system_headers, not variable warn_system_headers.
15560         * toplev.c: Include opts-diagnostic.h.
15561         (general_init): Update call to diagnostic_initialize.  Set
15562         global_dc->show_column, global_dc->option_enabled and
15563         global_dc->option_name.
15564         (process_options): Don't set global_dc fields here.
15565         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
15566         (diagnostic.o, opts.o, toplev.o): Update dependencies.
15567
15568 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15569
15570         * config/picochip/picochip.md (movsi): Split a movsi from a
15571         const after reload.
15572
15573 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15574
15575         * ggc-zone.c: Update copyright year.
15576         (poison_region): Mark memory for Valgrind as undefined before
15577         memset () call and inaccessible afterwards.
15578         (ggc_pch_total_size): Change type of i to int.
15579
15580 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15581
15582         * ggc-common.c (ggc_free_overhead): Allow empty slot.
15583
15584 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15585
15586         * ggc-common.c: Update copyright year.
15587         (ggc_rlimit_bound): Remove prototype.  Compile only if
15588         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
15589         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
15590         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
15591         (ggc_min_heapsize_heuristic): Likewise.
15592
15593 2010-05-26  Richard Guenther  <rguenther@suse.de>
15594
15595         PR rtl-optimization/44164
15596         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
15597         no-common access-path disambiguation.
15598         (indirect_ref_may_alias_decl_p): Adjust.
15599         (indirect_refs_may_alias_p): Likewise.
15600         (refs_may_alias_p_1): Likewise.
15601
15602 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15603
15604         * c-typeck.c: Do not include expr.h.
15605
15606 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15607
15608         * rtl.h (decl_default_tls_model): Move prototype from here...
15609         * output.h: ...to here.
15610         * c-decl.c: Do not include rtl.h.
15611         * c-pragma.c: Likewise.
15612         * c-parser.c: Likewise.
15613         * c-gimplify.c: Likewise.  And also not hard-reg-set.
15614         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
15615         FIXME note for it.  Add a FIXME note for expr.h.
15616         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
15617         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
15618         defined.
15619
15620 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
15621
15622         PR target/44199
15623         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
15624         or total_size is larger than red zone size for non-V4 ABI, emit a
15625         stack_tie resp. frame_tie insn before stack pointer restore.
15626         * config/rs6000/rs6000.md (frame_tie): New insn.
15627
15628 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15629
15630         * function.h (struct function): Add can_throw_non_call_exceptions bit.
15631         * lto-streamer-in.c (input_function): Stream it in.
15632         * lto-streamer-out.c (output_function): Stream it out.
15633         * function.c (allocate_struct_function): Set it.
15634         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
15635         for flag_non_call_exceptions.
15636         * cfgbuild.c (control_flow_insn_p): Likewise.
15637         (make_edges): Likewise.
15638         * cfgexpand.c (expand_stack_alignment): Likewise.
15639         * combine.c (distribute_notes): Likewise.
15640         * cse.c (cse_extended_basic_block): Likewise.
15641         * except.c (insn_could_throw_p): Likewise.
15642         * gcse.c (simple_mem): Likewise.
15643         * ipa-pure-const.c (check_call): Likewise.
15644         (check_stmt ): Likewise.
15645         * lower-subreg.c (lower-subreg.c): Likewise.
15646         * optabs.c (emit_libcall_block): Likewise.
15647         (prepare_cmp_insn): Likewise.
15648         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
15649         * postreload.c (rest_of_handle_postreload): Likewise.
15650         * reload1.c (reload_as_needed): Likewise.
15651         (emit_input_reload_insns): Likewise.
15652         (emit_output_reload_insns): Likewise.
15653         (fixup_abnormal_edges): Likewise.
15654         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
15655         * store-motion.c (find_moveable_store): Likewise.
15656         * tree-eh.c (stmt_could_throw_p): Likewise.
15657         (tree_could_throw_p): Likewise.
15658         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
15659         * config/arm/arm.c (arm_expand_prologue): Likewise.
15660         (thumb1_expand_prologue): Likewise.
15661         * config/rx/rx.md (cbranchsf4): Likewise.
15662         (cmpsf): Likewise.
15663         * config/s390/s390.c (s390_emit_prologue): Likewise.
15664         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
15665         (inline_forbidden_into_p): New predicate.
15666         (expand_call_inline): Use it to forbid inlining.
15667         (tree_can_inline_p): Likewise.
15668
15669 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15670
15671         * config/i386/i386-c.c: Do not include rtl.h.
15672         * config/i386/t-i386: Update dependencies.
15673
15674 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15675
15676         * attribs.c: Do not include rtl.h.
15677         * Makefile.in: Update dependencies.
15678
15679 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
15680
15681         * double-int.h (double_int_and): New.
15682         * combine.c (try_combine): Clean up, use double_int_* and
15683         immed_double_int_const functions.
15684
15685 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15686
15687         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
15688         stderr to /dev/null instead of grep -q.
15689         * configure: Regenerate.
15690
15691 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15692
15693         * Makefile.in (EXCEPT_H): Fix typo.
15694
15695 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
15696
15697         * ira-build.c (update_conflict_hard_reg_costs): New.
15698         (ira_build): Call update_conflict_hard_reg_costs.
15699
15700 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
15701
15702         PR debug/41371
15703         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
15704         ENABLE_CHECKING.
15705         (intersect_loc_chains): Walk the s2var's loc_chain together
15706         with s1node chain as long as the locations are equal, don't
15707         call find_loc_in_1pdv in that case.
15708
15709         PR debug/42801
15710         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
15711         (copy_bind_expr): ... instead of here.
15712         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
15713         if the block hasn't been remapped.
15714         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
15715         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
15716
15717 2010-05-25  Richard Guenther  <rguenther@suse.de>
15718
15719         PR middle-end/44069
15720         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
15721         out-of-bounds array accesses.
15722
15723 2010-05-25  Richard Guenther  <rguenther@suse.de>
15724
15725         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
15726         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
15727         (run_gcc): Re-organize to make cleanup easier.
15728
15729 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15730
15731         * config/s390/s390.c (optimization_options): Fix and move the
15732         flag_prefetch_loop_arrays override ...
15733         (override_options): ... here.
15734
15735 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
15736
15737         * diagnostic.c: Don't include plugin.h.
15738         (diagnostic_report_diagnostic): Don't handle plugins specially
15739         here.  Pass context to internal_error callback.
15740         * diagnostic.h (struct diagnostic_context): Add context parameter
15741         to internal_error callback.
15742         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
15743         * plugin.h (struct diagnostic_context): Declare.
15744         (warn_if_plugins, plugins_internal_error_function): Declare.
15745         * toplev.c (general_init): Set global_dc->internal_error.
15746         * Makefile.in (diagnostic.o): Update dependencies.
15747
15748 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
15749
15750         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
15751         * config/rs6000/t-darwin64: New.
15752         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
15753         build crt2.
15754
15755 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
15756
15757         PR 44203
15758         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
15759         match the original (and intended) behaviour before r159557.  This
15760         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
15761         in two ways.
15762
15763 2010-05-25  Richard Guenther  <rguenther@suse.de>
15764
15765         * doc/invoke.texi: Document -Ofast.
15766         * target.h (struct gcc_target): Add handle_ofast.
15767         * target-def.h (TARGET_HANDLE_OFAST): Add.
15768         (TARGET_INITIALIZER): Adjust.
15769         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
15770         * common.opt (Ofast): Add.
15771
15772 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
15773
15774         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
15775         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
15776
15777 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
15778
15779         PR target/43610
15780         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
15781         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
15782         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
15783         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
15784
15785 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
15786
15787         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
15788         DW_OP_minus with negated offset instead of DW_OP_plus.
15789         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
15790
15791 2010-05-25  Wei Guozhi  <carrot@google.com>
15792
15793         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
15794         tst instruction and a new alternative.
15795         * config/arm/constraints.md (Pu): New constraint.
15796
15797 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
15798
15799         * function.c (assign_stack_local_1): Initialize variable
15800         to avoid warning when bootstrapping at -O3.
15801
15802 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
15803
15804         * configure.ac (all_lang_makefiles): Remove everything related to it.
15805         * configure: Regenerate.
15806         * Makefile.in: Fix reference to ada Make-lang.in.
15807         Remove support for LANG_MAKEFILES.
15808
15809 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
15810             Sandra Loosemore  <sandra@codesourcery.com>
15811
15812         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
15813         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
15814         description.  Add arm_neon_fp16_ok.
15815         (Add Options): Add arm_neon and arm_neon_fp16.
15816
15817 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
15818
15819         * diagnostic.c: Don't include flags.h.
15820         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
15821         context parameters.  Check flags in the context passed as a parameter.
15822         (diagnostic_build_prefix): Add context parameter.  Check
15823         show_column flag in context.
15824         (diagnostic_action_after_output): Check fatal_errors flag in context.
15825         (diagnostic_report_current_module): Check show_column flag in context.
15826         (default_diagnostic_starter): Update call to
15827         diagnostic_build_prefix.
15828         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
15829         (emit_diagnostic): Pass context to permissive_error_kind.
15830         (permerror): Pass context to permissive_error_kind.
15831         * diagnostic.h (struct diagnostic_context): Add show_column,
15832         pedantic_errors, permissive and fatal_errors fields.
15833         (diagnostic_build_prefix): Update prototype.
15834         * langhooks.c
15835         * toplev.c (process_options): Set flags in global_dc from
15836         flag_show_column, flag_pedantic_errors, flag_permissive,
15837         flag_fatal_errors.
15838         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
15839         to diagnostic_build_prefix.
15840         * Makefile.in (diagnostic.o): Update dependencies.
15841
15842 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15843
15844         * config/i386/ia32intrin.h (__crc32q): Define only if
15845         __SSE4_2__ is defined.
15846
15847 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
15848
15849         PR target/44132
15850         PR middle-end/43602
15851         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
15852         DECL_VISIBILITY_SPECIFIED.
15853         (emutls_decl): Set DECL_PRESERVE_P and copy
15854         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
15855         (emutls_finalize_control_var): New callback.
15856         (emutls_finish): Finalize emutls control variables.
15857         * toplev.c (compile_file): Move the call to emutls_finish ()
15858         before varpool_assemble_pending_decls ().
15859
15860 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
15861
15862         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
15863         added to the preprocessor condition.
15864
15865 2010-05-24  Paul Brook  <paul@codesourcery.com>
15866
15867         * gengtype-lex.l: Add HARD_REG_SET.
15868         * expr.c (expand_expr_real_1): Record writes to hard registers.
15869         * function.c (rtl_data): Add asm_clobbers.
15870         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
15871         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
15872         Use crtl->asm_clobbers.
15873
15874 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15875
15876         * doc/makefile.texi (Makefile): Mention stages 'profile'
15877         and 'feedback' for profiledbootstrap.
15878
15879 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
15880
15881         PR target/44245
15882         * config/i386/i386.c (def_builtin): Properly check
15883         OPTION_MASK_ISA_64BIT.
15884
15885 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
15886
15887         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
15888         typedefs with different but compatible types.  Allow duplicate
15889         typedefs with the same type except for pedantic non-C1X, but give
15890         warning for variably modified types.
15891         * c-typeck.c (tagged_types_tu_compatible_p,
15892         function_types_compatible_p, type_lists_compatible_p,
15893         comptypes_internal): Add parameter different_types_p; set
15894         *different_types_p for different but compatible types.  All
15895         callers changed.
15896         (comptypes_check_different_types): New.
15897         * c-tree.h (comptypes_check_different_types): Declare.
15898
15899 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
15900
15901         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
15902         * jump.c: Include basic-block.h.
15903         * profile.c: Likewise.
15904         * tree-profile.c: Likewise.
15905         * coverage.c: Likewise.
15906         * basic-block.h (optimize_function_for_size_p): Move to function.h.
15907         (optimize_function_for_speed_p): Likewise.
15908         * function.h (optimize_function_for_size_p,
15909         optimize_function_for_speed_p): Moved here from basic-block.h.
15910         * Makefile.in: Update dependencies.
15911
15912 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15913
15914         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
15915         before calling make; allow override through $MAKE.
15916         * doc/invoke.texi (Optimize Options): Document override.
15917
15918 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
15919
15920         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
15921         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15922         (rs6000_mode_dependent_address_ptr): Make static.
15923         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15924         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
15925         Remove.
15926
15927 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
15928
15929         PR target/43869
15930         * config/i386/i386.c: Make sure that the correct regparm is passed.
15931
15932 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
15933
15934         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
15935         * sbitmap.c: ...to here to internalize sbitmap element access.
15936         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
15937         Explain why basic-block.h is included.
15938         * function.h: Include tm.h for CUMULATIVE_ARGS.
15939         * Makefile.in: Update dependencies.
15940
15941 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15942
15943         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
15944         New core types.
15945         * sbitmap.h (struct sbitmap_def): Do not typedef here.
15946         * sbitmap.c: Include sbitmap.h.
15947         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
15948         hard-reg-set.h.  Split everything related to regsets out from here...
15949         * regset.h: ...to here.  New file.
15950         * df.h: Include regset.h and sbitmap.h.
15951         * tree-flow.h: Likewise.
15952         * cfgloop.h: Likewise.
15953         * except.h: Do not include sbitmap.h.  Include hashtab.h.
15954         * cgraph.h: Include vec.h and function.h.
15955         * reload.h (struct insn_chain): Change types of live_throughout
15956         and dead_or_set from regset_head to bitmap_head.
15957         (compute_use_by_pseudos): Be defined also if regset.h is not included.
15958         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
15959         spilled_regs from regset_head to bitmap_head to avoid dependency
15960         in regset.h.
15961         * sel-sched-ir.h: Include regset.h.
15962         * reload.c: Include df.h before reload.h.
15963         * caller-save.c: Likewise.
15964         * reload1.c: Likewise.
15965         * ira.c: Likewise.
15966         (mark_elimination): Update type of r to bitmap, consistent with
15967         DF_LR_IN.
15968         * dominance.c: Include bitmap.h.
15969         * modulo-sched.c: Include df.h.
15970         * cfganal.c: Include bitmap.h and sbitmap.h.
15971         * cfgbuild.c: Include sbitmap.h.
15972         * lcm.c: Include sbitmap.h.
15973         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
15974         * domwalk.c: Include sbitmap.h, exclude ggc.h.
15975         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
15976         * cselib.c: Include bitmap.h.
15977         * tree-optimize.c: Include regset.h.
15978         * stmt.c: Include bitmap.h.
15979         * Makefile.in: Update dependencies.
15980
15981 2010-05-22  Jan Hubicka  <jh@suse.cz>
15982
15983         * cgraph.h (struct varpool_node): Add same_comdat_group.
15984         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
15985         pointer.
15986         (output_varpool): Update call of lto_output_varpool_node.
15987         (input_varpool): Read same_comdat_group pointer.
15988         (input_varpool_1): Fixup same_comdat_group pointer.
15989         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
15990         group is needed, all are.
15991         * varpool.c (varpool_remove_node): Remove node from same comdat group
15992         linklist too.
15993         (varpool_analyze_pending_decls): Walk same comdat groups.
15994
15995 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15996
15997         * rtl.h (union rtunion_def): Remove rt_bit member.
15998         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
15999         * print-rtl (print_rtx): Do not print the member.
16000         * gengtype.c (adjust_field_rtx_def): Do not handle it.
16001         * gengenrtl.c (type_from_format): Likewise.
16002         (accessor_from_format): Likewise.
16003
16004 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
16005
16006         * dbgcnt.c: Include toplev.h instead of errors.h.
16007         * ira-emit.c: Don't include errors.h.
16008         * ira.c: Include toplev.h instead of errors.h.
16009         * lto-compress.c: Include toplev.h instead of errors.h.
16010         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
16011         ira.o, dbgcnt.o): Update dependencies.
16012
16013 2010-05-22  Richard Guenther  <rguenther@suse.de>
16014
16015         * gimple.c (gimple_types_compatible_p): Check type qualifications
16016         before merging pointer to complete and pointer to incomplete type.
16017         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
16018         we use our own resolution algorithm.  The gold linker plugin
16019         doesn't do the job we want it to do here.
16020
16021 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
16022
16023         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16024         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16025         (sparc_mode_dependent_address_p): New function.
16026
16027 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16028
16029         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
16030
16031         * timevar.c: Do not include any core headers.
16032         (timevar_print): De-i18n-ize.
16033         (print_time): Likewise.
16034         * timevar.h (timevar_push, timevar_pop): Make inline functions.
16035
16036 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
16037
16038         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
16039         langhooks-def.h.
16040         (diagnostic_initialize): Initialize x_data not last_function.
16041         (diagnostic_report_current_function): Move to tree-diagnostic.c.
16042         (default_diagnostic_starter): Call
16043         diagnostic_report_current_module not
16044         diagnostic_report_current_function.
16045         (diagnostic_report_diagnostic): Initialize x_data not
16046         abstract_origin.
16047         (verbatim): Likewise.
16048         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
16049         x_data.
16050         (struct diagnostic_context): Change last_function to x_data.
16051         (diagnostic_auxiliary_data): Replace with
16052         diagnostic_context_auxiliary_data and
16053         diagnostic_info_auxiliary_data.
16054         (diagnostic_last_function_changed, diagnostic_set_last_function,
16055         diagnostic_report_current_function): Move to tree-diagnostic.h.
16056         (print_declaration, dump_generic_node, print_generic_stmt,
16057         print_generic_stmt_indented, print_generic_expr,
16058         print_generic_decl, debug_c_tree, dump_omp_clauses,
16059         print_call_name, debug_generic_expr, debug_generic_stmt,
16060         debug_tree_chain, default_tree_printer): Move to
16061         tree-pretty-print.h.
16062         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
16063         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
16064         gimple-pretty-print.h.
16065         * pretty-print.c: Don't include tree.h
16066         (pp_base_format): Don't handle %K here.
16067         (pp_base_tree_identifier): Move to tree-pretty-print.c.
16068         * pretty-print.h (text_info): Change abstract_origin to x_data.
16069         (pp_tree_identifier, pp_unsupported_tree,
16070         pp_base_tree_identifier): Move to tree-pretty-print.h.
16071         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
16072         tree-pretty-print.h: New files.
16073         * tree-pretty-print.c: Include tree-pretty-print.h.
16074         (percent_K_format): New.  Moved from pretty-print.c.
16075         (pp_base_tree_identifier): Move from pretty-print.c.
16076         * c-objc-common.c: Include tree-pretty-print.h.
16077         (c_tree_printer): Handle %K here.
16078         * langhooks.c: Include tree-diagnostic.h.
16079         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
16080         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
16081         (default_tree_printer): Handle %K using percent_K_format.
16082         (general_init): Use default_tree_diagnostic_starter.
16083         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
16084         (free_lang_data): Use default_tree_diagnostic_starter.
16085         * c-pretty-print.c: Include tree-pretty-print.h.
16086         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16087         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16088         * dwarf2out.c: Include tree-pretty-print.h.
16089         * except.c: Include tree-pretty-print.h.
16090         * gimple-pretty-print.c: Include tree-pretty-print.h and
16091         gimple-pretty-print.h.
16092         * gimplify.c: Include tree-pretty-print.h.
16093         * graphite-poly.c: Include tree-pretty-print.h and
16094         gimple-pretty-print.h.
16095         * ipa-cp.c: Include tree-pretty-print.h.
16096         * ipa-inline.c: Include gimple-pretty-print.h.
16097         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16098         * ipa-pure-const.c: Include gimple-pretty-print.h.
16099         * ipa-struct-reorg.c: Include tree-pretty-print.h and
16100         gimple-pretty-print.h.
16101         * ipa-type-escape.c: Include tree-pretty-print.h.
16102         * print-rtl.c: Include tree-pretty-print.h.
16103         * print-tree.c: Include gimple-pretty-print.h.
16104         * sese.c: Include tree-pretty-print.h.
16105         * tree-affine.c: Include tree-pretty-print.h.
16106         * tree-browser.c: Include tree-pretty-print.h.
16107         * tree-call-cdce.c: Include gimple-pretty-print.h.
16108         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16109         * tree-chrec.c: Include tree-pretty-print.h.
16110         * tree-data-ref.c: Include tree-pretty-print.h and
16111         gimple-pretty-print.h.
16112         * tree-dfa.c: Include tree-pretty-print.h.
16113         * tree-if-conv.c: Include tree-pretty-print.h and
16114         gimple-pretty-print.h.
16115         * tree-inline.c: Include tree-pretty-print.h.
16116         * tree-into-ssa.c: Include tree-pretty-print.h and
16117         gimple-pretty-print.h.
16118         * tree-nrv.c: Include tree-pretty-print.h.
16119         * tree-object-size.c: Include tree-pretty-print.h and
16120         gimple-pretty-print.h.
16121         * tree-outof-ssa.c: Include tree-pretty-print.h and
16122         gimple-pretty-print.h.
16123         * tree-parloops.c: Include tree-pretty-print.h and
16124         gimple-pretty-print.h.
16125         * tree-predcom.c: Include tree-pretty-print.h and
16126         gimple-pretty-print.h.
16127         * tree-scalar-evolution.c: Include tree-pretty-print.h and
16128         gimple-pretty-print.h.
16129         * tree-sra.c: Include tree-pretty-print.h.
16130         * tree-ssa-address.c: Include tree-pretty-print.h.
16131         * tree-ssa-alias.c: Include tree-pretty-print.h.
16132         * tree-ssa-ccp.c: Include tree-pretty-print.h and
16133         gimple-pretty-print.h.
16134         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
16135         * tree-ssa-copy.c: Include tree-pretty-print.h and
16136         gimple-pretty-print.h.
16137         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
16138         * tree-ssa-dce.c: Include tree-pretty-print.h and
16139         gimple-pretty-print.h.
16140         * tree-ssa-dom.c: Include tree-pretty-print.h and
16141         gimple-pretty-print.h.
16142         * tree-ssa-dse.c: Include gimple-pretty-print.h.
16143         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
16144         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
16145         * tree-ssa-live.c: Include tree-pretty-print.h and
16146         gimple-pretty-print.h.
16147         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
16148         gimple-pretty-print.h.
16149         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
16150         gimple-pretty-print.h.
16151         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
16152         gimple-pretty-print.h.
16153         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
16154         gimple-pretty-print.h.
16155         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
16156         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
16157         * tree-ssa-operands.c: Include tree-pretty-print.h and
16158         gimple-pretty-print.h.
16159         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
16160         gimple-pretty-print.h.
16161         * tree-ssa-pre.c: Include tree-pretty-print.h and
16162         gimple-pretty-print.h.
16163         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
16164         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
16165         gimple-pretty-print.h.
16166         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
16167         gimple-pretty-print.h.
16168         * tree-ssa-sink.c: Include gimple-pretty-print.h.
16169         * tree-ssa-ter.c: Include tree-pretty-print.h and
16170         gimple-pretty-print.h.
16171         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
16172         * tree-ssa.c: Include tree-pretty-print.h and
16173         gimple-pretty-print.h.
16174         * tree-stdarg.c: Include gimple-pretty-print.h.
16175         * tree-switch-conversion.c: Include gimple-pretty-print.h.
16176         * tree-tailcall.c: Include tree-pretty-print.h and
16177         gimple-pretty-print.h.
16178         * tree-vect-data-refs.c: Include tree-pretty-print.h and
16179         gimple-pretty-print.h.
16180         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
16181         gimple-pretty-print.h.
16182         * tree-vect-loop.c: Include tree-pretty-print.h and
16183         gimple-pretty-print.h.
16184         * tree-vect-patterns.c: Include gimple-pretty-print.h.
16185         * tree-vect-slp.c: Include tree-pretty-print.h and
16186         gimple-pretty-print.h.
16187         * tree-vect-stmts.c: Include tree-pretty-print.h and
16188         gimple-pretty-print.h.
16189         * tree-vectorizer.c: Include tree-pretty-print.h.
16190         * tree-vrp.c: Include tree-pretty-print.h and
16191         gimple-pretty-print.h.
16192         * value-prof.c: Include tree-pretty-print.h and
16193         gimple-pretty-print.h.
16194         * var-tracking.c: Include tree-pretty-print.h.
16195         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
16196         (tree-diagnostic.o): New dependencies.
16197         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
16198         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
16199         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
16200         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
16201         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
16202         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
16203         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
16204         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
16205         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
16206         tree-ssa-address.o, tree-ssa-loop-niter.o,
16207         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
16208         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
16209         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
16210         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
16211         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
16212         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
16213         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
16214         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
16215         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
16216         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
16217         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
16218         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
16219         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
16220         tree-switch-conversion.o, var-tracking.o, value-prof.o,
16221         cfgexpand.o, pretty-print.o): Update dependencies.
16222
16223 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
16224
16225         * tree-ssa-structalias.c: Remove tm_p.h from include.
16226
16227 2010-05-21  Jeff Law  <law@redhat.com>
16228
16229         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
16230
16231 2010-05-21  Jason Merrill  <jason@redhat.com>
16232
16233         * tree-eh.c (cleanup_is_dead_in): New.
16234         (lower_try_finally): Don't generate a dead cleanup region.
16235         (lower_cleanup): Likewise.
16236
16237 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16238
16239         PR debug/44223
16240         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
16241         unchain each use from the cyclic next_regno_use chain first.
16242
16243 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16244
16245         * real: Do not include gmp.h, mpfr.h, and mpc.h.
16246         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
16247         (real_value_negate, real_value_abs): New prototypes.
16248         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
16249         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
16250         new include file for interface between MPFR and REAL_VALUE_TYPE.
16251         * real.c: Include realmpfr.h.
16252         (real_arithmetic2): Remove legacy function.
16253         (real_value_negate): New.
16254         (real_value_abs): New.
16255         (mfpr_from_real, real_from_mpfr): Move from here...
16256         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
16257         * builtins.c: Include realmpfr.h.
16258         * fold-const.c: Include realmpfr.h.
16259         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
16260         (fold_negate_const): Likewise.
16261         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
16262         * toplev.c: Include realmpfr.h.
16263         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
16264         and real_value_negate.
16265         * fixed-value.c (check_real_for_fixed_mode): Likewise.
16266         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
16267         (vfp3_const_double_index): Likewise.
16268         (arm_print_operand): Likewise.
16269         * Makefile.in: Update dependencies.
16270
16271 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16272
16273         * config/s390/s390.c (override_options): Increase the default
16274         of max-completely-peel-times.
16275
16276 2010-05-21  Julian Brown  <julian@codesourcery.com>
16277             Mark Mitchell  <mark@codesourcery.com>
16278
16279         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
16280         sibling calls for Thumb-1.
16281         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
16282         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
16283         Thumb-2.
16284         (*call_insn, *call_value_insn): Don't use for Thumb-2.
16285         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
16286         for Thumb-2.
16287         (return): New expander.
16288         (*arm_return): New name for ARM return insn.
16289         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
16290
16291 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
16292
16293         * config.gcc (sparc64-*-rtems*): New target.
16294
16295 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16296
16297         * tree.c (build_function_decl_skip_args): Fix grammar.
16298         (build_function_type_list_1): Fix typos, adjust formatting.
16299
16300 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16301
16302         * tree.h: Include real.h and fixed-value.h as basic datatypes.
16303         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
16304         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
16305         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
16306         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
16307         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
16308         tree-pretty-print.c, tree-loop-distribution.c,
16309         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
16310         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
16311         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
16312         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
16313         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
16314         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
16315         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
16316         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
16317         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
16318         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
16319         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
16320         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
16321         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
16322         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
16323         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
16324         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
16325         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
16326         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
16327         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
16328         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
16329         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
16330         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
16331         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
16332         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
16333         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
16334         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
16335         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
16336         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
16337         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
16338         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
16339         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
16340         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
16341         config/score/score7.c, config/score/score.c, config/arm/arm.c,
16342         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
16343         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
16344         config/bfin/bfin.c: Clean up redundant includes.
16345         * Makefile.in: Update accordingly.
16346
16347 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16348
16349         PR middle-end/44204
16350         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
16351         statement has no arguments.
16352
16353 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
16354
16355         PR/44139
16356         * varasm.c (emutls_decl): Merge attributes to new decl.
16357
16358 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16359
16360         PR middle-end/44101
16361         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
16362         around the uniquized constructor if its type requires a conversion.
16363
16364 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16365
16366         PR debug/44205
16367         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
16368         at -O0 goto_locus of any of the incoming edges differs from
16369         goto_locus of outgoing edge, or gimple_location of any of the
16370         labels differs.
16371
16372 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
16373
16374         * ira.c (ira_non_ordered_class_hard_regs): Define.
16375         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
16376         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
16377         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
16378         cost of unaligned hard regs when allocating multi-reg pseudos.
16379
16380 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
16381
16382         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
16383         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
16384         for TARGET_NO_FLOAT.
16385         * config/mips/mips.c (mips_file_start): Expand conditional expression
16386         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
16387         (mips_override_options): Move -mno-float override -msoft-float and
16388         -mhard-float.
16389         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
16390         Condition(TARGET_SUPPORTS_NO_FLOAT).
16391         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
16392         __mips_no_float here.
16393         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
16394         (TARGET_SUPPORTS_NO_FLOAT): Define.
16395         * config/mips/sdemtk.opt: Delete.
16396
16397 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
16398
16399         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
16400
16401 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
16402
16403         PR target/43733
16404         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
16405         * configure: Regenerate.
16406         * config.in: Regenerate.
16407         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
16408         instead of sahf only for 64bit targets.
16409
16410 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16411
16412         PR debug/44178
16413         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
16414         setup_ref_regs for DEBUG_INSNs.
16415
16416 2010-05-20  Jan Hubicka  <jh@suse.cz>
16417
16418         PR middle-end/44197
16419         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
16420
16421 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
16422
16423         PR bootstrap/43870
16424         * df-scan.c (df_ref_compare): Stabilize sort.
16425
16426 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16427
16428         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
16429         argument.  Don't use DW_OP_piece if offset is non-zero,
16430         put offset into second DW_OP_bit_piece argument.
16431         (dw_sra_loc_expr): Adjust callers.  For memory expressions
16432         compute offset.
16433
16434 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
16435
16436         PR target/44202
16437         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
16438         settings for 16-bit-constant "addo" alternative.
16439
16440 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
16441
16442         * config/mips/mips-dsp.md (add<DSPV:mode>3,
16443         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
16444
16445         PR target/43764
16446         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
16447         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
16448         Use it.
16449
16450 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
16451
16452         * diagnostic.c (FLOAT, FFS): Don't undefine.
16453         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
16454         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
16455         include ordering.
16456
16457 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
16458
16459         * combine.c (propagate_for_debug): Call make_compound_operation
16460         on the source value.
16461         (try_combine): When implementing a split chosen by find_split_point,
16462         either copy i2src or set it to null.  Assert that i2src is not null
16463         before substituting into CALL_INSN_FUNCTION_USAGE.
16464
16465 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
16466
16467         * double-int.h (double_int_ior): New function.
16468         * tree.h (build_int_cst_wide_type): Remove.
16469         * tree.c (build_int_cst_wide_type): Remove.
16470         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
16471         of build_int_cst_wide_type.
16472         * stor-layout.c (set_sizetype): (Ditto.).
16473         * dojump.c (do_jump): Use build_int_cstu instead of
16474         build_int_cst_wide_type.
16475
16476 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16477
16478         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
16479         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
16480         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
16481         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
16482         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
16483         propagate the 'data' argument to copy_tree_r.
16484         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
16485         Propagate 'data' argument to walk_tree.
16486         (copy_if_shared): New function.
16487         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
16488         (unmark_visited): New function.
16489         (unshare_body): Call copy_if_shared instead of doing it manually.
16490         (unvisit_body): Call unmark_visited instead of doing it manually.
16491
16492 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
16493
16494         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
16495         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
16496         * hooks.c: Likewise.
16497         * target-def.h (TARGET_FOLD_BUILTIN): Define to
16498         hook_tree_tree_int_treep_bool_null.
16499         * target.h (struct gcc_target): Update signature of fold_builtin
16500         field.
16501         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
16502         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
16503         instead of the call expression.
16504         (fold_builtin_call_array): Pass n and argarray directly.
16505         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
16506         consing a list.
16507         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
16508         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
16509         `i' and use it in place of `arity'.
16510         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
16511         Dereference `args' directly.
16512         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
16513
16514 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16515
16516         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16517         3dnow, sse3, sse2.
16518         (Directives): Document optional dg-require-effective-target
16519         selector.
16520
16521 2010-05-19  Richard Guenther  <rguenther@suse.de>
16522
16523         PR lto/44196
16524         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
16525
16526 2010-05-19  Richard Guenther  <rguenther@suse.de>
16527
16528         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
16529         * common.opt (fwhopr=): New.
16530         * opts.c (common_handle_option): Handle OPT_fwhopr.
16531         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
16532         * collect2.c (main): Match -fwhopr*.
16533         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
16534         Execute ltrans stage in parallel when jobs is bigger than 1.
16535
16536 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16537
16538         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
16539         pentiumpro on Solaris 8/x86 with Sun as.
16540         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
16541         hidden alias bug.
16542         (gcc_cv_as_ix86_quad): Check for .quad directive.
16543         * configure: Regenerate.
16544         * config.in: Regenerate.
16545         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
16546
16547 2010-05-19  Martin Jambor  <mjambor@suse.cz>
16548
16549         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
16550         also for indirect edges.  Actual printing moved...
16551         (ipa_print_node_jump_functions_for_edge): ...here.
16552         (ipa_compute_jump_functions): Renamed to
16553         ipa_compute_jump_functions_for_edge and made static.
16554         (ipa_compute_jump_functions): New function.
16555         (make_edge_direct_to_target): Check if the number of arguments on
16556         the newly direct edge is the same as the number of parametrs of
16557         the callee.
16558         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
16559         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
16560         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16561         analysis functions unconditionally, call the new
16562         ipa_analyze_params_uses on the node instead of every edge.
16563
16564 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
16565
16566         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
16567         to tree.
16568         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
16569         also checks for a constant int vs.  non-constant but
16570         loop-invariant steps.
16571         (find_or_create_group): Change the sort algorithm to only consider
16572         steps that are constant ints.
16573         (idx_analyze_ref): Adopt code to handle a tree instead of a
16574         HOST_WIDE_INT for step.
16575         (gather_memory_references_ref): Handle tree instead of int and be
16576         prepared to see a NULL_TREE.
16577         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
16578         prefetches if the step cannot be calculated at compile time.
16579         (issue_prefetch_ref): Issue prefetches for non-constant but
16580         loop-invariant steps.
16581
16582 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16583
16584         Revert:
16585         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16586
16587         * tree.h (build_call_list): Remove.
16588         * tree.c (build_call_list): Remove.
16589
16590 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16591
16592         * tree.h (build_call_list): Remove.
16593         * tree.c (build_call_list): Remove.
16594
16595 2010-05-18  Jan Hubicka  <jh@suse.cz>
16596
16597         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
16598
16599 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
16600
16601         PR rtl-optimization/43332
16602         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
16603
16604 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
16605
16606         * tree.h (build_int_cstu): Implement as static inline.
16607         * tree.c (build_int_cstu): Remove function.
16608         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
16609         sign extended.
16610
16611 2010-05-18  Richard Guenther  <rguenther@suse.de>
16612
16613         PR lto/44143
16614         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
16615         (debug): Initialize from -save-temps.
16616         (collect_execute): Print command-line when verbose.
16617         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
16618         for ltrans invocation.  Produce -dumpbase flag again.
16619         (process_args): Remove.
16620         (main): Simplify.
16621         * collect2.c (maybe_run_lto_and_relink): Only pass object
16622         files to lto-wrapper.
16623         * gcc.c (LINK_COMMAND_SPEC): Likewise.
16624
16625 2010-05-18  Jan Hubicka  <jh@suse.cz>
16626
16627         * opts.c (decode_options): Do not disable whopr at ipa_cp.
16628         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
16629
16630 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
16631
16632         PR lto/44184
16633         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
16634         in a GIMPLE_ASM.
16635         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
16636         in a GIMPLE_ASM.
16637
16638 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
16639
16640         PR debug/41371
16641         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
16642         rtx_equal_p inline.
16643
16644 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
16645
16646         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
16647         lto-macho as lto_binary_reader.
16648
16649         * darwin.c (darwin_asm_named_section): Do not add assembler comment
16650         after .section directive; just print it before the directive instead.
16651
16652 2010-05-17  Jan Hubicka  <jh@suse.cz>
16653
16654         * cgraph.c (cgraph_create_virtual_clone): Only check
16655         versionable_function_p when not in wpa and checking is enabled.
16656         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
16657         there are no more functions to materialize.
16658
16659 2010-05-17  Jan Hubicka  <jh@suse.cz>
16660
16661         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
16662         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
16663         New functions.
16664         (output_cgraph): Call output_cgraph_opt_summary.
16665         (input_cgrpah): Call input_cgraph_opt_summary.
16666         (output_cgraph_opt_summary_p, output_node_opt_summary,
16667         input_node_opt_summary, input_cgraph_opt_section): New functions.
16668         * lto-section-in.c (lto_section_name): Add cgraphopt.
16669         * tree-inline.c (tree_function_versioning): Handle parm_num.
16670         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
16671         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
16672
16673 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
16674
16675         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
16676         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
16677         the insn to prefetch ratio heuristic to loops with known trip count.
16678
16679 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
16680
16681         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
16682         (schedule_prefetches): Do not generate a prefetch if the unroll factor
16683         is far from what is required by the prefetch.
16684
16685 2010-05-17  Jan Hubicka  <jh@suse.cz>
16686
16687         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
16688         (ipcp_estimate_growth): Likewise.
16689         (ipcp_const_param_count): Likewise.
16690         (ipcp_insert_stage): Likewise.
16691         * ipa-prop.c (visit_load_for_mod_analysis): New function.
16692         (visit_store_addr_for_mod_analysis): Set used flag.
16693         (ipa_detect_param_modifications): Set used flag for SSE params;
16694         update use of walk_stmt_load_store_addr_ops.
16695         (ipa_print_node_params): Print used flag.
16696         (ipa_write_node_info): Stream used flag.
16697         (ipa_read_node_info): Likewise.
16698         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
16699         (ipa_is_param_used): New function.
16700         (lto_ipa_fixup_call_notes): Remove unused declaration.
16701
16702 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16703
16704         PR target/44074
16705         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
16706         * configure: Regenerate.
16707         * config.in: Regenerate.
16708         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
16709         !HAVE_AS_IX86_REP_LOCK_PREFIX.
16710         Don't emit whitespace.
16711         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
16712         (*rep_movsi): Likewise.
16713         (*rep_movsi_rex64): Likewise.
16714         (*rep_movqi): Likewise.
16715         (*rep_movqi_rex64): Likewise.
16716         (*rep_stosdi_rex64): Likewise.
16717         (*rep_stossi): Likewise.
16718         (*rep_stossi_rex64): Likewise.
16719         (*rep_stosqi): Likewise.
16720         (*rep_stosqi_rex64): Likewise.
16721         (*cmpstrnqi_nz_1): Use {%;} after repz.
16722         (*cmpstrnqi_nz_rex_1): Likewise.
16723         (*cmpstrnqi_1): Likewise.
16724         (*cmpstrnqi_rex_1): Likewise.
16725         (*strlenqi_1): Use {%;} after repnz.
16726         (*strlenqi_rex_1): Likewise.
16727         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
16728         (*sync_compare_and_swap<mode>): Likewise.
16729         (sync_double_compare_and_swap<mode>): Likewise.
16730         (*sync_double_compare_and_swapdi_pic): Likewise.
16731         (sync_old_add<mode>): Likewise.
16732         (sync_add<mode>): Likewise.
16733         (sync_sub<mode>): Likewise.
16734         (sync_<code><mode>): Likewise.
16735
16736 2010-05-17  Martin Jambor  <mjambor@suse.cz>
16737
16738         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
16739         otr_token and polymorphic.
16740         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
16741         (cgraph_clone_edge): Copy the above fields.
16742         * tree.c (get_binfo_at_offset): New function.
16743         * tree.h (get_binfo_at_offset): Declare.
16744         * ipa-prop.h (enum jump_func_type): Added known_type jump function
16745         type, reordered items, updated comments.
16746         (union jump_func_value): Added base_type field, reordered fields.
16747         (enum ipa_lattice_type): Moved down in the file.
16748         (struct ipa_param_descriptor): New field polymorphic.
16749         (ipa_is_param_polymorphic): New function.
16750         * ipa-prop.c: Include gimple.h and gimple-fold.h.
16751         (ipa_print_node_jump_functions): Print known type jump functions.
16752         (compute_complex_pass_through): Renamed to...
16753         (compute_complex_assign_jump_func): this.
16754         (compute_complex_ancestor_jump_func): New function.
16755         (compute_known_type_jump_func): Likewise.
16756         (compute_scalar_jump_functions): Create known type and complex ancestor
16757         jump functions.
16758         (ipa_note_param_call): New parameter polymorphic, set the corresponding
16759         flag in the call note accordingly.
16760         (ipa_analyze_call_uses): Renamed to...
16761         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
16762         variable var only in the block where it is used.
16763         (ipa_analyze_virtual_call_uses): New function.
16764         (ipa_analyze_call_uses): Likewise.
16765         (combine_known_type_and_ancestor_jfs): Likewise.
16766         (update_jump_functions_after_inlining): Implemented handling of a
16767         number of new jump function types combination.
16768         (print_edge_addition_message): Removed.
16769         (make_edge_direct_to_target): New function.
16770         (try_make_edge_direct_simple_call): Likewise.
16771         (try_make_edge_direct_virtual_call): Likewise.
16772         (update_call_notes_after_inlining): Renamed to...
16773         (update_indirect_edges_after_inlining): this.  Moved edge creation for
16774         indirect calls to try_make_edge_direct_simple_call, also calls
16775         try_make_edge_direct_virtual_call for virtual calls.
16776         (ipa_print_node_params): Changed the header message.
16777         (ipa_write_jump_function): Stream also known type jump functions.
16778         (ipa_read_jump_function): Likewise.
16779         (ipa_write_indirect_edge_info): Stream new fields in
16780         cgraph_indirect_call_info.
16781         (ipa_read_indirect_edge_info): Likewise.
16782         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
16783         GIMPLE_FOLD_H.
16784
16785 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16786
16787         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
16788
16789 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
16790
16791         * tree.h (CALL_EXPR_ARGS): Delete.
16792         (call_expr_arglist): Delete.
16793         * tree.c (call_expr_arglist): Delete.
16794         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
16795         targetm.fold_builtin.
16796         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
16797         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
16798         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
16799         arglist parameter.  Use CALL_EXPR_ARG.
16800         (picochip_expand_builtin_3op): Likewise.
16801         (picochip_expand_builtin_2opvoid): Likewise.
16802         (picochip_expand_array_get): Likewise.
16803         (picochip_expand_array_put): Likewise.
16804         (picochip_expand_array_testport): Likewise.
16805         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
16806         rather than arglist.
16807         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
16808         CALL_EXPR_ARGS.
16809         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
16810         than TREE_VALUE and TREE_CHAIN.
16811         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
16812         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
16813         the arglist.
16814
16815 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
16816
16817         PR bootstrap/42347
16818         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
16819         to have no fallthru edge.
16820
16821         PR middle-end/44102
16822         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
16823         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
16824         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
16825         add BARRIER after previous bb if needed.
16826
16827 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
16828
16829         * tree.c (build_function_type_list_1): Remove bogus assert condition.
16830
16831 2010-05-17  Alan Modra  <amodra@gmail.com>
16832
16833         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
16834         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
16835         with copy_reg rtx param.
16836         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
16837         Correct cases where code for ABI_V4 did not initialise the reg
16838         used to access frame.  Also leave frame_reg_rtx as sp for large
16839         frames that save no regs.
16840
16841 2010-05-17  Martin Jambor  <mjambor@suse.cz>
16842
16843         PR middle-end/44133
16844         * tree-sra.c (create_access_replacement): New parameter rename, mark
16845         the replaement for renaming only when it is true.
16846         (get_access_replacement): Pass true in the rename parameter of
16847         create_access_replacement.
16848         (get_unrenamed_access_replacement): New function.
16849         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
16850         replacement declaration from it.
16851
16852 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
16853
16854         * function.c (try_fit_stack_local, add_frame_space): New static
16855         functions.
16856         (assign_stack_local_1): Use them.  Look for opportunities to use
16857         space previously wasted on alignment.
16858         * function.h (struct frame_space): New.
16859         (struct rtl_data): Add FRAME_SPACE_LIST member.
16860         * reload1.c (something_was_spilled): New static variable.
16861         (alter_reg): Set it.
16862         (reload): Test it in addition to testing if the frame size changed.
16863
16864 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
16865
16866         * config/s390/s390.c: Define sane prefetch settings and activate
16867         flag_prefetch_loop_arrays on -O3.
16868         * config/s390/s390.h: Declare that read can use write prefetch.
16869
16870 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
16871
16872         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
16873         build.
16874
16875 2010-05-16  Jan Hubicka  <jh@suse.cz>
16876
16877         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
16878         function body; do not check stdarg field of struct function.
16879
16880 2010-05-16  Jan Hubicka  <jh@suse.cz>
16881
16882         * cgraph.c (dump_cgraph_node): Dump versionable flag.
16883         * cgraph.h (cgraph_local_info): Add versionable flag.
16884         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
16885         (ipcp_versionable_function_p): Use it.
16886         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
16887         versionable flag.
16888
16889 2010-05-16  Jan Hubicka  <jh@suse.cz>
16890
16891         * cgraph.c (cgraph_clone_node): Take decl argument and insert
16892         clone into hash when it is different from orig.
16893         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
16894         * cgraph.h (cgraph_clone_node): Update prototype.
16895         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
16896         (lto_cgraph_encoder_delete): Delete body map.
16897         (lto_cgraph_encoder_size): Move to header.
16898         (lto_cgraph_encoder_encode_body_p,
16899         lto_set_cgraph_encoder_encode_body): New.
16900         (lto_output_node): Do not take written_decls argument; output clone_of
16901         pointer.
16902         (add_node_to): Add include_body_argument; call
16903         lto_set_cgraph_encoder_encode_body on master of the clone.
16904         (add_references): Update use of add_node_to.
16905         (compute_ltrans_boundary): Likewise.
16906         (output_cgraph): Do not create written_decls bitmap.
16907         (input_node): Take nodes argument; stream in clone_of correctly.
16908         (input_cgraph_1): Update use of input_node.
16909         * lto-streamer-out.c (lto_output): Use encoder info to decide
16910         what bodies to output.
16911         * ipa-inline.c (cgraph_clone_inlined_nodes,
16912         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
16913         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
16914         (lto_cgraph_encoder_size): Define here.
16915         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
16916         Declare.
16917
16918 2010-05-16  Richard Guenther  <rguenther@suse.de>
16919
16920         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
16921         -fipa-type-escape.
16922         * ipa-type-escape.c (gate_type_escape_vars): Run when
16923         -fipa-struct-reorg runs.
16924         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
16925         * common.opt (fipa-type-escape): Remove.
16926
16927 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
16928
16929         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
16930         (decode_options): Likewise.
16931         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
16932
16933 2010-05-16  Jan Hubicka  <jh@suse.cz>
16934
16935         * ipa.c (function_and_variable_visibility): Also bring local all
16936         aliases.
16937
16938 2010-05-16  Richard Guenther  <rguenther@suse.de>
16939
16940         * alias.c (nonoverlapping_memrefs_p): Remove use of
16941         IPA type-escape information.
16942
16943 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
16944
16945         * c-common.c (c_common_reswords): Add _Static_assert for C.
16946         * c-parser.c (c_token_starts_declaration,
16947         c_parser_next_token_starts_declaration,
16948         c_parser_static_assert_declaration_no_semi,
16949         c_parser_static_assert_declaration): New.
16950         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
16951         Handle static assertions if static_assert_ok.
16952         (c_parser_external_declaration, c_parser_declaration_or_fndef,
16953         c_parser_compound_statement_nostart, c_parser_label,
16954         c_parser_for_statement, c_parser_objc_methodprotolist,
16955         c_parser_omp_for_loop): All callers of
16956         c_parser_declaration_or_fndef changed.
16957         (c_parser_struct_declaration): Handle static assertions.
16958         (c_parser_compound_statement_nostart): Use
16959         c_parser_next_token_starts_declaration and
16960         c_token_starts_declaration to detect start of declarations.
16961         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
16962         Likewise.
16963
16964 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
16965
16966         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16967         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16968         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16969         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16970         (mmix_function_outgoing_value): Rename to...
16971         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
16972         (mmix_function_value_regno_p): Make static.
16973         (mmix_libcall_value): New function.
16974         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
16975         mmix_function_value_regno_p): Remove declaration.
16976
16977 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
16978
16979         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
16980         BUILT_IN_ALLOCA if stack checking is enabled.
16981
16982 2010-05-16  Richard Guenther  <rguenther@suse.de>
16983
16984         * var-tracking.c (vars_copy_1): Inline ...
16985         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16986         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
16987         (variable_merge_over_cur): Adjust.  Merge asserts.
16988         (variable_merge_over_src): Likewise.
16989         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
16990         (variable_post_merge_new_vals): Merge asserts.
16991         (variable_post_merge_perm_vals): Likewise.
16992         (find_mem_expr_in_1pdv): Likewise.
16993         (dataflow_set_different_value): Remove.
16994         (onepart_variable_different_p): Merge asserts.
16995         (variable_different_p): Likewise.
16996         (dataflow_set_different_1): Inline ...
16997         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16998         (emit_notes_for_differences_1): Merge asserts.
16999
17000 2010-05-16  Richard Guenther  <rguenther@suse.de>
17001
17002         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
17003         * optabs.c (libfunc_decl_hash): Likewise.
17004         * varasm.c (emutls_decl): Likewise.
17005
17006 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
17007
17008         * c-decl.c: Don't include gimple.h.
17009         (merge_decls): Do not copy gimple_body.
17010
17011 2010-05-15  Jason Merrill  <jason@redhat.com>
17012
17013         * c.opt: Add -fnothrow-opt.
17014
17015 2010-05-15  Jan Hubicka  <jh@suse.cz>
17016
17017         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
17018         analyzed.
17019         * passes.c (ipa_write_summaries): Write all analyzed nodes.
17020
17021 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
17022
17023         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
17024         * Makefile.in: Add it.
17025         Fix all other Makefile dependencies for changes below.
17026         * tree.h: Include it instead of defining VEC primitives here.
17027         * gimple.h: Likewise.
17028         * rtl.h: Likewise.
17029         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
17030         * except.h: Include vecir.h, break dependence on tree.h.
17031
17032         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
17033         Move from here...
17034         * tree-iterator.c: ...to here.
17035         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
17036
17037         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
17038         tm_p.h.
17039         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
17040         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
17041         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
17042         tree-mudflap.h, and target.h.
17043         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
17044         predict.h, tree-inline.h, gimple.h, and langhooks.h.
17045         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
17046         Add FIXME for why gimple.h is still included (should be unnecessary
17047         since GCC 4.5 gimplification unit-at-a-time).
17048         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
17049         * c-pragma.c: Add FIXME for why function.h needs to be included just
17050         for cfun, at front-end level.
17051         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
17052         Do not include ggc.h, but include vecprim.h for VEC(char).
17053         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
17054         Explain why target.h is included.
17055         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
17056         Explain why gimple.h is included.
17057         * c-ppoutput.c: Do not include tm.h.
17058         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
17059         * c-parses.c: Explain why rtl.h is included, and that this (and only
17060         this) is also why tm.h must be included.
17061         Do not include except.h.
17062         * c-lang.c: Do not include ggc.h.
17063
17064 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
17065
17066         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
17067
17068 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
17069
17070         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
17071         unions by default if those structs and unions have no tags.  Do
17072         not condition anonymous struct and unions handling on flag_iso.
17073         Allow anonymous structs and unions for C1X.
17074         (finish_struct): Do not diagnose lack of named fields when
17075         anonymous structs and unions present for C1X.  Accept flexible
17076         array members in structure with anonymous structs or unions but no
17077         directly named fields.
17078         * doc/extend.texi (Unnamed Fields): Update.
17079
17080 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
17081
17082         * gimple.h (compare_field_offset): Rename into...
17083         (gimple_compare_field_offset): ...this.
17084         * gimple.c (compare_field_offset): Rename into...
17085         (gimple_compare_field_offset): ...this.  Compare the full access if
17086         the offset is self-referential.
17087         (gimple_types_compatible_p): Adjust for above renaming.
17088         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
17089         DECL_NONADDRESSABLE_P flag of fields before merging them.
17090
17091 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
17092
17093         * tree.h (ctor_to_list): Delete.
17094         * tree.c (ctor_to_list): Delete.
17095
17096 2010-05-15  Jan Hubicka  <jh@suse.cz>
17097
17098         * ipa-reference.c: Include toplev.h
17099         (is_proper_for_analysis): Only add to all_module_statics
17100         if it is allocated.
17101         (write_node_summary_p, stream_out_bitmap,
17102         ipa_reference_write_optimization_summary,
17103         ipa_reference_read_optimization_summary): New.
17104         (struct ipa_opt_pass_d pass_ipa_reference): Add
17105         optimization summary streaming.
17106         * lto-cgraph.c (referenced_from_this_partition_p,
17107         reachable_from_this_partition_p): New functions.
17108         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
17109         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
17110         * opts.c (decode_options): Enable ipa_reference.
17111         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
17112         * lto-streamer.h (referenced_from_this_partition_p,
17113         reachable_from_this_partition_p): Declare.
17114
17115 2010-05-15  Richard Guenther  <rguenther@suse.de>
17116
17117         PR tree-optimization/44038
17118         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
17119         taking the address of a V_C_E of a constant.
17120
17121 2010-05-14  Jan Hubicka  <jh@suse.cz>
17122
17123         * tree.h (memory_identifier_string): Remove.
17124         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
17125         (ipa_reference_global_vars_info_d): Remove statics_not_read and
17126         statics_not_written.
17127         (ipa_reference_optimization_summary_d): New structure.
17128         (ipa_reference_optimization_summary_t): New type and vector.
17129         (ipa_reference_vars_info_d): Embedd structures instead of using
17130         pointers.
17131         (reference_vars_to_consider): Remove out of GGC space.
17132         (module_statics_escape): Remove.
17133         (global_info_obstack): Rename to ...
17134         (optimization_summary_obstack): ... this one.
17135         (initialization_status_t): Remove.
17136         (memory_identifier_string): Remove.
17137         (get_reference_vars_info): Fix indenting.
17138         (set_reference_vars_info): Likewise.
17139         (get_reference_optimization_summary): New.
17140         (set_reference_optimization_summary): New.
17141         (get_global_reference_vars_info): Remove.
17142         (ipa_reference_get_read_global): Remove.
17143         (ipa_reference_get_written_global): Remove.
17144         (ipa_reference_get_not_read_global): Update.
17145         (ipa_reference_get_not_written_global): Update.
17146         (is_proper_for_analysis): Outlaw addressable.
17147         (propagate_bits): Update for new datastructures.
17148         (analyze_variable): Remove.
17149         (init_function_info): Update for new datastructures.
17150         (clean_function_local_data): Remove.
17151         (clean_function): Remove.
17152         (copy_global_bitmap): Use optimizations_summary_obstack.
17153         (duplicate_node_data): Duplicate optimization summary only.
17154         (remove_node_data): Remove optimization summary only.
17155         (generate_summary): Do not analyze variables; do not compute
17156         module_statics_escape; do not prune solutions by it.
17157         (read_write_all_from_decl): Fix typos in comments.
17158         (propagate): Doscover readonly and nonaddressable first;
17159         update for new datastructures; share global bitmaps.
17160         * ipa-reference.h (ipa_reference_get_read_global,
17161         ipa_reference_get_written_global): Remove.
17162         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
17163         * Makefile.in: Remove ipa-refereference from GT files.
17164
17165 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17166
17167         PR debug/44112
17168         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
17169         for all SYMBOL_REF_DECLs.
17170
17171 2010-05-14  Jan Hubicka  <jh@suse.cz>
17172
17173         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
17174         (varpool_all_refs_explicit_p): New inline function.
17175         * ipa-reference.c: Update comment.
17176         (module_statics_written): Remove.
17177         (get_static_decl): Remove.
17178         (ipa_init): Do not initialize module_statics_written.
17179         (analyze_function): Likewise.
17180         (generate_summary): Likewise; do not compute module_statics_readonly
17181         and do not update variable flags.
17182         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
17183         * ipa.c: Inlucde flags.h
17184         (cgraph_local_node_p): New.
17185         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
17186         promote functions to local.
17187         (ipa_discover_readonly_nonaddressable_vars): New function.
17188         (function_and_variable_visibility): Use cgraph_local_node_p.
17189         * varpool.c (varpool_finalize_decl): Set force_output for
17190         DECL_PRESERVE_P vars.
17191
17192 2010-05-14  Jan Hubicka  <jh@suse.cz>
17193
17194         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
17195
17196 2010-05-14  Richard Guenther  <rguenther@suse.de>
17197
17198         PR tree-optimization/44119
17199         * tree-ssa-pre.c (eliminate): Properly mark replacement of
17200         a PHI node necessary.
17201
17202 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17203
17204         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
17205
17206 2010-05-14  Jason Merrill  <jason@redhat.com>
17207
17208         PR c++/44127
17209         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
17210         (gimple_call_set_nothrow): New.
17211         * gimple.c (gimple_build_call_from_tree): Call it.
17212         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
17213
17214         PR c++/44127
17215         * gimplify.c (gimplify_seq_add_stmt): No longer static.
17216         * gimple.h: Declare it.
17217         * gimple.c (gimple_build_eh_filter): No ops.
17218
17219 2010-05-14  Jan Hubicka  <jh@suse.cz>
17220
17221         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
17222         nodes already in queue.
17223         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
17224         re-enqueueing node.
17225
17226 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17227
17228         PR debug/44136
17229         * cfgexpand.c (expand_debug_expr): If non-memory op0
17230         has BLKmode, return NULL.
17231
17232 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
17233
17234         * config.gcc: Add support for --with-cpu option for bdver1.
17235         * config/i386/i386.h (TARGET_BDVER1): New macro.
17236         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
17237         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17238         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
17239         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17240         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
17241         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
17242         (processor_type): Add PROCESSOR_BDVER1.
17243         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
17244         processor_type in config/i386/i386.h.
17245         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
17246         movaps <reg, reg> instead of movapd <reg, reg> when replacing
17247         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
17248         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
17249         to emit packed xor instead of packed double/packed integer
17250         xor for SSE and AVX when moving a zero value.
17251         * config/i386/sse.md: Add check for
17252         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
17253         movapd/movdqa for SSE and AVX.
17254         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
17255         single logical operations i.e and, or and xor instead of packed double
17256         logical operations for SSE and AVX.
17257         * config/i386/i386-c.c (ix86_target_macros_internal):
17258         Add PROCESSOR_BDVER1.
17259         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
17260         (has_fma4, has_xop): New.
17261         * config/i386/i386.c (bdver1_cost): New variable.
17262         (m_BDVER1): New macro.
17263         (m_AMD_MULTIPLE): Add m_BDVER1.
17264         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
17265         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
17266         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
17267         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
17268         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
17269         x86_tune_sse_partial_reg_dependency,
17270         x86_tune_sse_unaligned_load_optimal,
17271         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
17272         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
17273         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
17274         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
17275         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
17276         Enable/disable for bdver1.
17277         (processor_target_table): Add bdver1_cost.
17278         (cpu_names): Add bdver1.
17279         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
17280          processor_alias_table.
17281         (ix86_expand_vector_move_misalign): Change.
17282         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
17283         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
17284         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
17285         of movupd/movdqu for SSE and AVX.
17286         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
17287         (ix86_tune_adjust_cost): Add code for bdver1.
17288         (standard_sse_constant_opcode): Add check for
17289         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
17290         of packed double xor for SSE and AVX.
17291
17292 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
17293
17294         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
17295         result to unsigned.
17296
17297 2010-05-14  Tristan Gingold  <gingold@adacore.com>
17298
17299         * toplev.c (default_debug_hooks): Remove this variable.
17300         (process_options): Remove assignments to default_debug_hooks.
17301
17302 2010-05-14  Martin Jambor  <mjambor@suse.cz>
17303
17304         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
17305         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
17306         * langhooks.h (struct lang_hooks_for_decls): Removed field
17307         fold_obj_type_ref.
17308         * tree.c (free_lang_data): Remove assignment to
17309         lang_hooks.fold_obj_type_ref.
17310         * tree.def (OBJ_TYPE_REF): Update comment.
17311
17312 2010-05-14  Richard Guenther  <rguenther@suse.de>
17313
17314         PR tree-optimization/44124
17315         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
17316
17317 2010-05-14  Alan Modra  <amodra@gmail.com>
17318
17319         PR target/44075
17320         * config/rs6000/rs6000.c (struct machine_function): Reorder
17321         fields for better packing.  Add lr_save_state.
17322         (rs6000_ra_ever_killed): Return lr_save_state if set.
17323         (rs6000_emit_eh_reg_restore): Set lr_save_state.
17324
17325 2010-05-13  Jan Hubicka  <jh@suse.cz>
17326
17327         * varpool.c (decide_is_variable_needed): Drop code checking
17328         TREE_SYMBOL_REFERENCED.
17329
17330 2010-05-13  Jan Hubicka  <jh@suse.cz>
17331
17332         * final.c (output_addr_const): Do not call mark_decl_referenced.
17333         * cgraphunit.c (process_function_and_variable_attributes): Use
17334         mark_needed_node dirrectly.
17335         (assemble_thunk): Do not call mark_decl_referenced.
17336
17337 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
17338
17339         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
17340
17341 2010-05-13  Jeff Law  <law@redhat.com>
17342
17343         * ira-conflicts.c (print_allocno_conflicts): New function broken out
17344         from...
17345         (print_conflicts): Call print_allocno_conflicts.
17346
17347 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17348
17349         PR debug/44104
17350         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
17351         if it is NULL.
17352
17353 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
17354
17355         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
17356         t-mingw-w64 or t-mingw-w32 for multilib configuration.
17357         * config/i386/t-mingw-w32: New.
17358         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
17359
17360 2010-05-13  Martin Jambor  <mjambor@suse.cz>
17361
17362         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
17363         gimple-fold.c).
17364         * gimple-fold.c (get_base_binfo_for_type): New function.
17365         (gimple_get_relevant_ref_binfo): Likewise.
17366         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17367         (gimple_fold_obj_type_ref): Likewise.
17368         (fold_gimple_call): Simplify condition for folding virtual calls
17369         and call gimple_fold_obj_type_ref.
17370         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
17371         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17372
17373 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
17374
17375         * config/rs6000/rs6000-protos.h
17376         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
17377         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
17378         (rs6000_debug_mode_dependent_address)
17379         (rs6000_mode_dependent_address_ptr): Likewise.
17380
17381 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17382
17383         PR debug/43983
17384         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
17385         by SRA.
17386         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
17387         * tree-sra.c (create_access_replacement): Call unshare_expr before
17388         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
17389         * dwarf2out.c: Include tree-flow.h.
17390         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
17391         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
17392         Handle DW_OP_bit_piece.
17393         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
17394         construct_piece_list, adjust_piece_list): New functions.
17395         (add_var_loc_to_decl): Handle SRA optimized variables.
17396         Adjust for var_loc_note to loc field renaming.
17397         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
17398         in VAR_LOCATION note.
17399         (new_loc_descr_op_bit_piece): New function.
17400         (dw_sra_loc_expr): New function.
17401         (dw_loc_list): Use it.  Don't handle the last range after the
17402         loop, handle it inside of the loop.  Adjust for var_loc_note
17403         to loc field renaming.
17404         (add_location_or_const_value_attribute): Only special case
17405         single entry loc lists if loc is NOTE_P.  Adjust for
17406         var_loc_note to loc field renaming.
17407         (dwarf2out_var_location): Don't set newloc->var_loc_note
17408         and newloc->next here.
17409
17410 2010-05-12  Jan Hubicka  <jh@suse.cz>
17411
17412         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
17413         flag.
17414         * cgraph.h (cgraph_only_called_directly_p,
17415         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
17416         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
17417         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
17418         (assemble
17419         * ipa.c (cgraph_remove_unreachable_nodes): Use
17420         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
17421         flags.
17422         * tree-inline.c (copy_bb): Check address_taken flag.
17423         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
17424         externally_visible flag.
17425
17426 2010-05-12  Jason Merrill  <jason@redhat.com>
17427
17428         PR bootstrap/44048
17429         PR target/44099
17430         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
17431         * sdbout.c (plain_type_1): Likewise.
17432         * dwarf2out.c (is_base_type): Likewise.
17433         (gen_type_die_with_usage): Likewise.  Generate
17434         DW_TAG_unspecified_type for any LANG_TYPE.
17435
17436 2010-05-12  Jan Hubicka  <jh@suse.cz>
17437
17438         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
17439         indrect edges too.
17440         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
17441         (cgraph_clone_edge): Update.
17442         (cgraph_node_remove_callees): Remove indirect calls too.
17443         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
17444         (cgraph_create_indirect_edge): Update prototype.
17445         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
17446         is_proper_for_analysis.
17447         (add_new_function, visited_nodes, function_insertion_hook_holder,
17448         get_local_reference_vars_info, mark_address_taken, mark_address,
17449         mark_load, mark_store, check_asm_memory_clobber, check_call,
17450         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
17451         (ipa_init): Do not initialize visited_nodes;
17452         function_insertion_hook_holder.
17453         (analyze_variable): Rewrite.
17454         (analyze_function): Rewrite.
17455         (copy_local_bitmap): Remove.
17456         (duplicate_node_dat): Do not duplicate local info.
17457         (generate_summary): Simplify to only walk cgraph.
17458         (write_node_summary_p, ipa_reference_write_summary,
17459         ipa_reference_read_summary): Remove.
17460         (propagate): Do not remove function insertion;
17461         generate summary.
17462         (pass_ipa_reference): NULLify summary handling fields.
17463         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
17464         (input_edge): Input ecf_flags.
17465         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
17466         (update_indirect_edges_after_inlining): Ignore edges with unknown
17467         param.
17468
17469 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
17470
17471         * implicit-zee.c: New file.
17472         * tree-pass.h (pass_implicit_zee): Declare.
17473         * passes.c (init_optimization_passes): Add zee pass.
17474         * common.opt (fzee): New flag.
17475         * timevar.def (TV_ZEE): Define.
17476         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
17477         and beyond.
17478         * Makefile.in (implicit-zee.o): Add new build file.
17479
17480 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17481             Nathan Froyd  <froydnj@codesourcery.com>
17482
17483         * c-common.c (sync_resolve_params): Remove write-only variable.
17484
17485 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
17486
17487         * target.h (struct gcc_target): Add mode_dependent_address_p field.
17488         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17489         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
17490         * targhooks.c (default_mode_dependent_address_p): New function.
17491         * targhooks.h (default_mode_dependent_address_p): Declare function.
17492         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17493         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
17494         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
17495         target hook. Change return type to bool.
17496         * recog.h (mode_dependent_address_p): Change return type to bool.
17497
17498 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17499             Nathan Froyd  <froydnj@codesourcery.com>
17500
17501         * tree-mudflap.c (build_function_type_0, build_function_type_1,
17502         build_function_type_2, build_function_type_3): Remove.
17503         (mudflap_init): Use build_function_type_list.
17504
17505 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17506             Nathan Froyd  <froydnj@codesourcery.com>
17507
17508         * coverage.c (build_fn_info_value): Call build_constructor instead of
17509         build_constructor_from_list.
17510         (build_ctr_info_value): Likewise.
17511         (build_gcov_info): Likewise.
17512
17513 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
17514
17515         * tree.c (build_constructor): Compute TREE_CONSTANT for the
17516         resultant constructor.
17517         (build_constructor_single): Don't set TREE_CONSTANT.
17518         (build_constructor_from_list): Don't compute TREE_CONSTANT.
17519
17520 2010-05-12  Jan Hubicka  <jh@suse.cz>
17521
17522         * cgraph.h (struct varpool_node): Add aux.
17523         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
17524         * varpool.c (varpool_remove_node): Do not remove initializer.
17525         (varpool_reset_queue): Export.
17526         (varpool_finalize_decl): Volatile vars are forced to be output.
17527         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
17528         replaced decl.
17529         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
17530         process_references, varpool_can_remove_if_no_refs): New functions.
17531         (cgraph_remove_unreachable_nodes): Handle variables too.
17532
17533 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
17534
17535         PR target/44088
17536         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
17537
17538 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
17539
17540         PR middle-end/44085
17541         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
17542         change value of ORT_TASK.
17543         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
17544         (omp_notice_threadprivate_variable): New function.
17545         (omp_notice_variable): Call it for threadprivate variables.
17546         If enclosing ctx is a task, print enclosing task rather than
17547         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
17548         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
17549         if task has untied clause.
17550
17551         PR debug/42278
17552         * dwarf2out.c (base_type_die): Don't add name attribute here.
17553         (modified_type_die): Instead of sizetype use
17554         its underlying original type.  If a DW_TAG_base_type doesn't
17555         have name added, add __unknown__.
17556         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
17557         always call force_type_die instead.
17558
17559 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
17560
17561         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
17562         for __stack_chk_guard.
17563
17564 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
17565
17566         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
17567         don't call start_source_file debug hook here...
17568         (finish_options): ... but here, after outputting predefined and
17569         command line defines and undefs.
17570
17571         PR middle-end/44071
17572         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
17573         no fallthru edge.
17574         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
17575         optimizing away empty bb with no successors, move over its
17576         footer chain to fallthru predecessor.
17577         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
17578         (rtl_split_edge): For asm goto call patch_jump_insn even if
17579         splitting fallthru edge.
17580
17581         PR c++/44059
17582         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
17583         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
17584         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
17585         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
17586         on DW.ref.* decls.
17587
17588         PR c++/44062
17589         * c-parser.c (c_parser_expression): Mark LHS of a comma
17590         expression as read if it is a decl, handled component or
17591         COMPOUND_EXPR with that on the RHS.
17592         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
17593         if it is a decl or handled component.
17594
17595 2010-05-11  Jan Hubicka  <jh@suse.cz>
17596
17597         * lto-symtab.c (lto_symtab_free): New function.
17598         * lto-streamer.h (lto_symtab_free): Declare.
17599
17600 2010-05-11  Jan Hubicka  <jh@suse.cz>
17601
17602         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
17603         that if function is needed it is reachable.
17604         (lto_output_node): See if it the function is reachable or referenced.
17605         (output_cgraph): Update call of lto_output_node.
17606         * lto-streamer.h (reachable_from_other_partition_p): Declare.
17607
17608 2010-05-11  Jan Hubicka  <jh@suse.cz>
17609
17610         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
17611         Mark as used.
17612
17613 2010-05-11  Jan Hubicka  <jh@suse.cz>
17614
17615         PR tree-optimize/44063
17616         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
17617         queue.
17618         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
17619         limits.
17620         (estimate_function_body_sizes): Compute sizes even when disregarding.
17621
17622 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
17623
17624         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
17625
17626 2010-05-11  Jan Hubicka  <jh@suse.cz>
17627
17628         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
17629         into every boundary.
17630
17631 2010-05-11  Jan Hubicka  <jh@suse.cz>
17632
17633         * matrix-reorg.c (matrix_reorg): Rebuild edges.
17634
17635 2010-05-11  Jan Hubicka  <jh@suse.cz>
17636
17637         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
17638         lto_streamer_cache_delete): Put nodes into heap.
17639         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
17640         heap.
17641
17642 2010-05-11  Jan Hubicka  <jh@suse.cz>
17643
17644         * cgraphbuild.c (cgraph_rebuild_references): New.
17645         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
17646         out extern inlines.
17647         * cgraph.h (cgraph_rebuild_references): Declare.
17648         * tree-inline.c (tree_function_versioning): Use it.
17649         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
17650
17651 2010-05-11  Jan Hubicka  <jh@suse.cz>
17652
17653         * cgraph.c: Include ipa-utils.h
17654         (cgraph_create_virtual_clone): Update references.
17655         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
17656
17657 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
17658
17659         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
17660         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
17661         cache size.
17662
17663 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
17664
17665         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
17666
17667 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
17668
17669         * gcc.c (execute): For -### don't quote arguments that
17670         contain just alphanumerics and _/-. characters.
17671         * doc/invoke.texi: Document that change for -###.
17672
17673         PR debug/44023
17674         * df-problems.c (struct dead_debug): Add to_rescan field.
17675         (dead_debug_init): Clear to_rescan field.
17676         (dead_debug_finish): Rescan all debug insns in to_rescan
17677         bitmap and free the bitmap.
17678         (dead_debug_insert_before): Instead of rescanning debug insns
17679         immediately queue their rescanning until dead_debug_finish.
17680         (df_note_bb_compute): After dead_debug_add do continue instead
17681         of break.
17682
17683 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
17684
17685         PR debug/44028
17686         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
17687         clear also INSN_REG_USE_LIST.
17688
17689 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17690
17691         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
17692
17693 2010-05-10  Jan Hubicka  <jh@suse.cz>
17694
17695         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
17696         commited change.
17697
17698 2010-05-10  Jan Hubicka  <jh@suse.cz>
17699
17700         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
17701         Allocate encoders.
17702         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
17703         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
17704         (lto_streamer_cache_create): Init alloc pool.
17705         (lto_streamer_cache_delete): Free alloc pool.
17706         * lto-streamer.h: Include alloc pool.
17707         (lto_streamer_cache_d): Use alloc pool.
17708         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
17709
17710 2010-05-10  Jan Hubicka  <jh@suse.cz>
17711
17712         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
17713         * cgraphbuild.c: Include except.h
17714         (record_type_list, record_eh_tables): New function.
17715         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
17716
17717 2010-05-10  Jan Hubicka  <jh@suse.cz>
17718
17719         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
17720         __frame_dummy_init_array_entry, force_to_data): Attribute as used
17721         rather than unused.
17722
17723 2010-05-10  Michael Matz  <matz@suse.de>
17724
17725         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
17726         (can_reassociate_p): Use FLOAT_TYPE_P.
17727         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
17728         (vect_force_simple_reduction): ... this.
17729         * tree-parloops.c (gather_scalar_reductions): Use
17730         vect_force_simple_reduction.
17731         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
17732         vect_is_simple_reduction, add modify argument, if true rewrite
17733         "a-b" into "a+(-b)".
17734         (vect_is_simple_reduction, vect_force_simple_reduction): New
17735         functions.
17736         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
17737
17738 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
17739             Vladimir Makarov  <vmakarov@redhat.com>
17740
17741         PR rtl-optimization/44012
17742         * ira-build.c (remove_unnecessary_allocnos): Nullify
17743         regno_allocno_map of the removed allocno.
17744
17745 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17746
17747         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
17748         to /dev/null.
17749         * configure: Regenerate.
17750
17751 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17752
17753         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
17754         unused.
17755         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
17756         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
17757         support in Sun ld.
17758         * configure: Regenerate.
17759
17760 2010-05-10  Richard Guenther  <rguenther@suse.de>
17761
17762         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
17763         marked if the entry identifier is marked.
17764
17765 2010-05-10  Richard Guenther  <rguenther@suse.de>
17766
17767         * c-common.c (struct c_common_attributes): Add fnspec attribute.
17768         (handle_fnspec_attribute): New function.
17769         * gimple.h (gimple_call_return_flags): Declare.
17770         (gimple_call_arg_flags): Likewise.
17771         * gimple.c (gimple_call_arg_flags): New function.
17772         (gimple_call_return_flags): Likewise.
17773         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
17774         New argument flags.
17775         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
17776         return value flags.
17777         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
17778         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
17779         main work to ...
17780         (make_heapvar_for): ... this new function.
17781         (handle_rhs_call): Handle fnspec attribute argument specifiers.
17782         (handle_lhs_call): Likewise.
17783         (find_func_aliases): Adjust.
17784
17785 2010-05-10  Richard Guenther  <rguenther@suse.de>
17786
17787         PR tree-optimization/44050
17788         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
17789
17790 2010-05-10  Wei Guozhi  <carrot@google.com>
17791
17792         PR target/42879
17793         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
17794
17795 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
17796
17797         PR c/10676
17798         * c-typeck.c (lookup_field): Take a type directly.  Update
17799         recursive calls.
17800         (build_component_ref): Update call to lookup_field.
17801         (set_init_label): Use lookup_field to find initialized field.
17802         Handle returned list of fields like a sequence of designators.
17803
17804 2010-05-09  Richard Guenther  <rguenther@suse.de>
17805
17806         PR middle-end/44024
17807         * fold-const.c (tree_single_nonzero_warnv_p): Properly
17808         handle &FUNCTION_DECL.
17809
17810 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
17811
17812         PR c/4784
17813         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
17814         structures and unions recursively.
17815         (detect_field_duplicates): Move duplicate detection with a hash to
17816         detect_field_duplicates_hash.  Always use a hash if anonymous
17817         structures or unions are present.
17818         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
17819         give errors.
17820
17821 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17822
17823         PR target/44046
17824         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
17825         detect Atom, Core 2 and Core i7.
17826
17827 2010-05-09  Richard Guenther  <rguenther@suse.de>
17828
17829         * gcc.c (store_arg): Handle temporary file deletion for
17830         joined arguments.
17831
17832 2010-05-09  Richard Guenther  <rguenther@suse.de>
17833
17834         PR middle-end/44043
17835         * ipa-inline.c (estimate_function_body_sizes): Return after
17836         disregarding inline limits.
17837
17838 2010-05-09  Richard Guenther  <rguenther@suse.de>
17839
17840         * gcc.c (store_arg): Revert last change.
17841
17842 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
17843
17844         PR middle-end/28685
17845         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
17846         (optimize_ops_list): Call it.
17847
17848 2010-05-08  Richard Guenther  <rguenther@suse.de>
17849
17850         PR tree-optimization/44030
17851         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
17852         NECESSARY flag if we propagate from a inserted expression.
17853
17854 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17855
17856         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
17857         domain types as equal if they are both PLACEHOLDER_EXPRs.
17858
17859 2010-05-08  Richard Guenther  <rguenther@suse.de>
17860
17861         * lto-wrapper.c (run_gcc): Remove linker output from
17862         command line for LTRANS invocation.
17863
17864 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
17865
17866         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17867         lto-macho as lto_binary_reader.
17868         * target.h (struct gcc_target): New hooks lto_start and lto_end.
17869         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
17870         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
17871         in lto_start and lto_end calls.
17872         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
17873         magic numbers.
17874         (scan_prog_file): Update is_elf_or_coff call.
17875         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
17876
17877         * collect2.c (main): Fix enum comparison.
17878
17879         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
17880         Add prototypes.
17881         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
17882         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
17883         and TARGET_ASM_LTO_END.
17884         * darwin.c: Include obstack.h and lto-streamer.h.
17885         (lto_section_names_offset, lto_section_names_obstack,
17886         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
17887         global variables.
17888         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
17889         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
17890         to a temporary file.
17891         (darwin_asm_lto_end): New function.  Restore asm_out_file.
17892         (darwin_asm_named_section): For LTO sections, replace the name with
17893         the offset of the section name in a string table, and build this
17894         table.
17895         (darwin_file_start): Initialize global vars for LTO support.
17896         (darwin_file_end): If output to asm_out_file was redirected, append it
17897         to the proper asm_out_file here.  Add the section names section.
17898
17899 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
17900
17901         * c-pragma.c (pending_weak_d, pending_weak): New.
17902         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
17903         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
17904         handle_pragma_weak): Update the uses of pending_weaks.
17905
17906 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17907
17908         PR documentation/44016
17909         * doc/standards.texi (Standards): Link to unversioned
17910         cxx0x_status.html page.
17911
17912 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
17913
17914         PR target/43708
17915         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
17916         in addition to TREE_USED, to avoid "set but unused" warnings.
17917
17918 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17919
17920         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
17921         (is_loop_prefetching_profitable): Do not insert prefetches
17922         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
17923         times the prefetch ahead distance.
17924
17925 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17926
17927         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
17928         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
17929         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
17930         the unroll_factor.
17931
17932 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17933
17934         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
17935         a diagnostic info when the insn-to-mem ratio is too small.
17936
17937 2010-05-07  Richard Guenther  <rguenther@suse.de>
17938
17939         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
17940         the linker plugin.
17941         (store_arg): Queue temp_filename for deletion instead of
17942         the whole argument.
17943
17944 2010-05-07  Richard Guenther  <rguenther@suse.de>
17945
17946         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
17947         (run_gcc): Handle LTRANS phase invocation.
17948         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
17949
17950 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
17951
17952         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
17953         this is also meaningful on PARM_DECLs and RESULT_DECLs.
17954
17955 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17956
17957         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
17958
17959 2010-05-07  Richard Guenther  <rguenther@suse.de>
17960
17961         PR tree-optimization/44020
17962         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
17963         code when PRE is not yet initialized.
17964
17965 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17966
17967         * config/mips/dbxmdebug.h: Remove.
17968         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
17969
17970 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
17971
17972         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
17973         with null pointer and also warn about ordered comparison of zero with
17974         pointer if -Wextra.
17975
17976 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17977
17978         * graphite-blocking.c
17979         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
17980         * graphite-clast-to-gimple.c
17981         (clast_to_gcc_expression): Same.
17982         (precision_for_value): Same.
17983         (precision_for_interval): Same.
17984         (gcc_type_for_interval): Same.
17985         (graphite_create_new_guard): Same.
17986         (compute_bounds_for_level): Same.
17987         (graphite_create_new_loop_guard): Same.
17988         * graphite-interchange.c
17989         (build_linearized_memory_access): Same.
17990         (pdr_stride_in_loop): Same.
17991         (memory_strides_in_loop_1): Same.
17992         (memory_strides_in_loop): Same.
17993         (extend_scattering): Same.
17994         (psct_scattering_dim_for_loop_depth): Same.
17995         (pbb_number_of_iterations): Same.
17996         * graphite-poly.h
17997         (debug_iteration_domains): Same.
17998         * graphite-ppl.c
17999         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
18000         (ppl_set_inhomogeneous_gmp): Same.
18001         (ppl_strip_loop): Same.
18002         (ppl_lexico_compare_linear_expressions): Same.
18003         (ppl_read_polyhedron_matrix): Same.
18004         (ppl_max_for_le_pointset): Same.
18005         * graphite-ppl.h
18006         (ppl_read_polyhedron_matrix): Same.
18007         (tree_int_to_gmp): Same.
18008         (gmp_cst_to_tree): Same.
18009         (ppl_set_inhomogeneous): Same.
18010         (ppl_set_inhomogeneous_tree): Same.
18011         (ppl_set_coef): Same.
18012         (ppl_set_coef_tree): Same.
18013         * graphite-sese-to-poly.c
18014         (build_pbb_scattering_polyhedrons): Same.
18015         (build_scop_scattering): Same.
18016         (scan_tree_for_params_right_scev): Same.
18017         (scan_tree_for_params): Same.
18018         (find_params_in_bb): Same.
18019         (find_scop_parameters): Same.
18020         (add_upper_bounds_from_estimated_nit): Same.
18021         (build_loop_iteration_domains): Same.
18022         (add_condition_to_domain): Same.
18023         (pdr_add_memory_accesses): Same.
18024
18025 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18026
18027         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
18028         CLooG's value_* macros to their respective mpz_* counterparts.
18029         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
18030         (graphite_create_new_loop_guard): Same.
18031         * graphite-interchange.c (build_linearized_memory_access): Same.
18032         (pdr_stride_in_loop): Same.
18033         (memory_strides_in_loop_1): Same.
18034         (1st_interchange_profitable_p): Same.
18035         * graphite-poly.c (extend_scattering): Same.
18036         (psct_scattering_dim_for_loop_depth): Same.
18037         (pbb_number_of_iterations): Same.
18038         (pbb_number_of_iterations_at_time): Same.
18039         * graphite-poly.h (new_1st_loop): Same.
18040         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
18041         (oppose_constraint): Same.
18042         (insert_constraint_into_matrix): Same.
18043         (ppl_set_inhomogeneous_gmp): Same.
18044         (ppl_set_coef_gmp): Same.
18045         (ppl_strip_loop): Same.
18046         (ppl_lexico_compare_linear_expressions): Same.
18047         (ppl_max_for_le_pointset): Same.
18048         (ppl_min_for_le_pointset): Same.
18049         (ppl_build_realtion): Same.
18050         * graphite-ppl.h (gmp_cst_to_tree): Same.
18051         (ppl_set_inhomogeneous): Same.
18052         (ppl_set_inhomogeneous_tree): Same.
18053         (ppl_set_coef): Same.
18054         (ppl_set_coef_tree): Same.
18055         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
18056         (build_scop_scattering): Same.
18057         (add_value_to_dim): Same.
18058         (scan_tree_for_params_right_scev): Same.
18059         (scan_tree_for_params_int): Same.
18060         (scan_tree_for_params): Same.
18061         (find_params_in_bb): Same.
18062         (find_scop_parameters): Same.
18063         (add_upper_bounds_from_estimated_nit): Same.
18064         (build_loop_iteration_domains): Same.
18065         (create_linear_expr_from_tree): Same.
18066         (add_condition_to_domain): Same.
18067         (pdr_add_memory_accesses): Same.
18068
18069 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
18070             Jason Merrill  <jason@redhat.com>
18071
18072         * c-common.c (c_common_reswords): Add nullptr.
18073         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
18074         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
18075         (gen_type_die_with_usage): Likewise.
18076         * dbxout.c (dbxout_type): Likewise.
18077         * sdbout.c (plain_type_1): Likewise.
18078
18079 2010-05-06  Jason Merrill  <jason@redhat.com>
18080
18081         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
18082         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
18083         ret appropriately.
18084         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
18085
18086         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
18087         stripping WITH_SIZE_EXPR.
18088         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
18089         change.
18090
18091 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18092
18093         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
18094         list of obsolete configurations.
18095         Disabled check for obsolete configurations.
18096         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
18097         Removed support for previous versions.
18098         * config/mips/iris.h: Removed.
18099         * config/mips/iris5.h: Removed.
18100         * config/mips/iris6.h: Merged old iris.h contents.
18101         (TARGET_IRIX): Removed.
18102         (DRIVER_SELF_SPECS): Removed mabi=32.
18103         (IDENT_ASM_OP): Removed undef.
18104         (STARTFILE_SPEC): Removed mabi=32.
18105         (ENDFILE_SPEC): Likewise.
18106         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
18107         (MACHINE_TYPE): Update for IRIX 6.5.
18108         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
18109         TARGET_IRIX by TARGET_IRIX6.
18110         (mips_file_start): Likewise.
18111         (mips_output_external): Remove IRIX 5/6 O32 support.
18112         (mips_output_function_prologue): Likewise.
18113         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
18114         TARGET_IRIX6.
18115         (TARGET_CPU_CPP_BUILTINS): Likewise.
18116         (TARGET_IRIX): Removed.
18117         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
18118         (MULTILIB_DIRNAMES): Removed 32.
18119         (MULTILIB_OSDIRNAMES): Removed ../lib.
18120         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
18121         (Specific, mips-sgi-irix5): Document removal.
18122         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
18123         Remove references to older IRIX 6 releases and the O32 ABI.
18124
18125 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
18126
18127         PR bootstrap/43994
18128         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
18129         instead of DF_REF_REAL_REG.
18130
18131 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
18132
18133         PR target/43888
18134         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
18135         handling to still return true for x64 targets.
18136
18137 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18138
18139         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
18140
18141 2010-05-06  Jan Hubicka  <jh@suse.cz>
18142
18143         PR tree-optimization/43791
18144         * ipa-inline.c (update_caller_keys): Remove bogus
18145         disregard_inline_limits check.
18146
18147 2010-05-06  Michael Matz  <matz@suse.de>
18148
18149         PR tree-optimization/43984
18150         * tree-ssa-pre.c (inserted_phi_names): Remove.
18151         (inserted_exprs): Change to bitmap.
18152         (create_expression_by_pieces): Set bits, don't append to vector.
18153         (insert_into_preds_of_block): Don't handle inserted_phi_names.
18154         (eliminate): Don't look at inserted_phi_names, remove deleted
18155         insns from inserted_exprs.
18156         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
18157         (init_pre, fini_pre): Allocate and free bitmaps.
18158         (execute_pre): Insert insns on edges before elimination.
18159
18160 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18161
18162         * tree.c (initializer_zerop): Handle STRING_CST.
18163
18164 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18165
18166         PR 40989
18167         * doc/invoke.texi (Wimplicit): Document as C only.
18168         * opts.c (common_handle_option): Add argument kind.
18169         (handle_option): Rename as read_cmdline_option. Factor out code to...
18170         (handle_option): ... here. New.
18171         (handle_options): Rename as read_cmdline_options.
18172         (decode_options): Update call.
18173         (set_option): Use option index instead of option pointer. Classify
18174         diagnostics correctly.
18175         (enable_warning_as_error): Call handle_option.
18176         * opts.h (set_option): Update declaration.
18177         (handle_option): Declare.
18178         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
18179         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
18180         * c-opts.c (set_Wimplicit): Delete.
18181         (c_family_lang_mask): New static constant.
18182         (c_common_handle_option): Add argument kind. Use handle_option
18183         instead of set_Wimplicit.
18184         (c_common_post_options): warn_implicit and warn_implicit_int
18185         are disabled by default.
18186         * c-common.c (warn_implicit): Do not define here.
18187         * c-common.h (warn_implicit): Do not declare here.
18188         (c_common_handle_option): Update declaration.
18189         * lto-opts.c (lto_reissue_options): Update call to set_option.
18190
18191 2010-05-06  Richard Guenther  <rguenther@suse.de>
18192
18193         PR tree-optimization/43571
18194         * domwalk.c (walk_dominator_tree): Walk the dominator
18195         sons in more optimal order.
18196
18197 2010-05-06  Richard Guenther  <rguenther@suse.de>
18198
18199         PR tree-optimization/43934
18200         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
18201         (stmt_cost): Likewise.
18202         (extract_true_false_args_from_phi): New helper.
18203         (determine_max_movement): For PHI nodes verify we can hoist them
18204         and compute their cost.
18205         (determine_invariantness_stmt): Handle PHI nodes.
18206         (move_computations_stmt): Likewise.  Hoist PHI nodes in
18207         if-converted form using COND_EXPRs.
18208         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
18209         (tree_ssa_lim): Likewise.
18210         * tree-flow.h (tree_ssa_lim): Adjust prototype.
18211         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
18212
18213 2010-05-06  Richard Guenther  <rguenther@suse.de>
18214
18215         PR tree-optimization/43987
18216         * tree-ssa-structalias.c (could_have_pointers): For possibly
18217         address-taken variables force pointers to be recorded.
18218         (create_variable_info_for_1): Likewise.
18219         (push_fields_onto_fieldstack): Pass in wheter all fields
18220         must have pointers.
18221         (find_func_aliases): Query types instead of vars whether
18222         they contain pointers where appropriate.
18223
18224 2010-05-06  Jan Hubicka  <jh@suse.cz>
18225
18226         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
18227         (record_reference, mark_address, mark_load, mark_store): Record
18228         references.
18229         (record_references_in_initializer): Update call of record_references.
18230         (rebuild_cgraph_edges): Remove all references before rebuiding.
18231         * cgraph.c (cgraph_create_node): Clear ref list.
18232         (cgraph_remove_node): Remove references.
18233         (dump_cgraph_node): Dump references.
18234         (cgraph_clone_node): Clone references.
18235         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
18236         (struct cgraph_node, varpool_node): Add ref_lst.
18237         * ipa-ref.c: New file.
18238         * ipa-ref.h: New file.
18239         * ipa-ref-inline.h: New file.
18240         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
18241         (referenced_from_other_partition_p): New function.
18242         (lto_output_varpool_node): Take set arugment; call
18243         referenced_from_other_partition.
18244         (lto_output_ref): New.
18245         (add_references): New.
18246         (output_refs): New.
18247         (output_cgraph): Compute boundary based on references; output refs.
18248         (output_varpool): Accept cgraph_node_set argument.
18249         (input_ref): New.
18250         (input_refs): New.
18251         (input_cgraph): Call input_refs.
18252         * lto-section-in.c (lto_section_name): Add refs.
18253         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
18254         (ipa-ref.o): New file.
18255         * varpool.c (varpool_node): Clear ipa ref list.
18256         (varpool_remove_node): Remove references.
18257         (dump_varpool_node): Dump references.
18258         (varpool_assemble_decl): Only compile finalized ones.
18259         (varpool_extra_name_alias): Initialize ref list.
18260         * lto-streamer.c (lto-get_section_name): Add .refs section.
18261         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
18262         (referenced_from_other_partition_p): Declared.
18263
18264 2010-05-06  Ira Rosen  <irar@il.ibm.com>
18265
18266         PR tree-optimization/43901
18267         * tree-vect-stmts.c (vectorizable_call): Assert that vector
18268         type is not NULL if it's transformation phase, and return
18269         FALSE if it's analysis.
18270         (vectorizable_conversion, vectorizable_operation,
18271         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
18272
18273 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
18274
18275         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18276         Delete.
18277         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18278         New define.
18279         * config/mips/mips-protos.h
18280         (mips_small_register_classes_for_mode_p): Delete prototype.
18281
18282 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
18283
18284         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
18285         * config/arm/arm.c (multiple_operation_profitable_p,
18286         compute_offset_order): New static functions.
18287         (load_multiple_sequence, store_multiple_sequence): Use them.
18288         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
18289         memory offsets, not register numbers.
18290         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
18291
18292 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
18293
18294         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
18295         (get_pending_sizes, put_pending_size, put_pending_sizes):
18296         Update the uses of pending_sizes.
18297         * c-decl.c (store_parm_decls): Likewise.
18298         * c-tree.h (struct c_arg_info): Likewise.
18299         * tree.h: Update the prototype for get_pending_sizes and
18300         put_pending_sizes.
18301
18302 2010-05-05  Jason Merrill  <jason@redhat.com>
18303
18304         PR debug/43370
18305         * c-common.c (handle_aligned_attribute): Respect
18306         ATTR_FLAG_TYPE_IN_PLACE.
18307
18308         PR testsuite/43758
18309         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
18310         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18311         (TARGET_INITIALIZER): Use it.
18312         * c-common.c (attribute_takes_identifier_p): Call it.
18313         * c-common.h: Update prototype.
18314         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
18315         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18316
18317 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18318
18319         PR debug/43950
18320         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
18321         DW_ID_down_case for Fortran compilation units.
18322
18323 2010-05-05  Jan Hubicka  <jh@suse.cz>
18324
18325         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
18326         handle aliases.
18327
18328 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
18329
18330         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
18331         a variable-sized RESULT_DECL.
18332
18333 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
18334
18335         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
18336
18337 2010-05-05  Jason Merrill  <jason@redhat.com>
18338
18339         PR c++/43787
18340         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
18341         returns GS_OK.
18342         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
18343
18344 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
18345             Jakub Jelinek  <jakub@redhat.com>
18346
18347         PR debug/43478
18348         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
18349         (dead_debug_init, dead_debug_finish): New functions.
18350         (dead_debug_add, dead_debug_insert_before): Likewise.
18351         (df_note_bb_compute): Initialize a dead_debug object, add dead
18352         debug uses to it, insert debug bind insns before death insns,
18353         reset debug insns that refer to pending uses at the end.
18354         * rtl.h (make_debug_expr_from_rtl): New prototype.
18355         * varasm.c (make_debug_expr_from_rtl): New function.
18356
18357 2010-05-05  Jan Hubicka  <jh@suse.cz>
18358
18359         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
18360         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
18361         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
18362         lto_varpool_encoder_deref, lto_varpool_encoder_size,
18363         lto_varpool_encoder_encode_initializer_p,
18364         lto_set_varpool_encoder_encode_initializer): New functions.
18365         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
18366         call output_varpool.
18367         (input_varpool_node): Do not always set analyzed.
18368         (input_cgraph_1): Return vector of cgraph nodes.
18369         (input_varpool_1): Return vector of varpools.
18370         (input_cgraph): Free the vectors.
18371         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18372         output only initializers needed.
18373         (lto_output): Only call output_cgraph.
18374         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
18375         * lto-section-out.c (lto_new_out_decl_state): Initialize
18376         state->varpool_node_encoder.
18377         * lto-streamer.h (lto_varpool_encoder_d): New.
18378         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
18379         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
18380         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
18381         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
18382         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
18383         Declare.
18384         (output_varpool, input_varpool): Remove declarations.
18385
18386 2010-05-05  Jan Hubicka  <jh@suse.cz>
18387
18388         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
18389         with body can prevail.
18390
18391 2010-05-05  Jan Hubicka  <jh@suse.cz>
18392
18393         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
18394         size.
18395
18396 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18397
18398         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
18399
18400         * gengtype.h (erro_at_line): Constify pos argument.
18401
18402         * gengtype.c: Include hashtab.h.
18403         (enum gc_used): Document GC_MAYBE_POINTED_TO.
18404         (error_at_line): Constify pos argument.
18405         (do_typedef): Initialize p->opt field.
18406         (get_file_gtfilename): Fix comment typo.
18407         (struct walk_type_data): Constify line field.
18408         (get_output_file_for_structure): New function.
18409         (write_local_func_for_structure): Constify orig_s argument.
18410         Use get_output_file_for_structure.
18411         (write_func_for_structure): Use get_output_file_for_structure.
18412         (INDENT): New define.
18413         (dump_pair, dump_type, dump_type_list, dump_typekind)
18414         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
18415         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
18416         functions.
18417         (seen_types): New variable.
18418         (main): New variable do_dump.  Process "-d" command line option.
18419         Call dump_everything if dump requested.
18420
18421 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18422
18423         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
18424         in a temporary instead of invoking the macro multiple times.
18425         (track_expr_p): Likewise.
18426
18427 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
18428
18429         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
18430         per new semantics.
18431         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
18432         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
18433         conditions for printing notes.
18434         * common.opt (-Wcoverage-mismatch): Allow negative, default to
18435         true, update documentation.
18436         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
18437
18438 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
18439
18440         PR c/43981
18441         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
18442         on dimen.
18443
18444 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18445
18446         PR target/43799
18447         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
18448         (*sse_prologue_save_insn1): Likewise.
18449         (SSE prologue save splitter): Likewise.
18450
18451 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
18452
18453         * tree.c (free_lang_data_in_one_sizepos): New inline function.
18454         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
18455         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
18456         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
18457         all decls.  Call it on DECL_FIELD_OFFSET of fields.
18458         (find_decls_types_r): Follow DECL_VALUE_EXPR.
18459         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
18460
18461 2010-05-04  Martin Jambor  <mjambor@suse.cz>
18462
18463         * tree-sra.c (build_access_from_expr_1): The first parameter type
18464         changed to simple tree.
18465         (build_access_from_expr): Likewise, gsi parameter was eliminated.
18466         (scan_assign_result): Renamed to assignment_mod_result, enum elements
18467         renamed as well.
18468         (build_accesses_from_assign): Removed all parameters except for a
18469         simple gimple statement.  Now returns a simple bool.
18470         (scan_function): All non-analysis parts moved to separate functions
18471         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
18472         parameters and updated both callers.
18473         (sra_modify_expr): Removed parameter data.
18474         (sra_modify_function_body): New function.
18475         (perform_intra_sra): Call sra_modify_function_body to modify the
18476         function body.
18477         (replace_removed_params_ssa_names): Parameter data changed into
18478         adjustments vector.
18479         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
18480         changed the parameter dont_convert to convert with the opposite
18481         meaning.
18482         (sra_ipa_modify_assign): Parameter data changed into adjustments
18483         vector, return value changed to bool.
18484         (ipa_sra_modify_function_body): New function.
18485         (sra_ipa_reset_debug_stmts): Updated a comment.
18486         (modify_function): Use ipa_sra_modify_function_body to modify function
18487         body.
18488
18489 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18490
18491         PR middle-end/43671
18492         * alias.c (true_dependence): Handle the same VALUE in x and mem.
18493         (canon_true_dependence): Likewise.
18494         (write_dependence_p): Likewise.
18495
18496 2010-05-04  Jan Hubicka  <jh@suse.cz>
18497
18498         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
18499         * cgraphbuild.c: Include ipa-utils.h
18500         (record_reference_ctx): New struct.
18501         (record_reference): Simplify to work on initializers; not statements.
18502         (mark_address, mark_load, mark_store): New.
18503         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18504         walk PHI nodes too.
18505         (record_references_in_initializer): Update use of record_reference.
18506         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18507         walk PHI nodes too.
18508
18509 2010-05-04  Jan Hubicka  <jh@suse.cz>
18510
18511         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
18512         node will be removed anyway.
18513         (lto_varpool_replace_node): Allow also unanalyzed nodes;
18514         relink aliases of node into prevailing node.
18515         * varpool.c (varpool_remove_node): Remove aliases properly;
18516         when removing node, remove all its aliases too; remove DECL_INITIAL
18517         of removed node; ggc_free the varpool node.
18518
18519 2010-05-04  Richard Guenther  <rguenther@suse.de>
18520
18521         PR tree-optimization/43879
18522         * tree-ssa-structalias.c (alias_get_name): Use
18523         DECL_ASSEMBLER_NAME if available.
18524         (create_function_info_for): Return the varinfo node.
18525         (ipa_pta_execute): Associate same-body aliases and extra names
18526         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
18527
18528 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18529
18530         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
18531
18532 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
18533
18534         PR bootstrap/43964
18535         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
18536         only if HONOR_REG_ALLOC_ORDER is not defined.
18537
18538 2010-05-04  Richard Guenther  <rguenther@suse.de>
18539
18540         PR tree-optimization/43949
18541         * tree-vrp.c (extract_range_from_binary_expr): Only handle
18542         TRUNC_MOD_EXPR.
18543
18544 2010-04-26  Jason Merrill  <jason@redhat.com>
18545
18546         * c.opt (-fstrict-enums): New.
18547         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
18548
18549 2010-05-03  David Ung  <davidu@mips.com>
18550             James E. Wilson  <wilson@codesourcery.com>
18551
18552         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
18553         emit the trap instruction before the divide for TUNE_74K.
18554
18555 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
18556
18557         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
18558         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
18559         based on the above, for new target hook.
18560
18561         * hooks.c (hook_bool_mode_true): New generic hook.
18562         * hooks.h (hook_bool_mode_true): Add prototype.
18563
18564         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
18565         target hook.
18566         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
18567         target hook, set to hook_bool_mode_false.
18568         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
18569         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
18570         with targetm.small_register_classes_for_mode_p.
18571         (find_reusable_reload): Likewise.
18572         (combine_reloads): Likewise.
18573         * reload1.c (reload_as_needed): Likewise.
18574         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
18575         * ifcvt.c (noce_process_if_block, check_cond_move_block,
18576         dead_or_predicable): Likewise.
18577         * regmove.c (optimize_reg_copy_1): Likewise.
18578         * calls.c (prepare_call_address): Likewise.
18579         (precompute_register_parameters): Likewise.
18580
18581         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
18582         hook definition.
18583         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
18584         implementation of the hook that considers all register classes
18585         small except for SH64.
18586         (sh_override_options): Use the new hook.
18587         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
18588         Add prototype.
18589
18590         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
18591         hook definition.
18592         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
18593         implementation of the hook that considers all register classes
18594         small for THUMB1.
18595         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
18596         Add prototype.
18597
18598         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
18599         hook definition.
18600         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
18601         implementation of the hook that considers all register classes
18602         small for MIPS16.
18603         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
18604         Add prototype.
18605
18606         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
18607         hook definition.
18608         * config/m32c/m32c.h: Likewise.
18609         * config/pdp11/pdp11.h: Likewise.
18610         * config/avr/avr.h: Likewise.
18611         * config/xtensa/xtensa.h: Likewise.
18612         * config/m68hc11/m68hc11.h: Likewise.
18613         * config/mn10300/mn10300.h: Likewise.
18614         * config/mcore/mcore.h: Likewise.
18615         * config/h8300/h8300.h: Likewise.
18616         * config/bfin/bfin.h: Likewise.
18617
18618         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
18619         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
18620
18621 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
18622
18623         * double-int.h (tree_to_double_int): Remove macro.
18624         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
18625         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
18626         (tree_to_double_int): New function.
18627         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
18628         Move ...
18629         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
18630
18631 2010-05-03  Richard Guenther  <rguenther@suse.de>
18632
18633         PR tree-optimization/43971
18634         * tree-ssa-structalias.c (get_constraint_for_1): Fix
18635         constraints in the !flag_delete_null_pointer_checks case.
18636
18637 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
18638
18639         PR debug/43972
18640         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
18641         result mode matches original rtl mode.
18642
18643 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
18644
18645         PR target/43888
18646         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
18647
18648 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18649
18650         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
18651         when processing flag options.
18652
18653 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18654
18655         * gcov-iov.c (main): Change format string placeholder
18656         from %#08x to 0x%08x.
18657         * genchecksum.c (dosum): Change format string placeholder
18658         from %#02x to 0x%02x.
18659
18660 2010-05-02  Richard Guenther  <rguenther@suse.de>
18661
18662         PR tree-optimization/43879
18663         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
18664
18665 2010-05-02  Bruno Haible  <bruno@clisp.org>
18666
18667         * doc/extend.texi (Function Attributes): Fix a typo.
18668
18669 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18670
18671         Revert:
18672         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
18673         placeholder from 0x%x to %#x.
18674         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
18675         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
18676         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
18677         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
18678         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
18679         * config/i386/i386.c (ix86_target_string): Ditto.
18680         * config/i386/i386.c (output_pic_addr_const): Ditto.
18681         (print_operand): Ditto.
18682
18683 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18684
18685         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
18686         placeholder from 0x%x to %#x.
18687         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
18688         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
18689         (ASM_OUTPUT_DEBUG_DATA): Ditto.
18690         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
18691         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
18692         * optc-gen.awk: Ditto.
18693         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
18694         (HOST_WIDE_INT_PRINT_HEX): Ditto.
18695         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
18696         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
18697
18698 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
18699
18700         * target.h (struct calls): Add function_value_regno_p field.
18701         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
18702         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
18703         * targhooks.c (default_function_value_regno_p): New function.
18704         * targhooks.h (default_function_value_regno_p): Declare function.
18705         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
18706         * builtins.c. (apply_result_size): (Ditto.).
18707         * combine.c. (likely_spilled_retval_p): (Ditto.).
18708         * mode-switching.c. Include 'target.h'.
18709         (create_pre_exit): Use function_value_regno_p hook.
18710         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
18711         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
18712         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
18713
18714         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
18715         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
18716         (ix86_function_value_regno_p): Declare as static, change argument
18717         type to const unsigned int.
18718         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
18719
18720 2010-05-01  Richard Guenther  <rguenther@suse.de>
18721
18722         PR tree-optimization/43949
18723         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
18724         types.
18725         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
18726
18727 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
18728
18729         * rtl.h (CONST_DOUBLE_P): Define.
18730         (rtx_to_double_int): Declare.
18731         * emit-rtl.c (rtx_to_double_int): New function.
18732         * dwarf2out.c (insert_double): New function.
18733         (loc_descriptor, add_const_value_attribute): Clean up, use
18734         rtx_to_double_int and insert_double functions.
18735
18736 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
18737
18738         * doc/extend.texi (Inline): Add missing return keyword to examples.
18739         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
18740         "command-line".
18741
18742 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
18743
18744         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
18745         the variable part of the offset as well.  Use highest_pow2_factor for
18746         all alignment checks.
18747
18748 2010-04-30  Richard Guenther  <rguenther@suse.de>
18749
18750         PR tree-optimization/43879
18751         * tree-ssa-structalias.c (type_could_have_pointers): Functions
18752         can have pointers.
18753
18754 2010-04-30  Jan Hubicka  <jh@suse.cz>
18755
18756         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
18757         varpool.
18758         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
18759
18760 2010-04-30  Jan Hubicka  <jh@suse.cz>
18761
18762         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
18763         New.
18764         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
18765         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
18766         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
18767         cgraph_node_set_needs_ltrans_p): Remove.
18768
18769 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
18770
18771         * sdbout.c: Include vec.h, do not include varray.h.
18772         (deferred_global_decls, sdbout_global_decl,
18773         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
18774         * toplev.c: Do not include varray.h.
18775         (dump_memory_report): Do not dump VARRAY statistics.
18776         * gengtype.c (open_base_file): Ignore varray.h.
18777         * Makefile.in: Update for abovementioned changes.
18778         Remove all traces of varray.c and varray.h.
18779         * varray.c: Remove file.
18780         * varray.h: Remove file.
18781
18782 2010-04-30  Jan Hubicka  <jh@suse.cz>
18783
18784         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
18785         references.
18786
18787 2010-04-30  Jan Hubicka  <jh@suse.cz>
18788
18789         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
18790         needed.
18791
18792 2010-04-30  Richard Guenther  <rguenther@suse.de>
18793
18794         * tree-ssa-structalias.c (get_constraint_for_1): Generate
18795         constraints for CONSTRUCTOR.
18796
18797 2010-04-30  Richard Guenther  <rguenther@suse.de>
18798
18799         PR lto/43946
18800         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
18801         first after all lowering passes.
18802
18803 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
18804
18805         * toplev.c: Include varray.h for statistics dumping.
18806         * tree.h: Do not declare varray_head_tag.
18807         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
18808         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
18809         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
18810         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
18811         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
18812         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
18813         c-common.c, c-common.h, reg-stack.c, basic-block.h,
18814         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
18815         include varray.h.
18816         * Makefile.in: Update for abovementioned changes.
18817
18818 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
18819
18820         PR debug/43942
18821         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
18822
18823 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18824
18825         * config/picochip/picochip.c (picochip_legitimize_address): Define.
18826         Use this function to do machine-specific conversion.
18827         (picochip_legitimize_reload_address): Likewise.
18828         (picochip_legitimate_address_p): Check valid base register only if
18829         strict.
18830         (picochip_check_conditional_copy): Check for modw only if opnd is
18831         register.
18832         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
18833         to call the function in c.
18834         * config/picochip/picochip-protos.h
18835         (picochip_legitimize_reload_address): Define.
18836         * config/picochip/picochip.md (supported_compare1): Define.
18837
18838 2010-04-30  Jan Hubicka  <jh@suse.cz>
18839
18840         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
18841         (cgraph_global_info): Remove inlined.
18842         (LTO_cgraph_tag_names): Remove.
18843         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
18844         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
18845         simplify cgraph tags and document.
18846         (lto_output_node): Use only LTO_cgraph_unavail_node and
18847         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
18848         for_functions_valid, global info, process and output flags.
18849         (input_overwrite_node): Initialize estimated stack size and
18850         estimated growth.  Do not read flags we no longer store.
18851         (input_node): Likewise do not read info no longer stored.
18852         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
18853         flag.
18854
18855 2010-04-30  Richard Guenther  <rguenther@suse.de>
18856
18857         PR tree-optimization/43879
18858         * tree-ssa-structalias.c (get_constraint_for_1): Properly
18859         handle non-zero initializers.
18860
18861 2010-04-30  Richard Guenther  <rguenther@suse.de>
18862
18863         * builtins.c (fold_builtin_1): Delete free (0).
18864
18865 2010-04-29  Jan Hubicka  <jh@suse.cz>
18866
18867         * gengtype.c (open_base_files): Add lto-streamer.h
18868         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
18869         (pass_ipa_cp): GGC collect.
18870         * toplev. (compile_file): Do not output symbols.
18871         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
18872         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
18873         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
18874         * lto-section-in.c: Include ggc.h
18875         (lto_new_in_decl_state): Alloc in GGC.
18876         (lto_delete_in_decl_state): Likewise.
18877         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
18878         Collect.
18879
18880 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
18881
18882         PR target/42895
18883         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
18884         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
18885         (HONOR_REG_ALLOC_ORDER): Describe new macro.
18886         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
18887         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
18888         account only if HONOR_REG_ALLOC_ORDER is not defined.
18889         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
18890         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
18891
18892 2010-04-29  Jon Grant  <04@jguk.org>
18893
18894         * collect2.c (vflag): Change type from int to bool.
18895         (debug): Likewise.
18896         (helpflag): New global bool.
18897         (main): Set vflag and debug with boolean, not integer truth values.
18898         Accept new "--help" option and output usage text if found.
18899         * collect2.h (vflag): Update prototype.
18900         (debug): Likewise.
18901
18902 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18903
18904         PR bootstrap/43936
18905         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
18906
18907 2010-04-29  Richard Guenther  <rguenther@suse.de>
18908
18909         PR bootstrap/43935
18910         * plugin.h (invoke_plugin_callbacks): Annotate arguments
18911         with ATTRIBUTE_UNUSED.
18912
18913 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18914
18915         PR target/43921
18916         * config/i386/i386.c (get_some_local_dynamic_name): Replace
18917         INSN_P with NONDEBUG_INSN_P.
18918         (distance_non_agu_define): Likewise.
18919         (distance_agu_use): Likewise.
18920
18921 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
18922
18923         From Dominique d'Humieres  <dominiq@lps.ens.fr>
18924         PR bootstrap/43858
18925         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
18926         test_set.
18927
18928 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
18929
18930         * plugin.h (invoke_plugin_callbacks): New inline function.
18931         * plugin.c (flag_plugin_added): New global flag.
18932         (add_new_plugin): Initialize above flag.
18933         (invoke_plugin_callbacks): Rename to ...
18934         (invoke_plugin_callbacks_full): ... this.
18935
18936 2010-04-28  Jan Hubicka  <jh@suse.cz>
18937
18938         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
18939         (lto_varpool_replace_node): New.
18940         (lto_symtab_resolve_symbols): Resolve varpool nodes.
18941         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
18942         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
18943         * cgraph.h (varpool_node_ptr): New type.
18944         (varpool_node_ptr): New vector.
18945         (varpool_node_set_def): New structure.
18946         (varpool_node_set): New type.
18947         (varpool_node_set): New vector.
18948         (varpool_node_set_element_def): New structure.
18949         (varpool_node_set_element, const_varpool_node_set_element): New types.
18950         (varpool_node_set_iterator): New type.
18951         (varpool_node): Add prev pointers, add used_from_other_partition,
18952         in_other_partition.
18953         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
18954         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
18955         varpool_get_node, varpool_remove_node): Declare.
18956         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
18957         varpool_node_set_size): New inlines.
18958         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
18959         * tree-pass.h (varpool_node_set_def): Forward declare.
18960         (ipa_opt_pass_d): Summary writting takes vnode sets too.
18961         (ipa_write_optimization_summaries): Update prototype.
18962         * ipa-cp.c (ipcp_write_summary): Update.
18963         * ipa-reference.c (ipa_reference_write_summary): Update.
18964         * lto-cgraph.c (lto_output_varpool_node): New static function.
18965         (output_varpool): New function.
18966         (input_varpool_node): New static function.
18967         (input_varpool_1): New function.
18968         (input_cgraph): Input varpool.
18969         * ipa-pure-const.c (pure_const_write_summary): Update.
18970         * lto-streamer-out.c (lto_output): Update, output varpool too.
18971         (write_global_stream): Kill WPA hack.
18972         (produce_asm_for_decls): Update.
18973         (output_alias_pair_p): Handle variables.
18974         (output_unreferenced_globals): Output only needed partition of varpool.
18975         * ipa-inline.c (inline_write_summary): Update.
18976         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
18977         cgraph.
18978         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
18979         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
18980         varpool_node_set_new, varpool_node_set_add,
18981         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
18982         debug_varpool_node_set): New functions.
18983         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
18984         (execute_one_pass): Process new decls too.
18985         (ipa_write_summaries_2): Pass around vsets.
18986         (ipa_write_summaries_1): Likewise.
18987         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
18988         to add.
18989         (ipa_write_optimization_summaries_1): Pass around vsets.
18990         (ipa_write_optimization_summaries): Likewise.
18991         * varpool.c (varpool_get_node): New.
18992         (varpool_node): Update doubly linked lists.
18993         (varpool_remove_node): New.
18994         (dump_varpool_node): More dumping.
18995         (varpool_enqueue_needed_node): Update doubly linked lists.
18996         (decide_is_variable_needed): Kill ltrans hack.
18997         (varpool_finalize_decl): Kill lto hack.
18998         (varpool_assemble_decl): Skip decls in other partitions.
18999         (varpool_assemble_pending_decls): Update doubly linkes lists.
19000         (varpool_empty_needed_queue): Likewise.
19001         (varpool_extra_name_alias): Likewise.
19002         * lto-streamer.c (lto_get_section_name): Add vars section.
19003         * lto-streamer.h (lto_section_type): Update.
19004         (output_varpool, input_varpool): Declare.
19005
19006 2010-04-28  Mike Stump  <mikestump@comcast.net>
19007
19008         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
19009
19010 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19011
19012         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
19013         record or union type with RECORD_OR_UNION_TYPE_P predicate.
19014         (lto_input_ts_type_tree_pointers): Likewise.
19015         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
19016         (lto_output_ts_type_tree_pointers): Likewise.
19017
19018 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19019
19020         Uniquization of constants at the Tree level
19021         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
19022         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
19023         bit to the end.
19024         (tree_output_constant_def): Declare.
19025         * gimplify.c (gimplify_init_constructor): When using block copy, first
19026         uniquize the constant constructor on the RHS.
19027         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
19028         DECL_IN_CONSTANT_POOL flag.
19029         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
19030         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
19031         constant pool.
19032         (assemble_variable): Deal with symbols belonging to the tree constant
19033         pool.
19034         (get_constant_section): Add ALIGN parameter and simplify.
19035         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
19036         (assemble_constant_contents): Use the expression of the VAR_DECL.
19037         (output_constant_def_contents): Use the alignment of the VAR_DECL.
19038         (tree_output_constant_def): New global function.
19039         (mark_constant): Use the expression of the VAR_DECL.
19040         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
19041         its expression.
19042         (output_object_block): Likewise and assemble the expression.
19043
19044 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19045
19046         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
19047         hash_tree, eq_tree): New tree hash table.
19048         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
19049         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
19050         lto_orig_address_remove): Reimplement.
19051
19052 2010-04-28  Xinliang David Li  <davidxl@google.com>
19053
19054         PR c/42643
19055         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
19056         (compute_uninit_opnds_pos): New function.
19057         (is_non_loop_exit_postdominating): New function.
19058         (compute_control_dep_chain): New function.
19059         (find_pdom): New function.
19060         (convert_control_dep_chain_into_preds): New function.
19061         (find_predicates): New function.
19062         (find_control_equiv_block): New function.
19063         (collect_phi_def_edges): New function.
19064         (find_def_preds): New function.
19065         (find_dom): New function.
19066         (dump_predicates): New function.
19067         (get_cmp_code): New function.
19068         (is_value_included_in): New function.
19069         (find_matching_predicate_in_rest_chains): New function.
19070         (use_pred_not_overlap_with_undef_path_pred): New function.
19071         (is_use_properly_guarded): New function.
19072         (normalize_cond_1): New function.
19073         (is_and_or_or): New function.
19074         (normalize_cond): New function.
19075         (is_gcond_subset_of): New function.
19076         (is_subset_of_any): New function.
19077         (is_or_set_subset_of): New function.
19078         (is_and_set_subset_of): New function.
19079         (is_norm_cond_subset_of): New function.
19080         (is_pred_expr_subset_of): New function.
19081         (is_pred_chain_subset_of): New function.
19082         (is_included_in): New function.
19083         (is_superset_of): New function.
19084         (find_uninit_use): New function.
19085         (warn_uninitialized_phi): New function.
19086         (compute_possibly_undefined_names): New function.
19087         (ssa_undefined_value_p): New function.
19088         (execute_late_warn_uninitialized): New function.
19089         * tree-ssa.c (ssa_undefined_value_p): Removed.
19090         (warn_uninit): Changed to extern.
19091         (warn_uninitialized_phi): Removed.
19092         (warn_uninitialized_vars): Changed to extern.
19093         (execute_late_warn_uninitialized): Removed
19094         * tree-flow.h: Add new prototypes.
19095         * timevar.def: Add new time variable.
19096         * Makefile.in: Add new build file.
19097
19098 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
19099
19100         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
19101         type if available.
19102
19103 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19104
19105         PR target/22224
19106         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
19107
19108 2010-04-28  Martin Jambor  <mjambor@suse.cz>
19109
19110         * cgraph.h (struct cgraph_node): New field indirect_calls.
19111         (struct cgraph_indirect_call_info): New type.
19112         (struct cgraph_edge): Removed field indirect_call. New fields
19113         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
19114         (cgraph_create_indirect_edge): Declare.
19115         (cgraph_make_edge_direct): Likewise.
19116         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
19117         * ipa-prop.h (struct ipa_param_call_note): Removed.
19118         (struct ipa_node_params): Removed field param_calls.
19119         (ipa_create_all_structures_for_iinln): Declare.
19120         * cgraph.c: Described indirect edges and uids in initial comment.
19121         (cgraph_add_edge_to_call_site_hash): New function.
19122         (cgraph_edge): Search also among the indirect edges, use
19123         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
19124         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
19125         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
19126         site hash.
19127         (initialize_inline_failed): Assign a reason to indirect edges.
19128         (cgraph_create_edge_1): New function.
19129         (cgraph_create_edge): Moved some functionality to
19130         cgraph_create_edge_1.
19131         (cgraph_create_indirect_edge): New function.
19132         (cgraph_edge_remove_callee): Add an assert checking for
19133         non-indirectness.
19134         (cgraph_edge_remove_caller): Special-case indirect edges.
19135         (cgraph_remove_edge): Likewise.
19136         (cgraph_set_edge_callee): New function.
19137         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
19138         (cgraph_make_edge_direct): New function.
19139         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
19140         the declaration of the call statement matches.
19141         (cgraph_node_remove_callees): Special-case indirect edges.
19142         (cgraph_clone_edge): Likewise.
19143         (cgraph_clone_node): Clone also the indirect edges.
19144         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
19145         indirect_call, dump count of indirect_calls edges.
19146         * ipa-prop.c (iinlining_processed_edges): New variable.
19147         (ipa_note_param_call): Create indirect edges instead of
19148         creating notes.  New parameter node.
19149         (ipa_analyze_call_uses): New parameter node, pass it on to
19150         ipa_note_param_call.
19151         (ipa_analyze_stmt_uses): Likewise.
19152         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
19153         (print_edge_addition_message): Work on edges rather than on notes.
19154         (update_call_notes_after_inlining): Likewise, renamed to
19155         update_indirect_edges_after_inlining.
19156         (ipa_create_all_structures_for_iinln): New function.
19157         (ipa_free_node_params_substructures): Do not free notes.
19158         (ipa_edge_duplication_hook): Propagate bits within
19159         iinlining_processed_edges bitmap.
19160         (ipa_node_duplication_hook): Do not duplicate notes.
19161         (free_all_ipa_structures_after_ipa_cp): Renamed to
19162         ipa_free_all_structures_after_ipa_cp.
19163         (free_all_ipa_structures_after_iinln): Renamed to
19164         ipa_free_all_structures_after_iinln.
19165         (ipa_write_param_call_note): Removed.
19166         (ipa_read_param_call_note): Removed.
19167         (ipa_write_indirect_edge_info): New function.
19168         (ipa_read_indirect_edge_info): Likewise.
19169         (ipa_write_node_info): Do not stream notes, do stream information
19170         in indirect edges.
19171         (ipa_read_node_info): Likewise.
19172         (lto_ipa_fixup_call_notes): Removed.
19173         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
19174         * ipa-inline.c (pass_ipa_inline): Likewise.
19175         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
19176         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
19177         * tree-inline.c (copy_bb): Removed an unnecessary double check for
19178         is_gimple_call.
19179         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
19180         edges.
19181         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
19182         (output_cgraph): Stream also indirect edges.
19183         (lto_output_edge): Added capability to stream indirect edges.
19184         (input_edge): Likewise.
19185         (input_cgraph_1): Likewise.
19186         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
19187         of indirect edges.
19188
19189 2010-04-28  Richard Guenther  <rguenther@suse.de>
19190
19191         PR tree-optimization/43879
19192         PR tree-optimization/43909
19193         * tree-ssa-structalias.c (struct variable_info): Add
19194         only_restrict_pointers flag.
19195         (new_var_info): Initialize it.  Increment stats.total_vars here.
19196         (create_function_info_for): Do not increment stats.total_vars here.
19197         (get_function_part_constraint): Fix build with C++.
19198         (insert_into_field_list): Remove.
19199         (push_fields_onto_fieldstack): Properly merge fields.
19200         (create_variable_info_for): Split and simplify.
19201         (create_variable_info_for_1): New piece.
19202         (intra_create_variable_infos): Properly make restrict constraints
19203         from parameters.
19204
19205 2010-04-28  Richard Guenther  <rguenther@suse.de>
19206
19207         PR c++/43880
19208         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
19209
19210 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19211             Jan Hubicka  <hubicka@ucw.cz>
19212
19213         * doc/invoke.texi (-Wsuggest-attribute=const,
19214         -Wsuggest-attribute=pure): Document.
19215         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
19216         (function_always_visible_to_compiler_p,
19217         suggest_attribute, warn_function_pure, warn_function_const):
19218         New functions.
19219         (check_call): Improve debug info.
19220         (analyze_function): Do not check availability.
19221         (add_new_function): Check availability.
19222         (propagate): Output warnings.
19223         (skip_function_for_local_pure_const): New function.
19224         (local_pure_const): Use it; output warnings.
19225         * common.opt (Wsuggest-attribute=const,
19226         Wsuggest-attribute=pure): New.
19227
19228 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19229
19230         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
19231         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
19232         or DW_CFA_def_cfa_offset{,_sf}.
19233
19234 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19235
19236         * tree.h: Fix truncated long macros.
19237
19238 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
19239
19240         * collect2.c (TARGET_64BIT): Redefine to target's default.
19241         * tlink.c: Likewise.
19242         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
19243         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
19244         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
19245         for underscoring __USER_LABEL_PREFIX__.
19246         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
19247         (SUB_LINK_ENTRY32): New.
19248         (SUB_LINK_ENTRY64): New.
19249         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
19250         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
19251         (SUB_LINK_ENTRY64): New.
19252         (SUB_LINK_ENTRY): New.
19253         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
19254         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
19255         x64 target is choosen.
19256         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
19257         * configure: Regenerated.
19258         * configure.ac (leading-mingw64-underscores): Option added.
19259
19260 2010-04-27  Jan Hubicka  <jh@suse.cz>
19261
19262         * doc/invoke.texi (-fipa-profile): Document.
19263         * opts.c (decode_options): Enable ipa-profile at -O1.
19264         * timevar.def (TV_IPA_PROFILE): Define.
19265         * common.opt (fipa-profile): Add.
19266         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
19267         flag for clones.
19268         (cgraph_propagate_frequency): Handle only local ones.
19269         * tree-pass.h (pass_ipa_profile): Declare.
19270         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
19271         (pass_ipa_profile): Use TV_IPA_PROFILE.
19272         * ipa.c (ipa_profile): New function.
19273         (gate_ipa_profile): Likewise.
19274         (pass_ipa_profile): New global variable.
19275         * passes.c (pass_ipa_profile): New.
19276
19277 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
19278
19279         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
19280
19281 2010-04-27  Martin Jambor  <mjambor@suse.cz>
19282
19283         PR middle-end/43812
19284         * ipa.c (dissolve_same_comdat_group_list): New function.
19285         (function_and_variable_visibility): Call
19286         dissolve_same_comdat_group_list when comdat group contains external or
19287         newly local nodes.
19288         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
19289         lists are circular and that they contain only DECL_ONE_ONLY nodes.
19290
19291 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19292
19293         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
19294         (const_hash_1) <VECTOR_CST>: New case.
19295         (compare_constant) <VECTOR_CST>: Likewise.
19296         <ADDR_EXPR>: Deal with LABEL_REFs.
19297         (copy_constant) <VECTOR_CST>: New case.
19298
19299 2010-04-27  Jan Hubicka  <jh@suse.cz>
19300
19301         * cgraph.c (cgraph_propagate_frequency): New function.
19302         * cgraph.h (cgraph_propagate_frequency): Declare.
19303         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
19304         cgraph_propagate_frequency.
19305
19306 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19307
19308         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
19309
19310 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
19311
19312         PR target/40657
19313         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
19314         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
19315         here to determine which regs to push and how much stack to reserve.
19316
19317 2010-04-27  Jie Zhang  <jie@codesourcery.com>
19318
19319         * doc/gimple.texi (gimple_statement_with_ops): Remove
19320         addresses_taken field.
19321         (gimple_statement_with_memory_ops): Likewise.
19322
19323 2010-04-27  Jan Hubicka  <jh@suse.cz>
19324
19325         * tree-inline.c (eni_inlining_weights): Remove.
19326         (estimate_num_insns): Special case more builtins.
19327
19328 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
19329
19330         PR c/32207
19331         * c-typeck.c (build_binary_op): Move forward check for comparison
19332         pointer with null pointer constant and adjust the diagnostic message.
19333
19334 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
19335
19336         PR lto/42776
19337         * configure.ac (gcc_cv_as_section_has_align): Set if installed
19338         binutils supports extended .section directive needed by LTO, or
19339         warn if older binutils found.
19340         (LTO_BINARY_READER): New AC_SUBST'd variable.
19341         (LTO_USE_LIBELF): Likewise.
19342         * config.gcc (lto_binary_reader): New target-specific configure
19343         variable.
19344         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
19345         (LTO_USE_LIBELF): Likewise.
19346         * configure: Regenerate.
19347
19348         * collect2.c (is_elf): Rename from this ...
19349         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
19350          object files in addition to ELF-formatted ones.
19351         (scan_prog_file): Caller updated.  Also allow for LTO info marker
19352         symbol to be prefixed or not by an extra underscore.
19353
19354         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
19355         * config/i386/winnt.c: Also #include lto-streamer.h
19356         (i386_pe_asm_named_section): Specify 1-byte section alignment for
19357         LTO named sections.
19358         (i386_pe_asm_output_aligned_decl_common): Add comment.
19359         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
19360
19361 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
19362
19363         PR target/43889
19364         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
19365         Add missing earlyclobber for second alternative.
19366
19367 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
19368
19369         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
19370         bits for artificial defs at the top of the block.
19371         * fwprop.c (single_def_use_enter_block): Don't call it.
19372
19373 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
19374
19375         PR 43715
19376         * configure.ac: Use "$gcc_cv_nm -g" on darwin
19377         instead of "$gcc_cv_objdump -T".
19378         Use "-undefined dynamic_lookup" on darwin.
19379         * configure: Regenerate.
19380
19381 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
19382
19383         PR c/43893
19384         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
19385
19386 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19387
19388         * c-parser.c (struct c_token): Move location field up.
19389         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
19390         (struct c_declspecs): Convert typespec_word, storage_class, and
19391         default_int_p into bitfields.
19392         (struct c_declarator): Move loc field up.
19393
19394 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19395
19396         * cfgloop.h (struct loop): Move can_be_parallel field up.
19397         * ipa-prop.h (struct ip_node_params): Move bitfields up.
19398         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
19399         down.
19400         (struct iv_cand): Convert pos field into a bitfield.
19401         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
19402         field up.
19403         (struct _stmt_vec_info): Shuffle fields for better packing.
19404
19405 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19406
19407         * varasm.c (IN_NAMED_SECTION): Remove guard.
19408         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
19409         (IN_NAMED_SECTION_P): ...this.
19410         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
19411         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
19412
19413 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19414
19415         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
19416         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
19417         of shadowing it.  Fix comments.
19418
19419 2010-04-26  Jan Hubicka  <jh@suse.cz>
19420
19421         * cgraph.c (cgraph_create_node): Set node frequency to normal.
19422         (cgraph_clone_node): Copy function frequency.
19423         * cgraph.h (node_frequency): New enum
19424         (struct cgraph_node): Add.
19425         * final.c (rest_of_clean_state): Update.
19426         * lto-cgraph.c (lto_output_node): Output node frequency.
19427         (input_overwrite_node): Input node frequency.
19428         * tre-ssa-loop-ivopts (computation_cost): Update.
19429         * lto-streamer-out.c (output_function): Do not output function
19430         frequency.
19431         * predict.c (maybe_hot_frequency_p): Update and handle functions
19432         executed once.
19433         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
19434         attribute lookup.
19435         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
19436         (compute_function_frequency): Set noreturn functions to be executed
19437         once.
19438         (choose_function_section): Update.
19439         * lto-streamer-in.c (input_function): Do not input function frequency.
19440         * function.c (allocate_struct_function): Do not initialize function
19441         frequency.
19442         * function.h (function_frequency): Remove.
19443         (struct function): Remove function frequency.
19444         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
19445         (try_update): Update.
19446         * tree-inline.c (initialize_cfun): Do not update function frequency.
19447         * passes.c (pass_init_dump_file): Update.
19448         * i386.c (ix86_compute_frame_layout): Update.
19449         (ix86_pad_returns): Update.
19450
19451 2010-04-26  Jie Zhang  <jie@codesourcery.com>
19452
19453         PR tree-optimization/43833
19454         * tree-vrp.c (range_int_cst_p): New.
19455         (range_int_cst_singleton_p): New.
19456         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
19457         when both operands are constants.  Use range_int_cst_p in
19458         BIT_IOR_EXPR case.
19459
19460 2010-04-26  Jan Hubicka  <jh@suse.cz>
19461
19462         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
19463
19464 2010-04-26  Richard Guenther  <rguenther@suse.de>
19465
19466         PR lto/43080
19467         * gimple.c (gimple_decl_printable_name): Deal gracefully
19468         with a NULL DECL_NAME.
19469
19470 2010-04-26  Richard Guenther  <rguenther@suse.de>
19471
19472         PR lto/42425
19473         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
19474         if emitting debug information and it is either a function
19475         or a namespace decl.
19476
19477 2010-04-26  Ira Rosen  <irar@il.ibm.com>
19478
19479         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
19480         determine if the statement is vectorizable, and a macro to access it.
19481         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19482         Skip statements that can't be vectorized. If the analysis fails,
19483         mark the statement as unvectorizable if vectorizing basic block.
19484         (vect_compute_data_refs_alignment): Likewise.
19485         (vect_verify_datarefs_alignment): Skip statements marked as
19486         unvectorizable. Add print.
19487         (vect_analyze_group_access): Skip statements that can't be
19488         vectorized. If the analysis fails, mark the statement as
19489         unvectorizable if vectorizing basic block.
19490         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
19491         * tree-vect-stmts.c (vectorizable_store): Fix the number of
19492         generated stmts for SLP.
19493         (new_stmt_vec_info): Initialize the new field.
19494         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
19495         statements marked as unvectorizable.
19496
19497 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
19498
19499         * c-common.c (flag_isoc1x): New.
19500         (flag_isoc99): Update comment.
19501         * c-common.h (flag_isoc1x): New.
19502         (flag_isoc99): Update comment.
19503         * c-cppbuiltin.c (builtin_define_float_constants): Also define
19504         __<type>_DECIMAL_DIG__.
19505         * c-opts.c (set_std_c1x): New.
19506         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
19507         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
19508         * c.opt (-std=c1x, -std=gnu1x): New options.
19509         * doc/cpp.texi: Mention -std=c1x.
19510         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
19511         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
19512         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
19513         * doc/standards.texi: Mention C1X.
19514         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
19515         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
19516         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
19517         Define for C1X.
19518
19519 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
19520
19521         * config/i386/gmon-sol2.c (_mcleanup): Change format string
19522         placeholder from 0x%x to %#x.
19523         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19524         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19525         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19526         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19527         * config/i386/i386.c (ix86_target_string): Ditto.
19528         (output_pic_addr_const): Ditto.
19529         (print_operand): Ditto.
19530
19531 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
19532
19533         * combine.c (find_split_point): Add third argument.  Use it
19534         to find nested multiply-accumulate instructions.  Adjust calls.
19535         (try_combine): Adjust call to find_split_point.
19536
19537 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19538
19539         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
19540
19541 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
19542
19543         PR tree-optimization/41442
19544         * fold-const.c (merge_truthop_with_opposite_arm): New function.
19545         (fold_binary_loc): Call it.
19546
19547 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19548
19549         * toplev.c (general_init): Set default for fdiagnostics-show-option.
19550         * opts.c (common_handle_option): Allow disabling it.
19551         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
19552
19553 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
19554
19555         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
19556         between modes if both types are integral.
19557
19558 2010-04-23  Richard Guenther  <rguenther@suse.de>
19559
19560         PR tree-optimization/43572
19561         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
19562
19563 2010-04-23  Richard Guenther  <rguenther@suse.de>
19564
19565         PR lto/43455
19566         * tree-inline.c (tree_can_inline_p): Also check compatibility
19567         of return types.
19568
19569 2010-04-23  Martin Jambor  <mjambor@suse.cz>
19570
19571         PR tree-optimization/43846
19572         * tree-sra.c (struct access): New flag grp_assignment_read.
19573         (build_accesses_from_assign): Set grp_assignment_read.
19574         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
19575         (enum mark_read_status): New type.
19576         (analyze_access_subtree): Propagate grp_assignment_read, create
19577         accesses also if both direct_read and root->grp_assignment_read.
19578
19579 2010-04-23  Martin Jambor  <mjambor@suse.cz>
19580
19581         PR middle-end/43835
19582         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
19583         function does not have type attributes.
19584
19585 2010-04-23  Richard Guenther  <rguenther@suse.de>
19586
19587         PR lto/42653
19588         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
19589         of FUNCTION_DECLs.
19590
19591 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19592
19593         * sese.h (create_if_region_on_edge): Remove.
19594
19595         * sese.c (create_if_region_on_edge): Make static.
19596
19597         * tree-inline.c: Do not include ggc.h.
19598
19599         * expr.c: Do not include ggc.h.
19600
19601         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
19602         dependencies.
19603
19604 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
19605
19606         PR target/43744
19607         * config/sh/sh.c (find_barrier): Don't emit a constant pool
19608         in the middle of insns for casesi_worker_2.
19609
19610 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
19611
19612         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
19613
19614 2010-04-22  Ira Rosen  <irar@il.ibm.com>
19615
19616         PR tree-optimization/43842
19617         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
19618         loop unrolling in update of exit phis. Fix comment.
19619         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
19620         least two reduction statements in the loop before starting SLP
19621         analysis.
19622
19623 2010-04-22  Nick Clifton  <nickc@redhat.com>
19624
19625         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
19626
19627 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
19628
19629         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
19630         to simplify a + ~a.
19631
19632 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19633
19634         * tree-parloops.c (loop_parallel_p): New argument
19635         parloop_obstack.  Pass it down.
19636         (parallelize_loops): New variable parloop_obstack.  Initialize it,
19637         pass it down, free it.
19638
19639         * tree-loop-linear.c (linear_transform_loops): Pass down
19640         lambda_obstack.
19641
19642         * tree-data-ref.h (lambda_compute_access_matrices): New argument
19643         of type struct obstack *.
19644
19645         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
19646         scratch_obstack.  Initialize it, pass down, free it.
19647
19648         * lambda.h (lambda_loop_new): Remove.
19649         (lambda_matrix_new, lambda_matrix_inverse)
19650         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
19651         argument of type struct obstack *.
19652
19653         * lambda-trans.c (lambda_trans_matrix_new): New argument
19654         lambda_obstack.  Pass it down, use obstack allocation for ret.
19655         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
19656         it down.
19657
19658         * lambda-mat.c (lambda_matrix_get_column)
19659         (lambda_matrix_project_to_null): Remove.
19660         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
19661         allocation for mat.
19662         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
19663         lambda_obstack.
19664
19665         * lambda-code.c (lambda_loop_new): New function.
19666         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
19667         (lambda_compute_auxillary_space, lambda_compute_target_space)
19668         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
19669         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
19670         (build_access_matrix): New argument lambda_obstack.  Use obstack
19671         allocation for am.
19672         (lambda_compute_step_signs, lambda_compute_access_matrices): New
19673         argument lambda_obstack.  Pass it down.
19674
19675 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19676
19677         * optabs.h (expand_widening_mult): Declare.
19678
19679 2010-04-22  Richard Guenther  <rguenther@suse.de>
19680
19681         PR tree-optimization/43845
19682         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
19683         lookup the CALL_EXPR function and arguments.
19684
19685 2010-04-22  Nick Clifton  <nickc@redhat.com>
19686
19687         * config/stormy16/stormy16.c
19688         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
19689         * config/stormy16/stormy16.h: Tidy up formatting.
19690         (DONT_USE_BUILTIN_SETJMP): Remove definition.
19691         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
19692         (ineqbranchsi): Delete pattern.
19693         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
19694         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
19695         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
19696         stormy16-lib2-ucmpsi2.c.
19697
19698 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19699
19700         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
19701         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
19702         extra set merge_set_noclobber, and use it to relax the final test
19703         slightly.
19704         * df.h (df_simulate_find_noclobber_defs): Declare.
19705         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
19706         conditional defs.
19707         (df_simulate_find_noclobber_defs): New function.
19708
19709 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
19710
19711         * config/i386/i386.md: Use {} around multi-line preparation statements.
19712
19713 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19714
19715         * c-tree.h (push_init_level, pop_init_level, set_init_index)
19716         (process_init_element): New argument of type struct obstack *.
19717
19718         * c-typeck.c (push_init_level, pop_init_level, set_designator)
19719         (set_init_index, set_init_label, set_nonincremental_init)
19720         (set_nonincremental_init_from_string, find_init_member)
19721         (output_init_element, output_pending_init_elements)
19722         (process_init_element): New argument braced_init_obstack.  Pass it
19723         down.
19724         (push_range_stack, add_pending_init): New argument
19725         braced_init_obstack.  Use obstack allocation.
19726
19727         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
19728         braced_init_obstack.  Pass it down.
19729         (c_parser_braced_init): New variables ret, braced_init_obstack.
19730         Initialize obstack, pass it down and finally free it.
19731
19732 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19733
19734         PR middle-end/29274
19735         * tree-pass.h (pass_optimize_widening_mul): Declare.
19736         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
19737         gate_optimize_widening_mul): New static functions.
19738         (pass_optimize_widening_mul): New.
19739         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
19740         <case MULT_EXPR>: Remove support for widening multiplies.
19741         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
19742         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
19743         simplify_gen_unary rather than directly building extensions.
19744         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
19745         WIDEN_MULT_EXPR.
19746         * expmed.c (expand_widening_mult): New function.
19747         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
19748
19749 2010-04-21  Jan Hubicka  <jh@suse.cz>
19750
19751         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
19752         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
19753         * lto-wpa-fixup.c: Remove.
19754         * Makefile.in (lto-wpa-fixup.o): Remove.
19755         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
19756         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
19757         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
19758
19759 2010-04-21  Jan Hubicka  <jh@suse.cz>
19760
19761         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
19762         add write_optimization_summary, read_optimization_summary.
19763         (ipa_write_summaries_of_cgraph_node_set): Remove.
19764         (ipa_write_optimization_summaries): Declare.
19765         (ipa_read_optimization_summaries): Declare.
19766         * ipa-cp.c (pass_ipa_cp): Update.
19767         * ipa-reference.c (pass_ipa_reference): Update.
19768         * ipa-pure-const.c (pass_ipa_pure_const): Update.
19769         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
19770         Update.
19771         * ipa-inline.c (pass_ipa_inline): Update.
19772         * ipa.c (pass_ipa_whole_program): Update.
19773         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
19774         * passes.c (ipa_write_summaries_1): Do not test wpa.
19775         (ipa_write_optimization_summaries_1): New.
19776         (ipa_write_optimization_summaries): New.
19777         (ipa_read_summaries): Do not test ltrans.
19778         (ipa_read_optimization_summaries_1): New.
19779         (ipa_read_optimization_summaries): New.
19780
19781 2010-04-21  Jan Hubicka  <jh@suse.cz>
19782
19783         * lto-cgraph.c (lto_output_node): Do not output comdat groups
19784         for boundary nodes.
19785         (output_cgraph): Do not arrange comdat groups for boundary nodes.
19786
19787 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19788
19789         PR debug/40040
19790         * dwarf2out.c (add_name_and_src_coords_attributes): Add
19791         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
19792
19793 2010-04-21  Jan Hubicka  <jh@suse.cz>
19794
19795         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
19796
19797 2010-04-21  Jan Hubicka  <jh@suse.cz>
19798
19799         * varpool.c (decide_is_variable_needed): Variable is always needed
19800         during ltrans.
19801
19802 2010-04-21  Jan Hubicka  <jh@suse.cz>
19803
19804         * opts.c (decode_options): Enable pure-const pass for whopr.
19805
19806 2010-04-21  Jan Hubicka  <jh@suse.cz>
19807
19808         * cgraph.c (dump_cgraph_node): Dump also assembler name.
19809         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
19810         at WPA dumping.
19811         (cgraph_decide_inlining): Do not expect callee to be removed in all
19812         cases.
19813
19814 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
19815
19816         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
19817
19818 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
19819
19820         * config/i386/i386.md (x86_shrd): Add athlon_decode and
19821         amdfam10_decode attributes.
19822
19823 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19824
19825         PR middle-end/43570
19826         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
19827         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
19828         (lower_copyprivate_clauses): Use private var in outer
19829         context instead of original var.  Make sure the types
19830         are correct for VLAs.
19831
19832 2010-04-21  Richard Guenther  <rguenther@suse.de>
19833
19834         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
19835         to non-pointer objects.
19836
19837 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19838
19839         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
19840         last chain entry if it starts with the still current label.
19841         (add_location_or_const_value_attribute): Check that
19842         loc_list->first->next is NULL instead of comparing ->first with ->last.
19843         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
19844         to add_var_loc_to_decl.
19845
19846         * dwarf2out.c (output_call_frame_info): For dw_cie_version
19847         >= 4 add also address size and segment size fields into CIE header.
19848
19849         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
19850         long as address size is the same as sizeof (void *) and
19851         segment size is 0.
19852         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
19853         address size or segment size is unexpected, return DW_EH_PE_omit.
19854         (classify_object_over_fdes): If get_cie_encoding returned
19855         DW_EH_PE_omit, return -1.
19856         (init_object): If classify_object_over_fdes returned -1,
19857         pretend there were no FDEs at all.
19858
19859 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
19860
19861         * config/i386/i386.md (bswap<mode>2): Macroize expander from
19862         bswap{si,di}2 using SWI48 mode iterator.
19863         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
19864         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
19865         set modrm attribute of bswap insn to 0 and remove length attribute.
19866         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
19867         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
19868         set mode attribute to <MODE> and remove length attribute.
19869
19870 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
19871
19872         PR rtl-optimization/43520
19873         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
19874         zero available registers.
19875
19876 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19877
19878         * builtins.c (fold_builtin_cproj): Fold more cases.
19879
19880 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19881
19882         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
19883         (fold_builtin_1): Fold builtin cproj.
19884         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
19885         Use ATTR_CONST_NOTHROW_LIST.
19886
19887 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
19888
19889         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
19890         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
19891         ffsi2_no_cmove for !TARGET_CMOVE.
19892         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
19893         (ffssi2): Remove expander.
19894         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
19895         mode iterator.
19896         (ctz<mode>2): Ditto from ctz{si,di}2.
19897         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
19898         mode iterator.
19899         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
19900         mode iterator.
19901
19902 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
19903
19904         * dwarf2out.c (AT_linkage_name): Define.
19905         (clone_as_declaration): Handle DW_AT_linkage_name.
19906         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
19907         of DW_AT_MIPS_linkage_name.
19908         (move_linkage_attr): Likewise.
19909         (dwarf2out_finish): Likewise.
19910
19911 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
19912
19913         PR middle-end/41952
19914         * fold-const.c (fold_comparison): New folding rule.
19915
19916 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
19917
19918         * double-int.h (double_int_setbit): Declare.
19919         * double-int.c (double_int_setbit): New function.
19920         * rtl.h (immed_double_int_const): Declare.
19921         * emit-rtl.c (immed_double_int_const): New function.
19922         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
19923         and immed_double_int_const functions.
19924         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
19925         expand_copysign_bit): (Ditto.).
19926         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
19927         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
19928         * dojump.c (prefer_and_bit_test): (Ditto.).
19929         * expr.c (convert_modes, reduce_to_bit_field_precision,
19930         const_vector_from_tree): (Ditto.).
19931         * expmed.c (mask_rtx, lshift_value): (Ditto.).
19932
19933 2010-04-20  Jan Hubicka  <jh@suse.cz>
19934
19935         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
19936         (dump_cgraph_node): Dump new flags.
19937         * cgraph.h (struct cgraph_node): Add flags
19938         reachable_from_other_partition and in_other_partition.
19939         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
19940         other partition can not be removed.
19941         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
19942         the other partition must be output; silence sanity checking on
19943         leaking functions bodies from other paritition.
19944         * lto-cgraph.c (reachable_from_other_partition_p): New function.
19945         (lto_output_node): Output new flags; do not sanity check that inline
19946         clones are output; drop lto_forced_extern_inline_p code; do not mock
19947         visibility flags at partition boundaries.
19948         (add_node_to): New function.
19949         (output_cgraph): Use it to sort functions so masters appear before
19950         clones.
19951         (input_overwrite_node): Input new flags.
19952         * passes.c (ipa_write_summaries): Do not call
19953         lto_new_extern_inline_states.
19954         * lto-section-out.c (forced_extern_inline,
19955         lto_new_extern_inline_states lto_delete_extern_inline_states,
19956         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
19957         * lto-streamer.h (lto_new_extern_inline_states,
19958         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
19959         lto_forced_extern_inline_p): Kill.
19960
19961 2010-04-20  Richard Guenther  <rguenther@suse.de>
19962
19963         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
19964         from vars that can have pointers.
19965         (process_constraint): Dump useless constraints.
19966
19967 2010-04-20  Richard Guenther  <rguenther@suse.de>
19968
19969         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
19970         (dump_sa_points_to_info): Remove asserts.
19971         (init_base_vars): nothing_id isn't an escape point nor does it
19972         have pointers.
19973
19974 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
19975
19976         * tree.h (TYPE_REF_IS_RVALUE): Define.
19977         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
19978         should_move_die_to_comdat, prune_unused_types_walk): Handle
19979         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
19980         (modified_type_die, gen_reference_type_die): Emit
19981         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
19982         if TYPE_REF_IS_RVALUE and -gdwarf-4.
19983
19984 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19985
19986         PR target/43635
19987         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
19988         calls for -fpic -m31 if they have been sibcall optimized.
19989
19990 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
19991
19992         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
19993         ar.lc fixed and call-used.
19994
19995         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
19996
19997 2010-04-19  Jan Hubicka  <jh@suse.cz>
19998
19999         * opts.c (decode_options): Disable whpr incompatible passes.
20000         * lto/lto.c (lto_1_to_1_map): Skip clones.
20001         (read_cgraph_and_symbols): Do not mark everything as needed.
20002         (do_whole_program_analysis): Do map only after optimizing;
20003         set proper cgraph_state; use passmanager.
20004
20005 2010-04-19  DJ Delorie  <dj@redhat.com>
20006
20007         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
20008         POINTER_PLUS_EXPR and fix them.
20009
20010 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
20011
20012         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
20013         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
20014         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
20015         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
20016         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
20017         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
20018         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
20019         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
20020         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
20021         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
20022         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
20023
20024 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20025
20026         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
20027         (check_cond_move_block): Likewise.
20028         (cond_move_process_if_block): Likewise.
20029         (noce_find_if_block): Improve formatting.
20030         (find_if_header): Pass 0 to memset and tweak conditions.
20031         (cond_exec_find_if_block): Fix long lines and tweak conditions.
20032
20033 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20034
20035         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
20036         for -gdwarf-4.
20037
20038         PR middle-end/43337
20039         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
20040         with non-local decl doesn't need chain.
20041
20042 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
20043
20044         * ira-color.c (allocno_reload_assign): Avoid accumulating
20045         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
20046
20047 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20048
20049         * gimple.h (create_tmp_reg): Declare.
20050         * gimplify.c (create_tmp_reg): New function.
20051         (gimplify_return_expr): Use create_tmp_reg.
20052         (gimplify_omp_atomic): Likewise.
20053         (gimple_regimplify_operands): Likewise.
20054         * tree-dfa.c (make_rename_temp): Likewise.
20055         * tree-predcom.c (predcom_tmp_var): Likewise.
20056         (reassociate_to_the_same_stmt): Likewise.
20057         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
20058         (get_replaced_param_substitute): Likewise.
20059         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20060         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
20061         * tree-ssa-pre.c (get_representative_for): Likewise.
20062         (create_expression_by_pieces): Likewise.
20063         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
20064         (create_tailcall_accumulator): Likewise.
20065
20066 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20067
20068         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
20069         new_stmt.
20070         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
20071
20072 2010-04-19  Richard Guenther  <rguenther@suse.de>
20073
20074         PR tree-optimization/43796
20075         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
20076         from SCEV in the lattice.
20077         (vrp_visit_phi_node): Dump change.
20078
20079 2010-04-19  Richard Guenther  <rguenther@suse.de>
20080
20081         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
20082         * configure: Re-generated.
20083
20084 2010-04-19  Richard Guenther  <rguenther@suse.de>
20085
20086         PR tree-optimization/43783
20087         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
20088         constant ARRAY_REF operands two and three if possible.
20089
20090 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
20091
20092         PR target/43766
20093         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
20094
20095 2010-04-19  Jie Zhang  <jie@codesourcery.com>
20096
20097         PR target/43662
20098         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
20099
20100 2010-04-19  Ira Rosen  <irar@il.ibm.com>
20101
20102         PR tree-optimization/37027
20103         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
20104         and macro to access it.
20105         (vectorizable_reduction): Add argument.
20106         (vect_get_slp_defs): Likewise.
20107         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
20108         statements for possible use in SLP.
20109         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
20110         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
20111         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
20112         add new argument.
20113         (vectorizable_reduction): Likewise.
20114         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
20115         vect_get_slp_defs.
20116         (vectorizable_type_demotion, vectorizable_type_promotion,
20117         vectorizable_store): Likewise.
20118         (vect_analyze_stmt): Update call to vectorizable_reduction.
20119         (vect_transform_stmt): Likewise.
20120         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
20121         (vect_build_slp_tree): Fix indentation. Check that there are no loads
20122         from different interleaving chains in same node.
20123         (vect_slp_rearrange_stmts): New function.
20124         (vect_supported_load_permutation_p): Allow load permutations for
20125         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
20126         inside SLP nodes if necessary.
20127         (vect_analyze_slp_instance): Handle reductions.
20128         (vect_analyze_slp): Try to build SLP instances originating from groups
20129         of reductions.
20130         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
20131         (vect_get_constant_vectors): Create initial vectors for reductions
20132         according to reduction code. Add new argument.
20133         (vect_get_slp_defs): Add new argument, pass it to
20134         vect_get_constant_vectors.
20135         (vect_schedule_slp_instance): Remove SLP tree root statements.
20136
20137 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20138
20139         * tree.h (ENUM_IS_SCOPED): Define.
20140         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
20141         for ENUM_IS_SCOPED enums.
20142
20143 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20144
20145         * fold-const.c (fold_comparison): Use ssizetype.
20146         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
20147         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
20148         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
20149         * tree-object-size.c (compute_object_sizes): Use size_type_node.
20150
20151         * tree.h (initialize_sizetypes): Remove parameter.
20152         (build_common_tree_nodes): Remove second parameter.
20153         * stor-layout.c (initialize_sizetypes): Remove parameter.
20154         Always create an unsigned type.
20155         (set_sizetype): Assert that the passed type is unsigned and simplify.
20156         * tree.c (build_common_tree_nodes): Remove second parameter.
20157         Adjust call to initialize_sizetypes.
20158         * c-decl.c (c_init_decl_processing): Remove second argument in call to
20159         build_common_tree_nodes.
20160
20161 2010-04-18  Matthias Klose  <doko@ubuntu.com>
20162
20163         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
20164
20165 2010-04-18  Ira Rosen  <irar@il.ibm.com>
20166
20167         PR tree-optimization/43771
20168         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
20169         load permutation doesn't have gaps.
20170
20171 2010-04-18  Jan Hubicka  <jh@suse.cz>
20172
20173         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
20174         (sse_prologue_save_insn expander): Use new pattern.
20175         (sse_prologue_save_insn1): New pattern and splitter.
20176         (sse_prologue_save_insn): Update to deal also with 64bit aligned
20177         blocks.
20178         * i386.c (setup_incoming_varargs_64): Do not compute jump
20179         destination here.
20180         (ix86_gimplify_va_arg): Update alignment needed.
20181         (ix86_local_alignment): Do not align all local arrays to 128bit.
20182
20183 2010-04-17  Jan Hubicka  <jh@suse.cz>
20184
20185         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
20186
20187 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20188
20189         * arm.md (negdi2): Remove redundant code to force values into a
20190         register.
20191
20192 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20193
20194         * arm/bpabi.S: Add EABI alignment attributes to objects.
20195         * arm/bpabi-v6m.S: Likewise.
20196         * arm/crti.asm: Likewise.
20197         * arm/crtn.asm: Likewise.
20198         * arm/lib1funcs.asm: Likewise.
20199         * arm/libunwind.S: Likewise.
20200
20201 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20202
20203         * arm-protos.h (tune_params): New structure.
20204         * arm.c (current_tune): New variable.
20205         (arm_constant_limit): Delete.
20206         (struct processors): Add pointer to the tune parameters.
20207         (arm_slowmul_tune): New tuning option.
20208         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
20209         (all_cores): Adjust to pick up the tuning model.
20210         (arm_constant_limit): New function.
20211         (arm_override_options): Select the appropriate tuning model.  Delete
20212         initialization of arm_const_limit.
20213         (arm_split_constant): Use the new constant-limit model.
20214         (arm_rtx_costs): Pick up the current tuning model.
20215         * arm.md (is_strongarm, is_xscale): Delete.
20216         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
20217         for Xscale variant architectures.
20218         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
20219
20220 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20221
20222         * config/arm/arm.c (arm_gen_constant): Remove unused variable
20223         can_shift.
20224         (arm_rtx_costs_1): Remove unused variable extra_cost.
20225         (arm_unwind_emit_set): Use variable offset.
20226         (thumb1_output_casesi): Remove unused variable flags.
20227
20228 2010-04-16  Jeff Law  <law@redhat.com>
20229
20230         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
20231         needing assignment rather than doing a two-phase assignment.  Remove
20232         unused variable 'm'.
20233
20234 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20235
20236         PR bootstrap/43767
20237         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
20238
20239 2010-04-16  Doug Kwan  <dougkwan@google.com>
20240
20241         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
20242         (next_operand_entry_id): New static variable.
20243         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
20244         (add_to_ops_vec): Assigned unique ID to operand entry.
20245         (struct oecount_s): New field ID.
20246         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
20247         (undistribute_ops_list): Assign unique IDs to oecounts.
20248         (init_reassoc): reset next_operand_entry_id.
20249
20250 2010-04-16  Doug Kwan  <dougkwan@google.com>
20251
20252         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
20253         missing left parenthesis.
20254
20255 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
20256
20257         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
20258         *btdi_rex64 using SWI48 mode iterator.
20259         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
20260         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
20261         *jcc_btdi_mask_rex64.
20262
20263 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
20264
20265         * double-int.h (tree_to_double_int): Convert to macro.
20266         * double-int.c (tree_to_double_int): Remove.
20267
20268 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20269
20270         PR debug/43762
20271         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
20272         with want_address 2 and in case a single element list might be
20273         possible, call it again with want_address 0.
20274
20275 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20276
20277         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
20278         case 'W' print operands for HI mode.
20279         * config/h8300/h8300.h (Y0, Y2) : New constraints.
20280         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
20281         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
20282         * config/h8300/predicate.md (bit_register_indirect_operand): New.
20283
20284         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
20285
20286         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
20287         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
20288         #xx:3 and #xx:4 mode.
20289
20290         * config/h8300/h8300.md (inverted load with HImode dest): Add
20291         support for H8300SX.
20292
20293         * config/h8300/predicate.md (bit_operand): Allow immediate values that
20294         satisfy 'U' constraint.
20295
20296 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20297
20298         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
20299         * configure: Regenerate.
20300         * config.in: Regenerate.
20301         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
20302         works.
20303
20304 2010-04-16  Richard Guenther  <rguenther@suse.de>
20305
20306         * tree.h (struct tree_decl_minimal): Move pt_uid ...
20307         (struct tree_decl_common): ... here.
20308         (DECL_PT_UID): Adjust.
20309         (SET_DECL_PT_UID): Likewise.
20310         (DECL_PT_UID_SET_P): Likewise.
20311
20312 2010-04-16  Richard Guenther  <rguenther@suse.de>
20313
20314         PR tree-optimization/43572
20315         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
20316         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
20317         * tree-flow.h (is_call_clobbered): Remove.
20318         * tree-flow-inline.h (is_call_clobbered): Likewise.
20319         * tree-dfa.c (dump_variable): Do not dump call clobber state.
20320         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
20321         (execute_return_slot_opt): Adjust.
20322         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
20323         check for call clobbered vars here.
20324         (find_tail_calls): Move tailcall verification to the
20325         proper place.
20326
20327 2010-04-16  Diego Novillo  <dnovillo@google.com>
20328
20329         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
20330
20331 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20332
20333         PR target/40603
20334         * config/arm/arm.md (cbranchqi4): New pattern.
20335         * config/arm/predicates.md (const0_operand,
20336         cbranchqi4_comparison_operator): New predicates.
20337
20338 2010-04-16  Richard Guenther  <rguenther@suse.de>
20339
20340         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
20341         (dump_gimple_stmt): Likewise.
20342
20343 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20344
20345         * recog.h (struct recog_data): New field is_operator.
20346         (struct insn_operand_data): New field is_operator.
20347         * recog.c (extract_insn): Set recog_data.is_operator.
20348         * genoutput.c (output_operand_data): Emit code to set the
20349         is_operator field.
20350         * reload.c (find_reloads): Use it rather than testing for an
20351         empty constraint string.
20352
20353         PR target/41514
20354         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
20355         If the previous insn is a cbranchsi4_insn with the same arguments,
20356         omit the compare instruction.
20357
20358         * config/arm/arm.md (addsi3_cbranch): If destination is a high
20359         register, inputs must be low registers and we need a low register
20360         scratch.  Handle alternative 2 like alternative 3.
20361
20362 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20363
20364         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
20365         don't call get_addr on both.  If one expression is a VALUE and
20366         the other a REG, check VALUE's locs if the REG isn't among them.
20367
20368 2010-04-16  Christian Bruel  <christian.bruel@st.com>
20369
20370         * config/sh/sh.h (sh_frame_pointer_required): New function.
20371         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
20372         (flag_omit_frame_pointer) Set.
20373         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
20374         (rounded_frame_size): Adjust size with outgoing_args_size.
20375         (sh_set_return_address): Must return from stack pointer.
20376         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
20377         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
20378         (ACCUMULATE_OUTGOING_ARGS): Define.
20379         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
20380         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
20381
20382 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20383
20384         PR target/43471
20385         * config/sh/sh.c (sh_legitimize_reload_address): Use
20386         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
20387         Remove a unneeded check for offset_base.
20388
20389 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20390
20391         * configure: Regenerated.
20392
20393 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20394
20395         * config/s390/s390.c (s390_call_save_register_used): Switch back
20396         to HARD_REGNO_NREGS.
20397
20398 2010-04-15  Richard Guenther  <rguenther@suse.de>
20399
20400         * alias.c (alias_set_subset_of): Handle alias-set zero
20401         child properly.
20402
20403 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
20404             Julian Brown  <julian@codesourcery.com>
20405
20406         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
20407         alternatives according to use of high and low regs.
20408         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
20409         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
20410         optimizing for size on Thumb-2.
20411
20412 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
20413
20414         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
20415
20416 2010-04-15  Richard Guenther  <rguenther@suse.de>
20417
20418         * tree-ssa-structalias.c (struct variable_info): Add
20419         is_fn_info flag.
20420         (new_var_info): Initialize it.
20421         (dump_constraints): Support printing last added constraints.
20422         (debug_constraints): Adjust.
20423         (dump_constraint_graph): Likewise.
20424         (make_heapvar_for): Check for NULL cfun.
20425         (get_function_part_constraint): New function.
20426         (get_fi_for_callee): Likewise.
20427         (find_func_aliases): Properly implement IPA PTA constraints.
20428         (process_ipa_clobber): New function.
20429         (find_func_clobbers): Likewise.
20430         (insert_into_field_list_sorted): Remove.
20431         (create_function_info_for): Properly allocate vars for IPA mode.
20432         Do not use insert_into_field_list_sorted.
20433         (create_variable_info_for): Properly generate constraints for
20434         global vars in IPA mode.
20435         (dump_solution_for_var): Always dump the solution.
20436         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
20437         (find_what_var_points_to): Adjust.
20438         (pt_solution_set): Change.
20439         (pt_solution_ior_into): New function.
20440         (pt_solution_empty_p): Export.
20441         (pt_solution_includes_global): Adjust.
20442         (pt_solution_includes_1): Likewise.
20443         (pt_solutions_intersect_1): Likewise.
20444         (dump_sa_points_to_info): Check some invariants.
20445         (solve_constraints): Move constraint dumping ...
20446         (compute_points_to_sets): ... here.
20447         (ipa_pta_execute): ... and here.
20448         (compute_may_aliases): Do not re-compute points-to info
20449         locally if IPA info is available.
20450         (ipa_escaped_pt): New global var.
20451         (ipa_pta_execute): Properly implement IPA PTA.
20452         * tree-into-ssa.c (dump_decl_set): Support dumping
20453         decls not in referenced-vars.
20454         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
20455         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
20456         (dump_points_to_solution): Likewise.
20457         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
20458         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
20459         (remap_gimple_stmt): Reset call clobber/use information if necessary.
20460         (copy_decl_to_var): Copy DECL_PT_UID.
20461         (copy_result_decl_to_var): Likewise.
20462         * tree.c (make_node_stat): Initialize DECL_PT_UID.
20463         (copy_node_stat): Copy it.
20464         * tree.h (DECL_PT_UID): New macro.
20465         (SET_DECL_PT_UID): Likewise.
20466         (DECL_PT_UID_SET_P): Likewise.
20467         (struct tree_decl_minimal): Add pt_uid member.
20468         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
20469         (pt_solution_empty_p): Declare.
20470         (pt_solution_set): Adjust.
20471         (ipa_escaped_pt): Declare.
20472         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
20473         * gimple-pretty-print.c (pp_points_to_solution): New function.
20474         (dump_gimple_call): Dump call clobber/use information.
20475         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
20476         * tree-pass.h (TDF_ALIAS): New dump option.
20477         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
20478         * doc/invoke.texi (-fipa-pta): Update documentation.
20479
20480 2010-04-15  Richard Guenther  <rguenther@suse.de>
20481
20482         * Makefile.in (OBJS-common): Add gimple-fold.o.
20483         (gimple-fold.o): New rule.
20484         * tree.h (maybe_fold_offset_to_reference,
20485         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
20486         prototypes ...
20487         * gimple.h: ... here.
20488         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
20489         may_propagate_address_into_dereference): Move prototypes ...
20490         * gimple.h: ... here.
20491         * tree-ssa-ccp.c (get_symbol_constant_value,
20492         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
20493         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
20494         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
20495         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
20496         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
20497         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
20498         gimplify_and_update_call_from_tree): Move ...
20499         * gimple-fold.c: ... here.  New file.
20500         (ccp_fold_builtin): Rename to ...
20501         (gimple_fold_builtin): ... this.
20502         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
20503
20504 2010-04-15  Richard Guenther  <rguenther@suse.de>
20505
20506         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
20507         fit_double_type, force_fit_type_double, add_double_with_sign,
20508         neg_double, mul_double_with_sign, lshift_double, rshift_double,
20509         lrotate_double, rrotate_double, div_and_round_double): Move ...
20510         * double-int.c: ... here.
20511         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
20512         add_double, neg_double, mul_double_with_sign, mul_double,
20513         lshift_double, rshift_double, lrotate_double, rrotate_double,
20514         div_and_round_double): Move prototypes ...
20515         * double-int.h: ... here.
20516
20517 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
20518
20519         PR target/43742
20520         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
20521         matching constraints to ensure inputs match the output.
20522
20523 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20524
20525         PR target/43742
20526         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
20527         in an input-only operand.
20528
20529 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
20530
20531         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
20532         (double_int_not, double_int_lshift, double_int_rshift): Declare.
20533         (double_int_negative_p): Convert to static inline function.
20534         * double-int.c (double_int_lshift, double_int_lshift): New functions.
20535         (double_int_negative_p): Remove.
20536         * tree.h (lshift_double, rshift_double):
20537         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
20538         * fold-const.c (fold_convert_const_int_from_real,
20539         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
20540         (lshift_double): Change type of arith argument to bool.
20541         (rshift_double): Change type of arith argument to bool. Correct
20542         comment.
20543         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20544
20545 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
20546
20547         PR target/21803
20548         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
20549         at the start and end of the then/else blocks, and omit them from the
20550         conversion.
20551         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
20552         argument; all callers changed.  Pass zero to old_insns_match_p instead.
20553         (flow_find_head_matching_sequence): New function.
20554         (old_insns_match_p): Check REG_EH_REGION notes for calls.
20555         * basic-block.h (flow_find_cross_jump,
20556         flow_find_head_matching_sequence): Declare functions.
20557
20558 2010-04-14  Jason Merrill  <jason@redhat.com>
20559
20560         PR c++/36625
20561         * c-common.c (attribute_takes_identifier_p): New fn.
20562         * c-common.h: Declare it.
20563
20564 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20565
20566         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
20567         splitter condition.
20568         (*udivmod<mode>4): Ditto.
20569
20570 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20571
20572         * config/i386/i386.md (maxmin_int): Rename code attribute from
20573         maxminiprefix and update all users.
20574         (maxmin_float): Ditto from maxminfprefix.
20575         (logic): Ditto from logicprefix.
20576         (absneg_mnemonic): Ditto from absnegprefix.
20577         * config/i386/mmx.md: Update all users of maxminiprefix,
20578         maxminfprefix and logicprefix for rename.
20579         * config/i386/sse.md: Ditto.
20580         * config/i386/sync.md (sync_<code><mode>): Update for
20581         logicprefix rename.
20582
20583 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20584
20585         PR 42966
20586         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
20587         warnings converted to errors.
20588
20589 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20590
20591         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
20592         used insn_type variable.
20593         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
20594         to avoid set-but-not-used warning.
20595
20596 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20597
20598         * df-core.c (df_ref_debug): Change format string placeholder
20599         from 0x%x to %#x.
20600         * dwarf2asm.c (dw2_asm_output_data_raw,
20601         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
20602         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
20603         * dwarf2out.c (output_cfi, output_cfi_directive,
20604         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
20605         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
20606         Ditto.
20607         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
20608         * print-rtl.c (print_rtx): Ditto.
20609
20610 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20611
20612         PR middle-end/42694
20613         * builtins.c (expand_builtin_pow_root): New function to expand pow
20614         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
20615         series of sqrt and cbrt calls under -ffast-math.
20616         (expand_builtin_pow): Call it.
20617
20618 2010-04-14  Michael Matz  <matz@suse.de>
20619
20620         PR tree-optimization/42963
20621         * tree-cfg.c (touched_switch_bbs): New static variable.
20622         (group_case_labels_stmt): New function broken out from ...
20623         (group_case_labels): ... here, use the above.
20624         (start_recording_case_labels): Allocate touched_switch_bbs.
20625         (end_recording_case_labels): Deallocate it, call
20626         group_case_labels_stmt.
20627         (gimple_redirect_edge_and_branch): Remember index of affected BB.
20628
20629 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20630
20631         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
20632         from insn template.
20633
20634 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20635
20636         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
20637
20638 2010-04-13  Jan Hubicka  <jh@suse.cz>
20639
20640         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
20641         of optimized out static functions.
20642         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
20643         cost computation.  Also sanity check for overflows.
20644         (update_caller_keys): Update cgraph_edge_badness call; properly
20645         update fibheap and sanity check that it is up to date.
20646         (add_new_edges_to_heap): Update cgraph_edge_badness.
20647         (cgraph_decide_inlining_of_small_function): Likewise;
20648         add sanity checking that badness in heap is up to date;
20649         improve dumping of reason; Update badness of calls to the
20650         offline copy of function currently inlined; dump badness
20651         of functions not inlined because of unit growth limits.
20652
20653 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
20654
20655         PR middle-end/32628
20656         * c-common.c (pointer_int_sum): Disregard overflow that occured only
20657         because of sign-extension change when converting to sizetype here...
20658         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
20659
20660         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
20661         the folding to constants.  Remove redundant final conversion.
20662         (fold_binary) <associate>: Do not associate if the re-association of
20663         constants alone overflows.
20664         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
20665         to the end of the list.
20666         (multiple_of_p) <COND_EXPR>: New case.
20667
20668 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20669
20670         * opt-functions.awk (opt_sanitized_name): New.
20671         (opt_enum): New.
20672         * optc-gen.awk: Use it
20673         * opth-gen.awk: Use it.
20674
20675 2010-04-13  Martin Jambor  <mjambor@suse.cz>
20676
20677         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
20678         (sra_modify_assign): Delete stmts loading dead data even if racc has no
20679         children.  Call replace_uses_with_default_def_ssa_name to handle
20680         SSA_NAES on lhs.
20681
20682 2010-04-13  Michael Matz  <matz@suse.de>
20683
20684         PR middle-end/43730
20685         * builtins.c (expand_builtin_interclass_mathfn): Also create
20686         a register if the predicate doesn't match.
20687
20688 2010-04-13  Diego Novillo  <dnovillo@google.com>
20689
20690         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
20691         * c-pch.c: Include timevar.h.
20692         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
20693         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
20694         * ggc-common.c: Include timevar.h.
20695         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
20696         * timevar.def (TV_PCH_SAVE): Define.
20697         (TV_PCH_CPP_SAVE): Define.
20698         (TV_PCH_PTR_REALLOC): Define.
20699         (TV_PCH_PTR_SORT): Define.
20700         (TV_PCH_RESTORE): Define.
20701         (TV_PCH_CPP_RESTORE): Define.
20702
20703 2010-04-13  Michael Matz  <matz@suse.de>
20704
20705         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
20706         into MINUS_EXPRs.
20707         (can_reassociate_p): New function.
20708         (break_up_subtract_bb, reassociate_bb): Use it.
20709
20710 2010-04-13  Richard Guenther  <rguenther@suse.de>
20711
20712         PR bootstrap/43737
20713         * builtins.c (c_readstr): Fix assert.
20714
20715 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
20716
20717         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
20718         when generating cltd insn.
20719
20720         (*ashl<mode>3_1): Remove special handling for register operand 2.
20721         (*ashlsi3_1_zext): Ditto.
20722         (*ashlhi3_1): Ditto.
20723         (*ashlhi3_1_lea): Ditto.
20724         (*ashlqi3_1): Ditto.
20725         (*ashlqi3_1_lea): Ditto.
20726         (*<shiftrt_insn><mode>3_1): Ditto.
20727         (*<shiftrt_insn>si3_1_zext): Ditto.
20728         (*<shiftrt_insn>qi3_1_slp): Ditto.
20729         (*<rotate_insn><mode>3_1): Ditto.
20730         (*<rotate_insn>si3_1_zext): Ditto.
20731         (*<rotate_insn>qi3_1_slp): Ditto.
20732
20733 2010-04-13  Richard Guenther  <rguenther@suse.de>
20734
20735         * tree-ssa-structalias.c (callused_id): Remove.
20736         (call_stmt_vars): New.
20737         (get_call_vi): Likewise.
20738         (lookup_call_use_vi): Likewise.
20739         (lookup_call_clobber_vi): Likewise.
20740         (get_call_use_vi): Likewise.
20741         (get_call_clobber_vi): Likewise.
20742         (make_transitive_closure_constraints): Likewise.
20743         (handle_const_call): Adjust to do per-call call-used handling.
20744         (handle_pure_call): Likewise.
20745         (find_what_var_points_to): Remove general callused handling.
20746         (init_base_vars): Likewise.
20747         (init_alias_vars): Initialize call_stmt_vars.
20748         (compute_points_to_sets): Process call-used and call-clobbered
20749         vars for call statements.
20750         (delete_points_to_sets): Free call_stmt_vars.
20751
20752 2010-04-13  Richard Guenther  <rguenther@suse.de>
20753
20754         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20755         Only add RW dependence for dependence distance zero.
20756         Adjust maximal vectorization factor according to dependences.
20757         Move alignment handling ...
20758         (vect_find_same_alignment_drs): ... here.  New function.
20759         (vect_analyze_data_ref_dependences): Adjust.
20760         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
20761         (vect_analyze_data_refs): Adjust minimal vectorization factor
20762         according to data references.
20763         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
20764         dependences before determining the vectorization factor.
20765         Analyze alignment after determining the vectorization factor.
20766         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
20767         dependences before alignment.
20768         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
20769         Adjust prototype.
20770         (vect_analyze_data_refs): Likewise.
20771         (MAX_VECTORIZATION_FACTOR): New define.
20772
20773 2010-04-13  Duncan Sands  <baldrick@free.fr>
20774
20775         * except.h (lang_eh_type_covers): Remove.
20776         * except.c (lang_eh_type_covers): Likewise.
20777
20778 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20779             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20780
20781         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
20782         * config/s390/s390.c: Replace UNTIS_PER_WORD with
20783         UNITS_PER_LONG where it is ABI relevant.
20784         (s390_return_addr_rtx): Likewise.
20785         (s390_back_chain_rtx): Likewise.
20786         (s390_frame_area): Likewise.
20787         (s390_frame_info): Likewise.
20788         (s390_initial_elimination_offset): Likewise.
20789         (save_gprs): Likewise.
20790         (s390_emit_prologue): Likewise.
20791         (s390_emit_epilogue): Likewise.
20792         (s390_function_arg_advance): Likewise.
20793         (s390_function_arg): Likewise.
20794         (s390_va_start): Likewise.
20795         (s390_gimplify_va_arg): Likewise.
20796         (s390_function_profiler): Likewise.
20797         (s390_optimize_prologue): Likewise.
20798         (s390_rtx_costs): Likewise.
20799         (s390_secondary_reload): Likewise.
20800         (s390_promote_function_mode): Likewise.
20801         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
20802         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
20803         registers available.
20804         (s390_unwind_word_mode): New function.
20805         (s390_function_value): Split 64 bit values into register pair if
20806         used as return value.
20807         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
20808         function call parameters.  Handle parallels.
20809         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
20810         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
20811         (DWARF_CIE_DATA_ALIGNMENT): New macro.
20812         (s390_expand_setmem): Remove unused variable src_addr.
20813         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
20814         deal with 64 bit registers.
20815         * config/s390/s390.h: Define __zarch__ predefined macro.
20816         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
20817         (UNITS_PER_LONG): New macro.
20818         * libjava/include/s390-signal.h: Define extended ucontext
20819         structure containing the upper halfs of the 64 bit registers.
20820
20821 2010-04-13  Simon Baldwin  <simonb@google.com>
20822
20823         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
20824
20825 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
20826
20827         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
20828         rvalue on the RHS if the LHS is of a non-renamable type.
20829         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
20830
20831 2010-04-13  Matthias Klose  <doko@ubuntu.com>
20832
20833         * gcc.c (cc1_options): Handle -iplugindir before processing
20834         the cc1 spec. Only add -iplugindir once.
20835         (cpp_unique_options): Add -iplugindir option if -fplugin* options
20836         found.
20837         * common.opt (iplugindir): Remove `Separate' property, initialize.
20838         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
20839         option.
20840         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
20841         (distclean): Remove plugin dir.
20842         * doc/invoke.texi: Document -iplugindir.
20843
20844 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
20845
20846         * doc/plugins.texi (Loading Plugins): Document short
20847         -fplugin=foo option.
20848         (Plugin API): Mention default_plugin_dir_name function.
20849
20850         * gcc.c (find_file_spec_function): Add new declaration.
20851         (static_spec_func): Use it for "find-file".
20852         (find_file_spec_function): Add new function.
20853         (cc1_options): Add -iplugindir option if -fplugin* options found.
20854
20855         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
20856
20857         * plugin.c (add_new_plugin): Updated comment, and handle short
20858         plugin name.
20859         (default_plugin_dir_name): Added new function.
20860
20861         * common.opt (iplugindir): New option to set the plugin directory.
20862
20863 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
20864
20865         * config/i386/i386.md (any_rotate): New code iterator.
20866         (rotate_insn): New code attribute.
20867         (rotate): Ditto.
20868         (SWIM124): New mode iterator.
20869         (<rotate_insn>ti3): New expander.
20870         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
20871         any_rotate code iterator.
20872         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
20873         using any_rotate code iterator and SWIM124 mode iterator.
20874         (ix86_rotlti3): New insn_and_split pattern.
20875         (ix86_rotrti3): Ditto.
20876         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
20877         ix86_rotl{di,ti}3 patterns.
20878         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
20879         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
20880         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
20881         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
20882         code iterator and SWI mode iterator.
20883         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
20884         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
20885         code iterator.
20886         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
20887         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
20888         (bswap rotatert splitter): Add splitter.
20889         (bswap splitter): Macroize splitter using any_rotate code iterator.
20890         Add insn predicate to split only for TARGET_USE_XCHGB or when
20891         optimizing function for size.
20892
20893 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20894
20895         * config/pa/pa.c (emit_move_sequence): Remove use of
20896         deleted variable flag_argument_noalias.
20897
20898 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20899
20900         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
20901         configurations.
20902         Add to unsupported targets list.
20903         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
20904         sparc*-sun-solaris2.[567]* from target lists.
20905         * configure: Regenerate.
20906         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
20907         removal.
20908         Remove Solaris 7 patch references.
20909         (Specific, sparc-sun-solaris2.7): Removed.
20910         (sparc-sun-solaris2*): Update Solaris 7 example.
20911         (sparc64-*-solaris2*): Likewise.
20912
20913 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20914
20915         * config.build (alpha*-dec-osf4*): Remove.
20916         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
20917         of obsolete configurations.
20918         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
20919         support.
20920         * config/alpha/t-osf4: Renamed to ...
20921         * config/alpha/t-osf5: ... this.
20922         * config/alpha/osf.h: Renamed to ...
20923         * config/alpha/osf5.h: ... this.
20924         Merged old osf5.h contents.
20925         Update comments.
20926         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
20927         (EXTRA_SPECS): Removed.
20928         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
20929         reflect removal of Tru64 UNIX V4.0/V5.0 support.
20930         Document that.
20931
20932 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20933
20934         * doc/contrib.texi (Contributors, Rainer Orth): Update.
20935
20936 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
20937
20938         PR/43702
20939         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
20940         __thiscall convention.
20941
20942 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20943
20944         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
20945         orig_base.
20946         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
20947
20948 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20949
20950         * function.c (assign_parms_initialize_all): Add unused attribute
20951         to fntype.
20952
20953 2010-04-12  Richard Guenther  <rguenther@suse.de>
20954
20955         * gsstruct.def (GSS_CALL): New.
20956         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
20957         * gimple.h: Include tree-ssa-alias.h.
20958         (struct gimple_statement_call): New.
20959         (union gimple_statement_struct_d): Add gimple_call member.
20960         (gimple_call_reset_alias_info): Declare.
20961         (gimple_call_use_set): New function.
20962         (gimple_call_clobber_set): Likewise.
20963         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
20964         * gimple.c (gimple_call_reset_alias_info): New function.
20965         (gimple_build_call_1): Call it.
20966         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20967         * tree-inline.c (remap_gimple_stmt): Likewise.
20968         (expand_call_inline): Remove callused handling.
20969         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
20970         * tree-dfa.c (dump_variable): Likewise.
20971         * tree-parloops.c (parallelize_loops): Likewise.
20972         * tree-ssa.c (init_tree_ssa): Likewise.
20973         (delete_tree_ssa): Likewise.
20974         * tree-flow-inline.h (is_call_used): Remove.
20975         * tree-flow.h (struct gimple_df): Remove callused member.
20976         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
20977         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
20978         (ref_maybe_used_by_call_p_1): Simplify.
20979         (call_may_clobber_ref_p_1): Likewise.
20980         * tree-ssa-structalias.c (compute_points_to_sets): Set
20981         the call stmt used and clobbered sets.
20982         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
20983         (find_tail_calls): Verify the tail call.
20984
20985 2010-04-12  Richard Guenther  <rguenther@suse.de>
20986
20987         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
20988         single-iteration always-inline inlining.
20989         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
20990         (cgraph_decide_inlining): Do not handle always-inline specially.
20991         (try_inline): Remove always-inline cycle detection special case.
20992         Do not recurse on always-inlines.
20993         (cgraph_early_inlining): Do not iterate if not optimizing.
20994         (cgraph_gate_early_inlining): remove.
20995         (pass_early_inline): Run unconditionally.
20996         (gate_cgraph_decide_inlining): New function.
20997         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
20998         not inlining or optimizing.
20999         (cgraph_decide_inlining_of_small_functions): Also consider
21000         always-inline functions.
21001         (cgraph_default_inline_p): Return true for nodes which should
21002         disregard inline limits.
21003         (estimate_function_body_sizes): Assume zero size and time for
21004         nodes which are marked as disregarding inline limits.
21005         (cgraph_decide_recursive_inlining): Do not perform recursive
21006         inlining on always-inline nodes.
21007
21008 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
21009
21010         PR bootstrap/43699
21011         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
21012         for exprs satisfying handled_component_p.
21013
21014 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
21015
21016         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
21017         non-constant aggregate elements.
21018
21019         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
21020         is a real initialization.
21021
21022 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
21023
21024         PR c/36774
21025         * c-decl.c (start_function): Move forward check for nested function.
21026
21027 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
21028
21029         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
21030         * config/sh/sh.c: Include reload.h.
21031         (sh_legitimize_reload_address): New.
21032         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
21033         sh_legitimize_reload_address.
21034
21035 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21036
21037         * config/sh/sh.md (*movqi_pop): New insn pattern.
21038         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
21039
21040 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21041
21042         * config/i386/i386.md (any_shiftrt): New code iterator.
21043         (shiftrt_insn): New code attribute.
21044         (shiftrt): Ditto.
21045         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
21046         using any_shiftrt code iterator.
21047         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
21048         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
21049         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
21050         pattern from corresponding peephole2 patterns.
21051         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
21052         using any_shiftrt code iterator.
21053         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
21054         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
21055         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
21056         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
21057         *{ashr,lshr}<mode>3_cmp_zext.
21058         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
21059
21060 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21061
21062         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
21063         scratch register.
21064         (*lshr<mode>3_cconly): Ditto.
21065
21066 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21067
21068         * config/i386/i386.md (lshr<mode>3): Macroize expander from
21069         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21070         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21071         pattern from *lshr{di,ti}3_1 and corresponding splitters using
21072         DWI mode iterator.
21073         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21074         from corresponding peephole2 patterns.
21075         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
21076         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
21077         and *lshrdi3_1_rex64 using SWI mode iterator.
21078         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
21079         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
21080         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
21081         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
21082         and *lshrdi3_cmp_rex64 using SWI mode iterator.
21083         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
21084         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
21085         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
21086         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
21087         SWI mode iterator.
21088
21089 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
21090
21091         * config/i386/i386.md (ashr<mode>3): Macroize expander from
21092         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21093         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21094         pattern from *ashr{di,ti}3_1 and corresponding splitters using
21095         DWI mode iterator.
21096         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21097         from corresponding peephole2 patterns.
21098         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
21099         (ashrsi3_cvt): Rename from ashrsi3_31.
21100         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
21101         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
21102         and x86_64_shift_adj_3 using SWI48 mode iterator.
21103         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
21104         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
21105         and *ashrdi3_1_rex64 using SWI mode iterator.
21106         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
21107         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
21108         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
21109         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
21110         and *ashrdi3_cmp_rex64 using SWI mode iterator.
21111         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
21112         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
21113         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
21114         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
21115         SWI mode iterator.
21116         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
21117         * config/i386/i386.c (ix86_split_ashr): Update for renamed
21118         x86_shift<mode>_adj_3 expanders.
21119
21120 2010-04-10  Wei Guozhi  <carrot@google.com>
21121
21122         PR target/42601
21123         * config/arm/arm.c (arm_pic_static_addr): New function.
21124         (legitimize_pic_address): Call arm_pic_static_addr when it detects
21125         a static symbol.
21126         (arm_output_addr_const_extra): Output expression for new pattern.
21127         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
21128
21129 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
21130
21131         * ira-costs.c (record_reg_classes): Ignore alternatives that are
21132         not enabled.
21133
21134         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
21135         * web.c: Include "insn-config.h" and "recog.h".
21136         (union_match_dups): New function.
21137         (web_main): Call it.
21138         (union_defs): Don't try to recognize match_dups.
21139
21140         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
21141         if doing so would replace the entire pattern.
21142
21143 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21144
21145         PR target/43707
21146         PR target/43709
21147         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
21148         and splitter pattern.  Change splitter operand 1 predicate to
21149         nonmemory_operand.
21150
21151 2010-04-09  Martin Jambor  <mjambor@suse.cz>
21152
21153         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
21154         lattices are addresses of CONST_DECLs with the same initial value.
21155         (ipcp_print_all_lattices): Print values of CONST_DECLs.
21156         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
21157
21158 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
21159             Bernd Schmidt  <bernds@codesourcery.com>
21160
21161         * loop-invariant.c (replace_uses): New static function.
21162         (move_invariant_reg): Use it to ensure we can replace the uses.
21163
21164 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21165
21166         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
21167         function template.
21168         (picochip_override_options): Enable section anchors only above -O1.
21169         (picochip_reorg): Fixed a couple of build warnings.
21170
21171 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21172
21173         * configure.ac (plugin -rdynamic test): Log result.
21174         * configure: Regenerate.
21175         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
21176         (RDYNAMIC_SPEC): Define.
21177         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
21178
21179 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21180
21181         * configure.ac: Determine Sun ld version numbers.
21182         (comdat_group): Restrict GNU ld version checks to gld.
21183         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
21184         (enable_comdat): Support --enable-comdat.
21185         * configure: Regenerate.
21186         * doc/install.texi (Configuration): Document --enable-comdat.
21187
21188 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21189
21190         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
21191         * config/sol2-gld.h: ... here.
21192         * config.gcc (sparc*-*-solaris2*): Reflect this.
21193         (i[34567]86-*-solaris2*): Use it.
21194
21195 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
21196
21197         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
21198         setup_clocks_p.
21199         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
21200
21201 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21202
21203         PR 42965
21204         * diagnostic.c (diagnostic_initialize): Initialize
21205         some_warnings_are_errors.
21206         (diagnostic_finish): New.
21207         (diagnostic_action_after_output): Call it before exiting.
21208         (diagnostic_report_diagnostic): Do not print message here. Set
21209         some_warnings_are_errors.
21210         * diagnostic.h (diagnostic_context): Delete
21211         issue_warnings_are_errors_message. Add some_warnings_are_errors.
21212         (diagnostic_finish): Declare.
21213         * toplev.c (toplev_main): Call it before exit.
21214
21215 2010-04-09  Jason Merrill  <jason@redhat.com>
21216
21217         PR c++/42623
21218         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
21219         for incomplete type.
21220
21221         PR c++/41788
21222         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
21223         based on a warning flag.
21224
21225 2010-04-09  Richard Guenther  <rguenther@suse.de>
21226
21227         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
21228
21229 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
21230
21231         PR bootstrap/43684
21232         * varasm.c (default_assemble_visibility): Wrap vars that are
21233         set, but unused, by targets without GAS.
21234         * config/rs6000/rs6000.c (paired_emit_vector_compare):
21235         Remove set, but unused, vars.
21236         (rs6000_legitimize_tls_address): Likewise.
21237         (altivec_expand_dst_builtin): Likewise.
21238         * config/darwin.c (machopic_classify_symbol): Likewise.
21239         (machopic_indirection_name): Likewise.
21240
21241 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21242
21243         * config/i386/i386.md (DWI): New mode iterator.
21244         (S): New mode attribute.
21245         (shift_operand): Ditto.
21246         (shift_immediate_operand): Ditto.
21247         (ashl_input_operand): Ditto.
21248         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
21249         using SDWIM mode iterator.
21250         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21251         pattern from *ashl{di,ti}3_1 and corresponding splitters using
21252         DWI mode iterator.
21253         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
21254         from corresponding peephole2 patterns.
21255         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
21256         and x86_64_shift_adj_1 using SWI48 mode iterator.
21257         (x86_shift<mode>_adj_2): Ditto.
21258         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
21259         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
21260         using SWI48 mode iterator.
21261         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
21262         *ashldi3_cmp_rex64 using SWI mode iterator.
21263         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
21264         *ashldi3_cconly_rex64 using SWI mode iterator.
21265         * config/i386/i386.c (ix86_split_ashl): Update for renamed
21266         x86_shift<mode>_adj_{1,2}.
21267         (ix86_split_ashr): Ditto.
21268         (ix86_split_lshr): Ditto.
21269
21270 2010-04-09  Richard Guenther  <rguenther@suse.de>
21271
21272         * target.h (builtin_conversion): Pass in input and output types.
21273         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
21274         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
21275         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
21276         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
21277
21278         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
21279         Handle AVX modes.
21280         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
21281
21282 2010-04-09  Richard Guenther  <rguenther@suse.de>
21283
21284         PR target/43152
21285         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
21286
21287 2010-04-09  Richard Guenther  <rguenther@suse.de>
21288
21289         * tree-vectorizer.h (struct _stmt_vec_info): Document
21290         that vectype is the type of the LHS.
21291         (supportable_widening_operation, supportable_narrowing_operation):
21292         Get both input and output vector types as arguments.
21293         (vect_is_simple_use_1): Declare.
21294         (get_same_sized_vectype): Likewise.
21295         * tree-vect-loop.c (vect_determine_vectorization_factor):
21296         Set STMT_VINFO_VECTYPE to the vector type of the def.
21297         (vectorizable_reduction): Adjust.
21298         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
21299         Adjust.  Specify the output vector type.
21300         (vect_pattern_recog_1): Adjust.
21301         * tree-vect-stmts.c (get_same_sized_vectype): New function.
21302         (vectorizable_call): Adjust.
21303         (vectorizable_conversion): Likewise.
21304         (vectorizable_operation): Likewise.
21305         (vectorizable_type_demotion): Likewise.
21306         (vectorizable_type_promotion): Likewise.
21307         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
21308         the def.
21309         (vect_is_simple_use_1): New function.
21310         (supportable_widening_operation): Get both input and output
21311         vector types.
21312         (supportable_narrowing_operation): Likewise.
21313         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
21314
21315 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
21316
21317         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
21318         __thiscall and _thiscall as predefined macros.
21319         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
21320         thiscall attribute handling.
21321         (ix86_comp_type_attributes): Likewise.
21322         (ix86_function_regparm): Likewise.
21323         (ix86_return_pops_args): Likewise.
21324         (init_cumulative_args): Likewise.
21325         (find_drap_reg): Likewise.
21326         (ix86_static_chain): Likewise.
21327         (x86_this_parameter): Likewise.
21328         (x86_output_mi_thunk): Likewise.
21329         (ix86_attribute_table): Add description for thiscall attribute.
21330         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
21331         * doc/extend.texi: Add documentation for thiscall.
21332
21333 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21334
21335         PR c++/28584
21336         * c.opt (Wint-to-pointer-cast): Available in C++.
21337         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
21338
21339 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21340
21341         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
21342         * calls.c (expand_call): Pass the function type to aggregate_value_p.
21343         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
21344         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
21345         function type instead.  Reorder and simplify checks.
21346
21347         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
21348
21349 2010-04-08  Jing Yu  <jingyu@google.com>
21350             Zdenek Dvorak  <ook@ucw.cz>
21351
21352         PR tree-optimization/42720
21353         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
21354         loop unswitch conditions here from ...
21355         (tree_unswitch_single_loop): ... here.
21356
21357 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21358
21359         * tree-if-conv.c: Fix comments and simplify logic.
21360
21361 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21362
21363         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
21364         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
21365         (main_tree_if_conversion): Update call to tree_if_conversion.
21366
21367 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21368
21369         PR 42485
21370         * doc/invoke.texi (-b,-V): Delete.
21371         * doc/tm.texi: Do not mention -b.
21372         * gcc.c (display_help): Delete -b and -V.
21373         (process_command): Delete -b and -V.
21374         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
21375
21376 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
21377             Wolfgang Gellerich  <gellerich@de.ibm.com>
21378
21379         Implement target hook for loop unrolling
21380         * target.h (loop_unroll_adjust): Add a new target hook function.
21381         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
21382         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
21383         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
21384         (s390_loop_unroll_adjust): Implement the new target hook for s390.
21385         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
21386         target hook.
21387         (decide_unroll_stupid): Likewise.
21388
21389 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21390
21391         PR target/43643
21392         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
21393
21394 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21395
21396         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
21397         (Specific, *-*-solaris2*): Likewise.
21398         Don't prefer Sun as over GNU as.
21399
21400 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
21401
21402         * config/s390/s390.c (override_options): Adjust the z10 defaults
21403         for max-unroll-times, max-completely-peeled-insns
21404         and max-completely-peel-times.
21405
21406 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21407
21408         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
21409         instructions for z10.
21410         (s390_expand_setmem): Likewise.
21411         (s390_expand_cmpmem): Likewise.
21412
21413 2010-04-08  Richard Guenther  <rguenther@suse.de>
21414
21415         PR tree-optimization/43679
21416         * tree-ssa-pre.c (eliminate): Only propagate copies.
21417
21418 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21419
21420         PR bootstrap/43681
21421         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
21422         set but not used variable warning.
21423
21424 2010-04-08  Wei Guozhi  <carrot@google.com>
21425
21426         PR target/41653
21427         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
21428         (arm_size_rtx_costs): Call the new function when optimized for size.
21429
21430 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21431
21432         PR debug/43670
21433         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
21434         op0 is not a MEM, just return NULL instead of assertion
21435         failure.
21436         (discover_nonconstant_array_refs): Don't walk debug stmts.
21437
21438 2010-04-08  Doug Kwan  <dougkwan@google.com>
21439
21440         * configure.ac: Recognize gold and do not use its version number
21441         to test ld features.
21442         * configure: Regenerate.
21443
21444 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
21445
21446         PR middle-end/40815
21447         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
21448         (negate_value): Move code to push elements to broken_up_substracts ...
21449         (eliminate_plus_minus_pair): ... here.  Push operands that have no
21450         negative pair to plus_negates.
21451         (repropagate_negates, init_reassoc, fini_reassoc): Update.
21452
21453 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21454
21455         * doc/install.texi (Configuration): Move description of
21456         --enable-lto, --with-libelf*, --enable-gold from Java section to
21457         general section.
21458
21459         * doc/generic.texi (Working with declarations)
21460         (Function Properties, C and C++ Trees): Fix typos.
21461         * doc/sourcebuild.texi (Top Level): Likewise.
21462
21463 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21464
21465         PR c/18624
21466         * tree.h (DECL_READ_P): Define.
21467         (struct tree_decl_common): Add decl_read_flag.
21468         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
21469         a set but not used warning.
21470         (merge_decls): Merge DECL_READ_P flag.
21471         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
21472         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
21473         * c-common.c (handle_used_attribute, handle_unused_attribute):
21474         Likewise.
21475         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
21476         New prototypes.
21477         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
21478         New functions.
21479         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
21480         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
21481         c_parser_binary_expression, c_parser_cast_expression,
21482         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
21483         Call default_function_array_read_conversion instead of
21484         default_function_array_conversion where needed.
21485         (c_parser_unary_expression, c_parser_conditional_expression,
21486         c_parser_postfix_expression_after_primary, c_parser_initelt):
21487         Likewise.  Call mark_exp_read where needed.
21488         (c_parser_statement_after_labels, c_parser_asm_operands,
21489         c_parser_typeof_specifier, c_parser_sizeof_expression,
21490         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
21491         where needed.
21492         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
21493         New.
21494         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
21495         (warn_unused_but_set_parameter): Default to warn_unused
21496         && extra_warnings.
21497         * doc/invoke.texi: Document -Wunused-but-set-variable and
21498         -Wunused-but-set-parameter.
21499
21500         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
21501         used count variable.
21502         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
21503         when operandN variables aren't used in the body of the expander
21504         or splitter.
21505         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
21506         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
21507         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
21508         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
21509         FOR_EACH_IMM_USE_ON_STMT): Likewise.
21510         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
21511         * tree.c (PROCESS_ARG): Likewise.
21512
21513 2010-04-07  Simon Baldwin  <simonb@google.com>
21514
21515         * diagnostic.h (diagnostic_override_option_index): New macro to
21516         set a diagnostic's option_index.
21517         * c-tree.h (c_cpp_error): Add warning reason argument.
21518         * opts.c (_warning_as_error_callback): New.
21519         (register_warning_as_error_callback): Store callback for
21520         warnings enabled via enable_warning_as_error.
21521         (enable_warning_as_error): Call callback, minor code tidy.
21522         * opts.h (register_warning_as_error_callback): Declare.
21523         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
21524         response to -Werror=.
21525         (c_common_init_options): Register warning_as_error_callback in opts.c.
21526         * common.opt: Add -Wno-cpp option.
21527         * c-common.c (struct reason_option_codes_t): Map cpp warning
21528         reason codes to gcc option indexes.
21529         * (c_option_controlling_cpp_error): New function, lookup the gcc
21530         option index for a cpp warning reason code.
21531         * (c_cpp_error): Add warning reason argument, call
21532         c_option_controlling_cpp_error for diagnostic_override_option_index.
21533         * doc/invoke.texi: Document -Wno-cpp.
21534
21535 2010-04-07  Richard Guenther  <rguenther@suse.de>
21536
21537         * ipa-reference.c (mark_load): Use get_base_address.
21538         (mark_store): Likewise.
21539
21540         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
21541         inserting GIMPLE_NOPs into the IL.
21542         * tree-ssa-structalias.c (get_constraint_for_component_ref):
21543         Explicitly strip handled components and indirect references.
21544
21545         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
21546         folding address expressions.
21547         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
21548         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
21549         operand_equal_p to compare decls.
21550         (ptr_deref_may_alias_decl_p): Likewise.
21551         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
21552         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
21553         Handle reversed comparison ops.
21554         * tree-sra.c (asm_visit_addr): Use get_base_address.
21555         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
21556         * ipa-reference.c (mark_address): Use get_base_address.
21557
21558 2010-04-07  Richard Guenther  <rguenther@suse.de>
21559
21560         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
21561         Propagate constants everywhere.
21562
21563 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21564
21565         PR debug/43516
21566         * tree.c (MAX_INT_CACHED_PREC): Define.
21567         (nonstandard_integer_type_cache): New array.
21568         (build_nonstandard_integer_type): Cache results for precision
21569         <= MAX_INT_CACHED_PREC.
21570
21571 2010-04-07  Richard Guenther  <rguenther@suse.de>
21572
21573         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
21574         -fargument-noalias-global, -fargument-noalias-anything): Remove.
21575         * common.opt: Likewise.
21576         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
21577         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
21578         (nonoverlapping_memrefs_p): Likewise.
21579         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21580         * opts.c (common_handle_option): Handle OPT_fargument_alias,
21581         OPT_fargument_noalias, OPT_fargument_noalias_anything and
21582         OPT_fargument_noalias_global for backward compatibility.
21583
21584 2010-04-07  Richard Guenther  <rguenther@suse.de>
21585
21586         PR tree-optimization/43270
21587         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
21588         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
21589         * tree-ssa-pre.c (phi_translate_1): Adjust.
21590         (fully_constant_expression): Split out vn_reference handling to ...
21591         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
21592         Fold reads from constant strings.
21593         (vn_reference_lookup): Handle fully constant references.
21594         (vn_reference_lookup_pieces): Likewise.
21595         * Makefile.in (expmed.o-warn): Add -Wno-error.
21596
21597 2010-04-07  Martin Jambor  <mjambor@suse.cz>
21598
21599         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
21600
21601 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
21602
21603         PR driver/41594
21604         * gcc.c: Add -static-libstdc++ to list of recognized options.
21605
21606 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21607
21608         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
21609
21610 2010-04-07  Richard Guenther  <rguenther@suse.de>
21611
21612         PR middle-end/42617
21613         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
21614         bases build simple mem attributes to retain points-to information.
21615
21616 2010-04-07  Richard Guenther  <rguenther@suse.de>
21617
21618         PR middle-end/42617
21619         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
21620         preserve points-to related information.
21621
21622 2010-04-07  Richard Guenther  <rguenther@suse.de>
21623
21624         PR middle-end/42617
21625         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
21626         discard plain indirect references.
21627         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
21628         * tree.c (tree_nop_conversion): Likewise.
21629
21630 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
21631
21632         PR debug/43628
21633         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
21634
21635 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
21636
21637         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
21638         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
21639
21640 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21641
21642         * tree-if-conv.c: Fix indentation and comments.
21643
21644 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21645
21646         * tree-if-conv.c: Sort static functions in topological order.
21647
21648 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21649
21650         * tree-if-conv.c: Fix indentation and comments.
21651
21652 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21653
21654         PR middle-end/43519
21655         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
21656         lang_hooks.types.type_for_size instead of
21657         build_nonstandard_integer_type.
21658         When converting an unsigned type to signed, double its precision.
21659         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
21660         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
21661         (graphite_create_new_loop_guard): When ub + 1 wraps around,
21662         use lb <= ub.
21663
21664 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21665
21666         PR middle-end/43519
21667         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
21668         POINTER_PLUS_EXPR for pointer types.
21669
21670 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21671
21672         PR middle-end/43519
21673         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
21674         * graphite-clast-to-gimple.c: Include langhooks.h.
21675         (max_signed_precision_type): New.
21676         (max_precision_type): Takes two types as arguments.
21677         (precision_for_value): New.
21678         (precision_for_interval): New.
21679         (gcc_type_for_interval): New.
21680         (gcc_type_for_value): New.
21681         (gcc_type_for_clast_term): New.
21682         (gcc_type_for_clast_red): New.
21683         (gcc_type_for_clast_bin): New.
21684         (gcc_type_for_clast_expr): Split up into several functions.
21685         (gcc_type_for_clast_eq): Rewritten.
21686         (compute_bounds_for_level): New.
21687         (compute_type_for_level_1): New.
21688         (compute_type_for_level): New.
21689         (gcc_type_for_cloog_iv): Removed.
21690         (gcc_type_for_iv_of_clast_loop): Rewritten.
21691         (graphite_create_new_loop): Compute the lower and upper bound types
21692         with gcc_type_for_clast_expr.
21693         (graphite_create_new_loop_guard): Same.
21694         (find_cloog_iv_in_expr): Removed.
21695         (compute_cloog_iv_types_1): Removed.
21696         (compute_cloog_iv_types): Removed.
21697         (gloog): Do not call compute_cloog_iv_types.
21698         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
21699         GBB_CLOOG_IV_TYPES.
21700         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
21701         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
21702         (GBB_CLOOG_IV_TYPES): Removed.
21703
21704 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21705
21706         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
21707         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
21708         (detect_commutative_reduction): Same.
21709
21710 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21711
21712         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
21713         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
21714         argument.
21715         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
21716         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
21717         (rewrite_commutative_reductions_out_of_ssa): Same.
21718         * passes.c (execute_function_todo): Call verify_ssa for every pass
21719         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
21720         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
21721         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
21722         with an extra argument.
21723         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
21724         verify_ssa only when the extra argument is true.
21725         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
21726         with an extra argument.
21727         (tree_transform_and_unroll_loop): Same.
21728
21729 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21730
21731         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
21732         for all the passes of the LNO having LOOP_CLOSED_SSA.
21733         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
21734         * tree-loop-distribution.c (pass_loop_distribution): Same.
21735         * tree-pass.h (TODO_verify_loops): Removed.
21736         * tree-ssa-loop.c (pass_tree_loop_init): Same.
21737         (pass_lim): Same.
21738         (pass_tree_unswitch): Same.
21739         (pass_predcom): Same.
21740         (pass_vectorize): Same.
21741         (pass_linear_transform): Same.
21742         (pass_graphite_transforms): Same.
21743         (pass_iv_canon): Same.
21744         (pass_complete_unroll): Same.
21745         (pass_complete_unrolli): Same.
21746         (pass_parallelize_loops): Same.
21747         (pass_loop_prefetch): Same.
21748         (pass_iv_optimize): Same.
21749
21750 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
21751
21752         PR middle-end/32824
21753         * passes.c (init_optimization_passes): Move pass_lim before
21754         pass_copy_prop and pass_dce_loop.
21755
21756 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
21757
21758         PR target/43667
21759         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
21760         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
21761         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
21762         MULTI_* defines for 4 argument vpermil2p* builtins.
21763
21764 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
21765
21766         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
21767         * config/i386/i386.c (x86_maybe_negate_const_int): New.
21768         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
21769         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
21770         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
21771         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
21772         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
21773         Use x86_maybe_negate_const_int to output insn mnemonic.
21774         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
21775         check from instruction predicate.  Update comments.
21776         * config/i386/sync.md (sync_add<mode>): Use
21777         x86_maybe_negate_const_int to output insn mnemonic.
21778
21779 2010-04-06  Jan Hubicka  <jh@suse.cz>
21780
21781         PR tree-optimization/42906
21782         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
21783         IGNORE_SELF argument.  Set visited_control_parents for fully
21784         processed BBs.
21785         (find_obviously_necessary_stmts): Update call of
21786         mark_control_dependent_edges_necessary.
21787         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
21788
21789 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
21790
21791         * config/i386/i386.md: Remove comment about 'e' and 'E'
21792         operand modifier.
21793
21794 2010-04-06  Richard Guenther  <rguenther@suse.de>
21795
21796         PR tree-optimization/43627
21797         * tree-vrp.c (extract_range_from_unary_expr): Widenings
21798         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
21799         not varying.
21800
21801 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
21802
21803         * BASE-VER: Change to 4.6.0.
21804
21805         PR target/43638
21806         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
21807         handling.
21808
21809 2010-04-06  Richard Guenther  <rguenther@suse.de>
21810
21811         PR middle-end/43661
21812         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
21813
21814 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21815
21816         * doc/invoke.texi (Optimize Options): Document that LTO
21817         won't remove object access purely due to incompatible
21818         declarations.
21819
21820 2010-04-04  Matthias Klose  <doko@ubuntu.com>
21821
21822         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
21823         Initialize variable.
21824
21825 2010-04-03  Richard Guenther  <rguenther@suse.de>
21826
21827         PR middle-end/42509
21828         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
21829         require a non-NULL MEM_OFFSET.
21830
21831 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
21832
21833         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
21834         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
21835         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
21836         config/alpha/predicates.md, config/arm/arm.md,
21837         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
21838         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
21839         config/darwin9.h, config/darwin.c, config/darwin.h,
21840         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
21841         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
21842         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
21843         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
21844         config/mips/mips.md, config/mn10300/mn10300.c,
21845         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
21846         config/rs6000/aix.h, config/rs6000/dfp.md,
21847         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
21848         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
21849         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
21850         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
21851         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
21852         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
21853         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
21854         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
21855         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
21856         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
21857         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
21858         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
21859         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
21860         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
21861         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
21862         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
21863         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
21864         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
21865         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
21866         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
21867         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
21868         opt-functions.awk, opth-gen.awk, params.def, passes.c,
21869         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
21870         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
21871         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
21872         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
21873         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
21874         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
21875         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
21876         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
21877         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
21878         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
21879         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
21880         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
21881         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
21882         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
21883
21884 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21885
21886         PR other/43620
21887         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
21888         * aclocal.m4: Regenerate.
21889
21890 2010-04-02  Richard Guenther  <rguenther@suse.de>
21891
21892         PR tree-optimization/43629
21893         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
21894         if we have seen a constant value.
21895
21896 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
21897
21898         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
21899
21900 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
21901
21902         PR target/43469
21903         * arm.c (legitimize_tls_address): Adjust call to
21904         gen_tls_load_dot_plus_four.
21905         (arm_note_pic_base): New function.
21906         (arm_cannot_copy_insn_p): Use it.
21907         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
21908         constraint.
21909
21910 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21911
21912         PR bootstrap/43531
21913
21914         Revert:
21915         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21916
21917         * Makefile.in ($(out_object_file)): Depend on
21918         gt-$(basename $(notdir $(out_file))).h.
21919
21920 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
21921
21922         * config.gcc (lm32-*-rtems*): Add t-lm32.
21923
21924 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
21925
21926         * config.gcc: Add lm32-*-rtems*.
21927         * config/lm32/rtems.h: New file.
21928
21929 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
21930
21931         PR target/42609
21932         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
21933
21934 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
21935
21936         * dwarf2out.c (output_compilation_unit_header): For
21937         -gdwarf-4 use version 4 instead of version 3.
21938         (output_line_info): For version 4 and above emit additional
21939         maximum ops per insn header field.
21940         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
21941
21942         * dwarf2out.c (is_c_family, is_java): Remove.
21943         (lower_bound_default): New function.
21944         (add_bound_info, gen_descr_array_type_die): Use it.
21945
21946 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
21947
21948         PR debug/43325
21949         * dwarf2out.c (gen_variable_die): Allow debug info for variable
21950         re-declaration when it happens in a function.
21951
21952 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
21953
21954         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
21955         (cgraph_remove_function_insertion_hook): Same.
21956         (cgraph_call_function_insertion_hooks): Same.
21957
21958 2010-04-01  Richard Guenther  <rguenther@suse.de>
21959
21960         PR middle-end/43614
21961         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
21962         and TREE_THIS_VOLATILE.
21963         (copy_ref_info): Likewise.
21964         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
21965         * tree.c (build6_stat): Ignore side-effects of all but arg5
21966         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
21967         TARGET_MEM_REF.
21968
21969 2010-04-01  Richard Guenther  <rguenther@suse.de>
21970
21971         PR tree-optimization/43607
21972         * ipa-type-escape.c (check_call): Do not access non-existing
21973         arguments.
21974
21975 2010-04-01  Richard Guenther  <rguenther@suse.de>
21976
21977         PR middle-end/43602
21978         Revert
21979         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
21980                     Jack Howarth  <howarth@bromo.med.uc.edu>
21981
21982         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21983         variables TLS.
21984
21985 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21986
21987         * doc/install.texi (Prerequisites): Document libelf usability on
21988         IRIX 5/6 and Solaris 2.
21989         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
21990         Update GNU as, GNU ld requirements.
21991         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
21992         Document Sun Studio compiler download.
21993         Update and simplify as, ld recommendations.
21994         (Specific, *-*-solaris2.7): Note obsoletion, removal.
21995
21996 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21997
21998         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
21999         with_tune_32 to pentium4.
22000
22001 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
22002
22003         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
22004
22005 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22006
22007         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
22008         obsoletion, removal.
22009         Update IDO URL.
22010         Document GNU as requirement.
22011         Update configure requirements.
22012         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
22013         Recomment IRIX 6.5.18+.
22014         Document IDF/IDL requirement.
22015         Document GNU as requirement.
22016         Document GNU ld bootstrap failure.
22017         Remove freeware.sgi.com reference.
22018
22019 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22020
22021         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
22022         UNIX V4.0, V5.0 obsoletion, removal.
22023         Remove --with-gc=simple reference.
22024         Update VM requirements during bootstrap.
22025         Remove -oldas bootstrap description.
22026         Update binutils reference.
22027         Remove comparison failure note.
22028
22029 2010-03-31  Richard Guenther  <rguenther@suse.de>
22030             Zdenek Dvorak  <ook@ucw.cz>
22031             Sebastian Pop  <sebastian.pop@amd.com>
22032
22033         PR middle-end/43464
22034         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
22035         with multiple arguments.
22036         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
22037
22038 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22039
22040         * graphite-dependences.c (print_pddr): Call print_pdr with an
22041         extra argument.
22042         * graphite-poly.c (debug_pdr): Add an extra argument for the
22043         verbosity level.
22044         (print_pdr): Same.
22045         (print_pbb_domain): Same.
22046         (print_pbb): Same.
22047         (print_scop_context): Same.
22048         (print_scop): Same.
22049         (print_cloog): Same.
22050         (debug_pbb_domain): Same.
22051         (debug_pbb): Same.
22052         (print_pdrs): Same.
22053         (debug_pdrs): Same.
22054         (debug_scop_context): Same.
22055         (debug_scop): Same.
22056         (debug_cloog): Same.
22057         (print_scop_params): Same.
22058         (debug_scop_params): Same.
22059         (print_iteration_domain): Same.
22060         (print_iteration_domains): Same.
22061         (debug_iteration_domain): Same.
22062         (debug_iteration_domains): Same.
22063         (print_scattering_function): Same.
22064         (print_scattering_functions): Same.
22065         (debug_scattering_function): Same.
22066         (debug_scattering_functions): Same.
22067         * graphite-poly.h (debug_pdr): Update declaration.
22068         (print_pdr): Same.
22069         (print_pbb_domain): Same.
22070         (print_pbb): Same.
22071         (print_scop_context): Same.
22072         (print_scop): Same.
22073         (print_cloog): Same.
22074         (debug_pbb_domain): Same.
22075         (debug_pbb): Same.
22076         (print_pdrs): Same.
22077         (debug_pdrs): Same.
22078         (debug_scop_context): Same.
22079         (debug_scop): Same.
22080         (debug_cloog): Same.
22081         (print_scop_params): Same.
22082         (debug_scop_params): Same.
22083         (print_iteration_domain): Same.
22084         (print_iteration_domains): Same.
22085         (debug_iteration_domain): Same.
22086         (debug_iteration_domains): Same.
22087         (print_scattering_function): Same.
22088         (print_scattering_functions): Same.
22089         (debug_scattering_function): Same.
22090         (debug_scattering_functions): Same.
22091
22092 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22093
22094         * graphite-poly.c (print_scattering_function_1): New.
22095         (print_scattering_function): Call it.
22096         (print_scop_params): Remove spaces at the end of lines.
22097         (print_cloog): New.
22098         (debug_cloog): New.
22099         * graphite-poly.h (print_cloog): Declared.
22100         (debug_cloog): Declared.
22101
22102 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22103
22104         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
22105         in loop->header.
22106         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
22107         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
22108         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
22109         to switch between adding the IV bump in loop->latch or in loop->header.
22110
22111 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22112
22113         * graphite-poly.c (print_scattering_function): Pretty print following
22114         the scoplib format.
22115         (print_pdr): Same.
22116         (print_pbb_domain): Same.
22117         (dump_gbb_cases): Same.
22118         (dump_gbb_conditions): Same.
22119         (print_pdrs): Same.
22120         (print_pbb): Same.
22121         (print_scop_params): Same.
22122         (print_scop_context): Same.
22123         (print_scop): Same.
22124         (print_pbb_body): New.
22125         (lst_indent_to): New.
22126         (print_lst): Start new lines with a #.
22127         * graphite-poly.h (pbb_bb): New.
22128         (pbb_index): Use pbb_bb.
22129         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
22130         disjuncts.
22131         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
22132
22133 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22134
22135         * dwarf2out.c (size_of_die): For -gdwarf-4 use
22136         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
22137         and 0 instead of 1 for dw_val_class_flag.
22138         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
22139         dw_val_class_range_list, dw_val_class_loc_list,
22140         dw_val_class_lineptr and dw_val_class_macptr, use
22141         DW_FORM_flag_present for dw_val_class_flag and
22142         DW_FORM_exprloc for dw_val_class_loc.
22143         (output_die): For -gdwarf-4 print dw_val_class_loc
22144         size as uleb128 instead of 1 or 2 bytes and don't print
22145         anything for dw_val_class_flag.
22146
22147         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
22148         instead of cselib_lookup following by tweaking locs->setting_insn.
22149
22150         PR bootstrap/43596
22151         * cselib.c (cselib_process_insn): Clear cselib_current_insn
22152         even before returning from label, setjmp call or volatile asm
22153         handling.
22154
22155 2010-03-31  Richard Guenther  <rguenther@suse.de>
22156
22157         PR middle-end/43600
22158         * cgraphunit.c (cgraph_output_in_order): Do not allocate
22159         temporary data on stack.
22160
22161 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22162
22163         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
22164         (PUSHSECTION_ASM_OP): Remove.
22165         (POPSECTION_ASM_OP): Remove.
22166         (PUSHSECTION_FORMAT): Remove.
22167         * config/sol2.h (PUSHSECTION_FORMAT): Define.
22168         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
22169         * config/sol2.c (solaris_output_init_fini): Use it.
22170
22171 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22172
22173         PR 43574
22174         * opt-functions.awk (var_type_struct): Use signed char type
22175         for simple variables.
22176
22177 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22178
22179         * config/sol2.c: Include output.h.
22180         (solaris_assemble_visibility): New function.
22181         * config/t-sol2 (sol2.o): Add output.h dependency.
22182         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
22183         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
22184         Redefine.
22185
22186 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22187
22188         PR target/43580
22189         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
22190         V2SImode or XFmode on PRE_DEC.
22191
22192         PR debug/43557
22193         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
22194         BLKmode.
22195
22196 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22197
22198         PR 43562
22199         * reload.h (caller_save_initialized_p): Declare.
22200         * toplev.c (backend_init_target): Don't call
22201         init_caller_save but set caller_save_initialized_p to false.
22202         * caller-save.c (caller_save_initialized_p): Define.
22203         (init_caller_save): Check caller_save_initialized_p.
22204         * ira.c (ira): Call init_caller_save if flag_caller_saves.
22205
22206 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22207
22208         PR target/39048
22209         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
22210         and soft-fp/t-softfp to tmake_file.
22211         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
22212         (LIBGCC2_TF_CEXT): Define.
22213         (TF_SIZE): Define.
22214
22215 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
22216
22217         PR debug/42977
22218         * cselib.c (n_useless_values): Document handling of debug locs.
22219         (n_useless_debug_values, n_debug_values): New variables.
22220         (new_elt_loc_list): Don't add to debug values, keep count.
22221         (promote_debug_loc): New.
22222         (cselib_reset_table): Zero new variables.
22223         (entry_and_rtx_equal_p): Promote debug locs.
22224         (discard_useless_locs): Increment n_useless_debug_values for
22225         debug values.
22226         (remove_useless_values): Adjust n_useless_values and n_debug_values
22227         with n_useless_debug_values.
22228         (add_mem_for_addr): Promote debug locs.
22229         (cselib_lookup_mem): Likewise.
22230         (cselib_lookup_addr): Renamed to...
22231         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
22232         (cselib_log_lookup): ... this.  Turn into...
22233         (cselib_lookup_addr): ... new wrapper.
22234         (cselib_lookup_from_insn): New.
22235         (cselib_invalidate_regno): Increment n_useless_debug_values for
22236         debug values.
22237         (cselib_invalidate_mem): Likewise.
22238         (cselib_process_insn): Take n_deleted and n_debug_values into
22239         account to guard remove_useless_value call.
22240         (cselib_finish): Zero n_useless_debug_values.
22241         * cselib.h (cselib_lookup_from_insn): Declare.
22242         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
22243         (sched_analyze_2): Likewise.
22244
22245 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
22246
22247         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
22248         functions.
22249         (adjust_mems): Replace narrowing SUBREG of expression containing
22250         just PLUS, MINUS, MULT and ASHIFT of registers and constants
22251         with operations in the narrower mode.
22252
22253         PR debug/43593
22254         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
22255         regs_invalidated_by_call instead all call_used_reg_set registers.
22256
22257 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
22258
22259         PR middle-end/43430
22260         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
22261         pointer comparisons with types_compatible_p.
22262         * tree-vect-stmts.c (vectorizable_call): Same.
22263         (vectorizable_condition): Same.
22264
22265 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22266
22267         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
22268         stack check if the mask would be zero.
22269
22270 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22271             Jack Howarth  <howarth@bromo.med.uc.edu>
22272
22273         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22274         variables TLS.
22275
22276 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
22277
22278         PR other/25232
22279         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
22280         and __unordtf2.
22281         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
22282         Include ___unordxf2 and ___unordtf2.
22283         * config/i386/libgcc-glibc.ver: Do not define inheritance from
22284         GCC_4.4.0 here.
22285
22286 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
22287
22288         * config/lm32/t-lm32: New file.
22289         * config.gcc: Use the above file when targetting lm32.
22290
22291 2010-03-28  Duncan Sands  <baldrick@free.fr>
22292
22293         * Makefile.in (PLUGIN_HEADERS): Add except.h.
22294
22295 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22296
22297         PR middle-end/43431
22298         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
22299         Improve vectorization cost model diagnostic.
22300
22301 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22302
22303         PR middle-end/43436
22304         * tree-vect-data-refs.c (vect_analyze_data_refs): When
22305         compute_data_dependences_for_loop returns false, early exit
22306         and output an extra diagnostic for the failed data reference
22307         analysis.
22308
22309 2010-03-29  Richard Guenther  <rguenther@suse.de>
22310
22311         PR tree-optimization/43560
22312         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
22313         (can_sm_ref_p): Treat stores to readonly locations as trapping.
22314
22315 2010-03-29  Jie Zhang  <jie@codesourcery.com>
22316
22317         PR 43564
22318         * toplev.c (process_options): Set optimization_default_node
22319         and optimization_current_node.
22320         * opts.c (decode_options): Don't set optimization_default_node
22321         and optimization_current_node.
22322
22323 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
22324
22325         * config/rtems.h: Abandon -qrtems_debug.
22326
22327 2010-03-28  Jan Hubicka  <jh@suse.cz>
22328
22329         PR tree-optimization/43505
22330         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
22331         map should not be copied.
22332
22333 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22334
22335         PR middle-end/41674
22336         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
22337         cdtors, set DECL_PRESERVE_P.
22338         * ipa.c (cgraph_externally_visible_p): Return true if declaration
22339         should be preseved.
22340
22341 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
22342
22343         PR tree-optimization/43528
22344         * stor-layout.c (place_field): Check that constant fits into
22345         unsigned HWI when skipping calculation of MS bitfield layout.
22346
22347 2010-03-27  Jan Hubicka  <jh@suse.cz>
22348
22349         PR middle-end/43391
22350         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
22351         notice_global_symbol work.
22352
22353 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
22354
22355         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
22356         instead of dwarf2out_decl.
22357         (struct var_loc_node): Remove section_label field.
22358         (dwarf2out_function_decl): New function.
22359         (dwarf2out_var_location): Don't set section_label field.
22360         (dwarf2out_begin_function): Don't empty decl_loc_table here.
22361
22362 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22363
22364         PR tree-optimization/43544
22365         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
22366         First argument for builtin vectorized function hook is now a
22367         tree to be able to distinguish between machine specific and
22368         standard builtins.
22369         * targhooks.c (default_builtin_vectorized_function): Ditto.
22370         * targhooks.h (default_builtin_vectorized_function): Ditto.
22371         * target.h (struct gcc_target): Ditto.
22372         * tree-vect-stmts.c (vectorizable_function): Ditto.
22373         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
22374         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
22375         Ditto.
22376
22377 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
22378
22379         PR c/43381
22380         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
22381         nested binding iff it is a FUNCTION_DECL.
22382         (store_parm_decls_newstyle): Pass nested=true to bind for
22383         FUNCTION_DECLs amongst parameters.
22384
22385 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22386
22387         * var-tracking.c (vt_expand_loc_callback): Don't run
22388         cselib_expand_value_rtx_cb in dummy mode if
22389         cselib_dummy_expand_value_rtx_cb returned false.
22390
22391         * var-tracking.c (emit_note_insn_var_location): For one part
22392         notes with offset 0, don't add EXPR_LIST around the location.
22393         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
22394         add_location_or_const_value_attribute): Adjust for that change.
22395
22396         PR debug/43540
22397         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
22398         into first operand and location into second.
22399         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
22400         dw_cfi_oprnd_loc for DW_CFA_expression.
22401         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
22402         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
22403         assume first argument is regnum and second argument is location.
22404
22405 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22406
22407         PR target/42113
22408         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
22409         of scratch register to DImode.  Split to DImode comparison operator.
22410         Use SImode subreg of scratch register in the multiplication.
22411         (*cmp_sadd_sidi): Ditto.
22412         (*cmp_ssub_si): Ditto.
22413         (*cmp_ssub_sidi): Ditto.
22414
22415 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22416
22417         PR target/43524
22418         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
22419         Remove invalid assert and wrong comment.
22420
22421 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22422
22423         PR debug/43516
22424         * flags.h (final_insns_dump_p): New extern.
22425         * final.c (final_insns_dump_p): New variable.
22426         (rest_of_clean_state): Set it before -fdump-final-insns=
22427         dumping, clear afterwards.
22428         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
22429         MEM_ALIAS_SET on MEMs.
22430
22431 2010-03-26  David S. Miller  <davem@davemloft.net>
22432
22433         * configure.ac: Fix sparc GOTDATA_OP bug check.
22434         * configure: Rebuild.
22435
22436 2010-03-26  Alan Modra  <amodra@gmail.com>
22437
22438         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
22439
22440 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22441
22442         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
22443         TLS_SECTION_ASM_FLAG.
22444
22445 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
22446
22447         PR bootstrap/43511
22448         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
22449         Clear first_function_block_is_cold.
22450
22451         PR c/43385
22452         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
22453         argument if the argument is truth_value_p.
22454
22455 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22456
22457         * config/rs6000/constraints.md: Update copyright year for my changes.
22458
22459         PR target/43484
22460         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
22461         used in reg+reg addressing, swap registers.
22462
22463 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22464
22465         PR debug/43293
22466         * target.h (struct gcc_target): Add code_end hook.
22467         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
22468         if not yet defined.
22469         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
22470         * toplev.c (compile_file): Call targetm.asm_out.code_end
22471         hook before unwind info/debug info output.
22472         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
22473         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
22474         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22475         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
22476         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22477         * config/i386/i386.c (ix86_file_end): Renamed to...
22478         (ix86_code_end): ... this.  Make static.  Don't call
22479         file_end_indicate_exec_stack.  Emit unwind info using
22480         final_start_function/final_end_function.
22481         (darwin_x86_file_end): Remove.
22482         (TARGET_ASM_CODE_END): Define.
22483         * config/i386/i386.h (TARGET_ASM_FILE_END,
22484         NEED_INDICATE_EXEC_STACK): Don't define.
22485         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
22486         (TARGET_ASM_FILE_END): Define to darwin_file_end.
22487         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
22488         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
22489
22490         PR target/43498
22491         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
22492         at the beginning and final_end_function at the end.
22493         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
22494
22495 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22496
22497         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
22498         and Sun as TLS syntax.
22499         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
22500         * configure: Regenerate.
22501         * config.in: Regenerate.
22502         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
22503         (default_elf_asm_named_section): Use it.
22504         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
22505         (i386_output_dwarf_dtprel): Likewise.
22506         (output_addr_const_extra): Likewise.
22507         (output_pic_addr_const): Lowercase @GOTTPOFF.
22508         (output_addr_const_extra): Likewise.
22509         (output_pic_addr_const): Lowercase @GOTNTPOFF.
22510         (output_addr_const_extra): Likewise.
22511         (output_pic_addr_const): Lowercase @INDNTPOFF.
22512         (output_addr_const_extra): Likewise.
22513         (output_pic_addr_const): Lowercase @NTPOFF.
22514         (output_addr_const_extra): Likewise.
22515         (output_pic_addr_const): Lowercase @TPOFF.
22516         (output_addr_const_extra): Likewise.
22517         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
22518         (*tls_global_dynamic_64): Likewise.
22519         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
22520         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
22521
22522         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
22523         (ASM_OUTPUT_TLS_COMMON): Use it.
22524         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
22525
22526         PR target/38118
22527         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
22528         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22529         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
22530         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
22531         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22532         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
22533
22534 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22535
22536         * config/i386/i386.c (override_options): Don't accept
22537         -mtls-dialect=sun any longer.
22538         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
22539         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
22540         (*tls_local_dynamic_base_32_sun): Likewise.
22541         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22542
22543 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22544
22545         PR debug/43508
22546         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22547         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
22548
22549         PR debug/43479
22550         * ira.c (adjust_cleared_regs): New function.
22551         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
22552
22553         PR debug/19192
22554         PR debug/43479
22555         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
22556         from gimple_block.
22557         * expr.c (expand_expr_real): Restore previous
22558         curr_insn_source_location and curr_insn_block after
22559         expand_expr_real_1 call.
22560         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
22561         instead of expand_expr_real_1.
22562
22563 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
22564
22565         PR rtl-optimization/43413
22566         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
22567         hard regs too.
22568
22569 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
22570
22571         PR target/43348
22572         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
22573         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
22574
22575 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
22576
22577         * config/i386/i386.c (ix86_target_string): Add -mfma.
22578         Fix a typo in comment.
22579
22580 2010-03-22  Mike Stump  <mikestump@comcast.net>
22581
22582         PR target/23071
22583         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
22584         Don't overly align based upon packed packed fields.
22585
22586 2010-03-22  Jason Merrill  <jason@redhat.com>
22587
22588         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
22589         Use () rather than [], and move before the element type.
22590
22591 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22592
22593         * doc/configfiles.texi (Configuration Files): Removed
22594         fixinc/Makefile*, intl/Makefile.*.
22595         * doc/makefile.texi: Fixed markup. Abstract from version
22596         control system used.
22597         (Makefile): Removed obsolete java/parse.y example.
22598         * doc/sourcebuild.texi: Likewise.
22599         (Top Level): Added config, gnattools, libdecnumber, libgcc,
22600         libgomp, libssp.  Removed fastjar.
22601         (Miscellaneous Docs): Clarify location.
22602         Added COPYING3, COPYING3.LIB.
22603         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
22604
22605 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22606
22607         PR target/38085
22608         * config/i386/i386.c (x86_function_profiler)
22609         [!NO_PROFILE_COUNTERS]: Fix typo.
22610         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
22611         instead of callq.
22612
22613 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
22614             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22615
22616         * doc/sourcebuild.texi (Test Directives): Split into six
22617         subsections, with most of the current text in new subsections
22618         Directives, Selectors, and Final Actions.
22619         (Directives): Split list of test directives into multiple
22620         subsubsections.
22621         (Selectors): Describe use and syntax of selectors.
22622         (Effective-Target Keywords): Describe all existing keywords.
22623         (Add Options): Describe features for dg-add-options.
22624         (Require Support): Describe variants of dg-require-support.
22625         (Final Actions): Describe commands to use in dg-final.
22626
22627 2010-03-22  Michael Matz  <matz@suse.de>
22628
22629         PR middle-end/43475
22630         * recog.c (validate_replace_rtx_group): Replace also in
22631         REG_EQUAL and REG_EQUIV notes.
22632
22633 2010-03-22  Richard Guenther  <rguenther@suse.de>
22634
22635         PR tree-optimization/43390
22636         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
22637         sure vector extracts are type correct.
22638
22639 2010-03-22  Richard Guenther  <rguenther@suse.de>
22640
22641         PR middle-end/40106
22642         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
22643         x * sqrt (x) even when optimizing for size if the target
22644         has native support for sqrt.
22645
22646 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
22647
22648         * varasm.c (make_decl_rtl_for_debug): Also clear
22649         flag_mudflap for the duration of make_decl_rtl call.
22650
22651         PR debug/43443
22652         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
22653         locs from preserved VALUEs.
22654
22655 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22656
22657         PR middle-end/42718
22658         * pa.md (movmemsi): Set align to one if zero.
22659         (movmemdi): Likewise.
22660
22661 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
22662
22663         PR target/42321
22664         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
22665         with their corresponding prologue pushes.
22666
22667 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
22668
22669         PR target/43156
22670         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
22671         at the begining or end.
22672         (spu_expand_epilogue): Likewise.
22673
22674 2010-03-20  Richard Guenther  <rguenther@suse.de>
22675
22676         PR rtl-optimization/43438
22677         * combine.c (make_extraction): Properly zero-/sign-extend an
22678         extraction of the low part of a CONST_INT.  Also handle
22679         CONST_DOUBLE.
22680
22681 2010-03-19  Mike Stump  <mikestump@comcast.net>
22682
22683         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
22684         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
22685         (override_options): Use SUBTARGET32_DEFAULT_CPU.
22686
22687 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
22688
22689         PR c/43211
22690         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
22691         an error.
22692
22693 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
22694
22695         PR rtl-optimization/42258
22696         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
22697         use that may match DEF.
22698
22699         PR target/40697
22700         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
22701         the cost of loading the constant rather than assuming
22702         COSTS_N_INSNS (1).
22703         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
22704         outer code is AND, do the same tests as the andsi3 expander and
22705         return COSTS_N_INSNS (1) if and is cheap.
22706
22707         * optabs.c (avoid_expensive_constant): Fix formatting.
22708
22709 2010-03-19  Michael Matz  <matz@suse.de>
22710
22711         PR c++/43116
22712         * attribs.c (decl_attributes): When rebuilding a function pointer
22713         type use the same qualifiers as the original pointer type.
22714
22715 2010-03-19  Martin Jambor  <mjambor@suse.cz>
22716
22717         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
22718         and is_gimple_ip_invariant_address.
22719
22720 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22721
22722         Revert
22723         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22724
22725         * config/arm/arm.c (arm_override_options): Turn off
22726         flag_dwarf2_cfi_asm for AAPCS variants.
22727
22728 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22729
22730         PR target/43399
22731         * config/arm/arm.c (emit_multi_reg_push): Update comments.
22732         Use PRE_MODIFY instead of PRE_DEC.
22733         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
22734         (vfp_emit_fstmd): Likewise.
22735
22736 2010-03-19  Michael Matz  <matz@suse.de>
22737
22738         PR target/43305
22739         * builtins.c (expand_builtin_interclass_mathfn,
22740         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
22741         if that fails.
22742
22743 2010-03-19  Richard Guenther  <rguenther@suse.de>
22744
22745         PR tree-optimization/43415
22746         * tree-ssa-pre.c (phi_translate): Split out worker to ...
22747         (phi_translate_1): ... this.
22748         (phi_translate): Move all caching here.  Cache all NARY
22749         and REFERENCE translations.
22750
22751 2010-03-19  David S. Miller  <davem@davemloft.net>
22752
22753         With help from Eric Botcazou.
22754         * config/sparc/sparc.c: Include dwarf2out.h.
22755         (emit_pic_helper): Delete.
22756         (pic_helper_symbol_name): Delete.
22757         (pic_helper_emitted_p): Delete.
22758         (pic_helper_needed): New.
22759         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
22760         (get_pc_thunk_name): New.
22761         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
22762         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
22763         Set pic_helper_needed to true.  Don't call emit_pic_helper.
22764         (sparc_expand_prologue): Update load_pic_register call.
22765         (sparc_output_mi_thunk): Likewise.
22766         (sparc_file_end): Emit a hidden comdat symbol for the PIC
22767         thunk if possible.  Output CFI information as needed.
22768
22769 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
22770             Jack Howarth  <howarth@bromo.med.uc.edu>
22771
22772         PR target/36399
22773         * config/i386/i386.h: Fix ABI on darwin x86-32.
22774
22775 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
22776
22777         * tree.h: Declare make_decl_rtl_for_debug.
22778         * varasm.c (make_decl_rtl_for_debug): New.
22779         * dwarf2out.c (rtl_for_decl_location): Call it.
22780         * cfgexpand.c (expand_debug_expr): Call it.
22781
22782 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
22783
22784         PR bootstrap/43399
22785         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
22786         mem_mode.
22787
22788         PR bootstrap/43403
22789         * var-tracking.c (vt_init_cfa_base): Do nothing if
22790         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
22791
22792 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
22793
22794         PR debug/42873
22795         * var-tracking.c (canonicalize_vars_star): New.
22796         (dataflow_post_merge_adjust): Use it.
22797
22798 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
22799
22800         PR debug/43058
22801         * var-tracking.c (non_suitable_const): New function.
22802         (add_uses): For DEBUG_INSNs with constants, don't record any
22803         value, instead just the constant value itself.
22804         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
22805         is not VAR_LOC_UNKNOWN_P, set var to the constant.
22806         (emit_notes_in_bb): Likewise.
22807         (emit_note_insn_var_location): For onepart variables if
22808         cur_loc is a VOIDmode constant, use DECL_MODE.
22809
22810 2010-03-18  Martin Jambor  <mjambor@suse.cz>
22811
22812         PR middle-end/42450
22813         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
22814         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
22815         all non-clones.  Moved call redirection...
22816         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
22817         (cgraph_materialize_all_clones): Dispose of all
22818         combined_args_to_skip bitmaps.
22819         (verify_cgraph_node): Do not check for edges pointing to wrong
22820         nodes in inline clones.
22821         * tree-inline.c (copy_bb): Call
22822         cgraph_redirect_edge_call_stmt_to_callee.
22823         * ipa.c (cgraph_remove_unreachable_nodes): Call
22824         cgraph_node_remove_callees even when there are used clones.
22825
22826 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
22827
22828         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
22829
22830 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
22831
22832         PR target/43383
22833         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
22834         for 32bit.
22835
22836 2010-03-18  Michael Matz  <matz@suse.de>
22837
22838         PR middle-end/43419
22839         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
22840         into sqrt(x) if we need to preserve signed zeros.
22841
22842 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
22843             Eric Botcazou  <ebotcazou@adacore.com>
22844
22845         PR rtl-optimization/43360
22846         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
22847         note if we don't know its invariant status.
22848
22849 2010-03-18  Michael Matz  <matz@suse.de>
22850
22851         PR tree-optimization/43402
22852         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
22853         PHI chains of ssa names registered for update.
22854
22855 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
22856
22857         PR target/42427
22858         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
22859         non-offsettable and pre_modify update addressing.
22860         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
22861         and "2" alternatives "#".
22862         (*movdd_softfloat32): Make all alternatives "#";
22863         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
22864         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
22865         (*movdf_softfloat32): Make all alternatives "#";
22866         (movdi): Use the new DIFD mode iterator to create a common splitter
22867         for movdi, movdf and movdd patterns.
22868
22869 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
22870
22871         * common.opt (dumpdir): Remove redundant tab.
22872
22873 2010-03-17  Martin Jambor  <mjambor@suse.cz>
22874
22875         PR tree-optimization/43347
22876         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
22877         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
22878
22879 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
22880
22881         PR rtl-optimization/42216
22882         * regrename.c (create_new_chain): New function, broken out from...
22883         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
22884         appending a use to an empty chain.
22885         (build_def_use): Remove previous changes that convert OP_INOUT to
22886         OP_OUT operands; instead detect the case where an OP_INOUT operand
22887         uses a previously untracked register and create an empty chain for it.
22888
22889 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22890
22891         * doc/extend.texi (Function Attributes): Rewrite unfinished
22892         sentence in ms_abi documentation.
22893
22894 2010-03-17  Alan Modra  <amodra@gmail.com>
22895
22896         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
22897         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
22898         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
22899         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
22900
22901 2010-03-16  Richard Henderson  <rth@redhat.com>
22902
22903         PR middle-end/43365
22904         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
22905         (lower_try_finally): Save and restore eh_seq around the expansion
22906         of the try-finally.
22907
22908 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
22909
22910         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
22911         statements before splitting block.
22912
22913 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22914
22915         * doc/sourcebuild.texi (Testsuites): Fix markup.
22916         Use pathnames relative to gcc/testsuite.
22917         (Test Directives): Move description of how timeout is determined.
22918         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
22919         (C Tests): Correct gcc.misc-tests directory.
22920         Framework tests now live in gcc.test-framework.
22921
22922 2010-03-16  Richard Guenther  <rguenther@suse.de>
22923
22924         PR middle-end/43379
22925         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
22926         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
22927
22928 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
22929             Alexandre Oliva  <aoliva@redhat.com>
22930
22931         PR tree-optimization/42917
22932         * lambda-code.c (remove_iv): Skip debug statements.
22933         (lambda_loopnest_to_gcc_loopnest): Likewise.
22934         (not_interesting_stmt): Debug statements are not interesting.
22935
22936 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
22937
22938         PR debug/43051
22939         PR debug/43092
22940         * cselib.c (cselib_preserve_constants,
22941         cfa_base_preserved_val): New static variables.
22942         (preserve_only_constants): New function.
22943         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
22944         clear its REG_VALUES.  If cselib_preserve_constants, don't
22945         empty the whole hash table, but preserve there VALUEs with constants,
22946         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
22947         (cselib_preserve_cfa_base_value): New function.
22948         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
22949         (cselib_init): Change argument to int bitfield.  Set
22950         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
22951         is in it.
22952         (cselib_finish): Clear cselib_preserve_constants and
22953         cfa_base_preserved_val.
22954         * cselib.h (enum cselib_record_what): New enum.
22955         (cselib_init): Change argument to int.
22956         (cselib_preserve_cfa_base_value): New prototype.
22957         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
22958         * dse.c (dse_step1): Likewise.
22959         * cfgcleanup.c (thread_jump): Likewise.
22960         * sched-deps.c (sched_analyze): Likewise.
22961         * gcse.c (local_cprop_pass): Likewise.
22962         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
22963         If FN is non-NULL, call the callback always and whenever it returns
22964         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
22965         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
22966         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
22967         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
22968         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
22969         * var-tracking.c: Include recog.h.
22970         (bb_stack_adjust_offset): Remove.
22971         (vt_stack_adjustments): Don't call it, instead just gather the
22972         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
22973         (adjust_stack_reference): Remove.
22974         (compute_cfa_pointer): New function.
22975         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
22976         (struct adjust_mem_data): New type.
22977         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
22978         functions.
22979         (get_address_mode): New function.
22980         (replace_expr_with_values): Use it.
22981         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
22982         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
22983         (adjust_sets): Remove.
22984         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
22985         Use get_address_mode.
22986         (get_adjusted_src): Remove.
22987         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
22988         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
22989         (add_with_sets): Don't call adjust_sets.
22990         (fp_setter, vt_init_cfa_base): New functions.
22991         (vt_initialize): Change return type to bool.  Move most of pool etc.
22992         initialization to the beginning of the function from end.  Pass
22993         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
22994         If !frame_pointer_needed, call vt_stack_adjustment before mos
22995         vector is filled, call vt_init_cfa_base if argp/framep has been
22996         eliminated to sp.  If frame_pointer_needed and argp/framep has
22997         been eliminated to hard frame pointer, set
22998         hard_frame_pointer_adjustment and call vt_init_cfa_base after
22999         encountering fp setter in the prologue.  For MO_ADJUST, call
23000         log_op_type before pusing the op into mos vector, not afterwards.
23001         Call adjust_insn before cselib_process_insn/add_with_sets,
23002         call cancel_changes (0) afterwards.
23003         (variable_tracking_main_1): Adjust for vt_initialize calling
23004         vt_stack_adjustments and returning whether it succeeded or not.
23005
23006 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
23007
23008         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
23009         debug statements.
23010
23011 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
23012
23013         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
23014         has been set.
23015         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
23016         drap_reg has not been set.
23017
23018 2010-03-15  Michael Matz  <matz@suse.de>
23019
23020         PR middle-end/43300
23021         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
23022         use it to expand block copies.
23023         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
23024         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
23025         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
23026
23027 2010-03-15  Richard Guenther  <rguenther@suse.de>
23028
23029         PR tree-optimization/43367
23030         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
23031         elimination check.
23032
23033 2010-03-15  Richard Guenther  <rguenther@suse.de>
23034
23035         PR tree-optimization/43317
23036         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
23037
23038 2010-03-15  Martin Jambor  <mjambor@suse.cz>
23039
23040         PR tree-optimization/43141
23041         * tree-sra.c (create_abstract_origin): New function.
23042         (modify_function): Call create_abstract_origin.
23043
23044 2010-03-15  Chris Demetriou  <cgd@google.com>
23045
23046         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
23047         wasn't copied.
23048
23049 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23050
23051         PR middle-end/43354
23052         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
23053         call insert_out_of_ssa_copy for default definitions.
23054
23055 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23056
23057         * graphite-clast-to-gimple.c (my_long_long): Defined.
23058         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
23059         * graphite-sese-to-poly.c (my_long_long): Defined.
23060         (scop_ivs_can_be_represented): Use it.
23061
23062 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23063
23064         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
23065         graphite-max-bbs-per-function, and loop-block-tile-size.
23066         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
23067         with "maximum".
23068         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
23069
23070 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23071
23072         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
23073         forward declaration.
23074         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
23075         (add_upper_bounds_from_estimated_nit): New.
23076         (build_loop_iteration_domains): Use it.
23077
23078 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23079
23080         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
23081
23082 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23083
23084         PR middle-end/43306
23085         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
23086         should be an INTEGER_CST.  Also handle CASE_CONVERT.
23087
23088 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23089
23090         * graphite.c (graphite_initialize): To bound the number of bbs per
23091         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
23092         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
23093         * doc/invoke.texi: Document it.
23094
23095 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23096
23097         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
23098         * graphite-sese-to-poly.h (build_poly_scop): Same.
23099
23100 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23101
23102         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
23103         the number of parameters in the scop.  Use as an upper bound
23104         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
23105         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
23106         * doc/invoke.texi: Document it.
23107
23108 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
23109
23110         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
23111         * doc/c-tree.texi: Remove.
23112         * doc/generic.texi: Merge c-tree.texi here.
23113         * doc/gccint.texi (Trees): Remove menu entry.
23114         (c-tree.texi): Remove @include.
23115         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
23116         * doc/languages.texi (Reading RTL): Ditto.
23117
23118 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
23119
23120         PR target/42869
23121         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
23122
23123 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23124
23125         PR middle-end/42431
23126         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
23127         code added to work around reload clobbering CONST insns.
23128
23129 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
23130
23131         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
23132         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
23133         (cselib_preserve_only_values): Remove retain argument, don't
23134         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
23135         * cselib.h (cselib_preserve_only_values): Remove retain argument.
23136         * var-tracking.c (micro_operation): Move insn field before union.
23137         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
23138         (struct variable_tracking_info_def): Remove n_mos field, change
23139         mos into a vector of micro_operations.
23140         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
23141         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
23142         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
23143         changing into a vector.
23144         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
23145         come before all other uops generated by add_stores.
23146         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
23147         argument removal.
23148         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
23149         a vector.  Run just one pass over the bbs instead of separate counting
23150         and computation phase.
23151         (vt_finalize): Free VTI (bb)->mos vector instead of array.
23152
23153         PR debug/43329
23154         * tree-inline.c (remap_decls): Put old_var rather than origin_var
23155         into *nonlocalized_list vector.
23156         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
23157         even if origin is non-NULL.
23158         (gen_variable_die): Likewise.
23159         (process_scope_var): Don't change origin.
23160         (gen_decl_die): Likewise.
23161         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
23162         before adding new edges instead of after it, fix moving over
23163         debug stmts.
23164
23165 2010-03-11  David S. Miller  <davem@davemloft.net>
23166
23167         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
23168         of four.
23169         * configure: Rebuild.
23170
23171 2010-03-11  Martin Jambor  <mjambor@suse.cz>
23172
23173         PR tree-optimization/43257
23174         * tree.c (assign_assembler_name_if_neeeded): New function.
23175         (free_lang_data_in_cgraph): Assembler name assignment moved to the
23176         above new function.
23177         * tree.h (assign_assembler_name_if_neeeded): Declare.
23178         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
23179         the function if needed.
23180
23181 2010-03-11  Chris Demetriou  <cgd@google.com>
23182
23183         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
23184         include/stdint-gcc.h, and include/stdint.h world-readable.
23185
23186 2010-03-11  Richard Guenther  <rguenther@suse.de>
23187
23188         PR tree-optimization/43255
23189         * tree-vrp.c (process_assert_insertions_for): Do not insert
23190         asserts for trivial conditions.
23191
23192 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23193
23194         PR tree-optimization/43280
23195         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
23196         generation.  Move calculation of size out of the if branch.
23197         (find_bswap): Modify compare number generation.
23198
23199 2010-03-11  Richard Guenther  <rguenther@suse.de>
23200
23201         PR lto/43200
23202         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
23203         (input_gimple_stmt): Fixup handled component types during
23204         operand read.  Also fix up decls in ADDR_EXPRs.
23205
23206 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
23207
23208         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
23209         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
23210
23211 2010-03-10  Jan Hubicka  <jh@suse.cz>
23212
23213         PR c/43288
23214         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
23215         * varasm.c (get_variable_section): Don't do that here...
23216         (make_decl_rtl): ... and here.
23217         (do_assemble_alias): Produce decl RTL.
23218         (assemble_alias): Likewise.
23219
23220 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23221
23222         PR debug/43290
23223         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
23224         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
23225         of fde->vdrap_reg.
23226         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
23227         (based_loc_descr): Only express drap or vdrap regno based expressions
23228         using DW_OP_fbreg when not optimizing.
23229         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
23230         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
23231         REG_CFA_SET_VDRAP note.
23232
23233 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
23234
23235         PR tree-optimization/43236
23236         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
23237         error in calculation of base address in reverse iteration case.
23238         (generate_builtin): Take number of latch executions if the statement
23239         is in the latch.
23240
23241 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
23242
23243         PR middle-end/42859
23244         * tree-eh.c: Include pointer-set.h.
23245         (lower_eh_dispatch): Filter out duplicate case labels and
23246         remove the unneeded edge when the label is unused.  Return
23247         true when some edges are removed.
23248         (execute_lower_eh_dispatch): When any lowering resulted in
23249         removing an edge, also delete unreachable blocks.
23250
23251 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23252
23253         PR bootstrap/43287
23254         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23255         UNSPEC_MACHOPIC_OFFSET.
23256
23257 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
23258
23259         PR target/43294
23260         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
23261         (m68k_delegitimize_address): New function.
23262
23263 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
23264
23265         PR debug/43299
23266         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
23267
23268         PR debug/43299
23269         * var-tracking.c (adjust_sets): New function.
23270         (count_with_sets, add_with_sets): Use it.
23271         (get_adjusted_src): New inline function.
23272         (add_stores): Use it.
23273
23274         PR debug/43304
23275         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
23276         call cselib_dummy_expand_value_rtx_cb instead of
23277         cselib_expand_value_rtx_cb.
23278
23279         PR debug/43293
23280         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
23281         * config/i386/i386.c: Include debug.h and dwarf2out.h.
23282         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
23283         and .cfi_endproc around the pic thunks.
23284         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
23285         all queued unwind info register saves are saved before the call.
23286         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
23287         considered as sp-=4 for unwind info and the pop as sp+=4 which
23288         also clobbers dest, but doesn't actually restore it.
23289
23290         PR debug/43290
23291         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
23292         RTX_FRAME_RELATED_P.
23293
23294 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23295
23296         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
23297         whitespaces in output template.
23298
23299 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23300
23301         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
23302         out array boundary.
23303
23304 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23305
23306         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
23307         builtins.exp in a separate job.
23308
23309 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23310
23311         * graphite-sese-to-poly.c (add_param_constraints): Use
23312         lower_bound_in_type and upper_bound_in_type.
23313
23314 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23315
23316         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
23317         instead of unsigned_type_node.
23318
23319 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23320             Reza Yazdani  <reza.yazdani@amd.com>
23321
23322         PR middle-end/43065
23323         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
23324         on pointer type parameters.
23325
23326 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23327
23328         PR middle-end/42644
23329         PR middle-end/42130
23330         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
23331         handle conversions from pointer to integers.
23332         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
23333         induction variable, to be able to work with code generated by CLooG.
23334         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
23335         (build_poly_scop): Bail out if we cannot codegen a loop.
23336
23337 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23338
23339         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
23340         code generation with gloog_error.
23341
23342 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23343
23344         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
23345         Call fold_convert on all the returned values.
23346         (expand_scalar_variables_expr): Pass to
23347         expand_scalar_variables_ssa_name the type of the resulting expression.
23348
23349 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23350
23351         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
23352         ppl_min_for_le_pointset.
23353         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
23354         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
23355
23356 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23357
23358         * graphite-dependences.c (map_into_dep_poly): Removed.
23359         (dependence_polyhedron_1): Use combine_context_id_scat.
23360
23361 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23362
23363         * graphite-poly.h (struct poly_scattering): Add layout documentation.
23364         (struct poly_bb): Same.
23365         (combine_context_id_scat): New.
23366
23367 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23368
23369         PR middle-end/42326
23370         * sese.c (name_defined_in_loop_p): Return false for default
23371         definitions.
23372
23373 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23374
23375         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
23376         and clean up the logic.
23377
23378 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23379
23380         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
23381         early return.
23382
23383 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23384
23385         * var-tracking.c (remove_cselib_value_chains): Define only for
23386         ENABLE_CHECKING.
23387         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
23388         delete_slot_part, emit_notes_for_differences_1): Don't call
23389         remove_cselib_value_chains here.
23390         (set_slot_part, emit_notes_for_differences_2): Don't call
23391         add_cselib_value_chains here.
23392         (preserved_values): New vector.
23393         (preserve_value): New function.
23394         (add_uses, add_stores, vt_add_function_parameters): Use it
23395         instead of cselib_preserve_value.
23396         (changed_values_stack): New vector.
23397         (check_changed_vars_0): New function.
23398         (check_changed_vars_1, check_changed_vars_2): Use it.
23399         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
23400         changed_values_stack VALUEs.
23401         (vt_emit_notes): For all preserved_values call
23402         add_cselib_value_chains.  If ENABLE_CHECKING call
23403         remove_cselib_value_chains before verifying value_chains is empty.
23404         Initialize and free changed_values_stack.
23405         (vt_initialize): Initialize preserved_values.
23406         (vt_finalize): Free preserved_values.
23407
23408 2010-03-08  Richard Guenther  <rguenther@suse.de>
23409
23410         PR tree-optimization/43269
23411         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
23412         region detection.
23413
23414 2010-03-08  Martin Jambor  <mjambor@suse.cz>
23415
23416         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
23417         (ipa_is_param_called): Removed.
23418         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
23419         (ipa_print_node_params): Do not print the called flag.
23420         (ipa_write_node_info): Do not stream the called flag.
23421         (ipa_read_node_info): Likewise.
23422
23423 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
23424
23425         PR debug/43176
23426         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
23427         * cselib.c (struct expand_value_data): Add dummy field.
23428         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
23429         dummy to false.
23430         (cselib_dummy_expand_value_rtx_cb): New function.
23431         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
23432         any rtl.
23433         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
23434         * var-tracking.c: Include pointer-set.h.
23435         (variable): Change n_var_parts to char from int.  Add
23436         cur_loc_changed and in_changed_variables fields.
23437         (variable_canonicalize): Remove.
23438         (shared_var_p): New inline function.
23439         (unshare_variable): Maintain cur_loc_changed and
23440         in_changed_variables fields.  If var was in changed_variables,
23441         replace it there with new_var.  Just copy cur_loc instead of
23442         resetting it to something else.
23443         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
23444         (dataflow_set_union): Don't call variable_canonicalize.
23445         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
23446         of their DEBUG_EXPR_TREE_DECLs.
23447         (canonicalize_loc_order_check): Verify that cur_loc is NULL
23448         and in_changed_variables and cur_loc_changed is false.
23449         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
23450         and cur_loc_changed.  Don't update cur_loc here.
23451         (variable_merge_over_src): Don't call variable_canonicalize.
23452         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
23453         removing loc that is equal to cur_loc, clear cur_loc,
23454         set cur_loc_changed and ensure variable_was_changed is called.
23455         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
23456         compare pointers in cur_loc check, if it is equal to loc,
23457         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
23458         (variable_different_p): Remove compare_current_location argument,
23459         don't compare cur_loc.
23460         (dataflow_set_different_1): Adjust variable_different_p caller.
23461         (variable_was_changed): If dv had some var in changed_variables
23462         already, reset in_changed_variables flag for it and propagate
23463         cur_loc_changed over to the new variable.  On empty var
23464         always set cur_loc_changed.  Set in_changed_variables on whatever
23465         var is added to changed_variables.
23466         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
23467         Use shared_var_p.  When removing loc that is equal to cur_loc,
23468         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
23469         end, don't set it to something else, just call variable_was_changed.
23470         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
23471         loc being removed, clear cur_loc and set cur_loc_changed.
23472         Set cur_loc_changed if all locations have been removed.
23473         (struct expand_loc_callback_data): New type.
23474         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
23475         allocated.  Always create SUBREGs if simplify_subreg failed.
23476         Prefer to use cur_loc, when that fails and still in
23477         changed_variables (and seen first time) recompute it.  Set
23478         cur_loc_changed of variables which had to change cur_loc and
23479         compute elcd->cur_loc_changed if any of the subexpressions used
23480         had to change cur_loc.
23481         (vt_expand_loc): Adjust to pass arguments in
23482         expand_loc_callback_data structure.
23483         (vt_expand_loc_dummy): New function.
23484         (emitted_notes): New variable.
23485         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
23486         that weren't used for any other decl in current
23487         emit_notes_for_changes call call vt_expand_loc_dummy to update
23488         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
23489         first loc_chain location if NULL before.  Always use just
23490         cur_loc instead of first loc_chain location.  When cur_loc_changed
23491         is false, when not --enable-checking=rtl just don't emit any note.
23492         When rtl checking, compute the note and assert it is the same
23493         as previous note.  Clear cur_loc_changed and in_changed_variables
23494         at the end before removing from changed_variables.
23495         (check_changed_vars_3): New function.
23496         (emit_notes_for_changes): Traverse changed_vars to call
23497         check_changed_vars_3 on each changed var.
23498         (emit_notes_for_differences_1): Clear cur_loc_changed and
23499         in_changed_variables.  Recompute cur_loc of new_var.
23500         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
23501         (vt_emit_notes): Initialize and destroy emitted_notes.
23502
23503 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
23504
23505         PR rtl-optimization/42220
23506         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
23507         Use verify_reg_tracked to determine if we should use OP_OUT rather
23508         than OP_INOUT.
23509         (build_def_use): If we see an in-out operand for a register that we
23510         know nothing about, treat is an output if possible, fail the block if
23511         not.
23512
23513 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23514
23515         PR debug/42897
23516         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
23517         permanently.
23518
23519 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23520
23521         PR debug/42897
23522         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
23523         uses of relevant DEFs that are dead outside the loop too.
23524
23525 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23526
23527         * var-tracking.c (dataflow_set_merge): Swap src and src2.
23528         Reverted:
23529         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
23530         PR debug/41371
23531         * var-tracking.c (values_to_unmark): New variable.
23532         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
23533         values_to_unmark vector.  Moved body to...
23534         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
23535         instead queue it into values_to_unmark vector.
23536         (vt_find_locations): Free values_to_unmark vector.
23537
23538 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
23539
23540         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
23541         (site.exp): Export them when plugins are enabled.
23542
23543 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
23544
23545         PR middle-end/42326
23546         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
23547         that contain scevs.
23548         (chrec_fold_multiply): Same.
23549
23550 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23551
23552         PR c/43248
23553         * c-decl.c (build_compound_literal): Return early if init is
23554         an error_mark_node.
23555
23556 2010-03-04  Martin Jambor  <mjambor@suse.cz>
23557
23558         PR tree-optimization/43164
23559         PR tree-optimization/43191
23560         * tree-sra.c (type_consists_of_records_p): Reject records with
23561         zero-size bit-fields at the end.
23562
23563 2010-03-04  Mike Stump  <mikestump@comcast.net>
23564
23565         * Makefile.in (TAGS): Remove *.y.
23566
23567 2010-03-04  Richard Guenther  <rguenther@suse.de>
23568
23569         PR tree-optimization/40761
23570         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
23571         in reverse order.
23572         (my_rev_post_order_compute): New function.
23573         (init_pre): Call it.
23574
23575 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23576
23577         PR middle-end/43209
23578         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
23579         decrease the cost of an IV candidate when the cost is infinite.
23580
23581 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23582
23583         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
23584         Use '3DNow!' for the extension of that name, ensure normal space
23585         after the string.
23586         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
23587
23588 2010-03-03  Jeff Law  <law@redhat.com>
23589
23590         * PR middle-end/32693
23591         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
23592         than gen_rtx_SUBREG.
23593         (extract_bit_field_1): Likewise.
23594
23595 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
23596
23597         * doc/sourcebuild.texi (Test directives): Document that arguments
23598         include-opts and exclude-opts are now optional for dg-skip-if,
23599         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
23600
23601 2010-03-03  Jason Merrill  <jason@redhat.com>
23602
23603         PR c++/12909
23604         * cgraph.h (varpool_node): Add extra_name field.
23605         * varpool.c (varpool_extra_name_alias): New.
23606         (varpool_assemble_decl): Emit extra name aliases.
23607         (varpool_mark_needed_node): Look past an extra name alias.
23608         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
23609         * lto-streamer-in.c (lto_input_tree): Read it.
23610         * lto-streamer-out.c (output_unreferenced_globals): Write it.
23611
23612 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
23613
23614         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
23615         (sparc*-*-solaris2*): ...this.
23616
23617 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
23618
23619         PR debug/43229
23620         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
23621         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
23622         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
23623         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
23624
23625         PR debug/43237
23626         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
23627         fallthrough to default handling, just with want_address 0 instead of 2.
23628         For single element lists, add_AT_loc directly, otherwise create an
23629         artificial variable DIE and stick location list to it.
23630
23631         PR debug/43177
23632         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
23633         (VAL_EXPR_HAS_REVERSE): Define.
23634         (reverse_op): New function.
23635         (add_stores): For reversible operations add an extra MO_VAL_USE.
23636
23637 2010-03-02  Jason Merrill  <jason@redhat.com>
23638
23639         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
23640
23641 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
23642
23643         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
23644         (sparc64-*-linux*): Likewise.
23645         (sparc64-*-solaris2*): Include assembler files before linker ones.
23646         (sparc-*-solaris2*): Simplify and reorder to match previous case.
23647         * config/sparc/gas.h: Delete.
23648         * config/sparc/sol2-64.h: Add copyright notice.
23649         * config/sparc/sol2-gas-bi.h: Likewise.
23650         * config/sparc/sol2-gld.h: Likewise.
23651         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
23652         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
23653         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
23654         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
23655         (sparc_elf_asm_named_section): Rename into...
23656         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
23657
23658 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
23659
23660         * config/alpha/alpha.c (override_options): Fix -mtune error message.
23661
23662 2010-03-02  Jeff Law  <law@redhat.com>
23663
23664         PR middle-end/42431
23665         * reload1.c (rtx_p, substitute_stack): Declare.
23666         (substitute): Record addresses of changed rtxs.
23667         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
23668         Restore the original rtx when complete.
23669         (reload): Free subsitute_stack when complete.
23670
23671 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
23672
23673         * doc/gccint.texi (menu): Add Testsuites as a chapter.
23674         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
23675         new chapter.
23676         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
23677         LTO Testing, gcov Testing, profopt Testing, compat Testing,
23678         Torture Tests): Change from subsection to section.
23679
23680 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
23681             Steven Bosscher  <steven@gcc.gnu.org>
23682
23683         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
23684         instead of bb.
23685
23686 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
23687
23688         PR middle-end/42640
23689         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
23690         the assignment from the new induction variable to the assignment
23691         of the value from the original loop PHI function.
23692
23693 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
23694             Daniel Jacobowitz  <dan@codesourcery.com>
23695
23696         * doc/sourcebuild.texi (Test directives): Clarify options to
23697         dg-skip-if.
23698
23699 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23700
23701         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
23702         Disable cfi directives unless GCC and gas agree on using read-only
23703         .eh_frame sections for 64-bit.
23704         * configure: Regenerate.
23705
23706 2010-03-01  Richard Guenther  <rguenther@suse.de>
23707
23708         PR tree-optimization/43220
23709         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
23710         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
23711
23712 2010-03-01  Richard Guenther  <rguenther@suse.de>
23713             Martin Jambor  <mjambor@suse.cz>
23714
23715         PR middle-end/41250
23716         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
23717         gimplified parameters.
23718
23719 2010-03-01  Christian Bruel  <christian.bruel@st.com>
23720
23721         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
23722
23723 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
23724
23725         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
23726
23727 2010-03-01  Richard Guenther  <rguenther@suse.de>
23728
23729         PR middle-end/43213
23730         * expr.c (expand_assignment): Use the alias-oracle to tell
23731         if the rhs aliases the result decl.
23732
23733 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23734
23735         PR pch/14940
23736         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
23737         to sol_gt_pch_get_address.
23738         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
23739         64-bit, SPARC and x86.
23740         (sol_gt_pch_get_address): New function.
23741
23742 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
23743
23744         * toplev.h (inform_n, error_n): Declare.
23745         * diagnostic.c (inform_n, error_n): New function.
23746
23747 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
23748
23749         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
23750         has no rtl yet when processing local_decls, queue it and recheck
23751         if deferred stack allocation hasn't assigned it rtl.
23752
23753 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
23754
23755         * config/sh/sh.c (unspec_bbr_uid): New.
23756         (gen_block_redirect): Use it instead of INSN_UID.
23757         (gen_far_branch): Likewise.
23758
23759 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
23760
23761         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
23762         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
23763
23764 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23765
23766         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
23767         (Warning Options): -Wno-conversion-null is valid for
23768         Objective-C++ as well.
23769         * doc/tm.texi (Named Address Spaces): Likewise.
23770         * doc/plugins.texi (Plugins): Replace TABs with spaces.
23771         * doc/tree-ssa.texi (Tree SSA): Likewise.
23772
23773 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23774
23775         PR bootstrap/43202
23776         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
23777         by default.  Don't set the default arch for
23778         i[34567]86-*-darwin*|x86_64-*-darwin*.
23779
23780 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23781
23782         PR bootstrap/43202
23783         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
23784         default.  Set the default 32bit/64bit archs with $with_arch
23785         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
23786
23787 2010-02-27  Richard Guenther  <rguenther@suse.de>
23788
23789         PR tree-optimization/43186
23790         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
23791         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
23792         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
23793         unroller iterations.
23794
23795 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23796
23797         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
23798         required and i[34567]86-*-* targets don't support 64bit ISA.
23799
23800 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
23801
23802         PR ada/43096
23803         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
23804         the same alias set.
23805
23806 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
23807
23808         * config.gcc: Set the default arch at least to Prescott for
23809         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
23810         if SSE math is enabled.
23811
23812 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23813
23814         * diagnostic.c (diagnostic_initialize): Update.
23815         (diagnostic_report_diagnostic): Test inhibit_notes_p for
23816         informative notes.
23817         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
23818         (diagnostic_inhibit_notes): New.
23819         * toplev.c (process_options): inhibit notes with -fcompare-debug.
23820
23821 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23822
23823         PR c/20631
23824         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
23825         * doc/standards.texi: Likewise.
23826         * doc/extend.texi: Likewise.
23827         * doc/trouble.texi: Likewise.
23828         * doc/cppopts.texi: Likewise.
23829         * doc/install.texi: Likewise.
23830         * c.opt (std=c90,std=gnu90): New options.
23831         * c-opts.c (c_common_handle_option): Handle them.
23832
23833 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23834
23835         PR c/24577
23836         * c-decl.c (undeclared_variable): Use an informative note.
23837
23838 2010-02-26  Richard Guenther  <rguenther@suse.de>
23839
23840         PR tree-optimization/43186
23841         * gimple.h (gimple_fold): Remove.
23842         * gimple.c (gimple_fold): Remove.  Inline into single user ...
23843         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
23844         Try harder for conditions.
23845
23846 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
23847
23848         PR debug/43190
23849         * function.c (used_types_insert): Don't skip through named pointer
23850         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
23851         and it is different from the main variant's type.
23852
23853 2010-02-26  Nick Clifton  <nickc@redhat.com>
23854
23855         * config/rx/rx.md (sminsi3): Remove bogus alternative.
23856
23857 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
23858
23859         * config.gcc: Support --with-fpmath=sse for x86.
23860
23861         * config/i386/ssemath.h: New.
23862
23863         * doc/install.texi (--with-fpmath=sse): Documented.
23864
23865 2010-02-26  Richard Guenther  <rguenther@suse.de>
23866
23867         PR tree-optimization/43188
23868         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
23869         vector types of over-aligned element type.
23870
23871 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
23872
23873         PR target/43175
23874         * config/i386/i386.c (expand_vec_perm_blend): Use correct
23875         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
23876
23877 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
23878
23879         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
23880
23881 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
23882
23883         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
23884         * var-tracking.c: Include diagnostic.h.
23885         (debug_dv): New function.
23886         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
23887
23888         PR debug/43160
23889         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
23890         (add_value_chain, add_value_chains, remove_value_chain,
23891         remove_value_chains): Handle DEBUG_EXPRs.
23892         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
23893
23894         PR debug/43161
23895         * regcprop.c (struct queued_debug_insn_change): New type.
23896         (struct value_data_entry): Add debug_insn_changes field.
23897         (struct value_data): Add n_debug_insn_changes field.
23898         (debug_insn_changes_pool): New variable.
23899         (free_debug_insn_changes, apply_debug_insn_changes,
23900         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
23901         (kill_value_one_regno): Call free_debug_insn_changes if needed.
23902         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
23903         fields.
23904         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
23905         changes for them.
23906         (copyprop_hardreg_forward_1): Don't call apply_change_group for
23907         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
23908         changes, call cprop_find_used_regs via note_stores.
23909         (copyprop_hardreg_forward): When copying vd from predecessor
23910         which has any queued DEBUG_INSN changes, make sure the pointers are
23911         cleared.  At the end call df_analyze and then if there are any
23912         DEBUG_INSN changes queued at the end of some basic block for still
23913         live registers, apply them.
23914         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
23915
23916 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
23917
23918         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
23919         (arm*-*-*): Ditto.
23920
23921 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
23922
23923         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
23924         targets.  Set the default with_cpu/with_arch from arch/cpu.
23925         Allow x86-64 and native for with_cpu/with_arch.
23926
23927 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
23928
23929         * ebitmap.c: Change calls to verify_popcount with calls to
23930         sbitmap_verify_popcount.
23931         (ebitmap_clear_bit): Fixed map->cacheindex test and
23932         map>cache update when bit clearing results in an empty
23933         element.
23934
23935 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
23936
23937         PR target/43154
23938         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
23939         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
23940         and support both V2DF and V2DI modes.
23941         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
23942         support both V2DF and V2DI modes.
23943         (general): Delete trailing whitespace from a few patterns.
23944
23945         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23946         V2DF/V2DI interleave high/low builtins.
23947
23948         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
23949         new VSX builtins.
23950
23951         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
23952         interleave high/low functions.
23953
23954 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23955
23956         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
23957         #pragma extern_prefix.
23958
23959 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
23960
23961         PR debug/43166
23962         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
23963         BLKmode, assert op0 is a MEM and just adjust its mode.
23964
23965         PR debug/43165
23966         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
23967         if bitpos isn't multiple of mode's bitsize.
23968
23969 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23970
23971         * c.opt (-ftemplate-depth=): New.
23972         (-ftemplate-depth-): Deprecate.
23973         * optc-gen.awk: Handle -ftemplate-depth=.
23974         * opth-gen.awk: Likewise.
23975         * c-opts.c (c_common_handle_option): Likewise.
23976         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
23977
23978 2010-02-24  Jason Merrill  <jason@redhat.com>
23979
23980         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
23981
23982 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23983
23984         * cfg.c (alloc_aux_for_block): Remove inline.
23985         (alloc_aux_for_edge): Likewise.
23986
23987 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23988
23989         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
23990
23991 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23992
23993         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
23994         * config/i386/sol2-gas.h: New file.
23995         * config.gcc (i[34567]86-*-solaris2*): Use it.
23996
23997 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23998
23999         PR c/43128
24000         * c-typeck.c (ep_convert_and_check): New.
24001         (build_conditional_expr): Use it.
24002         (build_binary_op): Likewise.
24003
24004 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
24005
24006         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
24007
24008         PR debug/43150
24009         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
24010         bounds even for -O+.
24011         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
24012         expr needs to have DECL_NAME set.
24013
24014 2010-02-24  Nick Clifton  <nickc@redhat.com>
24015
24016         * config/mep/mep.c: Include gimple.h.
24017         (mep_function_uses_sp): Delete unused function.
24018         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
24019         parameters.  Use unsigned integers to count args.  Return a
24020         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
24021
24022 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24023
24024         PR target/43107
24025         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
24026         greater or equal to nelt instead of 2 * nelt.
24027         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
24028         with nelt - 1.
24029
24030 2010-02-23  Jason Merrill  <jason@redhat.com>
24031
24032         PR debug/42800
24033         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
24034         in cfun->local_decls even if they have register types.
24035
24036         PR c++/42837
24037         * stor-layout.c (place_field): Don't warn about unnecessary
24038         DECL_PACKED if the type is packed.
24039
24040 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24041
24042         PR target/43139
24043         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
24044         GOTOFF relocs, even when the base reg isn't pic pointer.
24045
24046 2010-02-23  Michael Matz  <matz@suse.de>
24047
24048         PR debug/43077
24049         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
24050         (expand_gimple_basic_block): Generate and use debug temps if there
24051         are debug uses left after the last real use of TERed ssa names.
24052         Unlink debug immediate uses when they are expanded.
24053
24054 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24055
24056         PR 43123
24057         * config/i386/i386.c (override_options): Reorganise to provide
24058         better error messages.
24059
24060 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24061
24062         PR middle-end/43083
24063         * graphite-scop-detection.c (create_single_exit_edge): Move
24064         the call to find_single_exit_edge to....
24065         (create_sese_edges): ...here.  Don't handle multiple edges
24066         exiting the function.
24067         (build_graphite_scops): Don't handle multiple edges
24068         exiting the function.
24069
24070 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24071
24072         PR middle-end/43097
24073         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
24074         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
24075
24076 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24077
24078         PR middle-end/43026
24079         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
24080
24081 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24082
24083         PR c++/43126
24084         * c-typeck.c (convert_arguments): Print declaration location.
24085         * c-common.c (validate_nargs): Rename as
24086         builtin_function_validate_nargs.
24087         (check_builtin_function_arguments): Update.
24088
24089 2010-02-22  Richard Guenther  <rguenther@suse.de>
24090
24091         PR lto/43045
24092         * tree-inline.c (declare_return_variable): Use the type of
24093         the call stmt lhs if available.
24094
24095 2010-02-22  Duncan Sands  <baldrick@free.fr>
24096
24097         * passes.c (register_pass): Always consider all pass lists when
24098         ref_pass_instance_number is zero.
24099
24100 2010-02-22  Richard Guenther  <rguenther@suse.de>
24101
24102         PR tree-optimization/42749
24103         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
24104         parameter.  Do arithmetic in the original type.
24105         (update_accumulator_with_ops): Likewise.
24106         (adjust_accumulator_values): Adjust.
24107
24108 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24109
24110         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
24111         (QI to BLKmode splitter): New splitter.
24112
24113 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
24114
24115         * config/i386/i386.c (initial_ix86_tune_features): Turn on
24116         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
24117
24118 2010-02-22  Richard Guenther  <rguenther@suse.de>
24119
24120         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
24121
24122 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
24123
24124         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
24125         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
24126         ($(T)crti.o, $(T)crtn.o): Remove rules.
24127
24128 2010-02-21  Tobias Burnus  <burnus@net-b.de>
24129
24130         PR fortran/35259
24131         * doc/invoke.texi (-fassociative-math): Document that this
24132         option is automatically enabled for Fortran.
24133
24134 2010-02-20  David S. Miller  <davem@davemloft.net>
24135
24136         * configure.ac: Test if linker and assembler properly support
24137         GOTDATA_OP relocations.
24138         * configure: Rebuild.
24139         * config.in: Likewise.
24140         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
24141         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
24142         (movsi_high_pic): Likewise.
24143         (movdi_lo_sum_pic): Likewise.
24144         (movdi_high_pic): Likewise.
24145         (movsi_pic_gotdata_op): New pattern.
24146         (movdi_pic_gotdata_op): Likewise.
24147         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
24148         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
24149
24150 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
24151
24152         PR target/43067
24153         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
24154         attribute to ssemul.
24155         (xop_mulv2div2di3_high): Ditto.
24156
24157 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24158
24159         PR c++/35669
24160         * c.opt (Wconversion-null): New option.
24161         * doc/invoke.texi (Wconversion-null): Document.
24162
24163 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24164
24165         * common.opt (Wlarger-than-): Add Undocumented.
24166
24167 2010-02-19  Mike Stump  <mikestump@comcast.net>
24168
24169         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
24170
24171 2010-02-19  Jason Merrill  <jason@redhat.com>
24172
24173         PR target/40332
24174         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
24175         * configure: Likewise.
24176
24177 2010-02-20  Alan Modra  <amodra@gmail.com>
24178
24179         PR middle-end/42344
24180         * cgraph.h (cgraph_make_decl_local): Declare.
24181         * cgraph.c (cgraph_make_decl_local): New function.
24182         (cgraph_make_node_local): Use it.
24183         * cgraphunit.c (cgraph_function_versioning): Likewise.
24184         * ipa.c (function_and_variable_visibility): Likewise.
24185
24186 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24187
24188         PR bootstrap/43121
24189         * except.c (sjlj_emit_function_enter): Don't call
24190         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
24191         directly.
24192         * rtl.h (add_reg_br_prob_note): Remove prototype.
24193
24194 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24195
24196         PR 41779
24197         * c-common.c (conversion_warning): Remove widening conversions
24198         before checking the conversion of integers to reals.
24199
24200 2010-02-19  Mike Stump  <mikestump@comcast.net>
24201
24202         PR middle-end/43125
24203         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
24204
24205         PR objc/43061
24206         * cgraphunit.c (process_function_and_variable_attributes): Check
24207         DECL_PRESERVE_P instead of looking up attribute "used".
24208         * ipa-pure-const.c (check_decl): Likewise.
24209         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
24210         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
24211         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
24212         instead of attribute "used".
24213         * config/sol2-c.c (solaris_pragma_init): Likewise.
24214         (solaris_pragma_fini): Likewise.
24215
24216 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24217
24218         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
24219         Use XCNEW instead of xcalloc.
24220         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
24221         XNEW instead of xmalloc.
24222         (get_fields): Use XNEWVEC instead of xmalloc.
24223
24224         PR debug/43084
24225         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
24226         populate vars array.
24227         (create_new_general_access): For debug stmts just reset value.
24228         (get_stmt_accesses): For accesses within debug stmts just record them
24229         using add_access_to_acc_sites instead of preventing the peeling or
24230         counting them as accesses.
24231
24232         PR middle-end/42233
24233         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
24234
24235 2010-02-19  Richard Guenther  <rguenther@suse.de>
24236
24237         PR tree-optimization/42916
24238         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
24239         instructions.
24240
24241 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
24242
24243         * configure.ac: Replace all uses of changequote in macro arguments
24244         with proper quoting.
24245
24246 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24247
24248         PR middle-end/42233
24249         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
24250
24251 2010-02-19  Richard Guenther  <rguenther@suse.de>
24252
24253         PR tree-optimization/42944
24254         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
24255         test for aliasing with errno.
24256
24257 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24258
24259         PR middle-end/42233
24260         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
24261         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
24262         * dojump.c: Include output.h.
24263         (inv): New inline function.
24264         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
24265         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
24266         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
24267         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
24268         argument, pass it down to other calls.
24269         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
24270         add REG_BR_PROB note to the conditional jump.
24271         * cfgexpand.c (add_reg_br_prob_note): Removed.
24272         (expand_gimple_cond): Don't call it, add the probability
24273         as last argument to jumpif_1/jumpifnot_1.
24274         * Makefile.in (dojump.o): Depend on output.h.
24275         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
24276         callers.
24277         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
24278         * stmt.c (do_jump_if_equal): Likewise.
24279         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
24280         * loop-unswitch.c (compare_and_jump_seq): Likewise.
24281         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
24282         Likewise.
24283         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
24284         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
24285         jumpifnot_1 callers.
24286         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
24287         callers.
24288         (store_expr): Adjust jumpifnot caller.
24289         (store_constructor): Adjust jumpif caller.
24290
24291         PR middle-end/42233
24292         * gimplify.c (gimple_boolify): For __builtin_expect call
24293         gimple_boolify also on its first argument.
24294
24295 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
24296
24297         * configure.ac (gnu-unique-object): Wrap regexps using [] in
24298         changequote block.
24299         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
24300         * configure: Regenerated.
24301
24302 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24303
24304         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
24305         lang_hooks.types_compatible_p instead of comptypes.
24306
24307 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24308
24309         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
24310         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
24311         if __prefer_thumb__ is defined.
24312
24313 2010-02-18  Martin Jambor  <mjambor@suse.cz>
24314
24315         PR tree-optimization/43066
24316         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
24317         array with zero-sized element type.
24318
24319 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
24320
24321         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
24322         rtx, allocate struct var_loc_node here and return it to the
24323         caller, and only if it is actually needed.
24324         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
24325         move it earlier and return immediately if it returns NULL.
24326
24327 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
24328
24329         * config/sparc/gas.h: New file.  Restore
24330         TARGET_ASM_NAMED_SECTION to its ELF default.
24331         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
24332         check !HAVE_GNU_AS.
24333         * config/sparc/sparc.c (sparc_elf_asm_named_section):
24334         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
24335         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
24336         after sparc/sysv4.h.
24337
24338 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
24339
24340         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
24341
24342 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
24343
24344         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
24345         patterns from predicated pattern.
24346
24347 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
24348
24349         PR target/43103
24350         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
24351         for insn mnemonic suffix.
24352
24353 2010-02-17  Richard Guenther  <rguenther@suse.de>
24354
24355         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
24356         to loop PHI nodes.
24357
24358 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
24359
24360         PR debug/42918
24361         * caller-save.c (save_call_clobbered_regs): If BB ends with
24362         a DEBUG_INSN, move any notes in between last real insn and the last
24363         DEBUG_INSN after the last DEBUG_INSN.
24364
24365 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
24366
24367         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
24368         Fix return type.  Fix argument type.  Explain meaning of return value.
24369
24370 2010-02-16  Richard Guenther  <rguenther@suse.de>
24371
24372         PR tree-optimization/41043
24373         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
24374         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
24375         statements ...
24376         (vrp_visit_phi_node): ... but only for loop PHI nodes.
24377
24378 2010-02-16  Ira Rosen  <irar@il.ibm.com>
24379
24380         PR tree-optimization/43074
24381         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
24382         * tree-vect-loop.c (vect_analyze_loop_operations): Add
24383         vectorizable cycles in hybrid SLP check.
24384         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
24385
24386 2010-02-16  Richard Guenther  <rguenther@suse.de>
24387
24388         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
24389         (true_dependence): If memrefs_conflict_p computes must-alias
24390         trust it.  Move TBAA check after offset-based disambiguation.
24391         (canon_true_dependence): Likewise.
24392
24393 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
24394
24395         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
24396         * doc/invoke.texi: Document it.
24397         * var-tracking.c: Include toplev.h and params.h.
24398         (vt_find_locations): Return bool indicating success.  Compute
24399         hash sizes unconditionally.  Check new parameter, report.
24400         (variable_tracking_main_1): Check vt_find_locations results and
24401         retry.  Renamed from...
24402         (variable_tracking_main): ... this.  New wrapper to preserve
24403         flag_var_tracking_assignments.
24404         * Makefile.in (var-tracking.o): Adjust dependencies.
24405
24406 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
24407             Jakub Jelinek  <jakub@redhat.com>
24408
24409         PR target/42854
24410         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
24411         if weak_import attribute is present.
24412         * config/darwin.c (machopic_select_section): Likewise.
24413
24414 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
24415
24416         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
24417         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
24418         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
24419         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
24420
24421         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
24422         types.
24423
24424         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24425         Fix argument types.
24426
24427         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
24428         Rewrite text to refer to the names.
24429
24430 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
24431
24432         * config/i386/i386-builtin-types.def
24433         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
24434         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
24435         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
24436         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
24437         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
24438         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
24439         IX86_BUILTIN_VPERMIL2PS256.
24440         (MULTI_ARG_4_DF2_DI_I): Defined.
24441         (MULTI_ARG_4_DF2_DI_I1): Defined.
24442         (MULTI_ARG_4_SF2_SI_I): Defined.
24443         (MULTI_ARG_4_SF2_SI_I1): Defined.
24444         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
24445         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
24446         __builtin_ia32_vpermil2ps256.
24447         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24448         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24449         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
24450         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24451         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24452         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
24453         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
24454         CODE_FOR_xop_vpermil2v8sf3.
24455         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
24456         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
24457         * config/i386/xopintrin.h (_mm_permute2_pd): New.
24458         (_mm256_permute2_pd): New.
24459         (_mm_permute2_ps): New.
24460         (_mm256_permute2_ps): New.
24461
24462 2010-02-15  Nick Clifton  <nickc@redhat.com>
24463
24464         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
24465         boolean parameters.  Use emit_jump_insn when emitting a pop
24466         instruction containing a return insn.
24467         (push): Use 'true' rather than '1' as second parameter to F.
24468         (h8300_expand_prologue): Likewise.
24469         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
24470         (h8300_expand_epilogue): Likewise.
24471
24472 2010-02-15  Richard Guenther  <rguenther@suse.de>
24473
24474         PR middle-end/43068
24475         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
24476         if that is zero.
24477
24478 2010-02-15  Nick Clifton  <nickc@redhat.com>
24479
24480         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
24481         delta.
24482
24483 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
24484
24485         * intl.c (fake_ngettext): New function.
24486         * intl.h (fake_ngettext): Declare.
24487         (ngettext): Define macro.
24488         * collect2.c (notice_translated): New function.
24489         (main): Use notice_translated and ngettext.
24490         * collect2.h (notice_translated): Declare.
24491
24492 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
24493
24494         * reorg.c (delete_computation): Comment fixes.
24495         * caller-save.c (setup_save_areas): Idem.
24496         * sel-sched-dump.c (dump_lv_set): Idem.
24497         * rtl.def: Idem.
24498
24499 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24500
24501         * config/s390/s390.c (s390_sched_init): New function.
24502         (TARGET_SCHED_INIT): Target hook defined.
24503
24504 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
24505             Jack Howarth  <howarth@bromo.med.uc.edu>
24506             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
24507
24508         PR target/42982
24509         Partial revert of unintended change in fix for PR41605.
24510         * config/darwin.h: Fix typo.
24511         * config/darwin9.h: Same.
24512
24513 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
24514
24515         * c-pch.c (pch_init): Clear v.
24516
24517 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24518
24519         PR middle-end/42930
24520         * graphite-scop-detection.c (graphite_can_represent_scev): Call
24521         graphite_can_represent_init for MULT_EXPR.
24522
24523 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24524
24525         PR middle-end/42914
24526         PR middle-end/42530
24527         * graphite-sese-to-poly.c (remove_phi): New.
24528         (translate_scalar_reduction_to_array): Call remove_phi.
24529
24530 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24531
24532         PR middle-end/42771
24533         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
24534         * graphite-clast-to-gimple.h (gloog): Update declaration.
24535         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
24536         * graphite-poly.h (struct poly_bb): Add missing comments.
24537         (struct scop): Add poly_scop_p field.
24538         (POLY_SCOP_P): New.
24539         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
24540         * graphite.c (graphite_transform_loops): Build the polyhedral
24541         representation for each scop before code generation.
24542         * sese.c (rename_variables_in_operand): Removed.
24543         (rename_variables_in_expr): Return the renamed expression.
24544         (rename_sese_parameters): New.
24545         * sese.h (rename_sese_parameters): Declared.
24546
24547 2010-02-11  Richard Guenther  <rguenther@suse.de>
24548
24549         PR tree-optimization/42998
24550         * tree-ssa-pre.c (create_expression_by_pieces): Treat
24551         POINTER_PLUS_EXPR properly.
24552
24553 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24554             Changpeng Fang  <changpeng.fang@amd.com>
24555
24556         PR middle-end/40886
24557         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
24558         the cost of an IV candidate when the IV is used in a test against zero.
24559
24560         * gcc.dg/tree-ssa/ivopts-3.c: New.
24561
24562 2010-02-11  Richard Guenther  <rguenther@suse.de>
24563
24564         PR lto/41664
24565         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
24566         pointer-vs-decl case by swapping refs.  Handle some cases
24567         of pointer-vs-decl disambiguations more conservatively.
24568         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
24569         to false after expanding.
24570
24571 2010-02-11  Richard Guenther  <rguenther@suse.de>
24572
24573         PR driver/43021
24574         * gcc.c (process_command): Handle LTO file@offset case more
24575         appropriately.
24576
24577 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
24578
24579         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
24580         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
24581         of DEBUG_INSNs.
24582         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
24583
24584         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
24585         if MEM's mode size isn't DWARF2_ADDR_SIZE.
24586         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
24587         Optimize eq/ne comparisons when both arguments are known to be
24588         zero-extended.
24589         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
24590         Don't mask operands unnecessarily if they are known to be already
24591         zero-extended.
24592
24593 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
24594
24595         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
24596         instead of loop.
24597
24598 2010-02-10  Richard Guenther  <rguenther@suse.de>
24599
24600         PR tree-optimization/43017
24601         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
24602         for wrapping signed arithmetic.
24603
24604 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
24605
24606         PR debug/43010
24607         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
24608         if no debug info should be emitted for it.
24609
24610 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24611
24612         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
24613         note when flag_exceptions is set.
24614
24615 2010-02-10  Duncan Sands  <baldrick@free.fr>
24616
24617         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
24618
24619 2010-02-10  Richard Guenther  <rguenther@suse.de>
24620
24621         PR c/43007
24622         * tree.c (get_unwidened): Handle constants.
24623         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
24624
24625 2010-02-10  Martin Jambor  <mjambor@suse.cz>
24626
24627         PR lto/42985
24628         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
24629         check for variable argument counts independently.
24630
24631 2010-02-10  Christian Bruel  <christian.bruel@st.com>
24632
24633         PR target/42841
24634         * config/sh/sh.c (find_barrier): Increase length for non delayed
24635         conditional branches.
24636
24637 2010-02-10  Christian Bruel  <christian.bruel@st.com>
24638
24639         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
24640
24641 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
24642
24643         * builtins.c (set_builtin_user_assembler_name): Also handle
24644         ffs if int is smaller than word.
24645
24646 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
24647
24648         PR middle-end/42973
24649         * ira-conflicts.c (get_dup): Remove.
24650         (process_reg_shuffles): Add new parameter.  Use it as an
24651         additional guard for copy generation.
24652         (add_insn_allocno_copies): Rewrite.
24653
24654 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
24655
24656         * common.opt (fsched2-use-traces): Preserved for backward
24657         compatibility.
24658         * doc/invoke.texi: Remove the documentation about option
24659         -fsched2-use-traces.
24660         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
24661         flag_sched2_use_traces.
24662         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
24663         the backward compatibility flag section.
24664
24665 2010-02-09  Richard Guenther  <rguenther@suse.de>
24666
24667         PR tree-optimization/43008
24668         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
24669         make HEAP variables initialized from global memory if they
24670         are not known builtin functions.
24671         (find_func_aliases): Adjust.
24672
24673 2010-02-09  Richard Guenther  <rguenther@suse.de>
24674
24675         PR tree-optimization/43000
24676         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
24677         arithmetic manually.
24678
24679 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
24680
24681         PR tree-optimization/42931
24682         * tree-loop-linear.c (try_interchange_loops): Don't call
24683         double_int_mul if estimated_loop_iterations failed.
24684
24685 2010-02-08  Martin Jambor  <mjambor@suse.cz>
24686
24687         PR middle-end/42898
24688         * tree-sra.c (build_accesses_from_assign): Do not mark in
24689         should_scalarize_away_bitmap if stmt has volatile ops.
24690         (sra_modify_assign): Do not process assigns piecemeal if if stmt
24691         has volatile ops.
24692
24693 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
24694
24695         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
24696
24697 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
24698
24699         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
24700         before the pattern.
24701
24702 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
24703
24704         PR middle-end/42946
24705         * df-core.c (df_finish_pass): Change type of saved_flags to int.
24706
24707 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
24708
24709         PR middle-end/42988
24710         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
24711         to unknown_dependence.
24712         (graphite_legal_transform_dr): Handle the unknown_dependence.
24713         (graphite_carried_dependence_level_k): Same.
24714
24715 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
24716
24717         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
24718
24719 2010-02-07  Richard Guenther  <rguenther@suse.de>
24720
24721         PR middle-end/42991
24722         * expr.c (get_inner_reference): Always initialize *pbitsize.
24723
24724 2010-02-07  Richard Guenther  <rguenther@suse.de>
24725
24726         PR middle-end/42956
24727         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
24728         new ARRAY_REFs on variable size element or minimal index arrays.
24729         Complete.
24730         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
24731         gimple_fold_indirect_ref.
24732
24733 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
24734
24735         PR target/42957
24736         * arm.c (arm_override_options): Just return if the user has specified
24737         an invalid fpu name.
24738
24739 2010-02-03  Jason Merrill  <jason@redhat.com>
24740
24741         PR c++/42870
24742         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
24743         i386_pe_maybe_record_exported_symbol.
24744
24745 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
24746
24747         PR target/42924
24748         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
24749         (pa_delegitimize_address): New function.
24750
24751 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
24752
24753         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
24754         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
24755
24756 2010-02-05  Richard Guenther  <rguenther@suse.de>
24757
24758         PR lto/42762
24759         * lto-streamer-in.c (get_resolution): Deal with references
24760         to undefined functions.
24761
24762 2010-02-05  Richard Guenther  <rguenther@suse.de>
24763
24764         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
24765         (fold_const_aggregate_ref): Likewise.
24766         (ccp_fold_stmt): Substitute loads.
24767         (maybe_fold_reference): Verify types before substituting.
24768         Unshare properly.
24769         (fold_gimple_assign): Unshare properly.
24770         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
24771
24772 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
24773
24774         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
24775         for rs6000_gen_cell_microcode.
24776
24777 2010-02-04  Richard Guenther  <rguenther@suse.de>
24778
24779         PR rtl-optimization/42952
24780         * dse.c (const_or_frame_p): Remove MEM handling.
24781
24782 2010-02-04  Nick Clifton  <nickc@redhat.com>
24783
24784         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
24785         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
24786         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
24787         (mn10300_asm_output_mi_thunk): New function.
24788         (mn10300_can_output_mu_thunk): New function.
24789         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
24790         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
24791         (FUNCTION_ARG): Delete incorrect comment.
24792
24793 2010-02-03  Jason Merrill  <jason@redhat.com>
24794
24795         PR c++/40138
24796         * fold-const.c (operand_equal_p): Handle erroneous types.
24797
24798 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
24799
24800         * config/h8300/h8300.md (can_delay): Fix attibute condition.
24801
24802 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
24803
24804         PR rtl-optimization/42941
24805         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
24806         of xmalloc.
24807
24808 2010-02-03  Jason Merrill  <jason@redhat.com>
24809
24810         PR c++/35652
24811         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
24812
24813 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
24814
24815         PR debug/42896
24816         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
24817         (cselib_reset_table): Renamed from...
24818         (cselib_reset_table_with_next_value): ... this.
24819         (cselib_get_next_uid): Renamed from...
24820         (cselib_get_next_unknown_value): ... this.
24821         * cselib.c (next_uid): Renamed from...
24822         (next_unknown_value): ... this.
24823         (cselib_clear_table): Adjust.
24824         (cselib_reset_table): Adjust.  Renamed from...
24825         (cselib_reset_table_with_next_value): ... this.
24826         (cselib_get_next_uid): Adjust.  Renamed from...
24827         (cselib_get_next_unknown_value): ... this.
24828         (get_value_hash): Use hash.
24829         (cselib_hash_rtx): Likewise.
24830         (new_cselib_val): Adjust.  Set and dump uid.
24831         (cselib_lookup_mem): Pass next_uid as hash.
24832         (cselib_subst_to_values): Likewise.
24833         (cselib_log_lookup): Dump uid.
24834         (cselib_lookup): Pass next_uid as hash.  Adjust.
24835         (cselib_process_insn): Adjust.
24836         (cselib_init): Initialize next_uid.
24837         (cselib_finish): Adjust.
24838         (dump_cselib_table): Likewise.
24839         * dse.c (canon_address): Dump value uid.
24840         * print-rtl.c (print_rtx): Print value uid.
24841         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
24842         (dvuid): New type.
24843         (dv_uid): New function, sort of renamed from...
24844         (dv_htab_hash): ... this, reimplemented in terms of it and...
24845         (dv_uid2hash): ... this.  New.
24846         (variable_htab_eq): Drop excess assertions.
24847         (tie_break_pointers): Removed.
24848         (canon_value_cmp): Compare uids.
24849         (variable_post_merge_New_vals): Print uids.
24850         (vt_add_function_parameters): Adjust.
24851         (vt_initialize): Reset table.  Adjust.
24852
24853 2010-02-03  Richard Guenther  <rguenther@suse.de>
24854
24855         PR tree-optimization/42944
24856         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
24857         (call_may_clobber_ref_p_1): Likewise.  Properly handle
24858         malloc and calloc clobbering errno.
24859
24860 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
24861
24862         * doc/invoke.texi: Fix name of sched1 dump.
24863
24864         * opts.c (decode_options): Set flag_tree_switch_conversion
24865         only conditionally on optimize >= 2.
24866
24867         * gcse.c: Assorted comment fixes in pass description.
24868
24869 2010-02-03  Anthony Green  <green@moxielogic.com>
24870
24871         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
24872         nop padding in order to maintain alignment of storage location of
24873         target function address.
24874         (moxie_trampoline_init): Store target function address at newly
24875         aligned location.
24876         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
24877         to 32.
24878         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
24879
24880 2010-02-03  Richard Guenther  <rguenther@suse.de>
24881
24882         PR middle-end/42927
24883         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
24884
24885 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24886
24887         * config.gcc: Reenable check for obsolete targets.
24888         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
24889         mips-sgi-irix6.[0-4]*.
24890
24891 2010-02-02  Nick Clifton  <nickc@redhat.com>
24892
24893         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
24894         constant size of 4 as being the same as 0.
24895         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
24896         can take values in the range 0..4.
24897
24898 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
24899
24900         PR java/41991
24901         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
24902         as _darwin10_Unwind_FindEnclosingFunction().
24903         * libgcc-libsystem.ver: New.
24904
24905 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
24906
24907         PR target/41399
24908         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
24909         implicitly set registers.
24910
24911 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
24912
24913         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
24914         (arm_override_options): Allow automatic selection of the thread
24915         pointer register if thumb2.
24916         (legitimize_pic_address): Improve code sequences for Thumb2.
24917         (arm_call_tls_get_addr): Likewise.
24918         (legitimize_tls_address): Likewise.
24919         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
24920         (pic_load_addr_32bit): ... this.  New named pattern.
24921         * thumb2.md (pic_load_addr_thumb2): Delete.
24922         (pic_load_dot_plus_four): Delete.
24923         (tls_load_dot_plus_four): New named pattern.
24924
24925 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24926
24927         PR libgomp/29986
24928         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
24929         Document fix for TLS bug.
24930
24931 2010-01-31  Richard Guenther  <rguenther@suse.de>
24932
24933         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
24934         conservatively correct.
24935
24936 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24937
24938         PR target/42850
24939         Revert:
24940         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24941
24942         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
24943
24944 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24945
24946         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
24947
24948 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
24949
24950         * config.gcc: Adjust order of makefile fragments for mingw targets.
24951
24952 2010-01-31  Richard Guenther  <rguenther@suse.de>
24953
24954         PR middle-end/42898
24955         * gimplify.c (gimplify_init_constructor): For volatile LHS
24956         initialize a temporary.
24957
24958 2010-01-31  Matthias Klose  <doko@ubuntu.com>
24959
24960         * configure.ac: Fix __stack_chk_fail check for cross builds configured
24961         --with-headers
24962         * configure: Regenerate.
24963
24964 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
24965
24966         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24967         the same alias set and their sizes different constantness.
24968         (aliasing_component_refs_p): Revert 2009-10-24 change.
24969
24970 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24971
24972         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
24973         unused.
24974
24975 2010-01-29  Richard Guenther  <rguenther@suse.de>
24976
24977         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
24978         Assert we successfully updated the call.
24979
24980 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
24981
24982         PR rtl-optimization/42889
24983         * df.h (df_set_bb_dirty_nonlr): New prototype.
24984         * df-core.c (df_set_bb_dirty_nonlr): New function.
24985         * df-scan.c (df_insn_rescan): Call it instead of
24986         df_set_bb_dirty for DEBUG_INSNs.
24987
24988 2010-01-29  Richard Guenther  <rguenther@suse.de>
24989
24990         PR middle-end/37448
24991         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
24992         quadratic behavior in most cases.
24993
24994 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
24995
24996         PR target/42891
24997         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
24998         in the call to gen_x86_movsicc_0_m1.
24999
25000 2010-01-28  Richard Guenther  <rguenther@suse.de>
25001
25002         PR tree-optimization/42871
25003         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
25004
25005 2010-01-28  Richard Guenther  <rguenther@suse.de>
25006
25007         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
25008         into call arguments.
25009
25010 2010-01-28  Richard Guenther  <rguenther@suse.de>
25011
25012         PR middle-end/42883
25013         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
25014         the forwarder if the destination is an EH landing pad.
25015
25016 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
25017
25018         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
25019         block list passed to gimple_duplicate_sese_tail.
25020         (parallelize_loops): Avoid parallelization when the function
25021         has_nonlocal_label.
25022         Avoid parallelization when the preheader is IRREDUCIBLE.
25023         Try to optimize when estimated_loop_iterations_int is unresolved.
25024         Add the loop's location to the dump file.
25025         * tree-cfg.c (add_phi_args_after_redirect): Remove.
25026         (gimple_duplicate_sese_tail): Remove the check for the latch.
25027         Redirect nexits to the exit block.
25028         Remove handling of the incoming edges to the latch.
25029         Redirect the backedge from the copied latch to the exit bb.
25030
25031 2010-01-28  Michael Matz  <matz@suse.de>
25032
25033         PR target/42881
25034         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
25035         Wrap force_reg into a sequence, emit it before user.
25036
25037 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
25038
25039         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
25040         (arm_rev): New.
25041         (arm_legacy_rev): Likewise.
25042         (thumb_legacy_rev): Likewise.
25043
25044 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25045
25046         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
25047         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
25048         on MEM's address failed, try avoid_constant_pool_reference and
25049         recurse if it returned something different.
25050         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
25051         address, try avoid_constant_pool_reference and recurse if it
25052         returned something different.
25053         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
25054         address and avoid_constant_pool_reference returned something
25055         different, don't set have_address.
25056
25057 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
25058
25059         PR debug/42861
25060         * var-tracking.c (val_store): Add modified argument, obey it.
25061         Adjust callers.
25062         (count_uses): Move down logging of main.
25063         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
25064         don't need resolution.
25065         (emit_notes_in_bb): Likewise.
25066
25067 2010-01-27  Richard Guenther  <rguenther@suse.de>
25068
25069         PR middle-end/42878
25070         * tree-inline.c (remap_decl): Delay remapping of SSA name
25071         default definitions until we need them.
25072
25073 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25074
25075         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25076         (rs6000_delegitimize_address): New function.
25077
25078         * config/s390/s390.c (s390_delegitimize_address): Call
25079         delegitimize_mem_from_attrs.
25080
25081         PR middle-end/42874
25082         * tree-inline.c (cannot_copy_type_1): Removed.
25083         (copy_forbidden): Don't forbid copying of functions containing
25084         records/unions with variable length fields.
25085
25086 2010-01-27  Christian Bruel  <christian.bruel@st.com>
25087
25088         Revert:
25089         PR target/42841
25090         * config/sh/sh.c (find_barrier): Increase length for non delayed
25091         conditional branches.
25092
25093 2010-01-27  Matthias Klose  <doko@ubuntu.com>
25094
25095         * configure.ac (gnu-unique-object): Fix ldd version check.
25096         * configure: Regenerate.
25097
25098 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25099
25100         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
25101         HAVE_GNU_AS value.
25102         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
25103         Test for HAVE_GNU_AS value.
25104
25105 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25106
25107         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
25108         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
25109         INT64_TYPE): Define.
25110         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
25111         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
25112         INT_LEAST64_TYPE): Define.
25113         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
25114         UINT_LEAST64_TYPE): Define.
25115         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
25116         INT_FAST64_TYPE): Define.
25117         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
25118         UINT_FAST64_TYPE): Define.
25119         (INTMAX_TYPE, UINTMAX_TYPE): Define.
25120         (INTPTR_TYPE, UINTPTR_TYPE): Define.
25121         (SIG_ATOMIC_TYPE): Define.
25122
25123 2010-01-26  Richard Guenther  <rguenther@suse.de>
25124
25125         * df-scan.c (df_scan_set_bb_info): Remove assert.
25126         (df_insn_rescan_debug_internal): Merge asserts.
25127         (df_install_ref): Likewise.
25128         (df_mark_reg): Use bitmap_set_range.
25129         (df_hard_reg_used_p): Remove assert.
25130         (df_hard_reg_used_count): Likewise.
25131
25132 2010-01-26  Richard Guenther  <rguenther@suse.de>
25133
25134         PR rtl-optimization/42685
25135         * web.c (web_main): Ignore DEBUG_INSNs.
25136
25137 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
25138
25139         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
25140
25141         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
25142         Fix types of fndecl and arglist parameters.
25143
25144 2010-01-26  Richard Guenther  <rguenther@suse.de>
25145
25146         PR middle-end/42806
25147         * tree-eh.c (unsplit_eh): Skip debug insns.
25148
25149 2010-01-26  Richard Guenther  <rguenther@suse.de>
25150
25151         PR tree-optimization/42250
25152         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
25153
25154 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
25155
25156         PR fortran/42866
25157         * omp-low.c (expand_omp_sections): Only use single_pred if
25158         l2_bb is single_pred_p.
25159
25160 2010-01-25  Christian Bruel  <christian.bruel@st.com>
25161
25162         PR target/42841
25163         * config/sh/sh.c (find_barrier): Increase length for non delayed
25164         conditional branches.
25165         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
25166
25167 2010-01-24  David S. Miller  <davem@davemloft.net>
25168
25169         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
25170         define if not using GAS.
25171         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25172         Likewise.  Delete SECTION_MERGE code, which is only applicable
25173         when using GAS.
25174
25175 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
25176
25177         PR c++/42748
25178         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
25179         mangling of va_list in system headers.
25180
25181 2010-01-23  Toon Moene  <toon@moene.org>
25182
25183         * tree-predcom.c (combine_chains): Return NULL, not false.
25184
25185 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
25186
25187         * tree-loop-distribution.c (distribute_loop): Fix declaration and
25188         initialization of variable res to agree with return type.
25189
25190 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
25191
25192         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
25193         * tree-sra.c: Add include of expr.h.
25194
25195 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
25196
25197         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
25198         insert the debug stmt on the single non-EH edge from the stmt.
25199
25200 2010-01-22  Richard Henderson  <rth@redhat.com>
25201
25202         PR tree-opt/42833
25203         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
25204         the RHS until after generate_subtree_copies has insertted its
25205         code before the current statement.
25206
25207 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
25208
25209         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
25210
25211         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
25212
25213 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25214
25215         PR tree-optimization/42585
25216         * tree-sra.c (struct access): New field grp_total_scalarization.
25217         (dump_access): Dump the new field.
25218         (should_scalarize_away_bitmap): New variable.
25219         (cannot_scalarize_away_bitmap): Likewise.
25220         (sra_initialize): Allocate new bitmaps.
25221         (sra_deinitialize): Free new bitmaps.
25222         (create_access_1): New function.
25223         (create_access): Parts moved to create_access_1.
25224         (type_consists_of_records_p): New function.
25225         (completely_scalarize_record): Likewise.
25226         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
25227         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
25228         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
25229         access.
25230         (analyze_all_variable_accesses): Completely scalarize small eligible
25231         records.
25232
25233 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25234
25235         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
25236
25237 2010-01-21  Andrew Haley  <aph@redhat.com>
25238
25239         * gcc.c (process_command): Move lang_specific_driver before
25240         setting cc_libexec_prefix.
25241
25242 2010-01-21  Richard Guenther  <rguenther@suse.de>
25243
25244         PR middle-end/19988
25245         * fold-const.c (negate_expr_p): Pretend only negative
25246         real constants are easily negatable.
25247
25248 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
25249             Jason Merrill  <jason@redhat.com>
25250
25251         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
25252         (TYPE_TRANSPARENT_AGGR): this, for union and record.
25253         * calls.c (initialize argument_information): Handle it.
25254         * c-common.c (handle_transparent_union_attribute): Use new name.
25255         * c-decl.c (finish_struct): Ditto.
25256         * c-typeck.c (type_lists_compatible_p): Ditto.
25257         (convert_for_assignment): Use new name and also handle record.
25258         * function.c (aggregate_value_p): Handle it.
25259         (pass_by_reference): Ditto.
25260         (assign_parm_data_types): Ditto.
25261         * print-tree.c (print_node): Ditto.
25262         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
25263         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
25264         * tree.c (first_field): New fn.
25265
25266 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
25267
25268         PR target/42818
25269         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
25270         even when linking statically, for now.
25271
25272 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25273
25274         PR debug/42715
25275         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
25276         without a cselib val.
25277         (count_uses): Accept MO_VAL_SET with no val on stores.
25278         (add_stores): Likewise.
25279
25280 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25281
25282         * var-tracking.c (check_value_val): Add a compile time assertion.
25283         (dv_is_decl_p): Simplify.
25284         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
25285         gcc_assert if ENABLE_CHECKING.
25286
25287 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25288
25289         PR debug/42782
25290         * var-tracking.c: Include tree-flow.h.
25291         (mem_dies_at_call): New.
25292         (dataflow_set_preserve_mem_locs): Use it.
25293         (dataflow_set_remove_mem_locs): Likewise.
25294         (dump_var): Renamed from dump_variable.  Adjust all callers.
25295         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
25296         * Makefile.in (var-tracking.o): Adjust deps.
25297
25298 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
25299
25300         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
25301
25302 2010-01-20  Richard Guenther  <rguenther@suse.de>
25303
25304         PR tree-optimization/42717
25305         * tree-ssa-dce.c (get_live_post_dom): Remove.
25306         (forward_edge_to_pdom): Take an arbitrary edge to copy
25307         degenerate PHI args from.
25308         (remove_dead_stmt): Use the first post-dominator even if it
25309         does not contain live statements as redirection destination.
25310
25311 2010-01-20  Richard Guenther  <rguenther@suse.de>
25312
25313         * tree-inline.c (estimate_num_insns): Handle EH builtins.
25314
25315 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25316
25317         * sel-sched.c (create_speculation_check): Remove set but not used
25318         variable twin.
25319         (try_transformation_cache): Remove set but not used variable ds.
25320         (calculate_privileged_insns): Remove set but not used variables
25321         cur_insn and min_spec_insn.
25322         (find_best_expr): Remove set but not used variable avail_n.
25323         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
25324         variable e.
25325         * cgraphunit.c (assemble_thunk): Remove set but not used variable
25326         false_label.
25327         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
25328         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
25329         new_scop_exit_edge.
25330
25331 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
25332
25333         PR bootstrap/42786
25334         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
25335         cpu types.  Add support for *-sse3 cpu types.
25336         (x86_64-*-*): Ditto.
25337
25338 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25339
25340         PR middle-end/42803
25341         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
25342         argument, call initializer_constant_valid_p_1 instead of
25343         initializer_constant_valid_p, pass CACHE to it, return NULL
25344         immediately if first call returns NULL.
25345         (initializer_constant_valid_p_1): New function.
25346         (initializer_constant_valid_p): Use it.
25347
25348 2010-01-20  Thomas Quinot  <quinot@adacore.com>
25349
25350         * tree.def (PLACEHOLDER_EXPR): Fix comment.
25351
25352 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25353
25354         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
25355         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
25356         (loc_list_from_tree): Don't handle unsigned division.  Handle
25357         signed modulo using DW_OP_{over,over,div,mul,minus}.
25358         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
25359         modulo instead of signed.
25360
25361 2010-01-20  DJ Delorie  <dj@redhat.com>
25362
25363         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
25364         (Fpa): Pass it
25365         (h8300_emit_stack_adjustment): Propogate it.
25366         (push): Pass it.
25367         (h8300_expand_prologue): Likewise.
25368         (h8300_expand_epilogue): Likewise.
25369
25370 2010-01-19  Michael Matz  <matz@suse.de>
25371
25372         PR tree-optimization/41783
25373         * tree-data-ref.c (toplevel): Include flags.h.
25374         (dump_data_dependence_relation):  Also dump the inputs if the
25375         result will be unknown.
25376         (split_constant_offset_1): Look through some conversions.
25377         * tree-predcom.c (determine_roots_comp): Restart a new chain if
25378         the offset from last element is too large.
25379         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
25380         (reassociate_to_the_same_stmt): Handle vector registers.
25381         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
25382         (e.g. conversions).
25383         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
25384         wide_prolog_niters argument, emit widening instructions.
25385         (vect_do_peeling_for_alignment): Adjust caller, use widened
25386         variant of the iteration cound.
25387         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
25388
25389 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25390
25391         PR target/38697
25392         * config/arm/neon-testgen.m (emit_automatics): New parameter
25393         features. Adjust for Fixed_return_reg feature.
25394         (test_intrinsic): Call emit_automatics with new feature.
25395         * config/arm/neon.ml: Update copyright years.
25396         (features): New Fixed_return_reg feature.
25397         (ops): Update feature for Vget_low.
25398
25399 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
25400
25401         PR tree-optimization/42719
25402         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
25403         stmt uses.
25404
25405         PR debug/42728
25406         * fwprop.c (all_uses_available_at): Return false if def_set dest
25407         is a REG that is used in def_insn.
25408
25409 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
25410
25411         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
25412
25413         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
25414         Add argument names.
25415
25416         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
25417
25418         * target.h (struct gcc_target) <secondary_reload>: Change type
25419         of last argument to secondary_reload_info *.
25420
25421 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
25422
25423         PR target/42774
25424         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
25425         memory references with unaligned offsets.  Remove CQImode handling.
25426         (unaligned_memory_operand): Return 1 for memory references with
25427         unaligned offsets.  Remove CQImode handling.
25428
25429 2010-01-18  Richard Guenther  <rguenther@suse.de>
25430
25431         PR middle-end/39954
25432         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
25433         builtin calls.
25434
25435 2010-01-18  Richard Guenther  <rguenther@suse.de>
25436
25437         PR tree-optimization/42781
25438         * tree-ssa-structalias.c (find_what_var_points_to): Skip
25439         restrict processing only if the original variable was artificial.
25440
25441 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
25442
25443         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
25444         find number of popped argument bytes.
25445
25446         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
25447         Fix the text that describes the return value for invalid insns.
25448
25449         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
25450
25451         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
25452         Clarify what 'cost of the -dependence' is.  Fix quoting.
25453
25454         * toplev.c (default_get_pch_validity): Rename argument to "sz".
25455         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
25456
25457 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
25458
25459         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25460         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
25461
25462 2010-01-17  Richard Guenther  <rguenther@suse.de>
25463
25464         PR middle-end/42248
25465         * function.c (split_complex_args): Take a VEC to modify.
25466         (assign_parms_augmented_arg_list): Build a VEC instead of
25467         a chain of PARM_DECLs.
25468         (assign_parms_unsplit_complex): Take a VEC of arguments.
25469         Do not fixup unmodified parms.
25470         (assign_parms): Deal with the VEC.
25471         (gimplify_parameters): Likewise.
25472
25473 2010-01-17  Richard Guenther  <rguenther@suse.de>
25474
25475         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
25476         node existence check.
25477         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
25478         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
25479         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
25480         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
25481         (gimple_execute_on_growing_pred): Likewise.
25482
25483 2010-01-17  Richard Guenther  <rguenther@suse.de>
25484
25485         PR tree-optimization/42773
25486         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
25487         (compute_antic_aux): Likewise.
25488         (compute_partial_antic_aux): Likewise.
25489
25490 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
25491
25492         PR debug/42767
25493         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
25494         and US_TRUNCATE.
25495
25496 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
25497
25498         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
25499         appearance.
25500
25501         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
25502         Fix markup for strict argument.
25503
25504         (TARGET_SCHED_REORDER2): Fix argument types.
25505
25506         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
25507         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
25508
25509         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
25510         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
25511
25512         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
25513         Add argument name.
25514
25515         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
25516         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
25517         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
25518         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
25519         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
25520
25521         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
25522
25523         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
25524
25525         (TARGET_ASM_RELOC_RW_MASK): Add return type.
25526         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
25527
25528         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
25529
25530         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
25531         Use prototype.
25532
25533         (TARGET_ASM_NAMED_SECTION): Fix argument list.
25534
25535         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
25536         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
25537
25538         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
25539
25540         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
25541
25542         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
25543         referring to it.  Fix language.
25544
25545         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
25546
25547         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
25548
25549         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
25550
25551         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
25552
25553         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
25554         '@var{stream}.  Remove stray 'and'.
25555
25556         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
25557
25558         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
25559
25560         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
25561
25562         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
25563         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
25564
25565         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
25566         Fix description of return value.
25567         Rename argument "sz" to "len."
25568
25569         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
25570         Clarify meaning of 'true' return value.
25571
25572         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
25573
25574         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
25575         rep_mode versus mode_rep.
25576
25577         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
25578
25579         (TARGET_BUILTIN_DECL): Fix name.
25580
25581         (TARGET_COMMUTATIVE_P): Fix type of first argument.
25582
25583         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
25584
25585         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
25586
25587         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
25588
25589         (TARGET_RELAXED_ORDERING): Use @deftypevr.
25590
25591         (TARGET_GET_DRAP_RTX): Note that this is a hook.
25592         Clarify language.
25593
25594         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
25595         Rename argument tm_fn to md_fn.
25596
25597         (TARGET_OPTION_PRINT): Fix argument list.
25598
25599 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
25600
25601         PR target/42664
25602         * config/i386/i386.c (ix86_fixup_binary_operands):
25603         Revert FMA4 fixup of operands.
25604
25605 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25606
25607         PR gcc/42525
25608         * Makefile.in (write_entries_to_file, install-plugin):
25609         Use \012 instead of \n with tr.
25610
25611 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
25612
25613         * configure.ac (HAVE_AS_REF): New C macro.
25614         * configure: Regenerate.
25615         * config.in: Likewise.
25616         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
25617         if HAVE_AS_REF.
25618         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
25619         if HAVE_AS_REF.
25620
25621 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
25622
25623         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
25624
25625         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
25626
25627         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
25628
25629         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
25630
25631         (TARGET_IN_SMALL_DATA_P): Fix argument type.
25632
25633         (TARGET_BINDS_LOCAL_P): Fix argument type.
25634
25635         (TARGET_ASM_FILE_END): Use prototype.
25636
25637         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
25638
25639         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
25640
25641         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
25642
25643         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
25644
25645         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
25646         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
25647
25648         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
25649         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
25650
25651         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
25652         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
25653         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
25654         (TARGET_ADDR_SPACE_CONVERT): Likewise.
25655
25656         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
25657
25658         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
25659
25660         (TARGET_INIT_BUILTINS): Use prototype.
25661
25662         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
25663         Put 'const char *' in braces.  Fix parameter types.
25664         (TARGET_INVALID_CONVERSION): Fix parameter types.
25665         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
25666         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
25667
25668         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
25669         Fix argument type.
25670
25671         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
25672
25673         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
25674
25675 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
25676
25677         * doc/tm.texi (TARGET_HELP): Fix return type.
25678
25679         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
25680         in braces.  Fix argument types.
25681
25682         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
25683
25684         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
25685
25686         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
25687
25688         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
25689         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
25690
25691         (TARGET_MANGLE_TYPE): Fix argument types.
25692
25693         (TARGET_IRA_COVER_CLASSES): Use prototype.
25694
25695         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
25696
25697         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
25698
25699         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
25700
25701         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
25702
25703         (TARGET_CALLEE_COPIES): Fix argument types.
25704
25705         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
25706
25707         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
25708
25709         (TARGET_FUNCTION_VALUE): Fix argument types.
25710
25711         (TARGET_RETURN_IN_MSB): Fix argument type.
25712
25713         (TARGET_RETURN_IN_MEMORY): Fix argument types.
25714
25715         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
25716
25717         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
25718
25719         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
25720         agree with return type.
25721
25722         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
25723
25724 2010-01-15  Jing Yu  <jingyu@google.com>
25725
25726         PR rtl-optimization/42691
25727         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
25728         a pseudo to a constant and are merged, and adjust comments.
25729
25730 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
25731
25732         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
25733
25734 2010-01-15  Richard Guenther  <rguenther@suse.de>
25735
25736         PR middle-end/42739
25737         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
25738         labels of computed or non-local gotos to the destination.
25739         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
25740         landing pad label is the first label.
25741
25742 2010-01-15  Richard Guenther  <rguenther@suse.de>
25743
25744         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
25745
25746 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25747
25748         PR target/42747
25749         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
25750         to allow generation of the xssqrtdp instruction on power7.
25751         (sqrtdf2_fpr): Ditto.
25752
25753 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25754
25755         PR middle-end/42674
25756         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
25757         functions with noreturn attribute.
25758
25759         PR c++/42608
25760         * varasm.c (declare_weak): Add weak attribute to decl if it
25761         doesn't have one already.
25762         (assemble_external): Only add decls to weak_decls if they also
25763         have weak attribute.
25764
25765 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
25766
25767         * var-tracking.c (var_reg_delete): Don't delete the association
25768         between REGs and values or one-part variables if the register
25769         isn't clobbered.
25770
25771 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25772
25773         PR debug/42657
25774         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
25775         because its first operand is a non-localized variable.
25776
25777 2010-01-14  Martin Jambor  <mjambor@suse.cz>
25778
25779         PR tree-optimization/42706
25780         * tree-sra.c (encountered_recursive_call): New variable.
25781         (encountered_unchangable_recursive_call): Likewise.
25782         (sra_initialize): Initialize both new variables.
25783         (callsite_has_enough_arguments_p): New function.
25784         (scan_function): Call decl and flags check only for IPA-SRA, check
25785         whether there is a recursive call and whether it has enough arguments.
25786         (all_callers_have_enough_arguments_p): New function.
25787         (convert_callers): Look for recursive calls only when
25788         encountered_recursive_call is set.
25789         (ipa_early_sra): Bail out either if
25790         !all_callers_have_enough_arguments_p or
25791         encountered_unchangable_recursive_call.
25792
25793 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25794
25795         * sel-sched.c: Add 2010 to copyright years.
25796         * sel-sched-ir.c: Likewise.
25797         * sel-sched-ir.h: Likewise.
25798
25799 2010-01-14  Martin Jambor  <mjambor@suse.cz>
25800
25801         PR tree-optimization/42714
25802         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
25803         constructors specially.
25804
25805 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25806
25807         * config/i386/drivers-i386.c (detect_caches_intel):
25808         Add l2sizekb parameter and fill in.
25809         (host_detect_local_cpu): Add l2sizekb, fill in.
25810         Add Atom small cache heuristic.
25811
25812 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25813
25814         * config/i386/drivers-i386.c (detect_caches_cpuid4):
25815         Add level3 parameter and fill in.
25816         (detect_caches_intel): Handle level3 cache.
25817
25818 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25819
25820         * config/i386/drivers-i386.c (host_detect_local_cpu):
25821         Fix core duo detection.
25822
25823 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25824
25825         * config/i386/drivers-i386.c (host_detect_local_cpu):
25826         Fix Atom detection.
25827
25828 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25829
25830         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
25831         (rs6000_variable_issue_1): this.  Use...
25832         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
25833
25834 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25835
25836         * sel-sched-ir.c (sel_restore_other_notes): Rename to
25837         sel_restore_notes.  Update all callers.  Call reemit_notes
25838         for all insns.
25839
25840 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25841
25842         PR rtl-optimization/42246
25843         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
25844         loops.
25845
25846 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25847
25848         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
25849         all successors is the same as number of successors in current region.
25850
25851 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25852
25853         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
25854         to rename is not separable.  Otherwise check that its LHS is not NULL.
25855
25856 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25857
25858         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
25859
25860 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25861
25862         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
25863         available registers when failed to discover LHS register class.
25864         Fix indentation.  Update comment.
25865
25866 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25867             Alexander Monakov  <amonakov@ispras.ru>
25868
25869         PR rtl-optimization/42389
25870         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
25871         to can_issue_more.
25872         (advance_state_on_fence): Likewise.
25873         (sel_target_adjust_priority): Print debug output only when
25874         sched_verbose >= 4, not 2.
25875         (get_expr_cost): Do not issue all unique insns on the next cycle.
25876         (fill_insns): Initialize can_issue_more from the value saved
25877         with the fence.
25878         * sel-sched-ir.c (flist_add): New parameter issue_more.
25879         Init FENCE_ISSUE_MORE with it.
25880         (merge_fences): Likewise.
25881         (init_fences): Update call to flist_add.
25882         (add_to_fences, add_clean_fence_to_fences)
25883         (add_dirty_fence_to_fences): Likewise.
25884         (move_fence_to_fences): Update call to merge_fences.
25885         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
25886         sched groups.
25887         * sel-sched-ir.h (struct _fence): New field issue_more.
25888         (FENCE_ISSUE_MORE): New accessor macro.
25889
25890 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25891
25892         PR rtl-optimization/42388
25893         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
25894         that have no predecessors nor successors.  Do not call move_bb_info
25895         for empty blocks outside of current region.
25896
25897 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25898
25899         PR rtl-optimization/42294
25900         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
25901         * sel-sched.c (move_exprs_to_boundary): Transitively add all
25902         originators' originators.
25903
25904 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25905
25906         PR rtl-optimization/39453
25907         PR rtl-optimization/42246
25908         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
25909         for pipelining_p.
25910         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
25911
25912 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25913             Alexander Monakov  <amonakov@ispras.ru>
25914
25915         PR middle-end/42245
25916         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
25917         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
25918         argument.  Update all callers.
25919         (tidy_control_flow): ... and here.  Recompute topological order
25920         of basic blocks in region if necessary.
25921         (sel_redirect_edge_and_branch): Change return type.  Return true
25922         if topological order might have been invalidated.
25923         (purge_empty_blocks): Export and move from...
25924         * sel-sched.c (purge_empty_blocks): ... here.
25925         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
25926         (maybe_tidy_empty_bb): Delete prototype.
25927         (purge_empty_blocks): Declare.
25928
25929 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25930
25931         PR rtl-optimization/42249
25932         * sel-sched.c (try_replace_dest_reg): When chosen register
25933         and original register is the same, do not bail out early, but
25934         still check all original insns for validity of replacing destination
25935         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
25936         in this case.
25937
25938 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25939
25940         PR c/42721
25941         Port from no-undefined-overflow branch:
25942         2009-03-09  Richard Guenther  <rguenther@suse.de>
25943
25944         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
25945
25946 2010-01-14  Richard Guenther  <rguenther@suse.de>
25947
25948         PR lto/42665
25949         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
25950
25951 2010-01-14  Ira Rosen  <irar@il.ibm.com>
25952
25953         PR tree-optimization/42709
25954         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
25955         as scalar type in creation of constant vector operand.
25956
25957 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25958
25959         PR testsuite/42414
25960         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
25961         (check-parallel-%): Match `testsuite' directory component only
25962         at the end.
25963
25964 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
25965
25966         PR translation/39521
25967         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
25968         strings with _().
25969
25970 2010-01-13  Richard Guenther  <rguenther@suse.de>
25971
25972         PR tree-optimization/42730
25973         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
25974         offset zero.
25975
25976 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
25977
25978         PR target/pr42542
25979         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
25980         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
25981         them signed.
25982
25983 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
25984
25985         * config/bfin/libgcc-bfin.ver: Regenerate based on current
25986         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
25987         ___umulsi3_highpart.
25988
25989         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
25990         rather than schedule_insns if the pass is enabled.
25991
25992 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25993
25994         PR tree-optimization/42704
25995         * tree-sra.c (sra_modify_assign): Do not delete assignments to
25996         SSA_NAMEs.
25997
25998 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25999
26000         PR tree-optimization/42703
26001         * tree-sra.c (analyze_access_subtree): Check that we can build a
26002         reference to the original data within the aggregate.
26003
26004 2010-01-13  Richard Guenther  <rguenther@suse.de>
26005
26006         PR tree-optimization/42705
26007         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
26008
26009 2010-01-13  Richard Guenther  <rguenther@suse.de>
26010
26011         PR middle-end/42716
26012         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
26013
26014 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26015
26016         PR debug/41371
26017         * var-tracking.c (values_to_unmark): New variable.
26018         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26019         values_to_unmark vector.  Moved body to...
26020         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26021         instead queue it into values_to_unmark vector.
26022         (vt_find_locations): Free values_to_unmark vector.
26023
26024 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
26025
26026         * config/s390/s390.c (override_options): Set
26027         default of max-pending-list-length to 256
26028
26029 2010-01-13  Richard Guenther  <rguenther@suse.de>
26030
26031         PR lto/42678
26032         * tree-pass.h (PROP_gimple_lcx): New.
26033         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
26034         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
26035         before the final cleanup_eh.
26036         (dump_properties): Dump PROP_gimple_lcx.
26037         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
26038         (tree_lower_complex_O0): Remove.
26039         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
26040         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
26041         tree_lower_complex, schedule TODO_update_ssa.
26042         * lto-streamer-out.c (output_function): Stream the functions
26043         properties.
26044         * lto-streamer-in.c (input_function): Likewise.
26045         (lto_read_body): Do not override them here.
26046
26047 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
26048
26049         PR c/42708
26050         * c-typeck.c (build_c_cast): Fold value cast to union type before
26051         wrapping it in a CONSTRUCTOR.
26052
26053 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26054
26055         PR rtl-optimization/42699
26056         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
26057         involved.
26058
26059 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26060
26061         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26062         SUBTARGET_WARN_UNUSED_SPEC): Move ...
26063         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26064         SUBTARGET_WARN_UNUSED_SPEC): ... here
26065         * config/mips/iris5.h (LIBGCC_SPEC): Define.
26066
26067 2010-01-12  Julian Brown  <julian@codesourcery.com>
26068
26069         * config/arm/neon-schedgen.ml (Utils): Don't try to
26070         open missing module.
26071         (find_with_result): New.
26072
26073 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26074
26075         PR debug/42662
26076         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
26077         sharing when canonicalizing ({lt,ge}u (plus a b) b).
26078
26079         PR tree-optimization/42645
26080         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
26081         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
26082         decl_map, set processing_debug_stmt to -1 and return name without
26083         any remapping.
26084
26085 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
26086
26087         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
26088         binutils version, and reword target configuration description.
26089
26090 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26091
26092         * config/avr/avr.h (LINKER_NAME): Remove.
26093
26094 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
26095
26096         PR target/42416
26097         * config/rs6000/rs6000.c (rs6000_override_options): On targets
26098         that support VSX, warn for -mno-altivec if vsx is not disabled,
26099         and disable vsx.
26100
26101 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
26102             Shujing Zhao  <pearly.zhao@oracle.com>
26103
26104         PR translation/42469
26105         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
26106         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
26107         character between option name and help text.
26108         * c.opt (imultilib): Likewise.
26109
26110 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
26111
26112         * lto-streamer-out.c (output_unreferenced_globals): Output static
26113         variables.
26114
26115 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
26116
26117         PR rtl-optimization/42621
26118         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
26119         optimizing for size.
26120         (duplicate_computed_gotos): Remove now-redundant check.
26121
26122 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
26123
26124         PR target/37454
26125         * configure.ac: Save and restore LDFLAGS and LIBS
26126         * configure: Regenerate.
26127
26128 2010-01-10  Richard Guenther  <rguenther@suse.de>
26129
26130         PR middle-end/42667
26131         * builtins.c (fold_builtin_strlen): Add type argument and
26132         convert the resulting length to it.
26133         (fold_builtin_1): Adjust.
26134
26135 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26136
26137         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
26138         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26139         1 insn.
26140         (num_insns_constant_wide): Adjust for that change.
26141
26142 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26143
26144         PR debug/42631
26145         * web.c (union_defs): Add used argument, to combine uses of
26146         uninitialized regs.
26147         (entry_register): Adjust type and tests of used argument.
26148         (web_main): Widen used for new use.  Pass it to union_defs.
26149         * df.h (union_defs): Adjust prototype.
26150
26151 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26152
26153         PR debug/42630
26154         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
26155         uses in new incoming argument.  Free body.
26156         (reset_debug_uses_in_loop): New.
26157         (analyze_insn_to_expand_var): Call the latter if the former found
26158         anything.  Fix whitespace.  Reject invalid dest overlaps before
26159         going through all insns in the loop.
26160
26161 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26162
26163         PR debug/42629
26164         * haifa-sched.c (dying_use_p): Debug insns don't count.
26165
26166 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26167
26168         PR middle-end/42363
26169         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
26170         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
26171         (verify_gimple_call): Reject LHS in noreturn calls.
26172
26173 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26174
26175         PR debug/42604
26176         PR debug/42395
26177         * tree-vect-loop-manip.c (adjust_info): New type.
26178         (adjust_vec): New pointer to vector.
26179         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
26180         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
26181         (slpeel_update_phis_for_duplicate_loop): Use them.
26182         (slpeel_update_phi_nodes_for_guard1): Likewise.
26183         (slpeel_update_phi_nodes_for_guard2): Likewise.
26184         (slpeel_tree_peel_loop_to_edge): Likewise.
26185         (vect_update_ivs_after_vectorizer): Likewise.
26186
26187 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26188
26189         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
26190         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
26191
26192 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26193
26194         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
26195         bogus uninitialized warning.
26196
26197 2010-01-09  Richard Guenther  <rguenther@suse.de>
26198
26199         PR middle-end/42512
26200         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
26201         the evolution is compatible with the initial condition.
26202
26203 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26204
26205         * gcc.c (process_command): Update copyright notice dates.
26206         * gcov.c (print_version): Likewise.
26207         * gcov-dump.c (print_version): Likewise.
26208         * mips-tfile.c (main): Likewise.
26209         * mips-tdump.c (main): Likewise.
26210
26211 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26212
26213         PR target/41885
26214         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
26215         (rotlhi3): Delete.
26216         (rotlhi3_8): Delete.
26217         (rotlsi3): Delete.
26218         (rotlsi3_8): Delete.
26219         (rotlsi3_16): Delete.
26220         (rotlsi3_24): Delete.
26221         (rotl<mode>3): New.
26222         (*rotw<mode>3): New.
26223         (*rotb<mode>3): New.
26224         * config/avr/avr.c (avr_rotate_bytes): New function.
26225         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
26226
26227 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
26228
26229         PR target/37454
26230         * configure.ac: Modify -rdynamic check.
26231         * configure: Regenerate.
26232
26233 2010-01-08  DJ Delorie  <dj@redhat.com>
26234
26235         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
26236         register popping order.
26237
26238 2010-01-08  Richard Guenther  <rguenther@suse.de>
26239
26240         PR lto/42528
26241         * c.opt (fsigned-char): Also let LTO handle this option.
26242         (funsigned-char): Likewise.
26243
26244 2010-01-07  Richard Guenther  <rguenther@suse.de>
26245
26246         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
26247         (gimple_op): Likewise.
26248         (gimple_op_ptr): Likewise.
26249         (gimple_assign_set_lhs): Remove gcc_assert.
26250         (gimple_assign_set_rhs1): Likewise.
26251         (gimple_assign_set_rhs2): Likewise.
26252         (gimple_call_set_lhs): Likewise.
26253         (gimple_call_set_fn): Likewise.
26254         (gimple_call_set_fndecl): Likewise.
26255         (gimple_call_fndecl): Likewise.
26256         (gimple_call_return_type): Likewise.
26257         (gimple_call_set_chain): Likewise.
26258         (gimple_call_num_args): Likewise.
26259         (gimple_call_set_arg): Likewise.
26260         (gimple_cond_set_code): Likewise.
26261         (gimple_cond_set_lhs): Likewise.
26262         (gimple_cond_set_rhs): Likewise.
26263         (gimple_cond_set_true_label): Likewise.
26264         (gimple_cond_set_false_label): Likewise.
26265         (gimple_label_set_label): Likewise.
26266         (gimple_goto_set_dest): Likewise.
26267         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
26268         (gimple_debug_bind_get_value): Likewise.
26269         (gimple_debug_bind_get_value_ptr): Likewise.
26270         (gimple_debug_bind_set_var): Likewise.
26271         (gimple_debug_bind_set_value): Likewise.
26272         (gimple_debug_bind_reset_value): Likewise.
26273         (gimple_debug_bind_has_value_p): Likewise.
26274         (gimple_return_retval_ptr): Remove gcc_assert.
26275         (gimple_return_retval): Likewise.
26276         (gimple_return_set_retval): Likewise.
26277         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
26278         (safe_referenced_var_iterator): Remove.
26279         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
26280         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
26281         (fill_referenced_var_vec): Remove.
26282         (first_readonly_imm_use): Remove redundant gcc_assert.
26283         (phi_arg_index_from_use): Combine gcc_asserts.
26284         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
26285         (first_imm_use_stmt): Remove redundant gcc_assert.
26286         * tree-cfg.c (verify_gimple_call): Verify function and chain
26287         operands.  Verify arguments.
26288         (verify_types_in_gimple_stmt): Verify condition code and labels.
26289
26290 2010-01-07  Richard Guenther  <rguenther@suse.de>
26291
26292         PR tree-optimization/42641
26293         * sese.c (rename_map_elt_info): Use the SSA name version, do
26294         not hash pointers.
26295
26296 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
26297
26298         PR tree-optimization/42625
26299         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
26300         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
26301
26302 2010-01-07  Duncan Sands  <baldrick@free.fr>
26303
26304         * Makefile.in (PLUGIN_HEADERS): Add version.h.
26305
26306 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
26307
26308         PR target/42511
26309         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
26310         note itself is not function_invariant_p.
26311
26312 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
26313
26314         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
26315         Do not add the DF_NOTE problem.
26316         * store-motion.c (execute_rtl_store_motion): Likewise.
26317
26318 2010-01-07  Martin Jambor  <mjambor@suse.cz>
26319
26320         PR tree-optimization/42157
26321         * tree-sra.c (compare_access_positions): Stabilize sort if both
26322         accesses have integer types, return zero immediately if they are the
26323         same.
26324
26325 2010-01-06  Richard Henderson  <rth@redhat.com>
26326
26327         PR middle-end/41883
26328         * haifa-sched.c (add_to_note_list): Merge into ...
26329         (concat_note_lists): ... here, and ...
26330         (unlink_other_notes, rm_other_notes): Merge into...
26331         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
26332         NOTE_INSN_EPILOGUE_BEG.
26333
26334 2010-01-06  Richard Guenther  <rguenther@suse.de>
26335
26336         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
26337         not inline regular functions into always-inline functions.
26338
26339 2010-01-06  Nick Clifton  <nickc@redhat.com>
26340
26341         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
26342         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
26343         used together.
26344         (OVERRIDE_OPTIONS): Delete.
26345         (OPTIMIZATION_OPTIONS): Define.
26346         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
26347         * config/rx/rx.c (rx_handle_option): Issue an error message if
26348         -mcpu=rx200 and -fpu are used together.
26349         (rx_set_optimization_options): New function.  Issue an error
26350         message if an optimization attribute attempts to reset the FPU/
26351         math optimization pairing.
26352         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
26353         * config/rx/rx.opt: Set the default to 32-bit doubles.
26354         * config/rx/t-rx: Add multilibs for -nofpu option.
26355         * doc/invoke.texi: Update documentation of RX options.
26356
26357 2010-01-06  Richard Guenther  <rguenther@suse.de>
26358
26359         * tree-ssa-pre.c (name_to_id): New global.
26360         (alloc_expression_id): Simplify SSA name handling.
26361         (lookup_expression_id): Likewise.
26362         (init_pre): Zero name_to_id.
26363         (fini_pre): Free it.
26364
26365 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
26366
26367         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
26368
26369 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
26370
26371         PR target/42542
26372         * config/i386/sse.md (smaxv2di3): New.
26373         (umaxv2di3): Likewise.
26374         (sminv2di3): Likewise.
26375         (uminv2di3): Likewise.
26376
26377 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
26378
26379         PR target/42564
26380         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
26381         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
26382         (legitimize_tls_address): Likewise.
26383         (sparc_tls_referenced_p): Likewise.
26384         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
26385         and adjust calls to legitimize_pic_address.
26386         (legitimate_constant_p) Use sparc_tls_referenced_p.
26387         (legitimate_pic_operand_p): Likewise.
26388         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
26389         (sparc_tls_symbol_ref_1): Delete.
26390         (sparc_tls_referenced_p): Make static, recognize specific patterns.
26391         (legitimize_tls_address): Make static, handle CONST patterns.
26392         (legitimize_pic_address): Make static, remove unused parameter and
26393         adjust recursive calls.
26394         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
26395         and adjust call to legitimize_pic_address.
26396         (sparc_output_mi_thunk): Likewise.
26397
26398 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
26399             H.J. Lu  <hongjiu.lu@intel.com>
26400
26401         PR target/42542
26402         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
26403         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
26404         operands to make them signed.
26405
26406         Revert:
26407         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26408
26409         PR target/42542
26410         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26411         GTU to GT for V4SI and V2DI.
26412
26413         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26414         (umin<mode>3): Removed.
26415         (uminv8hi3): New.
26416         (uminv4si3): Likewise.
26417
26418 2010-01-05  Martin Jambor  <mjambor@suse.cz>
26419
26420         PR tree-optimization/42462
26421         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
26422         current_function_decl to helper functions and macros.
26423
26424 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26425
26426         PR bootstrap/41771
26427         * flags.h: Don't include real.h.
26428         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
26429         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
26430         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
26431         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
26432         * dominance.c: Update copyright.
26433         * gimple.c (walk_gimple_op): Remove inline.
26434         * tree-ssa-reassoc.c: Include real.h.
26435         * Makefile.in (FLAGS_H): Remove $(REAL_H).
26436         (tree-ssa-reassoc.o): Depend on $(REAL_H).
26437
26438 2010-01-05  Nick Clifton  <nickc@redhat.com>
26439
26440         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
26441         register to push into the stack frame when the accumulator has to
26442         be saved during interrupts.
26443
26444 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
26445
26446         * doc/invoke.texi: Remove the documentation about option
26447         -Wunreachable-code.
26448         * common.opt (Wunreachable-code):  Preserved for backward
26449         compatibility.
26450         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
26451         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
26452         the backward compatibility flag section.
26453
26454 2010-01-05  Richard Guenther  <rguenther@suse.de>
26455
26456         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
26457
26458 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
26459
26460         PR other/42611
26461         * cfgexpand.c (expand_one_var): Diagnose too large variables.
26462
26463         PR tree-optimization/42508
26464         * tree-sra.c (convert_callers): Check for recursive call
26465         by comparing cgraph nodes instead of decls.
26466         (modify_function): Call ipa_modify_formal_parameters also
26467         on all same_body aliases.
26468
26469         * cgraphunit.c (cgraph_materialize_all_clones): Compare
26470         cgraph nodes when checking for same_body aliases.
26471
26472 2010-01-05  Richard Guenther  <rguenther@suse.de>
26473
26474         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
26475         allocation and lookup.
26476         (get_or_alloc_expr_for_constant): Likewise.
26477         (phi_translate): Sink allocation.
26478
26479 2010-01-04  Richard Guenther  <rguenther@suse.de>
26480
26481         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
26482         a new entry only if needed.
26483         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
26484         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
26485         hashtable lookup.
26486         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
26487         the result array.
26488         (phi_translate): Handle CONSTANTs early.
26489
26490 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26491
26492         PR tree-optimization/42398
26493         * tree-sra.c (struct access): Removed flag grp_different_types.
26494         (dump_access): Do not dump the removed flag.
26495         (sort_and_splice_var_accesses): Do not set the removed flag.
26496         (sra_modify_expr): Check for type compatibility directly.
26497
26498 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26499
26500         PR tree-optimization/42366
26501         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
26502         edges with variable number of parameters.
26503         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
26504         flag instead of asserting it.
26505         (ipa_read_node_info): Read uses_analysis_done flag.
26506
26507 2010-01-04  Richard Guenther  <rguenther@suse.de>
26508
26509         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
26510         iterative_hash_* as intended.
26511         (vn_reference_compute_hash): Likewise.  Simplify hashing
26512         SSA names.
26513         (vn_reference_lookup_2): Likewise.
26514         (vn_nary_op_compute_hash): Likewise.
26515         (vn_phi_compute_hash): Likewise.
26516         (expressions_equal_p): Remove strange code.
26517         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
26518         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
26519         (bitmap_insert_into_set_1): Take value-id as parameter.
26520         (add_to_value): Pass it.
26521         (bitmap_insert_into_set): Likewise.
26522         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
26523
26524 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
26525
26526         PR driver/42442
26527         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
26528         (do_self_spec): For switches with SWITCH_IGNORE set set also
26529         SWITCH_IGNORE_PERMANENTLY.
26530         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
26531         of SWITCH_IGNORE.
26532
26533 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
26534
26535         * lto-streamer-out.c (output_unreferenced_globals): Output the full
26536         tree of an unreferenced global var.
26537
26538 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26539
26540         PR target/42542
26541         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26542         GTU to GT for V4SI and V2DI.
26543
26544         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26545         (umin<mode>3): Removed.
26546         (uminv8hi3): New.
26547         (uminv4si3): Likewise.
26548
26549 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26550
26551         PR lto/42581
26552         * collect2.c (main): Turn on trace in collect2 if -v is passed
26553         to gcc with LTO.
26554
26555 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
26556
26557         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
26558         description of expression operand.
26559
26560 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
26561
26562         * configure.ac: Add install-html to target_list for Make-hooks.
26563         * configure: Regenerate.
26564         * fortran/Make-lang.in (F95_HTMLFILES): New.
26565         (fortran.html): Use it.
26566         (fortran.install-html): New.
26567         * Makefile.in (install-html): Add lang.install-html.
26568         * java/Make-lang.in (JAVA_HTMLFILES): New.
26569         (java.html): Use it.
26570         (java.install-html): New.
26571         * objc/Make-lang.in (objc.install-html): New.
26572         * objcp/Make-lang.in (obj-c++.install-html): New.
26573         * cp/Make-lang.in (c++.install-html): New.
26574         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
26575         * lto/Make-lang.in (lto.install-html): New.
26576
26577 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
26578
26579         PR lto/42520
26580         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
26581
26582 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
26583
26584         PR rtl-optimization/41862
26585         * store-motion.c (store_killed_in_insn, compute_store_table,
26586         remove_reachable_equiv_notes, replace_store_insn,
26587         build_store_vectors): Ignore all DEBUG_INSNs.
26588
26589 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
26590
26591         PR lto/41564
26592         * common.opt: Add dumpdir.
26593
26594         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
26595         isn't specified.
26596         (option_map): Add --dumpdir.
26597
26598         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
26599
26600         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
26601
26602         * opts.c (decode_options): Try dump_dir_name first if
26603         dump_base_name isn't an absolute path.
26604         (common_handle_option): Handle OPT_dumpdir.
26605
26606         * toplev.c (dump_dir_name): New.
26607         (print_switch_values): Also ignore -dumpdir.
26608
26609         * toplev.h (dump_dir_name): New.
26610
26611 2010-01-03  Richard Guenther  <rguenther@suse.de>
26612
26613         PR tree-optimization/42589
26614         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
26615         double-word expansion of bswap32.
26616
26617 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
26618
26619         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
26620         with BLOCK_FOR_INSN.
26621         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
26622         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
26623         noce_process_if_block): Likewise.
26624         * gcse.c (compute_local_properties, insert_expr_in_table,
26625         insert_set_in_table, canon_list_insert, find_avail_set,
26626         pre_insert_copy_insn): Likewise.
26627
26628         * basic-block.h (BLOCK_NUM): Move from here...
26629         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
26630
26631 2010-01-03  Richard Guenther  <rguenther@suse.de>
26632
26633         PR tree-optimization/42438
26634         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
26635         contains_may_not_return_call flag.
26636         (BB_MAY_NOTRETURN): New.
26637         (valid_in_sets): Trapping nary operations are not valid
26638         in blocks that may not return.
26639         (insert_into_preds_of_block): Remove check for trapping expressions.
26640         (compute_avail): Compute also BB_MAY_NOTRETURN.
26641
26642 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
26643
26644         * doc/invoke.texi: Add 2010 to copyright years.
26645
26646 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
26647
26648         * config/sparc/sparc.c: Fix formatting nits.
26649
26650 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
26651             Alexander Monakov  <amonakov@ispras.ru>
26652
26653         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
26654
26655 2010-01-02  Richard Guenther  <rguenther@suse.de>
26656
26657         PR middle-end/42577
26658         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
26659         (simplify_switch_using_ranges): Mark to be removed edges
26660         as non-executable.
26661
26662 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26663
26664         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
26665
26666         * collect2.c (scan_libraries): Add missing argument in call to
26667         scan_prog_file.
26668
26669 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
26670
26671         PR target/42448
26672         * config/alpha/predicates.md (aligned_memory_operand): Return false
26673         for CQImode.
26674         (unaligned_memory_operand): Return true for CQImode.
26675         * config/alpha/alpha.c (get_aligned_mem): Assert that location
26676         doesn not cross aligned SImode word boundary.
26677
26678 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
26679
26680         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
26681         Remove.
26682         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
26683         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
26684
26685 2010-01-02  Richard Guenther  <rguenther@suse.de>
26686
26687         PR lto/41597
26688         * toplev.c (compile_file): Emit LTO marker properly.  Change
26689         it to __gnu_lto_v1.
26690         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
26691
26692 2010-01-01  Richard Guenther  <rguenther@suse.de>
26693
26694         PR debug/42455
26695         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
26696
26697 2010-01-01  Richard Guenther  <rguenther@suse.de>
26698
26699         PR c/42570
26700         * c-decl.c (grokdeclarator): For zero-size arrays force
26701         structural equality checks as layout_type does.
26702
26703 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
26704
26705         * builtins.c: Update copyright to 2010.
26706
26707 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
26708
26709         PR lto/42531
26710         * lto-streamer-out.c (produce_asm): Revert the last change.
26711         (copy_function): Likewise.
26712
26713         * lto-streamer.c (lto_get_section_name): Skip any leading
26714         asterisk in name.
26715
26716 2010-01-01  Richard Guenther  <rguenther@suse.de>
26717
26718         PR middle-end/42559
26719         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
26720         for LABEL_DECLs.
26721
26722 \f
26723 Copyright (C) 2010 Free Software Foundation, Inc.
26724
26725 Copying and distribution of this file, with or without modification,
26726 are permitted in any medium without royalty provided the copyright
26727 notice and this notice are preserved.