OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-08-18  Yao Qi  <yao@codesourcery.com>
2
3         PR target/45094
4         * config/arm/arm.c (output_move_double): Fix typo generating 
5         instructions ('ldr'->'str').
6
7 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
8
9         PR rtl-optimization/42575
10         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
11         live ranges.
12
13 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14
15         * config/arm/arm-protos.h (arm_expand_sync): New.
16         (arm_output_memory_barrier, arm_output_sync_insn): New.
17         (arm_sync_loop_insns): New.
18         * config/arm/arm.c (FL_ARCH7): New.
19         (FL_FOR_ARCH7): Include FL_ARCH7.
20         (arm_arch7): New.
21         (arm_print_operand): Support %C markup.
22         (arm_legitimize_sync_memory): New.
23         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
24         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
25         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
26         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
27         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
28         (arm_process_output_sync_insn, arm_output_sync_insn): New.
29         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
30         * config/arm/arm.h (struct arm_sync_generator): New.
31         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
32         (TARGET_HAVE_MEMORY_BARRIER): New.
33         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
34         * config/arm/arm.md: Include sync.md.
35         (UNSPEC_MEMORY_BARRIER): New.
36         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
37         (VUNSPEC_SYNC_OP):New.
38         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
39         (sync_result, sync_memory, sync_required_value): New attributes.
40         (sync_new_value, sync_t1, sync_t2): Likewise.
41         (sync_release_barrier, sync_op): Likewise.
42         (length): Add logic to length attribute defintion to call
43         arm_sync_loop_insns when appropriate.
44         * config/arm/sync.md: New file.
45
46 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
47
48         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
49         ENABLE_TREE_CHECKING.
50         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
51         and GCC >= 4.3.
52
53 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
54
55         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
56         or optimizing for size, always avoid lea if possible.
57
58         * config/i386/i386.md (*add<mode>_1): Always avoid lea if
59         possible.
60
61 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
62
63         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
64         Dunmmy function with NULL return unless the target is 
65         OSX >= 10.6 (Darwin10).
66         
67 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
68
69         * gcc.c (spec_function): Add remove-outfile.
70         (remove_outfile_spec_function): New function.
71         * config/darwin.h (LINK_SPEC): Add removal of
72         -ldl, -lm and -lpthread.
73         * invoke.texi (replace-outfile): Document.
74
75 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
76
77         PR target/45296
78         * reginfo.c (globalize_reg): Reject stack registers.
79
80 2010-08-17  Richard Guenther  <rguenther@suse.de>
81
82         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
83         list of conditional equivalences.
84         (free_all_edge_infos): Adjust.
85         (record_equivalences_from_incoming_edge): Likewise.
86         (record_cond): Likewise.
87         (build_and_record_new_cond): Likewise.
88         (record_conditions): Likewise.
89         (dom_opt_leave_block): Likewise.
90
91 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
92
93         * doc/invoke.texi (ms-extension): Add documentation.
94
95 2010-08-17  Richard Guenther  <rguenther@suse.de>
96
97         * fold-const.c (fold_comparison): Strip nops inside
98         POINTER_PLUS_EXPR.
99
100 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
101
102         PR c/40563
103         * c-decl.c (diagnose_uninitialized_cst_member): New function.
104         (finish_decl): Use it to issue a -Wc++-compat warning about
105         uninitialized const field in struct or union.
106
107         (finish_struct): Use strip_array_types.
108
109 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
110
111         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
112         functions.
113         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
114         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
115         call block_nreverse here.
116         (blocks_nreverse): Rename decl temporary to block.
117
118 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
119
120         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
121         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
122         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
123         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
124         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
125         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
126         thumb2_iorsi3): Delete.
127         (orsi_notsi_si): No longer a named pattern.
128         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
129         * config/arm/predicates.md (shift_amount_operand): New.
130         (mult_operator): New.
131         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
132         attr enabled): New.
133         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
134         arch matches t2.
135         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
136         (not_shiftsi_compare0): Likewise, renamed from
137         arm_notsi_shiftsi_compare0.
138         (not_shiftsi_compare0_scratch): Likweise, renamed from
139         arm_notsi_shiftsi_compare0_scratch.
140         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
141         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
142         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
143         so that the register alternative is disabled when the shift_operator
144         is MULT.  Use "M" as the constraint for constants.
145         (arith_shiftsi splitter): Enable for TARGET_32BIT.
146         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
147         constraint for constants.
148         (arith_shiftsi_compare0_scratch): Likewise.
149         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
150         Handle Thumb2 alternative.
151
152 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
153
154         * doc/options.texi (NoDriverArg): Document.
155         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
156         -MDX and -MMDX.
157         * opt-functions.awk (switch_flags): Handle NoDriverArg.
158         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
159         marking for CL_NO_DRIVER_ARG options when in the driver.
160         * opts.h (CL_NO_DRIVER_ARG): Define.
161         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
162         CL_COMMON): Update values.
163
164 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
165
166         * common.opt: Add driver options.
167         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
168         * doc/options.texi (Driver, RejectDriver): Document.
169         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
170         print_prog_name, print_multi_directory, print_sysroot,
171         print_multi_os_directory, print_multi_lib,
172         print_sysroot_headers_suffix, report_times, combine_flag,
173         use_pipes, wrapper_string): Remove.
174         (save_switch, driver_unknown_option_callback,
175         driver_wrong_lang_callback, driver_post_handling_callback,
176         driver_handle_option): New.
177         (spec_lang, last_language_n_infiles): Make file-scope static
178         instead of local to process_command.
179         (process_command): Use decode_cmdline_options_to_array and
180         read_cmdline_option for option processing.  Compute have_c in
181         prescan of decoded options.
182         * opt-functions.awk (switch_flags): Handle Driver and
183         RejectDriver.
184         (var_type, var_type_struct): Handle Separate options as generating
185         const char * variables.
186         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
187         CL_TARGET to be passed by caller if required.
188         (decode_cmdline_options_to_array): Update comment.
189         * opts.c (complain_wrong_lang): Handle options only valid for the
190         driver.
191         (decode_options): Update call to decode_cmdline_options_to_array.
192         (print_filtered_help): Ignore driver-only options.
193         (print_specific_help): Ignore CL_DRIVER.
194         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
195         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
196         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
197         Update values.
198
199 2010-08-16  Richard Guenther  <rguenther@suse.de>
200
201         * tree-cfg.c (verify_types_in_gimple_reference): Verify
202         TARGET_MEM_REF a bit.
203         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
204         (create_mem_ref_raw): Always create TMR_OFFSET, store the
205         alias pointer type via it.
206         (copy_mem_ref_info): Adjust.
207         (maybe_fold_tmr): Likewise.
208         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
209         (reference_alias_ptr_type): Likewise.
210         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
211         adjust documentation of TMR_OFFSET operand.
212         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
213         use the alias pointer type.
214         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
215         initialize mem attrs but the TMR itself.
216         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
217         similar to MEM_REF.
218         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
219         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
220         (unshare_and_remove_ssa_names): Likewise.
221         (copy_ref_info): Adjust.
222         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
223         TARGET_MEM_REF case.
224         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
225         at TMR_ORIGINAL.
226         * tree.h (TMR_ORIGINAL): Remove.
227         * gimple.c (get_base_address): For TARGET_MEM_REF with a
228         symbol return that.
229         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
230         with a symbol.
231         (get_addr_base_and_unit_offset): Likewise.
232         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
233         TARGET_MEM_REFs.
234         (indirect_ref_may_alias_decl_p): Likewise.
235         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
236
237 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
238
239         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
240         with GCC version 4.6, the default setting (when not optimizing
241         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
242         been changed to -fomit-frame-pointer.
243
244 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
245
246         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
247         Darwin10.  Do not link libgcc.a for Darwin >= 9.
248
249 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
250
251         * doc/invoke.texi (Warning Options): Fix terminology and markup
252         in the description of how unknown warning options are handled.
253
254 2010-08-15  Ira Rosen  <irar@il.ibm.com>
255
256         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
257         in basic blocks.
258         (vect_supportable_dr_alignment): Check alignment for basic blocks.
259         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
260         data references.
261         (vect_bb_vectorization_profitable_p): New function.
262         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
263         check if it's worthwhile to vectorize the basic block.
264
265 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
266
267         * reload.h (register_move_cost, memory_move_secondary_cost,
268         secondary_reload_class): Adjust prototype.
269         * rtl.h (reg_class_subset_p): Adjust prototype.
270         * reload.c (secondary_reload_class): Change arguments type from
271         enum reg_class to reg_class_t. Change result type to reg_class_t.
272         * reginfo.c (register_move_cost, reg_class_subset_p): Change
273         arguments type from enum reg_class to reg_class_t.
274         (memory_move_secondary_cost): Change arguments type from
275         enum reg_class to reg_class_t. Change type of saved_flags to
276         reg_class_t.
277
278         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
279         Remove macros.
280         (mips_cost): Remove.
281         (struct mips_rtx_cost_data): Moved to mips.c.
282         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
283         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
284         (mips_cost): Make static.
285         (mips_canonicalize_move_class): Change argument type to reg_class_t.
286         Change result type to reg_class_t.
287         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
288         type from enum reg_class to reg_class_t.
289         (mips_register_move_cost): Make static. Change arguments
290         type from enum reg_class to reg_class_t.
291         (mips_memory_move_cost): New function.
292         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
293
294 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
295
296         PR rtl-optimization/43358
297         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
298         of a single hard register, using simplify_subreg_regno to decide
299         what that register should be.
300
301 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
302
303         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
304         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
305         (loongson_pmull<V_suffix>): Rename to...
306         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
307
308 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
309
310         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
311         which support dwarf2.
312         * config/i386/i386.c (override_options): Same.
313
314 2010-08-13  Jie Zhang  <jie@codesourcery.com>
315
316         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
317
318 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
319
320         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
321         -MMD.
322
323 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
324
325         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
326         up dot_prod pattern searching if a stmt is outside the loop.
327
328 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
329             Uros Bizjak  <ubizjak@gmail.com>
330
331         * config.gcc: Handle --enable-frame-pointer.
332
333         * configure.ac: Add --enable-frame-pointer.
334         * configure: Regenerated.
335
336         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
337         (override_options): If not configured with --enable-frame-pointer,
338         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
339         optimizing for size), -fasynchronous-unwind-tables and
340         -maccumulate-outgoing-args by default.
341
342 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
343
344         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
345
346         PR middle-end/45262
347         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
348         -a overflows.  Normalize the range.
349
350 2010-08-12  Richard Guenther  <rguenther@suse.de>
351
352         PR tree-optimization/45232
353         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
354         for types with undefined overflow.
355         (reassociate_bb): Allow re-associating of bit and min/max
356         operations for types with undefined overflow.
357         * tree-ssa-forwprop.c (associate_plusminus): New function.
358         (tree_ssa_forward_propagate_single_use_vars): Call it.
359
360 2010-08-12  Richard Guenther  <rguenther@suse.de>
361
362         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
363         * tree-ssa-alias.c (get_ptr_info): Move ...
364         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
365         align and misalign fields conservatively.
366         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
367         derive alignment information.
368         (evaluate_stmt): Derive alignment information from memory
369         allocation functions.
370         * tree.h (get_pointer_alignment): Make unsigned.
371         * builtins.c (get_object_alignment): Use alignment information we
372         have computed for pointers.
373         (get_pointer_alignment): Likewise.  Make conservative, return
374         and unsigned value.
375         (expand_builtin_strlen): Adjust.
376         (expand_builtin_memcmp): Likewise.
377         (expand_builtin_strcmp): Likewise.
378         (expand_builtin_strncmp): Likewise.
379         (get_builtin_sync_mem): Use at least mode alignment.
380         (fold_builtin_memset): Adjust.
381         (fold_builtin_memory_op): Likewise.
382         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
383         information also dump pointer alignment knowledge.
384         (dump_gimple_stmt): Likewise.
385
386 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
387
388         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
389         (EMPTY_FIELD_BOUNDARY): Remove.
390         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
391
392 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
393
394         PR debug/45259
395         * caller-save.c (save_call_clobbered_regs): Only swap notes with
396         DEBUG_INSNs if n_regs_saved.
397
398 2010-08-12  Wei Guozhi  <carrot@google.com>
399
400         PR target/44999
401         * config/arm/arm.md (andsi3): Change to zero extension if possible.
402         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
403
404 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
405
406         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
407
408         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
409
410 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
411
412         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
413         the case removed in the previous patch, when the only phi argument
414         is defined in the same loop as the phi node itself.  Handle it
415         separately from the invariant case by both propagating it outside
416         the region and replacing the phi node with an assign.
417
418 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
419
420         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
421         constant phi nodes with one argument are is_gimple_min_invariant
422         and SSA_NAME_IS_DEFAULT_DEF.
423
424 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
425
426         * graphite-cloog-util.c (oppose_constraint):
427         Extend loop counter's value range (CLOOG_ORG).
428         (cloog_matrix_to_ppl_constraint): Same.
429         (new_Constraint_System_from_Cloog_matrix): Same.
430         * graphite-cloog-compat.h (matrix_num_type): New.
431
432 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
433
434         * graphite.c (graphite_initialize): Do not initialize
435         CLooG and initialize the Parma Polyhedra Library
436         manually when using CLOOG_ORG.
437         (graphite_finalize): Do not finalize CLooG and finalize
438         the Parma Polyhedra Library manually when using CLOOG_ORG.
439         * graphite-cloog-compat.h (cloog_initialize): Hide function
440         when using CLOOG_ORG.
441         (cloog_finalize): Same.
442
443 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
444
445         * graphite-clast-to-gimple.c (free_scattering): Change
446         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
447         (CLOOG_ORG).
448         (build_cloog_prog): Same.
449         * graphite-cloog-compat.h (cloog_domain): Removed.
450         (cloog_scattering): New.
451         (cloog_set_domain): Removed.
452         (cloog_set_scattering): New.
453         (cloog_next_domain): Removed.
454         (cloog_next_scattering): New.
455         (cloog_set_next_domain): Removed.
456         (cloog_set_next_scattering): New.
457         (CloogScatteringList): New.
458         (CloogScattering): New.
459         (cloog_scattering_free): New.
460         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
461         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
462         New.
463
464 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
465
466         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
467         CloogState.
468         (set_cloog_options): Same.
469         (print_clast_stmt): Same.
470         (scop_to_clast): Same.
471         (print_generated_program): Same.
472         (gloog): Same.
473         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
474         (scop_to_clast): Extend with CloogState.
475         * graphite-cloog-util.c: Include graphite-cloog-compat.h
476         (new_Cloog_Domain_from_ppl_Polyhedron):
477         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
478         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
479         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
480         * graphite-cloog-util.h (build_cloog_prog): Same.
481         * graphite-cloog-copat.h (build_cloog_prog): New.
482         (CloogState): New.
483         (cloog_state_malloc): New.
484         (cloog_state_free): New.
485         (cloog_loop_malloc): New.
486         (cloog_options_malloc): New.
487         (cloog_statement_alloc): New.
488         (cloog_domain_from_cloog_matrix): New.
489         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
490         (new_Cloog_Domain_from_ppl_Polyhedron): New.
491
492 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
493
494         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
495         type of NAME now depends on used CLooG version.
496         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
497         (gcc_type_for_clast_expr): Same.
498         (print_clast_stmt): Replace pprint with clast_pprint.
499         * graphite-cloog-compat.h: Provide compatibility macros for
500         CLooG Legacy.
501         (clast_name_p): New.
502         (clast_expr_term): New.
503         (clast_expr_red): New.
504         (clast_expr_bin): New.
505         (clast_pprint): New.
506
507 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
508
509         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
510         compatible to newer CLooG releases (CLOOG_ORG).
511         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
512         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
513         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
514         (build_cloog_prog) : New.
515         (cloog_program_extract_scalars): New.
516         (cloog_program_scatter): New.
517
518 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
519
520         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
521         conditionally (CLOOG_ORG).
522         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
523         (cloog_statement_usr): New.
524         (cloog_domain): Same.
525         (cloog_set_domain): Same.
526         (cloog_next_domain): Same.
527         (cloog_set_next_domain): Same.
528         (cloog_program_nb_scattdims): Same.
529         (cloog_program_set_nb_scattdims): Same.
530         (cloog_program_names): Same.
531         (cloog_program_set_names): Same.
532         (cloog_program_set_context): Same.
533         (cloog_program_set_loop): Same.
534         (cloog_program_blocklist): Same.
535         (cloog_program_set_blocklist): Same.
536         (cloog_program_scaldims): Same.
537         (cloog_program_set_scaldims): Same.
538         (cloog_names_nb_parameters): Same.
539         (cloog_names_set_nb_parameters): Same.
540         (cloog_names_parameters): Same.
541         (cloog_names_set_parameters): Same.
542         (cloog_names_set_nb_iterators): Same.
543         (cloog_names_set_iterators): Same.
544         (cloog_names_set_nb_scattering): Same.
545         (cloog_names_set_scattering): Same.
546         (cloog_statement_set_usr): Same.
547         (cloog_loop_set_next): Same.
548         (cloog_loop_set_domain): Same.
549         (cloog_loop_set_block): Same.
550         (cloog_block_list_next): Same.
551         (cloog_block_list_set_next):
552         (cloog_block_list_set_block): Same.
553
554 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
555
556         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
557         a bool.
558         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
559         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
560         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
561         when something has been changed.
562         (rewrite_commutative_reductions_out_of_ssa): Same.
563
564 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
565
566         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
567         handle the case when def is in the sese region.
568         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
569         for invariant expressions.
570         (rewrite_cross_bb_phi_deps): Removed.
571         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
572         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
573         rewrite_cross_bb_phi_deps.
574
575 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
576
577         * graphite-sese-to-poly.c
578         (rewrite_commutative_reductions_out_of_ssa_loop): Call
579         scev_analyzable_p only on is_gimple_reg
580
581 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
582
583         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
584         (rewrite_close_phi_out_of_ssa): Propagate constant values or
585         parametric expressions outside the scop region.
586         (rewrite_cross_bb_scalar_deps): Same.
587         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
588
589 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
590
591         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
592         SSA_NAME_DEF_STMT only on SSA_NAMEs.
593
594 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
595
596         * tree-scalar-evolution.c (instantiate_scev_name): Do not
597         instantiate default definitions.
598
599 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
600             Sebastian Pop  <sebastian.pop@amd.com>
601
602         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
603         (loop_exits_from_bb_p): New.
604         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
605         (loop_exits_from_bb_p): Declared.
606         * graphite-scop-detection.c (scopdet_basic_block_info): Call
607         loop_exits_to_bb_p.
608
609 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
610
611         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
612         extra parameter for the region.  Call scev_analyzable_p.
613         (rewrite_reductions_out_of_ssa): Update call to
614         rewrite_close_phi_out_of_ssa.
615         (rewrite_cross_bb_phi_deps): Same.
616         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
617         parameter for the region.  Call scev_analyzable_p.
618         (rewrite_commutative_reductions_out_of_ssa): Update call to
619         rewrite_commutative_reductions_out_of_ssa_loop.
620
621 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
622
623         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
624
625 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
626
627         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
628         SSA scalar phi nodes that can be scev_analyzable_p.
629
630 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
631
632         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
633         handle SSA_NAME_IS_DEFAULT_DEF.
634
635 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
636
637         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
638
639 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
640
641         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
642         case non close-phi nodes with one argument.
643
644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
645
646         * sese.h (scev_analyzable_p): Scevs could be expressions without
647         chrecs and still be scev_analyzable_p.
648
649 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
650
651         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
652
653 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
654
655         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
656         * cfgloop.h (struct loop): Remove single_iv field.
657         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
658         (scop_canonicalize_loops): Removed.
659         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
660         over all the loop phi nodes in loop->header.
661         (build_poly_scop): Remove use of scop_canonicalize_loops.
662
663 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
664
665         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
666         handle GIMPLE_CALL.
667
668 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
669
670         * tree-chrec.c (chrec_apply): Should only apply to the specified
671         variable.  Also handle multivariate chains of recurrences that
672         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
673
674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
675
676         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
677         (debug_clast_name_indexes_1): Removed.
678         (debug_clast_name_indexes): Removed.
679         (pbb_to_depth_to_oldiv): Removed.
680         (build_iv_mapping): Replace the use of rename_map with iv_map.
681         (translate_clast_user): Remove uses of rename_map.  Allocate and
682         free iv_map.
683         (translate_clast_for_loop): Remove uses of rename_map.
684         (translate_clast_for): Same.
685         (translate_clast_guard): Same.
686         (translate_clast): Same.
687         (gloog): Same.
688         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
689         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
690         * sese.c (set_rename): Now static.
691         (rename_variables_in_stmt): Removed.
692         (rename_uses): New.
693         (is_parameter): Removed.
694         (is_iv): Removed.
695         (expand_scalar_variables_call): Removed.
696         (expand_scalar_variables_ssa_name): Removed.
697         (expand_scalar_variables_expr): Removed.
698         (expand_scalar_variables_stmt): Removed.
699         (expand_scalar_variables): Removed.
700         (rename_variables): Removed.
701         (remove_condition): Removed.
702         (get_true_edge_from_guard_bb): Removed.
703         (get_false_edge_from_guard_bb): Removed.
704         (struct igp): Removed.
705         (default_before_guard): Removed.
706         (convert_for_phi_arg): Removed.
707         (add_guard_exit_phis): Removed.
708         (insert_guard_phis): Removed.
709         (graphite_copy_stmts_from_block): Now also uses iv_map and a
710         region.  Do not copy conditions.  Do not copy induction variables.
711         Call rename_uses.
712         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
713         the translated statement.  Use the iv_map for the induction
714         variable renaming.
715         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
716         (set_rename): Removed declaration.
717         (scev_analyzable_p): ...here.
718         * tree-chrec.c (chrec_apply_map): New.
719         * tree-chrec.h (chrec_apply_map): Declared.
720
721 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
722
723         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
724         insert_loop_close_phis.
725         * sese.c (name_defined_in_loop_p): Removed.
726         (expr_defined_in_loop_p): Removed.
727         (alive_after_loop): Removed.
728         (close_phi_not_yet_inserted_p): Removed.
729         (struct alep): Removed.
730         (add_loop_exit_phis): Removed.
731         (insert_loop_close_phis): Removed.
732
733 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
734
735         * graphite-cloog-util.c
736         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
737         * graphite-poly.c
738         (psct_scattering_dim_for_loop_depth): Same.
739
740 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
741
742         * graphite-cloog-util.h: Added cloog.h.
743         * graphite-blocking.c: Removed cloog.h.
744         * graphite-dependences.c: Same.
745         * graphite-interchange.c: Same.
746         * graphite-poly.c: Same.
747         * graphite-ppl.c: Same.
748         * graphite-scop-detection.c: Same.
749         * graphite-sese-to-poly.c:
750         Removed cloog.h.
751         Removed graphite-clast-to-gimple.h.
752         (check_poly_representation): Removed (unused).
753         * graphite-sese-to-poly.h
754         (check_poly_representation): Removed (unused).
755
756 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
757
758         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
759         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
760         (graphite-cloog-util.o): New.
761         (graphite-ppl.o): Added graphite-cloog-util.h.
762         * graphite-clast-to-gimple.c:
763         Added graphite-cloog-util.h to include statements.
764         * graphite-cloog-util.c: New.
765         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
766         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
767         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
768         (new_C_Polyhedron_from_Cloog_Matrix): Same.
769         (insert_constraint_into_matrix): Same.
770         (ppl_Constrain_System_number_of_constraints): Same.
771         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
772         (oppose_constraint): Same.
773         (cloog_matrix_to_ppl_constraint): Same.
774         (new_Constraint_System_from_Cloog_Matrix): Same.
775         * graphite-cloog-util.h: New.
776         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
777         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
778         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
779         (new_C_Polyhedron_from_Cloog_Matrix): Same.
780         (insert_constraint_into_matrix): Same.
781         * graphite-ppl.c:
782         Added graphite-cloog-util.h to include statements.
783         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
784         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
785         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
786         (new_C_Polyhedron_from_Cloog_Matrix): Same.
787         (insert_constraint_into_matrix): Same.
788         (ppl_Constrain_System_number_of_constraints): Same.
789         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
790         (oppose_constraint): Same.
791         (cloog_matrix_to_ppl_constraint): Same.
792         (new_Constraint_System_from_Cloog_Matrix): Same.
793         * graphite-ppl.h:
794         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
795         graphite-cloog-util.h.
796         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
797         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
798         (new_C_Polyhedron_from_Cloog_Matrix): Same.
799         (insert_constraint_into_matrix): Same.
800
801 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
802
803         * graphite-clast-to-gimple.c
804         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
805         (precision_for_interval): Same.
806         (gcc_type_for_interval): Same.
807         (compute_type_for_level): Same.
808         * graphite-interchange.c
809         (lst_interchange_profitable_p): Same.
810         * graphite-poly.c
811         (psct_scattering_dim_for_loop_depth): Same.
812         * graphite-ppl.c
813         (ppl_max_for_le_pointset): Same.
814         (ppl_min_for_le_pointset): Same.
815
816 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
817
818         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
819         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
820
821 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
822
823         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
824         rewrite_close_phi_out_of_ssa.
825
826 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
827
828         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
829
830 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
831
832         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
833         rename_map.
834         * sese.c (debug_rename_map): Same.
835         (get_rename): Same.
836         (set_rename): Same.
837         (rename_variables_in_stmt): Same.
838         (expand_scalar_variables_call): Same.
839         (expand_scalar_variables_ssa_name): Same.
840         (expand_scalar_variables_expr): Same.
841         (expand_scalar_variables_stmt): Same.
842         (expand_scalar_variables): Same.
843         (rename_variables): Same.
844         (graphite_copy_stmts_from_block): Same.
845         (copy_bb_and_scalar_dependences): Same.
846
847 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
848
849         * graphite-clast-to-gimple.c (copy_renames): Removed.
850         (translate_clast_for): Do not call copy_renames.
851         (translate_clast_guard): Same.
852
853 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
854
855         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
856         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
857         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
858         before rewrite_cross_bb_scalar_deps.
859
860 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
861
862         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
863         Early return in when flag_associative_math is not set.
864
865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
866
867         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
868         of SSA copies on edges except for loop->latch.
869
870 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
871
872         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
873         Split out of rewrite_reductions_out_of_ssa.
874         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
875         Declared.
876         * graphite.c (graphite_transform_loops): Call it.
877
878 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
879
880         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
881
882 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
883
884         * dbgcnt.def (graphite_scop): New counter.
885         * graphite.c: Include dbgcnt.h.
886         (graphite_transform_loops): Use new counter to limit transformations.
887         * Makefile.in (graphite.o): Depend on DBGCNT_H.
888
889 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
890
891         * passes.c (init_optimization_passes): Add pass_graphite.
892         Schedule a pass_copy_prop before pass_graphite_transforms.
893         * timevar.def (TV_GRAPHITE): Declared.
894         * tree-pass.h (pass_graphite): Declared.
895         * tree-ssa-loop.c (pass_graphite): New.
896
897 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
898
899         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
900         Remove calls to rename_nb_iterations and rename_sese_parameters.
901         * graphite-clast-to-gimple.h (gloog): Update declaration.
902         * graphite.c (graphite_transform_loops): Update call to gloog.
903         * sese.c (rename_variables_in_expr): Removed.
904         (rename_nb_iterations): Removed.
905         (rename_sese_parameters): Removed.
906         * sese.h (rename_nb_iterations): Removed.
907         (rename_sese_parameters): Removed.
908
909 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
910
911         * graphite-clast-to-gimple.c (gloog): Remove call to
912         sese_adjust_liveout_phis.
913         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
914         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
915         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
916         rewrite_phi_out_of_ssa.
917         * sese.c (get_vdef_before_sese): Removed.
918         (sese_adjust_vphi): Removed.
919         (sese_adjust_liveout_phis): Removed.
920         * sese.h (sese_adjust_liveout_phis): Removed.
921
922 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
923
924         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
925         argument for the place after which to insert the out of SSA copy.
926         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
927         (rewrite_phi_out_of_ssa): Same.
928         (rewrite_cross_bb_scalar_deps): Same.
929         (insert_copyout): Removed.
930         (insert_copyin): Removed.
931         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
932         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
933         insert_copyin.
934
935 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
936
937         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
938         (rewrite_reductions_out_of_ssa): Same.
939         (rewrite_commutative_reductions_out_of_ssa): Same.
940         (build_poly_scop): Do not call these functions.
941         * graphite-sese-to-poly.h (build_poly_scop): Declared.
942         (rewrite_reductions_out_of_ssa): Declared.
943         (rewrite_commutative_reductions_out_of_ssa): Declared.
944         * graphite.c (graphite_transform_loops): Call on every scop
945         rewrite_commutative_reductions_out_of_ssa before calling
946         rewrite_reductions_out_of_ssa and build_scop_bbs.
947
948 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
949
950         * graphite-dependences.c (dot_deps): Make system call to dotty run
951         in background.
952         (dot_deps_stmt): Same.
953         * graphite-poly.c (dot_lst): Same.
954
955 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
956
957         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
958         phi_arg_in_outermost_loop.
959         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
960         (remove_invariant_phi): Same.
961
962 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
963
964         * target.def (output_addr_const_extra): New hook.
965         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
966         * doc/tm.texi: Regenerate.
967         * targhooks.c (default_asm_output_addr_const_extra): New function.
968         * targhooks.h (default_asm_output_addr_const_extra): Declare.
969         * final.c: (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
970         target hook.
971
972         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
973         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
974         * config/i386/i386.h (output_addr_const_extra): Rename to...
975         (i386_asm_output_addr_const_extra): ...this. Make static.
976         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
977
978 2010-08-11  Richard Henderson  <rth@redhat.com>
979
980         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
981
982 2010-08-11  Nick Clifton  <nickc@redhat.com>
983
984         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
985         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
986         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
987         stormy16-lib2-cmpsi.c.
988
989         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
990         -O2.
991
992 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
993
994         * opts.h (struct cl_option_handler_func): Make handler take
995         cl_decoded_option structure as parameter, not individual elements.
996         (struct cl_option_handlers): Make callbacks take cl_decoded_option
997         structure as parameter, not individual elements.
998         (handle_option): Take cl_decoded_option structure as parameter,
999         not individual elements.
1000         (handle_generated_option): Declare.
1001         * opts-common.c (handle_option): Take cl_decoded_option structure
1002         as parameter, not individual elements.  Update calls to callback
1003         and handler functions.
1004         (handle_generated_option): New.
1005         (read_cmdline_option): Update calls to callback functions and
1006         handle_option.
1007         * opts.c (common_handle_option, complain_wrong_lang,
1008         unknown_option_callback, post_handling_callback,
1009         lang_handle_option, target_handle_option): Take cl_decoded_option
1010         structure as parameter, not individual elements.
1011         (lang_handle_option, target_handle_option, common_handle_option):
1012         Assert option has at most one argument.
1013         (enable_warning_as_error): Call handle_generated_option instead of
1014         handle_option.  Do not pass -Werror argument as argument of
1015         generated option.
1016
1017 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1018
1019         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
1020         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
1021         (SUBWORD_BOOL_CAS): Likewise.
1022         (SUBWORD_SYNC_OP): Likewise.
1023         (SUBWORD_TEST_AND_SET): Likewise.
1024         (FETCH_AND_OP_WORD): Parenthesise INF_OP
1025         (SUBWORD_SYNC_OP): Likewise.
1026         (OP_AND_FETCH_WORD): Likewise.
1027
1028 2010-08-10  Xinliang David Li  <davidxl@google.com>
1029
1030         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
1031         compute max/min offset in address.
1032
1033 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
1034
1035         * ira-live.c: Include sbitmap.h.
1036         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
1037         Compress live ranges even more.
1038
1039 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
1040
1041         * coverage.c (ctr_labels): Delete.
1042
1043 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
1044
1045         PR bootstrap/45177
1046         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
1047         test here from arm_gen_load_multiple_1.
1048         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
1049         multiple_operation_profitable_p.
1050
1051 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
1052
1053         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
1054         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
1055
1056 2010-08-10  Richard Henderson  <rth@redhat.com>
1057
1058         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
1059         after saving registers.  Assert that SSE registers are only saved
1060         with a sufficiently aligned frame.
1061         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
1062         remove stack_realign_fp handling.
1063         (ix86_expand_prologue): Save int registers before stack_realign_fp,
1064         and do not mark the stack alignment as frame related.
1065         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
1066
1067         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
1068         saves when re-aligning the stack.
1069
1070 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
1071
1072         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
1073         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
1074         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
1075
1076 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
1077
1078         * dwarf2out.c (struct die_struct): Move die_tag to the end.
1079
1080 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
1081
1082         * config/arm/iterators.md: New file.
1083         * config/arm/arm.md: Include iterators.md.
1084         (QHSI): Move to new file.
1085         (LTUGEU, cnb, optab, ior_xor): Likewise.
1086         * config/arm/iwmmxt.md (VMMX): Move to new file.
1087         (VSHFT, MMX_char): Likewise.
1088         * config/arm/neon.md (VD): Move to new file.
1089         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
1090         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
1091         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
1092         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
1093         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
1094         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
1095         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
1096         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
1097         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
1098         (Is_d_reg, V_mode_nunits): Likewise.
1099         * config/arm/vec-common.md (VALL): Move to new file.
1100         (VALLW, VINT, VINTW): Likewise.
1101
1102 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
1103
1104         PR middle-end/45182
1105         * combine.c (make_compound_operation): Don't try to convert
1106         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
1107
1108 2010-08-10  Richard Guenther  <rguenther@suse.de>
1109
1110         * tree.h (get_object_alignment): Adjust prototype.
1111         * builtins.c (get_object_alignment): Return unsigned int,
1112         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
1113         and TARGET_MEM_REF properly.
1114         (get_pointer_alignment): Adjust.
1115         * emit-rtl.c (get_mem_align_offset): Adjust comment.
1116         (set_mem_attributes_minus_bitpos): Adjust.
1117         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
1118
1119 2010-08-10  Richard Guenther  <rguenther@suse.de>
1120
1121         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
1122         (copy_prop_visit_assignment): Simplify.
1123         (copy_prop_visit_stmt): Also visit assignments from
1124         constants.
1125         (copy_prop_visit_phi_node): Use operand_equal_p.
1126
1127 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
1128
1129         * ipa-split.c (find_split_points): Free stack.
1130
1131 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
1132
1133         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
1134         * tree.c (tree_node_kind): Delete corresponding entries.
1135
1136 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
1137
1138         * alias.c (may_alias_p): Remove unused ret.
1139
1140 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
1141
1142         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
1143         alias_sets_conflict_p.
1144         (walk_mems_1): Moved from alias.c.
1145         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
1146         in alias.c.
1147         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
1148         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
1149         * alias.c (walk_mems_2): Moved to ddg.c.
1150         (walk_mems_1): Ditto.
1151         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
1152         to ddg.c.
1153         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
1154         disambiguation.
1155         *(may_alias_p): New function to check whether two memory expression
1156         may alias or not. Currently used in buidling inter-iteration memory
1157         dependence.
1158         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
1159         (insn_alias_sets_conflict_p): Removed
1160         *rtl.h (may_alias_p): New function prototype.
1161
1162 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
1163
1164         * tree.c (nreverse): Assert that we don't have a BLOCK.
1165
1166 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
1167
1168         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
1169         * config/arm/arm.c (arm_get_pcs_model): Likewise.
1170         * config/avr/avr.c (init_cumulative_args): Likewise.
1171         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1172         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
1173         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
1174         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
1175         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
1176         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1177         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
1178         * dwarf2out.c (gen_subprogram_die): Likewise.
1179         * function.c (allocate_struct_function): Likewise.
1180         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
1181         (deserves_ellipsis): Delete.
1182
1183 2010-08-09  Richard Guenther  <rguenther@suse.de>
1184
1185         * tree-ssa-copy.c (cached_last_copy_of): Remove.
1186         (valueize_val): New function.
1187         (get_last_copy_of): Remove.
1188         (set_copy_of_val): Simplify.
1189         (dump_copy_of): Likewise.
1190         (copy_prop_visit_cond_stmt): Use valueize_val.
1191         (copy_prop_visit_phi_node): Properly handle unvisited names.
1192         Drop code managing copy-of chains.
1193         (init_copy_prop): Adjust.
1194         (fini_copy_prop): Likewise.
1195         (execute_copy_prop): Remove obsolete comment.
1196
1197 2010-08-09  Richard Guenther  <rguenther@suse.de>
1198
1199         PR middle-end/44632
1200         * function.c (gimplify_parameters): Do not clear addressable
1201         bit of the original parameter.
1202
1203 2010-08-09  Richard Guenther  <rguenther@suse.de>
1204
1205         PR middle-end/45212
1206         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
1207         alignment from MEM_REF offset only if we took it from the
1208         base object.
1209
1210 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
1211
1212         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
1213
1214 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
1215
1216         * c-tree.h (build_arg_info): Declare.
1217         * c-decl.c (build_arg_info): Define.
1218         (get_parm_info): Call it.  Delete initialization code.
1219         * c-parser.c (c_parser_parms_declarator): Likewise.
1220         (c_parser_parms_list_declaractor): Likewise.
1221
1222 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
1223
1224         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
1225         (struct c_arg_info): Change type of tags field.
1226         * c-decl.c (grokdeclarator): Update for changed type of tags field.
1227         (get_parm_info): Likewise.
1228         (store_parm_decls_newstyle): Likewise.
1229
1230 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
1231
1232         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
1233         (branch_island_list): Delete.
1234         (branch_islands): Declare.
1235         (add_compiler_branch_island): Adjust for branch_islands instead of
1236         branch_island_list.
1237         (macho_branch_islands): Likewise.
1238         (no_previous_def): Likewise.
1239         (get_prev_label): Likewise.
1240
1241 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1242
1243         PR boehm-gc/34544
1244         * gthr-posix.h (__gthread_start): Delete.
1245         (__gthread_active_init): Use pthread_default_stacksize_np instead of
1246         pthread_create to determine if hpux pthreads are active.
1247         * gthr-posix95.h (__gthread_start): Delete.
1248         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
1249
1250 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
1251
1252         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
1253         _WIN64 not expanded.
1254
1255 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
1256             H.J. Lu  <hongjiu.lu@intel.com>
1257
1258         PR target/45213
1259         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
1260         to output 32bit SFmode immediate as 8 byte sign extended value.
1261
1262 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1263
1264         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
1265         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
1266         (SUBWORD_BOOL_CAS): Likewise.
1267         (SUBWORD_SYNC_OP): Likewise.
1268         (SUBWORD_TEST_AND_SET): Likewise.
1269         (FETCH_AND_OP_WORD): Parenthesise INF_OP
1270         (SUBWORD_SYNC_OP): Likewise.
1271         (OP_AND_FETCH_WORD): Likewise.
1272
1273 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1274
1275         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
1276         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
1277         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
1278         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
1279         generic part.
1280         (cortex_a9_sched_adjust_cost): New function.
1281         (xscale_sched_adjust_cost): New function.
1282         * config/arm/arm-protos.h (struct tune_params): New field
1283         sched_adjust_cost.
1284         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
1285
1286 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
1287
1288         PR target/44942
1289         * config/sparc/sparc.c (function_arg_advance): Always take into account
1290         the padding, if any.
1291
1292 2010-08-06  Richard Guenther  <rguenther@suse.de>
1293
1294         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
1295         (dump_lattice_value): Dump it.
1296         (get_default_value): Adjust.
1297         (get_constant_value): Likewise.
1298         (set_value_varying): Likewise.
1299         (set_lattice_value): Make sure to not go up the lattice
1300         with bitwise constant values.
1301         (get_value_for_expr): Handle ADDR_EXPRs.
1302         (value_to_double_int): New function.
1303         (get_value_from_alignment): Likewise.
1304         (do_dbg_cnt): Adjust.
1305         (ccp_lattice_meet): Handle partially constant values.
1306         (bit_value_unop_1): New function.
1307         (bit_value_binop_1): Likewise.
1308         (bit_value_unop): Likewise.
1309         (bit_value_binop): Likewise.
1310         (evaluate_stmt): Track partially constant values if
1311         flag_tree_bit_ccp is set.
1312         (ccp_fold_stmt): Dump if we folded a predicate.
1313         (ccp_visit_stmt): Adjust.
1314         * common.opt (ftree-bit-ccp): New flag.
1315         * doc/invoke.texi (ftree-bit-ccp): Document.
1316         * opts.c (decode_options): Enable bit-CCP at -O1.
1317
1318 2010-08-06  Alan Modra  <amodra@gmail.com>
1319
1320         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
1321         and -mrelocatable-lib description.
1322
1323 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
1324
1325         From Martin Thuresson  <martint@google.com>
1326         * postreload.c (reload_cse_simplify_operands): Use
1327         SET_REGNO_RAW instead of SET_REGNO.
1328         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
1329         SET_REGNO.
1330         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
1331         instead of SET_REGNO.
1332         * rtl.h (SET_REGNO_RAW): New macro.
1333
1334 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
1335
1336         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
1337         computations.  Fix formatting issues.
1338         (num_sign_bit_copies1): Likewise.
1339         (canonicalize_condition): Likewise.
1340
1341 2010-08-05  Richard Henderson  <rth@redhat.com>
1342
1343         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
1344         (floor_log2): Use clz_hwi.
1345         (exact_log2): Use ctz_hwi.
1346         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
1347         * builtins.c (fold_builtin_bitop): Use them.
1348         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
1349         * combine.c (get_pos_from_mask): Use ctz_hwi.
1350         * double-int.c (double_int_ctz): Likewise.
1351         * explow.c (force_reg): Likewise.
1352         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
1353
1354 2010-08-05  Richard Henderson  <rth@redhat.com>
1355
1356         PR target/45189
1357         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
1358         the alignment constant is properly sign-extended.
1359
1360 2010-08-05  Richard Guenther  <rguenther@suse.de>
1361
1362         * expr.c (store_expr): Use emit_block_move only if both
1363         source and target are MEMs.  Use store_bit_field if only
1364         the target is a MEM.
1365
1366 2010-08-05  Richard Henderson  <rth@redhat.com>
1367
1368         PR debug/45188
1369         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
1370         (INCOMING_RETURN_ADDR_RTX): Likewise.
1371         (dwarf2out_do_frame): Remove conditional compilation.
1372         (dwarf2out_frame_init): Likewise.
1373
1374 2010-08-05  Nicolas Setton  <setton@adacore.com>
1375
1376         * gcov.c (flag_display_progress): New static variable.
1377         (main): Display progress info on standard output if requested.
1378         (options): Add -d/--display-progress.
1379         (print_usage): Print them.
1380         (process_args): Handle them.
1381         * doc/gcov.texi: Document them.
1382
1383 2010-08-05  Martin Jambor  <mjambor@suse.cz>
1384
1385         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
1386         (ipcp_insert_stage): Redirect only edges not flagged with
1387         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
1388         discovered constants.
1389
1390 2010-08-05  Martin Jambor  <mjambor@suse.cz>
1391
1392         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
1393         (struct ipa_param_descriptor): New fields types and
1394         cannot_devirtualize.
1395         (ipa_param_cannot_devirtualize_p): New function.
1396         (ipa_param_types_vec_empty): Likewise.
1397         (ipa_make_edge_direct_to_target): Declare.
1398         * ipa-cp.c: Fixed first stage driver name in initial comment,
1399         described devirtualization there too.
1400         (ipcp_analyze_node): Call ipa_analyze_params_uses.
1401         (ipcp_print_all_lattices): Print devirtualization info.
1402         (ipa_set_param_cannot_devirtualize): New function.
1403         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
1404         lattice to BOTTOM.
1405         (ipcp_init_stage): Merged into...
1406         (ipcp_generate_summary): ...its caller.
1407         (ipcp_change_tops_to_bottom): Also process type lists.
1408         (ipcp_add_param_type): New function.
1409         (ipcp_copy_types): Likewise.
1410         (ipcp_propagate_types): Likewise.
1411         (ipcp_propagate_stage): Also propagate types.
1412         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
1413         Also return true if propagated types require it.
1414         (ipcp_update_callgraph): Dump redirection info.
1415         (ipcp_process_devirtualization_opportunities): New function.
1416         (ipcp_const_param_count): Include known type information.
1417         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
1418         on new node.  Fixed formatting.
1419         * ipa-prop.c (make_edge_direct_to_target): Renamed to
1420         ipa_make_edge_direct_to_target and changed all callers.  Made
1421         externally visible.
1422         (ipa_node_duplication_hook): Duplicate types vector.
1423         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
1424         redirect outgoing calls for which we can't get a decl from the
1425         statement.  Check that we can get a decl from the call statement.
1426         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1427         ipa_analyze_params_uses only when ipa-cp is disabled.
1428         * tree-inline.c (get_indirect_callee_fndecl): Removed.
1429         (expand_call_inline): Do not call get_indirect_callee_fndecl.
1430         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
1431         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
1432
1433 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
1434
1435         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
1436         temporary. Emit move from temporary to accum, so REG_EQUAL note will
1437         be attached to this insn in correct mode.
1438
1439 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
1440
1441         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
1442         using REGNO of base_reg directly.
1443
1444 2010-08-05  Jie Zhang  <jie@codesourcery.com>
1445
1446         PR tree-optimization/45144
1447         * tree-sra.c (type_consists_of_records_p): Return false
1448         if the record contains bit-field.
1449
1450 2010-08-04  Richard Henderson  <rth@redhat.com>
1451
1452         * config/i386/i386.c (struct ix86_frame): Remove padding and
1453         to_allocate members.
1454         (ix86_compute_frame_layout): Don't store them.
1455         (ix86_can_use_return_insn_p): Use a more direct and more obviously
1456         correct condition for the position of the stack pointer.
1457         (ix86_expand_prologue): Compute remaining stack allocation based
1458         on the ultimate stack pointer offset.
1459         (ix86_expand_epilogue): Use more obvious expressions testing for
1460         the stack pointer already pointing to the saved registers.
1461
1462         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
1463         duplication deconstructing the frame pointer.  Simplify
1464         deallocation of the local stack frame.
1465
1466         * reg-notes.def (CFA_EXPRESSION): New.
1467         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1468         (dwarf2out_frame_debug_cfa_expression): New.
1469         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
1470
1471         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
1472         * config/i386/i386.c (ix86_expand_prologue): Set it.
1473         (ix86_expand_epilogue): Clear it.
1474         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
1475         context, add REG_CFA_EXPRESSION notes.
1476
1477         * config/i386/i386.h (struct machine_frame_state): Rename from
1478         machine_cfa_state.  Add members tracking SP and FP regardless
1479         of the current CFA register.
1480         (ix86_cfa_state): Remove.
1481         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
1482         and sse_reg_save_offset members.
1483         (ix86_compute_frame_layout): Set them.
1484         (gen_push): Increment sp_offset too.
1485         (choose_baseaddr_len, choose_baseaddr): New.
1486         (ix86_emit_save_reg_using_mov): New.
1487         (ix86_emit_save_regs_using_mov): Use it.
1488         (ix86_emit_save_sse_regs_using_mov): Likewise.
1489         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
1490         compare vs the saved red_zone_offset.
1491         (pro_epilogue_adjust_stack): Adjust sp_offset.
1492         (ix86_adjust_stack_and_probe): Likewise.
1493         (ix86_expand_prologue): Set up, use, and validate the new
1494         frame_state_info members.  Use gen_frame_mem.
1495         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
1496         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
1497         new frame_state_info members.
1498         (ix86_emit_leave): Likewise.
1499         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
1500         out-of-range stack pointer offsets here.
1501         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1502         (ix86_expand_epilogue): Use and validate the new frame_state_info
1503         members.  Break up and simplify the logic selecting the
1504         restore_regs_via_mov code path.  Ensure that there will be no
1505         out-of-range stack pointer offsets.
1506
1507         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
1508
1509         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
1510         argument name to reflect the expected tree; fix indentation.
1511         (ix86_asm_output_function_label): Output the entire 32-bit
1512         ms_hook here as bytes ...
1513         (ix86_expand_prologue): ... not here as insns.  Attach the
1514         unwind info for the ms_hook to a blockage insn.
1515         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
1516         (ix86_ms_bitfield_layout_p): Fix indentation.
1517         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
1518
1519         * config/i386/i386.c (ix86_using_red_zone): New.
1520         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
1521         ix86_expand_prologue, ix86_force_to_memory): Use it.
1522
1523         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
1524         saving the int registers.
1525
1526         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
1527         and DWARF2_UNWIND_INFO conditional compilation.
1528
1529 2010-08-04  Richard Henderson  <rth@redhat.com>
1530
1531         PR debug/45171
1532         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
1533         an is_naming_typedef_decl.
1534
1535 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
1536
1537         PR rtl-optimization/45162
1538         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
1539         * dce.c (word_dce_process_block): Likewise.
1540
1541 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
1542
1543         PR target/44583
1544         * config/ia64/constraints.md (Z): New.
1545         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
1546         (xfreg_or_signed_fp01_operand): New.
1547         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
1548         with fr_reg_or_signed_fp01_operand and constraint G with Z.
1549         (subsf3): Ditto.
1550         (*maddsf4): Ditto.
1551         (*msubsf4): Ditto.
1552         (adddf3): Ditto.
1553         (adddf3_trunc): Ditto.
1554         (subdf3): Ditto.
1555         (*subdf3_trunc): Ditto.
1556         (*madddf4): Ditto.
1557         (*madddf4_trunc): Ditto.
1558         (*msubdf4): Ditto.
1559         (*msubdf4_trunc): Ditto.
1560         (addxf3): Replace xfreg_or_fp01_operand with
1561         xfreg_or_signed_fp01_operand and constraint G with Z.
1562         (*addxf3_truncsf): Ditto.
1563         (*addxf3_truncdf): Ditto.
1564         (subxf3): Ditto.
1565         (*subxf3_truncsf): Ditto.
1566         (*subxf3_truncdf): Ditto.
1567         (*maddxf4): Ditto.
1568         (*maddxf4_truncsf): Ditto.
1569         (*maddxf4_truncdf): Ditto.
1570         (*msubxf4): Ditto.
1571         (*msubxf4_truncsf): Ditto.
1572         (*msubxf4_truncdf): Ditto.
1573
1574 2010-08-04  Richard Guenther  <rguenther@suse.de>
1575
1576         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
1577         if either alias-set is zero.
1578
1579 2010-08-04  Richard Guenther  <rguenther@suse.de>
1580
1581         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
1582         * tree-ssa-ccp.c: ... here.
1583         * tree-ssa-copy.c: ... and here.
1584         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
1585         value_range_t): Move ...
1586         * tree-vrp.c: ... here.
1587         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
1588         (substitute_and_fold): Adjust prototype.
1589         * tree-ssa-propagate.c (replace_uses_in): Adjust.
1590         (replace_phi_args_in): Likewise.
1591         (substitute_and_fold): Take callback to query lattice instead
1592         of pointer to lattice.  Replace SSA name defs with lattice
1593         values first.
1594         * tree-ssa-ccp.c (ccp_finalize): Adjust.
1595         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
1596         (get_value): New function.
1597         (fini_copy_prop): Adjust.
1598         * tree-vrp.c (vrp_finalize): Adjust.
1599
1600 2010-08-04  Richard Guenther  <rguenther@suse.de>
1601
1602         PR middle-end/45176
1603         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
1604         points-to set for original MEM_REF.
1605
1606 2010-08-04  Richard Guenther  <rguenther@suse.de>
1607
1608         * tree-ssa-ccp.c (get_constant_value): New function.
1609         (get_rhs_assign_op_for_ccp): Remove.
1610         (valueize_op): New function.
1611         (ccp_fold): Use get_constant_value and valueize_op.
1612         (fold_const_aggregate_ref): Likewise.
1613         (ccp_fold_stmt): Likewise.
1614         (visit_assignment): Simplify.
1615
1616 2010-08-04  Richard Guenther  <rguenther@suse.de>
1617
1618         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
1619         * double-int.h (double_int_ctz): Declare.
1620         * double-int.c (double_int_ctz): New function.
1621
1622 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
1623
1624         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
1625         Define.
1626         picochip_expand_movmemhi : Expand movmem pattern.
1627         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
1628         Declare.
1629         * config/picochip/picochip.md (movmemhi) : New pattern.
1630
1631 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
1632
1633         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
1634
1635 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
1636
1637         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
1638         NEG as operand of a MULT by merging it with the other operand.
1639         * combine.c (make_compound_operation): Use trunc_int_for_mode when
1640         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
1641         MULT.
1642         * config/arm/constraints.md (M): Examine only 32 bits of a
1643         HOST_WIDE_INT.
1644         * config/arm/predicates.md (power_of_two_operand): Likewise.
1645
1646 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1647
1648         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
1649         non-NOTE insns.
1650
1651 2010-08-03  Jan Hubicka  <jh@suse.cz>
1652
1653         * ipa-split.c (struct split_point): Add split_part_set_retval.
1654         (find_retval): Forward declare.
1655         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
1656         (consider_split): Compute current->split_part_set_retval.
1657         (visit_bb): Do not look into return value.
1658         (split_function): Handle !split_part_set_retval
1659
1660 2010-08-03  Martin Jambor  <mjambor@suse.cz>
1661
1662         * tree-sra.c (completely_scalarize_record): New parameter REF, create
1663         its own access->expr intead of using build_ref_for_offset.
1664
1665 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
1666
1667         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
1668         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
1669         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
1670         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
1671         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
1672         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
1673         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
1674         DEFAULT_SWITCH_TAKES_ARG.
1675         * config/rx/rx.opt (-patch=): Remove option.
1676         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
1677         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
1678         * doc/invoke.texi (RX Options): Remove -patch=.
1679         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
1680         (option_map): Remove --profile-blocks, --quiet and --silent.
1681
1682 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
1683
1684         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
1685         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
1686         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
1687         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
1688         Update calls to ix86_expand_compare and ix86_expand_branch.
1689         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
1690         ix86_expand_compare.
1691         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
1692         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
1693         Make static.
1694         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
1695         and ix86_compare_op1.  Update calls to ix86_expand_compare.
1696         (ix86_expand_int_movcc): Ditto.
1697         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
1698         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
1699         (ix86_expand_setcc): Ditto.
1700         (ix86_expand_compare): Remove prototype.
1701         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
1702         ix86_compare_op0 and ix86_compare_op1.  Update calls
1703         to ix86_expand_branch to directly pass operands[1] and operands[2].
1704         (cbranchxf4): Ditto.
1705         (cbranch<MODEF:mode>4): Ditto.
1706         (cbranchcc4): Ditto.
1707         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
1708         Update calls to ix86_expand_setcc to directly pass operands[2] and
1709         operands[3].
1710         (cstorexf4): Ditto.
1711         (cstore<MODEF:mode>4): Ditto.
1712         (cstorecc4): Ditto.
1713
1714 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
1715
1716         PR target/45063
1717         * caller-save.c (save_call_clobbered_regs): Remove regs from
1718         hard_regs_saved when they are set.
1719
1720 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
1721
1722         PR target/41089
1723         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
1724         as volatile.
1725
1726 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
1727
1728         * common.opt (ftree-loop-distribute-patterns): New.
1729         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
1730         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
1731         at -O3.
1732         * tree-data-ref.c (stores_zero_from_loop): New.
1733         * tree-data-ref.h (stores_zero_from_loop): Declared.
1734         * tree-loop-distribution.c (tree_loop_distribution): Call
1735         stores_zero_from_loop.
1736         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
1737
1738 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
1739
1740         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
1741         into account.
1742
1743         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
1744         * config/arm/arm.c (thumb1_code): New variable.
1745         (arm_override_options): Set it.
1746         (thumb1_final_prescan_insn): Keep track of condition code status.
1747         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
1748         jumps that depend on them.
1749         * config/arm/arm.h (thumb1_code): Declare variable.
1750         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
1751         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
1752         thumb1_cc_mode.
1753         (CC_STATUS_INIT): New macro.
1754         * config/arm/constraints.md (Pd): New constraint.
1755         * config/arm/predicates.md (noov_comparison_operator): New predicate.
1756         * config/arm/arm.md (is_thumb1): New define_attr.
1757         (conds): Set default to "clob" when generating Thumb1 code.
1758         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
1759         code are set.  Use two-operand assembly syntax.
1760         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
1761         pattern.
1762         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
1763         codes are set.  Use two-operand assembly syntax.
1764         (zero_extendhisi splitter): Remove constraints.
1765         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
1766         thumb1_movsf_insn): Set conds attribute as appropriate.
1767         (cbranchsi4_insn): Use condition code status from struct
1768         machine_function to determine whether the comparison can be eliminated.
1769         Discourage the alternative using high registers.
1770         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
1771         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
1772         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
1773         subsi3_cbranch): Delete.
1774         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
1775         one subtract and one cbranch insn.
1776
1777         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
1778         thumb2_movdf_soft_insn): Delete patterns.
1779         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
1780         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
1781         (pool_range, neg_pool_range): Use them to define defaults.
1782         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
1783         and allow for TARGET_32BIT.
1784
1785         PR target/40457
1786         * config/arm/arm.h (arm_regs_in_sequence): Declare.
1787         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
1788         load_multiple_sequence, store_multiple_sequence): Delete
1789         declarations.
1790         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
1791         declarations.
1792         * config/arm/ldmstm.md: New file.
1793         * config/arm/arm.c (arm_regs_in_sequence): New array.
1794         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
1795         CHECK_REGS.  All callers changed.
1796         If SAVED_ORDER is nonnull, copy the computed order into it.
1797         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
1798         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
1799         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
1800         If SAVED_ORDER is nonnull, copy the computed order into it.
1801         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
1802         like REGS.  Handle Thumb mode.
1803         (arm_gen_load_multiple_1): New function, broken out of
1804         arm_gen_load_multiple.
1805         (arm_gen_store_multiple_1): New function, broken out of
1806         arm_gen_store_multiple.
1807         (arm_gen_multiple_op): New function, with code from
1808         arm_gen_load_multiple and arm_gen_store_multiple moved here.
1809         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
1810         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
1811         changed.
1812         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
1813         * config/arm/predicates.md (commutative_binary_operator): New.
1814         (load_multiple_operation, store_multiple_operation): Handle more
1815         variants of these patterns with different starting offsets.  Handle
1816         Thumb-1.
1817         * config/arm/arm.md: Include "ldmstm.md".
1818         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
1819         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
1820         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
1821         peepholes): Delete.
1822         * config/arm/ldmstm.md: New file.
1823         * config/arm/arm-ldmstm.ml: New file.
1824
1825         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
1826         if statement which adds extra costs to frame-related expressions.
1827
1828 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1829
1830         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
1831
1832 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
1833
1834         PR target/45142
1835         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
1836         alternative 2.
1837         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
1838         split V4SI operands.
1839
1840 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
1841
1842         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1843         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
1844         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
1845         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
1846
1847 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
1848
1849         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
1850         LOCAL_INCLUDE_DIR.
1851
1852 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
1853
1854         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
1855         used in the call to optab_for_tree_code.  Fix the second
1856         is_widening_mult_p call.  Check that both unwidened operands
1857         have the same sign.
1858
1859 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
1860
1861         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
1862
1863 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
1864
1865         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1866
1867 2010-07-30  DJ Delorie  <dj@redhat.com>
1868
1869         * config/rx/predicates.md (rx_constshift_operand): New.
1870         * config/rx/rx.md (zs_cond): New.
1871         (cbranchsi4): Remove mode.
1872         (*cbranchsi4_<code>): Likewise.
1873         (*tstbranchsi4_<code>): New.
1874         (*tstbranchsi4r_<code>): New.
1875         (*tstbranchsi4m_eq): New.
1876         (*tstbranchsi4m_ne): New.
1877         (cbranchsf4): Remove mode.
1878         (*cbranchsf4_<code>): Likewise.
1879
1880 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
1881
1882         * rtlanal.c (simplify_subreg_regno): Don't treat
1883         HARD_FRAME_POINTER_REGNUM specially.
1884
1885 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
1886
1887         * common.opt (-G): Don't define option here.
1888         * config/g.opt: New.
1889         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
1890         rs6000/powerpc and score targets.
1891         * opts.c (common_handle_option): Don't handle -G here.
1892         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
1893         * config/frv/frv.c (frv_handle_option): Handle -G.
1894         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
1895         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
1896         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
1897         * config/mips/mips.c (mips_handle_option): Handle -G.
1898         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
1899         * config/score/score.c (score_handle_option): Handle -G.
1900
1901 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
1902
1903         * config/mmix/mmix.c: Include basic-block.h.
1904
1905 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
1906
1907         PR debug/45055
1908         PR rtl-optimization/45137
1909         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
1910         prototypes.
1911         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
1912         New functions.
1913         * combine.c (next_nonnote_nondebug_insn): Removed.
1914         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
1915         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
1916         * sched-deps.c (sched_analyze_insn): Likewise.
1917         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
1918         * rtlanal.c (canonicalize_condition): Likewise.
1919         * postreload.c (reload_combine_recognize_pattern): Likewise.
1920         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
1921
1922 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
1923
1924         * config/i386/i386.md (int_cond): Remove code iterator.
1925         (fp_cond): Ditto.
1926         (cbranch<mode>4): Use ordered_comparison_operator predicate
1927         for operator0.
1928         (cstore<mode>4): Ditto for operator1.
1929         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
1930         (add<mode>cc): ditto.
1931
1932 2010-07-30  Richard Guenther  <rguenther@suse.de>
1933
1934         PR middle-end/45141
1935         * expr.c (expand_expr_real_1): Check for not handled base address.
1936
1937 2010-07-30  Richard Guenther  <rguenther@suse.de>
1938
1939         * ipa-prop.c (ipa_modify_formal_parameters): Use
1940         build_distinct_type_copy.
1941
1942 2010-07-30  Anthony Green  <green@moxielogic.com>
1943
1944         * config/moxie/rtems.h: New file.
1945         * config.gcc: Add moxie-rtems support.
1946
1947 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1948
1949         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
1950         df flags as in run_fast_df_dce.
1951
1952 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
1953
1954         Revert:
1955         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1956
1957         * rtl.def (NOTE): Swap operands 4 and 5.
1958         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
1959         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
1960         Adjust accordingly.
1961         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
1962
1963 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
1964
1965         PR debug/45110
1966         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
1967         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
1968         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
1969         formal parameters.
1970         (gen_decl_die): Change return type to dw_die_ref, return what
1971         gen_formal_parameter_die returned.
1972
1973 2010-07-29  Martin Jambor  <mjambor@suse.cz>
1974
1975         * dbgcnt.def (eipa_sra): New counter.
1976         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
1977
1978 2010-07-29  Xinliang David Li  <davidxl@google.com>
1979
1980         PR bootstrap/45119
1981         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
1982         in revision 162652.
1983
1984 2010-07-29  Richard Guenther  <rguenther@suse.de>
1985
1986         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
1987         (TV_TREE_STORE_CCP): Likewise.
1988         (TV_TREE_REDPHI): Likewise.
1989
1990 2010-07-29  Richard Guenther  <rguenther@suse.de>
1991
1992         * double-int.h (double_int_and_not): New function.
1993         * combine.c (try_combine): Use it.
1994         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
1995
1996 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
1997
1998         PR rtl-optimization/42575
1999         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
2000         Argument AU removed.  All callers changed.  Ignore artificial refs.
2001         Use return value of df_word_lr_simulate_defs to decide whether an insn
2002         is necessary.
2003         (fast_dce): Rename arg to WORD_LEVEL.
2004         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
2005         static.
2006         (pass_fast_rtl_byte_dce): Delete.
2007         * dce.h (run_word_dce): Declare.
2008         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
2009         All callers changed.  Simplify code to only deal with two-word regs.
2010         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
2011         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
2012         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
2013         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
2014         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
2015         (df_word_lr_mark_ref): Declare.
2016         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
2017         df_word_lr_simulate_uses): Declare or rename from byte variants.
2018         (df_byte_lr_simulate_artificial_refs_at_top,
2019         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
2020         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
2021         declarations.
2022         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
2023         (enum df_mm): Delete.
2024         * df-byte-scan.c: Delete file.
2025         * df-problems.c (df_word_lr_problem_data): Renamed from
2026         df_byte_lr_problem_data, all members deleted except for
2027         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
2028         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
2029         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
2030         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
2031         df_byte_lr_confluence_0): Delete functions.
2032         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
2033         callers changed.
2034         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
2035         Don't initialize members that were deleted, don't try to discover data
2036         about registers.  Ignore hard regs.
2037         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
2038         (df_word_lr_mark_ref): New function.
2039         (df_word_lr_bb_local_compute): Renamed from
2040         df_byte_bb_lr_local_compute; all callers changed.  Use
2041         df_word_lr_mark_ref.  Assert that artificial refs don't include
2042         pseudos.  Ignore hard registers.
2043         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
2044         Assert that exit block uses don't contain pseudos.
2045         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
2046         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
2047         callers changed.  Ignore hard regs.
2048         (df_word_lr_transfer_function): Renamed from
2049         df_byte_lr_transfer_function; all callers changed.
2050         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
2051         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
2052         changed.
2053         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
2054         callers changed.
2055         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
2056         confluence operator 0 set to NULL.
2057         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
2058         callers changed.
2059         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
2060         Return bool, true if bitmap changed or insn otherwise necessary.
2061         All callers changed.  Simplify using df_word_lr_mark_ref.
2062         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
2063         all callers changed.  Simplify using df_word_lr_mark_ref.
2064         * lower-subreg.c: Include "dce.h"
2065         (decompose_multiword_subregs): Call run_word_dce if df available.
2066         * Makefile.in (lower-subreg.o): Adjust dependencies.
2067         (df-byte-scan.o): Delete.
2068         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
2069
2070 2010-07-29  Richard Guenther  <rguenther@suse.de>
2071
2072         * tree.c (build_vector): Assert that the vector constant
2073         has enough elements.
2074         (build_vector_from_ctor): Pad with trailing zeros.
2075
2076 2010-07-29  Richard Guenther  <rguenther@suse.de>
2077
2078         PR tree-optimization/45120
2079         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2080         Handle offset in DEREFs properly.
2081         (get_constraint_for_1): Handle MEM_REF offset properly.
2082
2083 2010-07-29  Richard Guenther  <rguenther@suse.de>
2084
2085         PR middle-end/45034
2086         * convert.c (convert_to_integer): Always use an unsigned
2087         type for narrowed negate and bitwise not.
2088
2089 2010-07-29  Ira Rosen  <irar@il.ibm.com>
2090
2091         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
2092         to outer loop when creating reduction epilogue for double reduction,
2093         and switch back to the inner loop when updating the phi nodes.
2094         Update uses of outer loop exit phi nodes in double reduction (instead
2095         of uses of reduction).
2096
2097 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
2098
2099         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
2100         popcount on power7 and parity on power6 systems.
2101         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
2102         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
2103         instructions.
2104
2105         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
2106         (UNSPEC_PARITY): Ditto.
2107         (SFDF): New iterator for SF/DF.
2108         (rreg2): New mode attribute for floating register constraint.
2109         (TARGET_FLOAT): New mode attribute for whether single/double float
2110         is supported.
2111         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
2112         pattern.
2113         (parity<mode>2_cmpb): New insn for parity on power6 and newer
2114         machines.
2115         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
2116         pattern.  Add support for fcpsgn instruction added in power6.
2117         (copysignsf3): Delete.
2118         (copysigndf3): Delete.
2119         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
2120         instead of if_then_else in RTL to avoid problems with -0.
2121
2122         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
2123         of if_then_else to mirror scalar code.
2124         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
2125         rs6000.md.
2126
2127         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
2128         instead of if_then_else.
2129
2130 2010-07-28  Xinliang David Li  <davidxl@google.com>
2131
2132         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
2133         (dump_cand): Dump var_before/after.
2134         (htab_inv_expr_eq): New function.
2135         (htab_inv_expr_hash): New function.
2136         (tree_ssa_iv_optimize_init): Support pseudo invariants.
2137         (add_candidate_1): consider base type precision.
2138         (set_use_iv_cost): New parameter.
2139         (adjust_setup_cost): Use profile information.
2140         (get_address_cost): Do not hard code width in computing address
2141         offset limits.
2142         (compare_aff_trees): New function.
2143         (get_loop_invariant_expr_id): New function.
2144         (get_computation_cost_at): New parameter and use profile information.
2145         (get_computation_cost): New parameter.
2146         (determine_use_iv_cost_generic): Pass new parameter.
2147         (determine_use_iv_cost_address): Ditto.
2148         (determine_use_iv_cost_condition): Ditto.
2149         (autoinc_possible_for_pair): Ditto.
2150         (determine_use_iv_costs): More dumps.
2151         (iv_ca_get_num_inv_exprs): New function.
2152         (iv_ca_recount_cost): Consider loop invariants in register pressure
2153         cost.
2154         (iv_ca_add_use): New parameter.
2155         (iv_ca_dump): Better dumping.
2156         (iv_ca_extend): New parameter.
2157         (try_add_cand_for): Attempt to get better partial solution.
2158         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
2159         (create_new-ivs): More dumps.
2160         (rewrite_use_compare): Ditto.
2161         (free_loop_data): More cleanup.
2162         (treee_ssa_iv_optimize_finalize): Ditto.
2163
2164 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
2165
2166         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
2167         * config/i386/i386.c (ix86_profile_before_prologue): New.
2168         (override_options): Add special handling for -mfentry.
2169         (ix86_function_regparm): Likewise.
2170         (ix86_function_sseregparm): Likewise.
2171         (ix86_frame_pointer_required): Likewise.
2172         (ix86_expand_prologue): Check for ms_hook_prologue.
2173         (x86_function_profiler): Adjust mcount output.
2174         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
2175         * config/i386/i386.opt (mfentry): New.
2176         * doc/invoke.texi (mfentry): Add documentation.
2177         * doc/tm.texi: Regenerated..
2178         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
2179         * final.c (final_start_function): Replace macro
2180         PROFILE_BEFORE_PROLOGUE by target hook.
2181         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2182         * target.def (profile_before_prologue): New hook.
2183         * targhooks.c (default_profile_before_prologue): New.
2184         * targhooks.h (default_profile_before_prologue): New.
2185
2186 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
2187
2188         PR debug/45105
2189         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
2190
2191         PR debug/45103
2192         * dwarf2out.c (dwarf2out_var_location): Always consider
2193         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
2194
2195 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2196
2197         PR rtl-optimization/45107
2198         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
2199
2200 2010-07-28  Richard Guenther  <rguenther@suse.de>
2201
2202         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
2203         (set_lattice_value): Do not query an old default value.
2204         (get_value_for_expr): New function.  Properly canonicalize
2205         float values.
2206         (ccp_visit_phi_node): Use it.
2207
2208 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
2209
2210         * config/arm/arm.c (arm_pcs_default): Remove static.
2211         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
2212         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
2213         (arm_pcs_default): Declare.
2214
2215 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
2216
2217         * config/rs6000/rs6000.c (rs6000_override_options):
2218         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
2219         ... to darwin_rs6000_override_options.
2220         (rs6000_return_in_memory): Update preceding comment for darwin
2221         64 bit ABI.  Use TARGET_MACHO inline.
2222         (rs6000_darwin64_struct_check_p): New.
2223         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
2224         (function_arg): Likewise.
2225         (rs6000_arg_partial_bytes): Likewise.
2226         (rs6000_function_value): Likewise.
2227
2228 2010-07-28  Andi Kleen <ak@linux.intel.com>
2229
2230         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
2231
2232 2010-07-28  Richard Guenther  <rguenther@suse.de>
2233
2234         PR middle-end/44903
2235         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
2236         targets try harder to not generate unaligned accesses.
2237
2238 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2239
2240         PR rtl-optimization/45101
2241         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
2242         for gcse-las.
2243
2244 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
2245
2246         PR tree-optimization/44885
2247         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
2248         with non-aliased component.
2249
2250 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2251
2252         * config/darwin-driver.c (SWITCH_TAKES_ARG,
2253         WORD_SWITCH_TAKES_ARG): Remove.
2254         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2255         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
2256         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
2257         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
2258         definitions from gcc.c.
2259         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
2260         defaults.h.
2261         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
2262         Move to defaults.h.
2263         * opts-common.c: Include tm.h.
2264         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
2265         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
2266         Handle more than one argument.  Set canonical_option_num_elements.
2267         (decode_cmdline_options_to_array): Set
2268         canonical_option_num_elements and trailing elements of
2269         canonical_option.
2270         * opts.h (struct cl_decoded_option): Allow four elements in
2271         canonical_option.  Add field canonical_option_num_elements.
2272         * Makefile.in (opts-common.o): Update dependencies.
2273
2274 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
2275
2276         PR middle-end/44790
2277         PR middle-end/44993
2278         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
2279         sure the base has address_mode before adding the offset.
2280
2281 2010-07-27  Xinliang David Li <davidxl@google.com>
2282
2283         * tree-flow.h (create_mem_ref): Add one new parameter.
2284         * tree-ssa-address.c (create_mem_ref): New parameter.
2285         (addr_to_parts): Ditto.
2286         (move_variant_to_index): New function.
2287         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
2288
2289 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
2290
2291         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
2292         4 and 5.
2293         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
2294         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
2295         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
2296         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
2297         CODE_LABELs and NOTEs.
2298         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
2299         * combine.c (try_combine): Likewise.
2300         * ira.c (setup_prohibited_mode_move_regs): Likewise.
2301         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
2302
2303 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2304
2305         * coretypes.h (struct cl_option_handlers): Declare.
2306         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
2307         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
2308         * langhooks-def.h (lhd_handle_option): Declare.
2309         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
2310         * langhooks.c (lhd_handle_option): New.
2311         * langhooks.h (struct lang_hooks): Update prototype and return
2312         value type of handle_option hook.
2313         * optc-gen.awk: Generate target_flags_explicit definition for the
2314         driver.
2315         * opts-common.c: Include diagnostic.h.
2316         (handle_option): Move from opts.c.  Update prototype and return
2317         value type.  Use handlers structure.
2318         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
2319         handlers structure.
2320         (set_option): Move from opts.c.
2321         * opts.c (common_handle_option): Update prototype and return value
2322         type.  Update calls to handle_option and enable_warning_as_error.
2323         (unknown_option_callback, post_handling_callback,
2324         lang_handle_option, target_handle_option): New.
2325         (handle_option, read_cmdline_option): Move to opts-common.c.
2326         (read_cmdline_options): Update prototype.  Update call to
2327         read_cmdline_option.
2328         (decode_options): Initialize and use handlers structure.
2329         (set_option): Move to opts-common.c.
2330         (enable_warning_as_error): Update prototype.  Update call to
2331         handle_option.
2332         * opts.h (struct cl_option_handler_func, struct
2333         cl_option_handlers): New.
2334         (handle_option, enable_warning_as_error): Update prototypes.
2335         (read_cmdline_option): Declare.
2336         * Makefile.in (opts-common.o): Update dependencies.
2337
2338 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2339
2340         * config/arm/arm.c (params.h): Include.
2341         (arm_override_options): Tune gcse-unrestricted-cost.
2342         * config/arm/t-arm (arm.o): Define dependencies.
2343
2344 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2345
2346         PR target/42495
2347         PR middle-end/42574
2348         * basic-block.h (get_dominated_to_depth): Declare.
2349         * dominance.c (get_dominated_to_depth): New function, use
2350         get_all_dominated_blocks as a base.
2351         (get_all_dominated_blocks): Use get_dominated_to_depth.
2352
2353         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
2354         (hoist_exprs): Remove.
2355         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
2356         (compute_code_hoist_vbeinout): Add debug print outs.
2357         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
2358
2359         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
2360         quadratic behavior.
2361         * params.h (MAX_HOIST_DEPTH): New macro.
2362         * doc/invoke.texi (max-hoist-depth): Document.
2363
2364 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2365
2366         PR rtl-optimization/40956
2367         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
2368         constants.
2369
2370 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2371
2372         PR target/42495
2373         PR middle-end/42574
2374         * config/arm/arm.c (legitimize_pic_address): Use
2375         gen_calculate_pic_address pattern to emit calculation of PIC address.
2376         (will_be_in_index_register): New function.
2377         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
2378         (thumb1_legitimate_address_p): Use it provided !strict_p.
2379         * config/arm/arm.md (calculate_pic_address): New expand and split.
2380
2381 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2382
2383         PR target/42495
2384         PR middle-end/42574
2385         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
2386         * config/arm/arm.md (define_split "J", define_split "K"): Make
2387         IRA/reload friendly.
2388
2389 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2390
2391         * gcse.c (insert_insn_end_basic_block): Update signature, remove
2392         unused checks.
2393         (pre_edge_insert, hoist_code): Update.
2394
2395 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2396
2397         PR target/42495
2398         PR middle-end/42574
2399         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
2400
2401 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2402
2403         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
2404
2405 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2406
2407         PR rtl-optimization/40956
2408         PR target/42495
2409         PR middle-end/42574
2410         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
2411         for hoisting.
2412         (hoist_code): Count occurences in current block too.
2413
2414 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2415
2416         * gcse.c (struct expr:max_distance): New field.
2417         (doing_code_hoisting_p): New static variable.
2418         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
2419         simple expressions, don't change behavior for PRE.  Set max_distance.
2420         (insert_expr_in_table): Set new max_distance field.
2421         (hash_scan_set): Update.
2422         (hoist_expr_reaches_here_p): Stop search after max_distance
2423         instructions.
2424         (find_occr_in_bb): New static function.  Use it in ...
2425         (hoist_code): Calculate sizes of basic block before any changes are
2426         done.  Pass max_distance to hoist_expr_reaches_here_p.
2427         (one_code_hoisting_pass): Set doing_code_hoisting_p.
2428
2429         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
2430         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
2431         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
2432         macros.
2433         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
2434         Document.
2435
2436 2010-07-27  Jeff Law  <law@redhat.com>
2437             Maxim Kuvyrkov  <maxim@codesourcery.com>
2438
2439         * gcse.c (compute_transpout, transpout): Remove, move logic
2440         to prune_expressions.
2441         (compute_pre_data): Move pruning of trapping expressions ...
2442         (prune_expressions): ... here.  New static function.
2443         (compute_code_hoist_data): Use it.
2444         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
2445
2446 2010-07-27  Xinliang David Li  <davidxl@google.com>
2447
2448         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
2449         (rewrite_use_address): Adjust iv update position when needed.
2450
2451 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2452
2453         * dbgcnt.def (hoist_insn): New debug counter.
2454         * gcse.c (hoist_code): Use it.
2455
2456 2010-07-27  Xinliang David Li  <davidxl@google.com>
2457
2458         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
2459         (niter_for_single_dom_exit): Passes additional parameter.
2460         (iv_period): Fix comments.
2461         (may_eliminate_iv): Handles multiple exit loops properly.
2462         (free_tree_niter_desc): New function.
2463         (free_loop_data): Frees up loop iteration descriptors.
2464
2465 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
2466
2467         PR target/44542
2468         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
2469         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
2470         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
2471         (expand_one_var): Don't consider DECL_ALIGN for variables for
2472         which expand_one_stack_var_at has been already called.
2473
2474         PR testsuite/44701
2475         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
2476         constraints on IA-64.
2477
2478 2010-07-27  Jie Zhang  <jie@codesourcery.com>
2479
2480         PR target/44290
2481         Revert:
2482         2010-07-23  Jie Zhang  <jie@codesourcery.com>
2483
2484         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
2485         false if ! tree_versionable_function_p.
2486
2487 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
2488
2489         * dwarf2out.c (add_data_member_location_attribute): Use
2490         add_AT_unsigned instead of add_AT_int if offset is non-negative.
2491
2492 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
2493
2494         * postreload.c (try_replace_in_use): New static function.
2495         (reload_combine_recognize_const_pattern): Use it here.  Allow
2496         substituting into a final add insn, and substituting into a memory
2497         reference in an insn that sets the reg.
2498
2499 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2500
2501         * common.opt (o): Add MissingArgError.
2502         * doc/options.texi (MissingArgError): Document.
2503         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
2504         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
2505         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
2506         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
2507         * langhooks.h (struct lang_hooks): Remove missing_argument.
2508         * optc-gen.awk: Handle MissingArgError and output new structure
2509         field initializers.
2510         * opts.c (read_cmdline_option): Use missing_argument_error field
2511         instead of missing_argument langhook.
2512         * opts.h (struct cl_option): Add missing_argument_error field.
2513         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
2514
2515 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
2516
2517         PR target/29090
2518         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
2519         Darwin64 ABI, for zero-sized objects.
2520
2521 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
2522
2523         PR target/35491
2524         PR target/29090
2525
2526         Merge from Apple local 4.2.1.
2527         2005-05-11  Stan Shebs  <shebs@apple.com>
2528         Fix 64-bit varargs for Darwin (Radar 4028089).
2529         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
2530         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
2531         Add argument, add case for 8-byte register half-filled with a float.
2532         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
2533         single-precision floats specially.
2534
2535 2010-07-27  Ira Rosen  <irar@il.ibm.com>
2536
2537         PR tree-optimization/44152
2538         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
2539         complex numbers for further check.
2540         (vect_supported_load_permutation_p): Check nodes with
2541         complex numbers.
2542
2543 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2544
2545         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
2546         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
2547         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
2548         (LANG_HOOKS_INITIALIZER): Add new hooks.
2549         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
2550         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
2551         and complain_wrong_lang_p.  Update init_options prototype.
2552         * c-objc-common.c (c_initialize_diagnostics): First call
2553         c_common_initialize_diagnostics.
2554         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
2555         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
2556         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
2557         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
2558         (hook_uint_void_0): New.
2559         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
2560         (hook_uint_void_0): New.
2561         * opts-common.c (decode_cmdline_option,
2562         decode_cmdline_options_to_array): Also fill in canonical_option field.
2563         * opts.c (complain_wrong_lang): Use langhook to determine whether
2564         to complain instead of special-casing LTO.
2565         (decode_options): Separate lang_mask determination with
2566         option_lang_mask hook from call of init_options hook.
2567         * opts.h (struct cl_decoded_option): Add canonical_option.
2568
2569 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
2570
2571         PR tree-optimization/45083
2572         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
2573
2574 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
2575
2576         * postreload.c (reload_combine_recognize_const_pattern): Move test
2577         for limiting the insn movement to the right scope.
2578
2579         PR rtl-optimization/45051
2580         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
2581         than reg_mentioned_p.
2582
2583 2010-07-26  Richard Henderson  <rth@redhat.com>
2584
2585         PR target/44132
2586         * tree-emutls.c: New file.
2587         * Makefile.in (OBJS-common): Add it.
2588         * tree-pass.h (pass_ipa_lower_emutls): Declare.
2589         * passes.c (init_optimization_passes): Add it.
2590
2591         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
2592         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
2593         * expr.c (emutls_var_address): Delete.
2594         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
2595         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
2596         (emutls_finish): Delete.
2597         * toplev.c (compile_file): Don't call it.
2598         * tree.h (emutls_decl): Delete.
2599         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
2600         (emutls_finish, emutls_finalize_control_var): Delete.
2601         (emutls_object_type): Move to tree-emutls.c.
2602         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
2603         default_emutls_var_fields, get_emutls_object_type,
2604         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
2605         default_emutls_var_init): Likewise.
2606         (get_variable_section): Don't special case emutls.
2607         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
2608         default_elf_select_section, default_unique_section,
2609         default_encode_section_info): Likewise.
2610         * varpool.c (decide_is_variable_needed): Likewise.
2611         * gimple-iterator.c (update_call_edge_frequencies): New
2612         (gsi_insert_on_edge_immediate): Use it.
2613         (gsi_insert_seq_on_edge_immediate): Likewise.
2614         (gsi_commit_one_edge_insert): Likewise.
2615
2616         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
2617         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
2618         (x86_64_elf_unique_section): Likewise.
2619
2620 2010-07-26  Jan Hubicka  <jh@suse.cz>
2621
2622         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
2623         GTY((skip)).
2624
2625 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
2626
2627         * target.def (output_source_filename): New hook.
2628         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
2629         * doc/tm.texi: Regenerate.
2630         * toplev.c (output_file_directive) Remove function.
2631         * toplev.h (output_file_directive) Remove.
2632         * output.h (default_asm_output_source_filename,
2633         output_file_directive): Declare.
2634         * varasm.h (default_asm_output_source_filename,
2635         output_file_directive): New functions.
2636
2637         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
2638         * config/mips/mips-protos.h (mips_output_filename): Remove.
2639         * config/mips/mips.c (mips_output_filename): Make Static.
2640         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
2641
2642 2010-07-26  Richard Guenther  <rguenther@suse.de>
2643
2644         PR tree-optimization/43784
2645         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
2646         if the destination is used by the call.
2647
2648 2010-07-26  Richard Guenther  <rguenther@suse.de>
2649
2650         PR middle-end/45073
2651         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
2652         SSA updating on being in SSA form.
2653
2654 2010-07-26  Richard Guenther  <rguenther@suse.de>
2655
2656         PR middle-end/45056
2657         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
2658
2659 2010-07-26  Richard Guenther  <rguenther@suse.de>
2660
2661         PR tree-optimization/45071
2662         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
2663         adjust op->opcode.
2664
2665 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
2666
2667         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
2668         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
2669         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
2670         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
2671         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
2672         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
2673         save_r31, return_r31, save_interrupt, return_interrupt,
2674         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
2675         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
2676         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
2677         new ABI requirements.
2678         (save_r6_r9, L_callt_save_r6_r9): Remove.
2679         * config/v850/predicates.md (even_reg_operand, disp23_operand,
2680         const_float_1_operand const_float_0_operand): New Predicates.
2681         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
2682         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
2683         * config/v850/t-v850: Update multilibs for new target variants.
2684         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
2685         * config/v850/t-v850e: Likewise.
2686         * config/v850/v850.c (v850_issue_rate): New.
2687         (v850_strict_argument_naming): New.
2688         (function_arg): Modify to generate a different ABI.
2689         (print_operand): Update case 'z' to support float modes.
2690         (output_move_single): Modify to generate appropriate and better
2691         assembly.
2692         (v850_float_z_comparison_operator, v850_select_cc_mode,
2693         v850_float_nz_comparison_operator,  v850_gen_float_compare,
2694         v850_gen_compare): New functions to support comparison of float values.
2695         (ep_memory_offset): Add support for V850E2 targets.
2696         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
2697         (INTERRUPT_REGPARM_NUM): Remove.
2698         (compute_register_save_size): Add extra case to save/restore long call.
2699         (use_prolog_function): New function to support prologue.
2700         (expand_prologue): Add support for V850E2 targets and modified
2701         as per the current ABI requirements.
2702         (expand_epilogue): Likewise.
2703         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
2704         (construct_save_jarl): Likewise.
2705         (construct_dispose_instruction): Update as per the current ABI
2706         requirements.
2707         (construct_prepare_instruction): Likewise.
2708         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
2709         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
2710         (CPP_SPEC): Updated to support v850e2 targets.
2711         (STRICT_ALIGNMENT): Modified.
2712         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
2713         (FIXED_REGISTERS): Likewise.
2714         (CALL_USED_REGISTERS): Likewise.
2715         (CONDITIONAL_REGISTER_USAGE): Updated.
2716         (HARD_REGNO_MODE_OK): Updated.
2717         (reg_class): Updated to add even registers.
2718         (REG_CLASS_NAMES): Likewise.
2719         (REG_CLASS_CONTENTS): Likewise.
2720         (REGNO_REG_CLASS): Updated for CC registers.
2721         (REG_CLASS_FROM_LETTER): Added support for even registers.
2722         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
2723         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
2724         ARG_POINTER_REGNUM): Updated.
2725         (FUNCTION_ARG_ADVANCE): Define.
2726         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
2727         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
2728         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
2729         (GO_IF_LEGITIMATE_ADDRESS): Updated.
2730         (SELECT_CC_MODE): Define.
2731         (REGISTER_NAMES): Updated to add psw and fcc registers.
2732         (ADDITIONAL_REGISTER_NAMES): Updated.
2733         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
2734         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
2735         * config/v850/v850.md (define_constants): Define new constants.
2736         (type): Update store,bit1,macc,div,fpu and single attributes.
2737         (cpu): New attribute.
2738         (cc): Add set_z attribute.
2739         (unsign23byte_load, sign23byte_load, unsign23hword_load,
2740         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
2741         23word_store): New instructions for 23-bit displacement load and store.
2742         (movqi_internal, movhi_internal): Update the attributes.
2743         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
2744         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
2745         the attributes.
2746         (v850_tst1): Modified using CC_REGNUM.
2747         (tstsi): Remove.
2748         (cmpsi): Modified as define_expand from define_insn.
2749         (cmpsi_insn, cmpsf, cmpdf): New instructions.
2750         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
2751         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
2752         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
2753         one_cmplsi2): Clobber the CC_REGNUM register.
2754         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
2755         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
2756         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
2757         (setf_insn, set_z_insn, set_nz_insn): New instructions for
2758         v850e2v3 target.
2759         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
2760         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
2761         targets.
2762         (sasf_1, sasf_2): Remove.
2763         (sasf): New instruction.
2764         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
2765         targets. CC_REGNUM register is clobbered and attributes are
2766         updated.
2767         (branch_z_normal, branch_z_invert, branch_nz_normal,
2768         branch_nz_invert): New branch related instructions.
2769         (jump): Updated the attributes.
2770         (switch): Update to support new targets. CC_REGNUM register is
2771         clobbered and attributes are updated.
2772         (call_internal_short, call_internal_long, call_value_internal_short,
2773         call_value_internal_long): Updated the attributes.
2774         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
2775         clobbered and attributes are updated.
2776         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
2777         Update to support new targets. CC_REGNUM register is clobbered.
2778         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
2779         instructions.
2780         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
2781         are updated.
2782         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
2783         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
2784         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
2785         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
2786         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
2787         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
2788         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
2789         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
2790         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
2791         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
2792         point instructions defined for V850e2v3 target.
2793         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
2794         Add support for V850E2 targets and CC_REGNUM register is clobbered.
2795         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
2796         support for new targets.
2797         * config/v850/v850-modes.def: New file.
2798         * config/v850/v850.opt(mstrict-align): Remove.
2799         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
2800         mv850e2v3): New command line options for V850.
2801         * config.gcc: Update the newly added files.
2802         * doc/invoke.texi: Update the newly added command line options for
2803         V850 target.
2804
2805 2010-07-26  Richard Guenther  <rguenther@suse.de>
2806
2807         PR tree-optimization/45052
2808         * ipa-pure-const.c (check_stmt): Check volatileness.
2809
2810 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2811
2812         PR target/44707
2813         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
2814         * config/sparc/sparc.c: Include reload.h.
2815         (legitimize_tls_address): Rename into...
2816         (sparc_legitimize_tls_address): ...this.
2817         (legitimize_pic_address): Rename into...
2818         (sparc_legitimize_pic_address): ...this.
2819         (sparc_expand_move): Adjust to above renaming.
2820         (sparc_tls_referenced_p): Likewise.
2821         (sparc_legitimize_tls_address): Likewise.
2822         (sparc_legitimize_pic_address): Likewise.
2823         (sparc_legitimize_address): Likewise.
2824         (sparc_output_mi_thunk): Likewise.
2825         (sparc_legitimize_reload_address): New global function.  Recognize
2826         (lo_sum (high ...) ...) patterns generated by earlier passes.
2827         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
2828
2829 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2830
2831         PR target/44484
2832         * config/sparc/predicates.md (memory_reg_operand): Delete.
2833         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
2834         (*sync_compare_and_swap): Encode the address form in the pattern.
2835         (*sync_compare_and_swapdi_v8plus): Likewise.
2836
2837 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
2838
2839         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
2840         Streamline paragraph on compatibility with the system compiler.
2841
2842 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
2843
2844         PR middle-end/45035
2845         * alias.c (true_dependence_1): Fix thinko in merge of old
2846         true_dependence and canon_true_dependence.
2847
2848 2010-07-23  Jan Hubicka  <jh@suse.cz>
2849
2850         * lto-streamer-out.c (write_symbol): Fix visibilities of external
2851         references.
2852
2853 2010-07-23  Le-Chun Wu  <lcwu@google.com>
2854
2855         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
2856         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
2857         and an unnecessary assignment.
2858         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
2859         self-assign warning.
2860         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
2861         unnecessary self-init.
2862
2863 2010-07-23  Richard Guenther  <rguenther@suse.de>
2864
2865         PR lto/43071
2866         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
2867         for -flto and -fwhopr.
2868
2869 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
2870
2871         PR target/41943
2872         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
2873         (stmp-int-hdrs): Prefix/postfix headers by include_next.
2874         * config.gcc (user_headers_inc_next_pre): New.
2875         (user_headers_inc_next_post): Likewise.
2876         (*-w64-mingw*): Use for float.h post-fixing, and for
2877         stddef.h/stdarg.h pre-fixing by include_next.
2878         * configure.ac (user_headers_inc_next_post): New.
2879         (user_headers_inc_next_pre): New.
2880         * configure: Regenerated.
2881
2882 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2883
2884         * configure.ac: Don't disable TLS on Solaris 8/9 by default
2885         Set tga_func for Solaris 2/x86 resp. SPARC.
2886         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
2887         (LIB_THREAD_LDFLAGS_SPEC): Define.
2888         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
2889         * configure: Regenerate.
2890         * config.in: Regenerate.
2891         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
2892         -pthread, -threads, LIB_TLS_SPEC with -pthread.
2893         * doc/install.texi (Specific, *-*-solaris2*): Document use of
2894         alternate thread libraries on Solaris 8.
2895         Document TLS patch requirements.
2896         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
2897         Document tls.
2898
2899         PR target/18788
2900         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
2901         -shared.
2902
2903 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
2904
2905         * tree.h (struct tree_base): Add nameless_flag bitfield.
2906         (TYPE_NAMELESS, DECL_NAMELESS): Define.
2907         * omp-low.c (create_omp_child_function, scan_omp_parallel,
2908         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
2909         DECL_ARTIFICIAL where needed.
2910         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
2911         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
2912         has DECL_NAMELESS set.
2913
2914 2010-07-23  Martin Jambor  <mjambor@suse.cz>
2915
2916         PR tree-optimization/44915
2917         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
2918         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
2919         (analyze_function): Likewise.
2920
2921 2010-07-23  Martin Jambor  <mjambor@suse.cz>
2922
2923         PR tree-optimization/44914
2924         * tree-sra.c (sra_modify_function_body): Return true if CFG was
2925         changed, add purging dead eh edges.
2926         (ipa_sra_modify_function_body): Return true if CFG was changed,
2927         simplify purging dead eh edges.
2928         (modify_function): Return true if CFG was changed.
2929         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
2930         was changed.
2931         (ipa_early_sra): Likewise.
2932
2933 2010-07-23  Jie Zhang  <jie@codesourcery.com>
2934
2935         PR target/44290
2936         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
2937         if "naked".
2938         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
2939         false if ! tree_versionable_function_p.
2940
2941 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
2942
2943         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
2944         * ipa-pure-const.c (special_builtlin_state): Remove
2945         BUILT_IN_ARGS_INFO case.
2946         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2947         * builtins.c (expand_builtin): Likewise.
2948         (expand_builtin_args_info): Remove.
2949         * doc/tm.texi (__builtin_args_info): Remove.
2950         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
2951         * doc/tm.text.in: Likewise.
2952
2953 2010-07-23  Richard Guenther  <rguenther@suse.de>
2954
2955         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
2956         (lto_symtab_merge_decls_2): Likewise.
2957         * tree-ssa.c (useless_type_conversion_p): Likewise.
2958         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2959         * gimple.c (gtc_visited2, gtc_ob2): Remove.
2960         (struct type_pair_d): Make same_p an array indexed by mode.
2961         Update comment.
2962         (lookup_type_pair): Update initialization.
2963         (struct sccs): Adjust same_p type.
2964         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
2965         Adjust.
2966         (print_gimple_types_stats): Likewise.
2967         * gimple.h (enum gtc_mode): New.
2968         (gimple_types_compatible_p): Adjust prototype.
2969
2970 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
2971
2972         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
2973         again after processing insn.
2974
2975 2010-07-23  Jie Zhang  <jie@codesourcery.com>
2976
2977         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
2978         proper words when !tree_versionable_function_p.
2979
2980 2010-07-23  Richard Guenther  <rguenther@suse.de>
2981
2982         PR tree-optimization/45037
2983         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
2984
2985 2010-07-23  Jie Zhang  <jie@codesourcery.com>
2986
2987         * doc/extend.texi: Remove IP2K from the description of naked attribute.
2988         Add MCORE instead.
2989
2990 2010-07-10  Andi Kleen  <ak@linux.intel.com>
2991
2992         PR lto/44992
2993         * lto-opts.c (lto_write_options): Add NULL file_data argument to
2994         lto_get_section_name.
2995         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
2996         * lto-streamer-out.c (produce_asm): Likewise.
2997         (copy_function): Likewise.
2998         (produce_symtab): Likewise.
2999         (produce_asm_for_decls): Likewise.
3000         * lto-streamer.c (lto_get_section_name): Add file_data argument.
3001         Rewrite to add random postfix to LTO sections.
3002         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
3003         (lto_get_section_name): Add file_data argument to prototype.
3004
3005 2010-07-10  Andi Kleen  <ak@linux.intel.com>
3006
3007         * lto-section-in.c (lto_section_name): Synchronize names
3008         with lto_get_section_name.
3009
3010 2010-07-10  Andi Kleen  <ak@linux.intel.com>
3011
3012         * lto-opts.c (lto_read_file_options): Check for missing section.
3013
3014 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
3015
3016         * ira.c (check_allocation): Correctly handle the case where an allocno
3017         with two objects was allocated to a single reg.
3018
3019 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
3020
3021         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
3022         (is_widening_mult_p): Likewise.
3023         (convert_to_widen): Use them.
3024         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
3025         well as integer ones.
3026
3027 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
3028
3029         * alias.c (true_dependence_1): New function, merged version of
3030         true_dependence and canon_true_dependence.
3031         (true_dependence): Simplify.
3032         (canon_true_dependence): Simplify.
3033
3034 2010-07-22  Richard Henderson  <rth@redhat.com>
3035
3036         PR target/45027
3037         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
3038         of V4SFmode for the SSE saves; increase stack alignment if needed.
3039         (ix86_gimplify_va_arg): Don't increase stack alignment here.
3040
3041 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
3042
3043         PR bootstrap/45028
3044         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
3045         call cprop_find_used_regs again via note_uses.
3046
3047 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3048
3049         * alias.c (get_alias_set): Fix formatting issues.
3050
3051 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
3052
3053         PR middle-end/44878
3054         * stmt.c (expand_value_return):  Call promote_function_mode with
3055         a for_return argument of 2 when returning by reference.
3056
3057 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
3058
3059         PR debug/45024
3060         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
3061         unit DIE if we can find the scope DIE.
3062
3063 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
3064
3065         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
3066         changed.  Initialize OBJECT_SUBWORD.
3067         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
3068         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
3069         all callers changed.
3070         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
3071         (finish_allocno): Likewise.
3072         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
3073         (remove_low_level_allocnos): Likewise.
3074         (update_bad_spill_attribute): Likewise.
3075         (setup_min_max_allocno_live_range_point): Likewise.
3076         (sort_conflict_id_map): Likewise.
3077         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
3078         (ior_hard_reg_conflicts): New function.
3079         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
3080         (compress_conflict_vecs): Iterate over objects, not allocnos.
3081         (ira_add_live_range_to_object): New function.
3082         (object_range_compare_func): Renamed from allocno_range_compare_func.
3083         All callers changed.
3084         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
3085         subobjects, widen the min/max range of the lowest-order object to
3086         potentially include all other such low-order objects.
3087         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
3088         (check_allocation): Likewise.  Use more fine-grained tests for register
3089         conflicts.
3090         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
3091         allocno subobjects.
3092         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
3093         choices about which bits to set in each set.  Don't use
3094         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
3095         using the multiple sets we computed.
3096         (push_allocno_to_stack): Iterate over allocno subobjects.
3097         (all_conflicting_hard_regs_coalesced): New static function.
3098         (setup_allocno_available_regs_num): Use it.
3099         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
3100         subobjects.
3101         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
3102         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3103         by ALLOCNO_NUM_OBJECTS.
3104         (calculate_spill_cost): Likewise.
3105         (color_pass): Express if statement in a more normal way.
3106         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
3107         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
3108         (setup_slot_coalesced_allocno_live_ranges): Likewise.
3109         (allocno_reload_assign): Likewise.
3110         (ira_reassign_pseudos): Likewise.
3111         (fast_allocation): Likewise.
3112         * ira-conflicts.c (build_conflict_bit_table): Likewise.
3113         (print_allocno_conflicts): Likewise.
3114         (ira_build_conflicts): Likewise.
3115         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
3116         callers changed.  Test subword 0 of each allocno for conflicts.
3117         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
3118         callers changed.  Iterate over allocno subobjects.
3119         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
3120         * ira-int.h (struct ira_allocno): New member: num_objects.
3121         Rename object to objects and change it into an array.
3122         (ALLOCNO_OBJECT): Add new argument N.
3123         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
3124         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
3125         (ior_hard_reg_conflicts): Declare.
3126         (ira_add_live_range_to_object): Declare.
3127         (ira_allocno_object_iterator): New.
3128         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
3129         (FOR_EACH_ALLOCNO_OBJECT): New macro.
3130         * ira-lives.c (objects_live): Renamed from allocnos_live; all
3131         uses changed.
3132         (allocnos_processed): New sparseset.
3133         (make_object_born): Renamed from make_allocno_born; take an
3134         ira_object_t argument.  All callers changed.
3135         (make_object_dead): Renamed from make_allocno_dead; take an
3136         ira_object_t argument.  All callers changed.
3137         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
3138         All callers changed.
3139         (mark_pseudo_regno_live): Iterate over allocno subobjects.
3140         (mark_pseudo_regno_dead): Likewise.
3141         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
3142         functions.
3143         (mark_ref_live): Detect subword accesses and call
3144         mark_pseudo_regno_subword_live as appropriate.
3145         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
3146         (process_bb_nodes_live): Deal with object-related updates first; set
3147         and test bits in allocnos_processed to avoid computing allocno
3148         statistics more than once.
3149         (create_start_finish_chains): Iterate over objects, not allocnos.
3150         (print_object_live_ranges): New function.
3151         (print_allocno_live_ranges): Use it.
3152         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
3153         and objects_live.
3154
3155 2010-07-22  Richard Guenther  <rguenther@suse.de>
3156
3157         PR lto/42451
3158         * gimple.c (gtc_next_dfs_num): New global.
3159         (struct sccs): Make value a union, add integer same_p member.
3160         (gtc_visit): New function.
3161         (gimple_types_compatible_p_1): New function, split out from ...
3162         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
3163         (iterative_hash_gimple_type): Adjust for sccs change.
3164
3165 2010-07-22  Martin Jambor  <mjambor@suse.cz>
3166
3167         PR tree-optimization/44891
3168         * tree-sra.c: Include gimple-pretty-print.h.
3169         (replace_uses_with_default_def_ssa_name): Renamed to
3170         get_repl_default_def_ssa_name, return the new SSA name instead of
3171         replacing the old one.
3172         (sra_modify_assign): Dump a message when removing a load, if the LHS
3173         is an SSA_NAME, do not do any propagation, just set the RHS to a
3174         default definition SSA NAME, type convert if necessary.
3175         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
3176
3177 2010-07-22  Richard Guenther  <rguenther@suse.de>
3178
3179         PR tree-optimization/45017
3180         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
3181         TYPE_PRECISION of integral types in addition to size.
3182
3183 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3184
3185         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
3186         when no C library is specified.
3187
3188 2010-07-22  Martin Jambor  <mjambor@suse.cz>
3189
3190         * ipa-prop.h (struct ipa_node_params): Updated comment.
3191         (struct ipa_edge_args): Likewise.
3192         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
3193
3194 2010-07-22  Martin Jambor  <mjambor@suse.cz>
3195
3196         * cgraphunit.c (verify_edge_count_and_frequency): New function.
3197         (verify_cgraph_node): Verify frequencies of indirect edges.
3198         * tree-inline.c (tree_function_versioning): Update frequencies of
3199         indirect edges.
3200
3201 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3202
3203         PR target/43698
3204         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
3205         Set *arm_rev to be predicable.
3206
3207 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
3208
3209         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
3210         (LINK_COMMAND_SPEC_A): New.
3211         (DSYMUTIL): New.
3212         (DSYMUTIL_SPEC): New.
3213         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
3214         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
3215
3216 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
3217
3218         * calls.c (load_register_parameters): Move check for zero
3219         sized items so that only the call to
3220         mem_overlaps_already_clobbered_arg_p () is protected.
3221
3222 2010-07-22  Jan Hubicka  <jh@suse.cz>
3223
3224         * ipa-pure-const.c (varying_state): Break out from ...
3225         (get_function_state): ... here; always return varying_state
3226         when state would be NULL otherwise.
3227         (remove_node_data): Do not free varying state.
3228
3229 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
3230
3231         PR bootstrap/44970
3232         PR middle-end/45009
3233         * postreload.c: Include "target.h".
3234         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
3235         into account.
3236         (fixup_debug_insns): Don't copy the rtx.
3237         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
3238         Don't copy when replacing.  Call fixup_debug_insns in the case where
3239         we merged one add with another.
3240         (reload_combine_recognize_pattern): Fail if there aren't any uses.
3241         Try harder to determine whether we're picking a valid index register.
3242         Don't set store_ruid for an insn we're going to scan in the
3243         next iteration.
3244         (reload_combine): Remove unused code.
3245         (reload_combine_note_use): When updating use information for
3246         an old insn, ignore a use that occurs after store_ruid.
3247         * Makefile.in (postreload.o): Update dependencies.
3248
3249         * function.c (record_hard_reg_sets): Restrict the previous change
3250         to cases where the incoming nominal mode is the same as the
3251         incoming promoted mode and everything happens in MODE_INT.
3252
3253 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
3254
3255         PR debug/45015
3256         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
3257         ASM_OPERANDS_OUTPUT_IDX.
3258         (adjust_insn): For inline asm with multiple sets ensure first
3259         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
3260         the insn.
3261
3262 2010-07-21  Richard Henderson  <rth@redhat.com>
3263
3264         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
3265         comparison for avoiding xmm register saves.  Emit the xmm register
3266         saves explicitly.
3267         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
3268         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
3269         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
3270         Remove patterns and the associated splitters.
3271
3272 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
3273
3274         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
3275         and imagine parts of a complex, so that they can have the same
3276         base and fall into the same group.
3277
3278 2010-07-21  Richard Guenther  <rguenther@suse.de>
3279
3280         PR lto/45018
3281         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
3282         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
3283         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
3284
3285 2010-07-21  Martin Jambor  <mjambor@suse.cz>
3286
3287         PR tree-optimization/44900
3288         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
3289         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
3290
3291 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
3292
3293         PR middle-end/44738
3294         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
3295
3296 2010-07-21  Richard Guenther  <rguenther@suse.de>
3297
3298         PR middle-end/45013
3299         * tree-ssa.c (useless_type_conversion_p): Dispatch to
3300         gimple_types_compatible_p only when in lto.
3301         * gimple.c (gimple_types_compatible_p): Use canonical types
3302         to speed up comparison.
3303
3304 2010-07-21  Richard Guenther  <rguenther@suse.de>
3305
3306         * tree-flow.h (referenced_var): Move define ...
3307         * tree-flow-inline.h (referenced_var): ... here as an inline
3308         function.  Assert here ...
3309         * tree-dfa.c (referenced_var_lookup): ... instead of here.
3310         * tree-ssa.c (maybe_optimize_var): Check if the variable
3311         is in referenced vars.
3312         (execute_update_addresses_taken): Remove old broken check.
3313         * gimple-pretty-print.c (pp_points_to_solution): Use
3314         referenced_var_lookup.
3315         * tree-into-ssa.c (dump_decl_set): Likewise.
3316
3317 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
3318
3319         PR debug/45003
3320         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
3321         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
3322         ZERO_EXTEND here.
3323
3324 2010-07-20  Richard Henderson  <rth@redhat.com>
3325
3326         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
3327
3328 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
3329
3330         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
3331         computing the sum of the stack pointer and a large constant.
3332         * config/arm/constraints.md (M): Remove superfluous parentheses.
3333         (Pc): New constraint.
3334
3335 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
3336
3337         PR debug/45006
3338         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
3339         operand's type if exp is tcc_unary class tree.
3340
3341 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
3342
3343         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
3344         Reverse sense of if_then_else condition.
3345
3346 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
3347
3348         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
3349         * config/rs6000/rs6000.c (rs6000_override_options): Set
3350         rs6000_block_move_inline_limit appropriately.
3351         (expand_block_move): Use rs6000_block_move_inline_limit.
3352         * doc/invoke.texi (mblock-move-inline-limit): Document.
3353
3354 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
3355
3356         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
3357         FROM and TO.  All callers changed.  Don't look for tracked uses,
3358         just scan the RTL for DEBUG_INSNs and substitute.
3359         (reload_combine_recognize_pattern): Call fixup_debug_insns.
3360         (reload_combine): Ignore DEBUG_INSNs.
3361
3362 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
3363
3364         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
3365         depth to 8 from 5.
3366
3367         PR debug/45003
3368         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
3369         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
3370         instead of the result's type.
3371
3372 2010-07-20  Richard Guenther  <rguenther@suse.de>
3373
3374         PR tree-optimization/44977
3375         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
3376         SSA form.
3377
3378 2010-07-20  Richard Guenther  <rguenther@suse.de>
3379
3380         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
3381         (lto_symtab_merge_decls_2): Likewise.
3382         * gimple.h (gimple_types_compatible_p): Declare.
3383         * gimple.c (gimple_queue_type_fixup): Remove.
3384         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
3385         (gimple_compatible_complete_and_incomplete_type_p): New function.
3386         (gimple_types_compatible_p): Adjust.
3387         (gimple_register_type): Remove type fixup code.
3388         (print_gimple_types_stats): Adjust.
3389         (free_gimple_type_tables): Likewise.
3390         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
3391         * tree-ssa.c (useless_type_conversion_p): Likewise.
3392
3393 2010-07-20  Richard Guenther  <rguenther@suse.de>
3394
3395         PR middle-end/44971
3396         PR middle-end/44988
3397         * tree-ssa.c (maybe_optimize_var): New function split out from ...
3398         (execute_update_addresses_taken): ... here.
3399         (non_rewritable_mem_ref_base): Likewise.
3400         (execute_update_addresses_taken): Do not iterate over all referenced
3401         vars but just all local decls and parms.
3402         Properly check call and asm arguments and rewrite call arguments.
3403
3404 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
3405
3406         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
3407         to top level.
3408         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
3409         definitions ...
3410         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
3411         New macro.
3412         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
3413
3414 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3415
3416         * gengtype.c (start_root_entry): New function, split out from
3417         write_root.  Check whether V is null and raise an error if so.
3418         (write_field_root): Check for V being null.  Don't raise an error here;
3419         set V to null instead.
3420         (write_root): Update comment above function.  Use start_root_entry.
3421
3422 2010-07-19  Xinliang David Li  <davidxl@google.com>
3423
3424         PR testsuite/44932
3425         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
3426         def edges.
3427         (find_uninit_use): Add dump.
3428         (is_use_properly_guarded): Ditto.
3429         (warn_uninitialized_phi): Ditto.
3430         (execute_late_warn_uninitialized): Ditto.
3431
3432 2010-07-19  Richard Guenther  <rguenther@suse.de>
3433
3434         PR middle-end/44941
3435         * expr.c (emit_block_move_hints): Move zero size check first.
3436         Move asserts to more useful places.
3437         * calls.c (load_register_parameters): Check for zero size.
3438
3439 2010-07-19  Richard Henderson  <rth@redhat.com>
3440
3441         * tree-optimize.c (execute_all_early_local_passes): New.  Change
3442         cgraph_state here ...
3443         (execute_early_local_optimizations): ... not here.  Remove.
3444         (pass_early_local_passes, pass_all_early_optimizations): Update.
3445
3446 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
3447
3448         * postreload.c (reload_combine_closest_single_use): Ignore the
3449         number of uses for DEBUG_INSNs.
3450         (fixup_debug_insns): New static function.
3451         (reload_combine_recognize_const_pattern): Use it.  Don't let the
3452         main loop be affected by DEBUG_INSNs.
3453         Really disallow moving adds past a jump insn.
3454         (reload_combine_recognize_pattern): Don't update use_ruid here.
3455         (reload_combine_note_use): Do it here.
3456         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
3457
3458 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
3459
3460         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
3461         of a loop.
3462         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
3463
3464 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
3465
3466         * config/i386/darwin.h: Define darwin_emit_branch_islands.
3467         (TARGET_MACHO_BRANCH_ISLANDS): New.
3468         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
3469         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
3470         default value.
3471         * config/i386/i386.c (output_pic_addr_const): Do not emit
3472         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
3473         (x86_output_mi_thunk): Adjust symbol creation.
3474         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
3475         Remove out of date comment.
3476         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
3477         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
3478         (DARWIN_GENERATE_ISLANDS): Ditto.
3479         (output_call):  Do not emit branch islands unless
3480         darwin_emit_branch_islands is set.
3481         * config/darwin.c: Declare darwin_emit_branch_islands.
3482         (machopic_indirect_data_reference): Do not emit unless
3483         darwin_emit_branch_islands is set.
3484         (darwin_override_options): Set darwin_emit_branch_islands
3485         where it is needed.
3486         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
3487
3488 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3489
3490         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3491         sse_runtime, sse2_runtime.
3492
3493 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
3494
3495         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
3496         low half of a single-register SCmode return value before ORing
3497         it with the high half.
3498         * config/mips/mips16.S (MERGE_GPRf): Likewise.
3499
3500 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3501
3502         PR target/44805
3503         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
3504         on all targets.
3505
3506 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
3507
3508         PR target/42235
3509         * postreload.c (reload_cse_move2add): Return bool, true if anything.
3510         changed.  All callers changed.
3511         (move2add_use_add2_insn): Likewise.
3512         (move2add_use_add3_insn): Likewise.
3513         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
3514         reload_combine.
3515         (RELOAD_COMBINE_MAX_USES): Bump to 16.
3516         (last_jump_ruid): New static variable.
3517         (struct reg_use): New members CONTAINING_MEM and RUID.
3518         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
3519         (reload_combine_split_one_ruid, reload_combine_split_ruids,
3520         reload_combine_purge_insn_uses, reload_combine_closest_single_use
3521         reload_combine_purge_reg_uses_after_ruid,
3522         reload_combine_recognize_const_pattern): New static functions.
3523         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
3524         is true for our reg and that we have available index regs.
3525         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
3526         callers changed.  Use them to initialize fields in struct reg_use.
3527         (reload_combine): Initialize last_jump_ruid.  Be careful when to
3528         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
3529         Call reload_combine_recognize_const_pattern.
3530         (reload_combine_note_store): Update REAL_STORE_RUID field.
3531
3532 2010-07-16  Jason Merrill  <jason@redhat.com>
3533
3534         * Makefile.in (opts-common.o): Depend on options.h.
3535
3536 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
3537
3538         * tree.c (build_common_builtin_nodes): Use build_function_type_list
3539         instead of build_function_type.
3540         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3541         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3542
3543 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
3544
3545         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
3546         do all the work.
3547         (rs6000_emit_int_cmove): Use function pointers for insn generation.
3548         Don't force values into registers unnecessarily.
3549         (output_isel): Assert that we're not given conditions we can't handle.
3550         Delete corresponding code.
3551         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
3552         scc_comparison_operator constraint.  Permit 0 for the consequent
3553         operand.  Permit any GPR for the alternative operand.
3554         (isel_unsigned_<mode>): Likewise.
3555
3556 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
3557
3558         PR target/44942
3559         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
3560         argument to const_tree.
3561         * config/i386/i386.c (function_arg_advance): If padding needs to be
3562         inserted before argument, increment cum->words by number of padding
3563         words as well.
3564         (contains_aligned_value_p): Change argument to const_tree.
3565         (ix86_function_arg_boundary): Change second argument to const_tree.
3566
3567 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
3568
3569         PR target/42235
3570         * function.c (record_hard_reg_sets): New static function.
3571         (assign_parm_setup_reg): If an optab for extending exists and the
3572         generated code clobbbers no hard regs, emit the insn directly and
3573         create a REG_EQUIV note.
3574
3575 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
3576
3577         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
3578         TREE_CHAIN.
3579         * c-typeck.c (push_init_level): Likewise.
3580         (process_init_element): Likewise.
3581
3582 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
3583
3584         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
3585         (integer_three_node): Add.
3586         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
3587         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
3588         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
3589         of call build_int_cst.
3590         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
3591         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
3592         (find_interesting_uses_address): Ditto.
3593         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
3594         * tree-eh.c (lower_eh_constructs_2): Ditto.
3595         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
3596         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
3597         * expmed.c (expand_divmod): Ditto.
3598         * tree-mudflap.c (mx_register_decls): Ditto.
3599         * varasm.c (array_size_for_constructor): Ditto.
3600         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
3601         * c-parser.c (c_parser_postfix_expression): Ditto.
3602
3603 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
3604
3605         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
3606         New static variables.
3607         (reload_combine_recognize_pattern): New static function, broken out
3608         of reload_combine.
3609         (reload_combine): Use it.  Only initialize first_index_reg and
3610         last_index_reg once.
3611
3612 2010-07-15  Richard Henderson  <rth@redhat.com>
3613
3614         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
3615         when done.
3616
3617 2010-07-15  Jan Hubicka  <jh@suse.cz>
3618
3619         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
3620         comdats for broken gold.
3621         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
3622
3623 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
3624
3625         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
3626
3627 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
3628
3629         * tree.h (DECL_CHAIN): Define.
3630         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
3631         * c-decl.c: Likewise.
3632         * c-parser.c: Likewise.
3633         * c-typeck.c: Likewise.
3634         * cfgexpand.c: Likewise.
3635         * cgraph.c: Likewise.
3636         * cgraphunit.c: Likewise.
3637         * combine.c: Likewise.
3638         * config/alpha/alpha.c: Likewise.
3639         * config/arm/arm.c: Likewise.
3640         * config/frv/frv.c: Likewise.
3641         * config/i386/i386.c: Likewise.
3642         * config/i386/winnt-cxx.c: Likewise.
3643         * config/ia64/ia64.c: Likewise.
3644         * config/iq2000/iq2000.c: Likewise.
3645         * config/mep/mep.c: Likewise.
3646         * config/mips/mips.c: Likewise.
3647         * config/pa/som.h: Likewise.
3648         * config/rs6000/rs6000.c: Likewise.
3649         * config/s390/s390.c: Likewise.
3650         * config/sh/sh.c: Likewise.
3651         * config/sh/symbian-cxx.c: Likewise.
3652         * config/sparc/sparc.c: Likewise.
3653         * config/spu/spu.c: Likewise.
3654         * config/stormy16/stormy16.c: Likewise.
3655         * config/vxworks.c: Likewise.
3656         * config/xtensa/xtensa.c: Likewise.
3657         * coverage.c: Likewise.
3658         * dbxout.c: Likewise.
3659         * dwarf2out.c: Likewise.
3660         * emit-rtl.c: Likewise.
3661         * expr.c: Likewise.
3662         * function.c: Likewise.
3663         * gimple-low.c: Likewise.
3664         * gimple-pretty-print.c: Likewise.
3665         * gimplify.c: Likewise.
3666         * integrate.c: Likewise.
3667         * ipa-inline.c: Likewise.
3668         * ipa-prop.c: Likewise.
3669         * ipa-split.c: Likewise.
3670         * ipa-struct-reorg.c: Likewise.
3671         * ipa-type-escape.c: Likewise.
3672         * langhooks.c: Likewise.
3673         * lto-cgraph.c: Likewise.
3674         * omp-low.c: Likewise.
3675         * stor-layout.c: Likewise.
3676         * tree-cfg.c: Likewise.
3677         * tree-complex.c: Likewise.
3678         * tree-dfa.c: Likewise.
3679         * tree-dump.c: Likewise.
3680         * tree-inline.c: Likewise.
3681         * tree-mudflap.c: Likewise.
3682         * tree-nested.c: Likewise.
3683         * tree-object-size.c: Likewise.
3684         * tree-pretty-print.c: Likewise.
3685         * tree-sra.c: Likewise.
3686         * tree-ssa-live.c: Likewise.
3687         * tree-ssa-loop-niter.c: Likewise.
3688         * tree-ssa-math-opts.c: Likewise.
3689         * tree-ssa-reassoc.c: Likewise.
3690         * tree-ssa-sccvn.c: Likewise.
3691         * tree-ssa-structalias.c: Likewise.
3692         * tree-tailcall.c: Likewise.
3693         * tree-vrp.c: Likewise.
3694         * tree.c: Likewise.
3695         * var-tracking.c: Likewise.
3696         * varasm.c: Likewise.
3697
3698 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3699
3700         PR target/44877
3701         * config/spu/spu.c (spu_expand_builtin_1): Allow references
3702         (as well as pointers) as argument to mask_for_load builtins.
3703
3704 2010-07-15  Richard Guenther  <rguenther@suse.de>
3705
3706         PR tree-optimization/44946
3707         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
3708         with accessing only padding properly.
3709
3710 2010-07-15  Jan Hubicka  <jh@suse.cz>
3711
3712         * ipa.c (function_and_variable_visibility): Variables marked as used
3713         should not be localized.
3714
3715 2010-07-15  Jan Hubicka  <jh@suse.cz>
3716
3717         * cgraph.c: Include lto-streamer.h
3718         (change_decl_assembler_name): Work when assembler name hash is at place.
3719         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
3720         be sure to rename it to avoid name clash.
3721         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
3722         Localize hidden symbols only when locally defined.
3723
3724 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
3725
3726         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
3727
3728 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
3729             Kevin F. Quinn  <kevquinn@gentoo.org>
3730
3731         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
3732         * common.opt: Add -Wtrampolines.
3733         * doc/invoke.texi: Add -Wtrampolines.
3734
3735 2010-07-15  Jie Zhang  <jie@codesourcery.com>
3736
3737         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
3738         cortex_a8_issue_ls.
3739
3740 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
3741
3742         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
3743         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
3744
3745 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3746
3747         * config/spu/spu.c (reg_names): Remove prototype.
3748         (call_used_regs): Likewise.
3749
3750 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
3751
3752         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
3753         "unused" with attribute "used".
3754         (__JCR_END__): Likewise.
3755         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
3756         "used" attribute.
3757         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
3758
3759 2010-07-14  Richard Guenther  <rguenther@suse.de>
3760
3761         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
3762         (maybe_fixup_decls): Likewise.
3763         (input_gimple_stmt): Do not fixup anything.
3764         * lto-streamer-out.c (output_gimple_stmt): Make sure all
3765         non-automatic variable uses are wrapped inside a MEM_REF.
3766
3767 2010-07-14  Richard Henderson  <rth@redhat.com>
3768
3769         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
3770         for functions.
3771         * varasm.c (assemble_variable): Remove early exit for functions;
3772         assert that we're given a variable.
3773
3774 2010-07-14  Jie Zhang  <jie@codesourcery.com>
3775
3776         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
3777         cortex_a8_default when neon_type is not none.
3778
3779 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3780
3781         * lower-subreg.c (subreg_context): New static bitmap.
3782         (decompose_multiword_subregs): Allocate and free it.
3783         (find_decomposable_subregs): Set a bit in it for a register that
3784         occurs in a subreg that changes mode but not size.
3785         (can_decompose_p): Test it instead of non_decomposable_context.
3786
3787 2010-07-14  Richard Guenther  <rguenther@suse.de>
3788
3789         PR tree-optimization/44824
3790         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
3791         is_gimple_mem_ref_addr.
3792         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
3793         non-decl_address_invariant_p addresses.
3794
3795 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3796
3797         * reload.c (find_reloads): Revert code to penalize small register
3798         classes that was brought in with the IRA merge.
3799
3800 2010-07-14  Richard Guenther  <rguenther@suse.de>
3801
3802         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
3803         as base of ARRAY_REFs.
3804
3805 2010-07-14  Richard Guenther  <rguenther@suse.de>
3806
3807         PR middle-end/44930
3808         * tree-pretty-print.c (do_niy): Do not print a newline.
3809
3810 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
3811
3812         * ira-int.h (struct ira_object): New.
3813         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
3814         (struct ira_allocno): Remove members min, max,
3815         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
3816         conflict_allocnos_num and conflict_vec_p.  Add new member object.
3817         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
3818         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
3819         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
3820         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
3821         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
3822         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
3823         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
3824         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
3825         an ira_object_t rather than ira_allocno_t.  All uses changed.
3826         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
3827         contains a vector of ira_object_t; all uses changed.
3828         (ira_objects_num): Declare variable.
3829         (ira_create_allocno_object): Declare function.
3830         (ira_conflict_vector_profitable_p): Adjust prototype.
3831         (ira_allocate_conflict_vec): Renamed from
3832         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
3833         (ira_allocate_object_conflicts): Renamed from
3834         ira_allocate_allocno_conflicts; first arg now ira_object_t.
3835         (struct ira_object_iterator): New.
3836         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
3837         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
3838         to conflict_vec_p.  All uses changed.
3839         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
3840         Changed to take into account that conflicts are now tracked for
3841         objects.
3842         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
3843         Args changed to accept ira_object_t.  All uses changed.
3844         (allocnos_conflict_p): New static function.
3845         (collected_conflict_objects): Renamed from collected_allocno_objects;
3846         now a vector of ira_object_t.  All uses changed.
3847         (build_conflict_bit_table): Changed to take into account that
3848         conflicts are now tracked for objects.
3849         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
3850         (print_allocno_conflicts, ira_build_conflicts): Likewise.
3851         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
3852         setup_allocno_left_conflicts_size, allocno_reload_assign,
3853         fast_allocation): Likewise.
3854         * ira-lives.c (make_hard_regno_born, make_allocno_born)
3855         process_single_reg_class_operands, process_bb_node_lives): Likewise.
3856         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
3857         Likewise.
3858         * ira-build.c (ira_objects_num): New variable.
3859         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
3860         contains a vector of ira_object_t; all uses changed.
3861         (ira_object_id_map_vec): Corresponding change.
3862         (object_pool): New static variable.
3863         (initiate_allocnos): Initialize it.
3864         (finish_allocnos): Free it.
3865         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
3866         New functions.
3867         (ira_create_allocno): Don't set members that were removed.
3868         (ira_set_allocno_cover_class): Don't change conflict hard regs.
3869         (merge_hard_reg_conflicts): Changed to take into account that
3870         conflicts are now tracked for objects.
3871         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
3872         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
3873         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
3874         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
3875         setup_min_max_conflict_allocno_ids, ):  Likewise.
3876         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
3877         to ira_object_t; all callers changed.
3878         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
3879         to ira_object_t, all callers changed.
3880         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
3881         to ira_object_t, all callers changed.
3882         (conflict_check, curr_conflict_check_tick): Renamed from
3883         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
3884         changed.
3885         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
3886         arg changed to ira_object_t, all callers changed.
3887         (create_cap_allocno): Call ira_create_allocno_object.
3888         (finish_allocno): Free the corresponding object.
3889         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
3890         callers changed.  Adjusted for dealing with objects.
3891         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
3892         dealing with objects.
3893         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
3894
3895         * ira-int.h (struct live_range): Rename allocno member to object
3896         and change type to ira_object_t.
3897         (struct ira_object): New member live_ranges.
3898         (struct ira_allocno): Remove member live_ranges.
3899         (ALLOCNO_LIVE_RANGES): Remove.
3900         (OBJECT_LIVE_RANGES): New macro.
3901         (ira_create_live_range, ira_copy_live_range_list,
3902         ira_merge_live_range_list, ira_live_ranges_intersect_p,
3903         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
3904         * ira-build.c (ira_create_object): Initialize live ranges here.
3905         (ira_create_allocno): Not here.
3906         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
3907         changed to ira_object_t, all callers changed.
3908         (copy_live_range): Rename from copy_allocno_live_range, all callers
3909         changed.
3910         (ira_copy_live_range_list): Rename from
3911         ira_copy_allocno_live_range_list, all callers changed.
3912         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
3913         all callers changed.
3914         (ira_live_ranges_intersect_p): Rename from
3915         ira_allocno_live_ranges_intersect_p, all callers changed.
3916         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
3917         callers changed.
3918         (ira_finish_live_range_list): Rename from
3919         ira_finish_allocno_live_range_list, all callers changed.
3920         (change_object_in_range_list): Rename from change_allocno_in_range_list,
3921         last arg changed to ira_object_t, all callers changed.
3922         (finish_allocno): Changed to expect live ranges in the allocno's object.
3923         (move_allocno_live_ranges, copy_allocno_live_ranges,
3924         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
3925         ira_flattening, ira_build): Likewise.
3926         * ira-color.c (allocnos_have_intersected_live_ranges_p,
3927         slot_coalesced_allocno_live_ranges_intersect,
3928         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
3929         * ira-conflicts.c (build_conflict_bit_table): Likewise.
3930         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
3931         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
3932         make_allocno_dead, create_start_finish_chains,
3933         remove_some_program_points_and_update_live_ranges,
3934         ira_debug_live_range_list): Likewise.
3935
3936         * ira-int.h (ira_object_conflict_iterator): Rename from
3937         ira_allocno_conflict_iterator.
3938         (ira_object_conflict_iter_init): Rename from
3939         ira_allocno_conflict_iter_init, second arg changed to
3940         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
3941         FOR_EACH_ALLOCNO_CONFLICT.
3942         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
3943         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
3944         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
3945         * ira-conflicts.c (print_allocno_conflicts): Likewise.
3946
3947 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
3948
3949         PR other/44874
3950         * tree-dump.c (dump_options): Add enumerate_locals entry.
3951         Add TDF_NOID exclusion to all entry.
3952         * tree-dump.h (dump_enumerated_decls): Declare.
3953         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
3954         Don't display type uid.
3955         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
3956         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
3957         * tree-ssa-live.c: Include gimple.h.
3958         (numbered_tree_d): New struct.
3959         (numbered_tree): New typedef.
3960         (DEF_VEC_O (numbered_tree): New.
3961         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
3962         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
3963         (dump_enumerated_decls): Likewise.
3964         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
3965         debug info and flag_dump_final_insns, call dump_enumerated_decls.
3966         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
3967         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
3968
3969 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
3970
3971         * expmed.h (MAX_BITS_PER_WORD): Move to...
3972         * defaults.h (MAX_BITS_PER_WORD): ...here.
3973
3974 2010-07-13  DJ Delorie  <dj@redhat.com>
3975
3976         * config/h8300/h8300.c (h8300_init_once): Default to
3977         -fstrict_volatile_bitfields.
3978
3979         * config/sh/sh.c (sh_override_options): Default to
3980         -fstrict_volatile_bitfields.
3981
3982         * config/rx/rx.c (rx_option_override): New.
3983
3984         * config/m32c/m32c.c (m32c_override_options): Default to
3985         -fstrict_volatile_bitfields.
3986
3987 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
3988
3989         * tree.h (build_function_call_expr): Delete.
3990         (build_call_expr_loc_array): New function.
3991         (build_call_expr_loc_vec): New function.
3992         * tree-flow.h (struct omp_region): Change type of ws_args field
3993         to a VEC.
3994         * builtins.c (build_function_call_expr): Delete.
3995         (build_call_expr_loc_array): New function.
3996         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
3997         (build_call_expr): Likewise.
3998         (build_call_expr_loc_vec): New function.
3999         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
4000         build_function_call_expr.
4001         * expr.c (emutls_var_address): Likewise.
4002         * varasm.c (emutls_common_1): Likewise.
4003         * omp-low.c (expand_omp_atomic_mutex): Likewise.
4004         (expand_omp_taskreg): Adjust for new type of region->ws_args.
4005         (get_ws_args_for): Return a VEC instead of a tree.
4006         (expand_parallel_call): Call build_call_expr_loc_vec instead of
4007         build_function_call_expr.
4008         * stor-layout.c (self_referential_size): Likewise.
4009
4010 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
4011
4012         PR testsuite/44701
4013         * recog.c (constrain_operands): Allow side-effects in memory
4014         operands if either < or > constraint is used, rather than if
4015         both < and > is used.
4016
4017 2010-07-13  Richard Guenther  <rguenther@suse.de>
4018
4019         PR middle-end/44911
4020         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
4021         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
4022         without name.
4023
4024 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
4025
4026         PR target/44761
4027         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
4028         to variable emited.
4029         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
4030         * config/sh/sh.md (symGOT_load): Likewise.
4031         (symDTPOFF2reg): Likewise.
4032         (symTPOFF2reg): Likewise.
4033
4034 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4035
4036         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
4037         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
4038
4039 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4040
4041         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
4042         explanation.
4043         Find ucontext_t * on Solaris 11.
4044         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
4045         Handle new Solaris 11 __sighndlr patterns.
4046
4047 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
4048
4049         PR debug/44901
4050         * vec.h (VEC_block_remove): Fix comment.
4051         * tree-ssa-live.c (remove_unused_locals): Don't use
4052         VEC_unordered_remove on local_decls, instead replace a single
4053         vector element in each iteration if at least one element had
4054         to be removed and VEC_truncate at the end.
4055         * omp-low.c (expand_omp_taskreg): Likewise.
4056
4057 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4058
4059         * c-decl.c (finish_function): Fix typo in comment.
4060
4061 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
4062
4063         PR bootstrap/44921
4064         * postreload.c (move2add_use_add3_insn): Silence gcc warning
4065         on min_regno.
4066
4067 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
4068
4069         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
4070         (simplify_stmt_using_ranges): Use it.
4071
4072 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4073
4074         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
4075         member.  Do not mark as GTY(()).
4076         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
4077         (spu_builtin_decls): New static variable.
4078         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
4079         (spu_init_builtins): Likewise.
4080         (spu_builtin_mul_widen_even): Likewise.
4081         (spu_builtin_mul_widen_odd): Likewise.
4082         (spu_builtin_mask_for_load): Likewise.
4083         (spu_builtin_vec_perm): Likewise.
4084         * config/spu/spu-c.c: Include "target.h".
4085         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
4086         of using spu_builtins[].fndecl.
4087
4088 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4089
4090         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
4091         imply -minterlink-mips16.
4092
4093 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4094
4095         * config/mips/mips.h (mips16_globals): Declare.
4096         (SWITCHABLE_TARGET): Define.
4097         * config/mips/mips.c: Include target-globals.h.
4098         (mips16_globals): New variable.
4099         (mips_set_mips16_mode): Use save_target_globals and
4100         restore_target_globals instead of target_reinit.
4101
4102 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4103
4104         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
4105         to say that the function can be called more than once.
4106         * target-globals.c (save_target_globals): Call init_reg_sets.
4107
4108 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4109
4110         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
4111         * bb-reorder.h: New file.
4112         * bb-reorder.c (default_target_bb_reorder): New variable.
4113         (this_target_bb_reorder): New conditional variable.
4114         (uncond_jump_length): Redefine as a macro.
4115         * target-globals.h (this_target_bb_reorder): Declare.
4116         (target_globals): Add a bb_reorder field.
4117         (restore_target_globals): Copy the bb_reorder field to
4118         this_target_bb-reorder.
4119         * target-globals.c: Include bb-reorder.h.
4120         (default_target_globals): Initialize the bb_reorder field.
4121         (save_target_globals): Likewise.
4122
4123 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4124
4125         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
4126         * gcse.h: New file.
4127         * gcse.c: Include gcse.h.
4128         (default_target_gcse): New variable.
4129         (this_target_gcse): New conditional variable.
4130         (can_copy): Redefine as a macro.
4131         (can_copy_init_p): New macro.
4132         (can_copy_p): Remove can_copy_init_p.
4133         * target-globals.h (this_target_gcse): Declare.
4134         (target_globals): Add a gcse field.
4135         (restore_target_globals): Copy the gcse field to this_target_gcse.
4136         * target-globals.c: Include gcse.h.
4137         (default_target_globals): Initialize the gcse field.
4138         (save_target_globals): Likewise.
4139
4140 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4141
4142         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
4143         and x_ira_prohibited_mode_move_regs_initialized_p.
4144         (ira_prohibited_mode_move_regs): Redefine as a macro.
4145         * ira.c (ira_prohibited_mode_move_regs): Delete.
4146         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
4147
4148 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4149
4150         * reload.h (target_reload): Add x_cached_reg_save_code and
4151         x_cached_reg_restore_code.
4152         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
4153         Redefine as macros.
4154
4155 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4156
4157         * Makefile.in (target-globals.o): Depend on builtins.h.
4158         * builtins.h: New file.
4159         * builtins.c: Include builtins.h.
4160         (default_target_builtins): New variable.
4161         (this_target_builtins): New conditional variable.
4162         (apply_args_mode, apply_result_mode): Redefine as macros.
4163         * target-globals.h (this_target_builtins): Declare.
4164         (target_globals): Add a builtins field.
4165         (restore_target_globals): Copy the builtins field to
4166         this_target_builtins.
4167         * target-globals.c: Include builtins.h.
4168         (default_target_globals): Initialize the builtins field.
4169         (save_target_globals): Likewise.
4170
4171 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4172
4173         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
4174         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
4175         from expmed.c.
4176         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
4177         (alg_hash, alg_hash_used_p): New macros.
4178         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
4179         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
4180         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
4181
4182 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4183
4184         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
4185         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
4186         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
4187         (this_op_costs, costs_classes): Redefine as macros.
4188         (record_reg_classes): Don't take op_costs as a parameter.
4189         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
4190         (scan_one_insn): Update call to record_operand_costs.
4191
4192 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4193
4194         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
4195         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
4196         (target_ira_int): New structure.
4197         (default_target_ira_int): Declare.
4198         (this_target_ira_int): Declare as a variable or define as a macro.
4199         (ira_reg_mode_hard_regset, ira_register_move_cost)
4200         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
4201         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
4202         (prohibited_class_mode_regs, ira_important_classes_num)
4203         (ira_important_classes, ira_reg_class_intersect)
4204         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
4205         (ira_reg_class_union): Redefine as macros.
4206         * ira.h (target_ira): New structure.
4207         (default_target_ira): Declare.
4208         (this_target_ira): Declare as a variable or define as a macro.
4209         (ira_available_class_regs, ira_hard_regno_cover_class)
4210         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
4211         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
4212         (ira_class_hard_regs_num): Redefine as macros.
4213         * ira.c (default_target_ira, default_target_ira_int): New variables.
4214         (this_target_ira, this_target_ira_int): New conditional variables.
4215         (ira_reg_mode_hard_regset, ira_memory_move_cost)
4216         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
4217         (ira_class_subset_p): Delete.
4218         (no_unit_alloc_regs): Redefine as a macro.
4219         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
4220         (ira_class_hard_regs_num, ira_class_hard_reg_index)
4221         (ira_available_class_regs): Delete.
4222         (alloc_reg_class_subclasses): Redefine as a macro.
4223         (ira_reg_class_cover_size, ira_reg_class_cover)
4224         (ira_important_classes_num, ira_important_classes)
4225         (ira_important_class_nums, ira_class_translate): Delete.
4226         (cover_class_order): Document the variable's lifetime.
4227         (reorder_important_classes): Don't set ira_important_class_nums.
4228         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
4229         (ira_reg_class_super_classes, ira_reg_class_union)
4230         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
4231         Delete.
4232         (setup_reg_class_nregs): Don't set ira_max_regs.
4233         (prohibited_class_mode_regs): Delete.
4234         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
4235         (target_globals): Add ira and ira_int fields.
4236         (restore_target_globals): Copy the ira field to this_target_ira
4237         and the ira_int field to this_target_ira_int.
4238         * target-globals.c: Include ira-int.h.
4239         (default_target_globals): Initialize the ira and ira_int fields.
4240         (save_target_globals): Likewise.
4241
4242 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4243
4244         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
4245         * cfgloop.h (target_cfgloop): New structure.
4246         (default_target_cfgloop): Declare.
4247         (this_target_cfgloop): Declare as a variable or define as a macro.
4248         (target_avail_regs, target_clobbered_regs, target_res_regs)
4249         (target_reg_cost, target_spill_cost): Redefine as macros.
4250         * cfgloopanal.c (default_target_cfgloop): New variable.
4251         (this_target_cfgloop): New conditional variable.
4252         (target_avail_regs, target_clobbered_regs, target_res_regs)
4253         (target_reg_cost, target_spill_cost): Delete.
4254         * target-globals.h (this_target_cfgloop): Declare.
4255         (target_globals): Add a cfgloop field.
4256         (restore_target_globals): Copy the cfgloop field to
4257         this_target_cfgloop.
4258         * target-globals.c: Include cfgloop.h.
4259         (default_target_globals): Initialize the cfgloop field.
4260         (save_target_globals): Likewise.
4261
4262 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4263
4264         * regs.h (target_regs): Add x_direct_load, x_direct_store and
4265         x_float_extend_from_mem.
4266         (direct_load, direct_store, float_extend_from_mem): New macros.
4267         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
4268
4269 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4270
4271         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
4272         (target-globals.o): Depend on $(LIBFUNCS_H).
4273         * libfuncs.h: Include hashtab.h.
4274         (libfunc_entry): Moved from optabs.c.
4275         (target_libfuncs): New structure.
4276         (default_target_libfuncs): Declare.
4277         (this_target_libfuncs): Declare as a variable or define as a macro.
4278         (libfunc_table): Redefine as a macro.
4279         * optabs.c (default_target_libfuncs): New variable.
4280         (this_target_libfuncs): New conditional variable.
4281         (libfunc_table): Delete.
4282         (libfunc_entry): Moved to optabs.h.
4283         (libfunc_hash): Redefine as a macro.
4284         (hash_libfunc, eq_libfunc): Fix comments.
4285         (init_optabs): Use libfunc_hash to detect cases where the function
4286         has already been called.  Clear the hash table instead of
4287         recreating it.
4288         * target-globals.h (this_target_libfuncs): Declare.
4289         (target_globals): Add a libfuncs field.
4290         (restore_target_globals): Copy the libfuncs field to
4291         this_target_libfuncs.
4292         * target-globals.c: Include libfuncs.h.
4293         (default_target_globals): Initialize the libfuncs field.
4294         (save_target_globals): Likewise.
4295
4296 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4297
4298         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
4299         in all dependency lists.
4300
4301 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4302
4303         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
4304         * optabs.h (target_optabs): New structure.
4305         (default_target_optabs): Declare.
4306         (this_target_optabs): Declare as a variable or define as a macro.
4307         (optab_table, convert_optab_table, direct_optab_table): Redefine
4308         as macros.
4309         * optabs.c (default_target_optabs): New variable.
4310         (this_target_optabs): New conditional variable.
4311         (optab_table, convert_optab_table, direct_optab_table): Delete.
4312         * target-globals.h (this_target_optabs): Declare.
4313         (target_globals): Add a optabs field.
4314         (restore_target_globals): Copy the optabs field to
4315         this_target_optabs.
4316         * target-globals.c: Include expr.h and optabs.h.
4317         (default_target_globals): Initialize the optabs field.
4318         (save_target_globals): Likewise.
4319
4320 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4321
4322         * flags.h (target_flagstate): Add x_flag_excess_precision.
4323         (flag_excess_precision): Redefine as a macro.
4324         * toplev.c (flag_excess_precision): Delete.
4325
4326 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4327
4328         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
4329         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
4330         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
4331         (no_caller_save_reg_set): Redefine as a macro.
4332         * reload.h (target_reload): Add x_caller_save_initialized_p and
4333         x_regno_save_mode.
4334         (caller_save_initialized_p): Redefine as a macro.
4335         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
4336         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
4337         (regno_save_mode): Redefine as a macro.
4338
4339 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4340
4341         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
4342         * expmed.h: New file.
4343         * expmed.c (default_target_costs): New variable.
4344         (this_target_costs): New conditional variable.
4345         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
4346         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
4347         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
4348         * target-globals.h (this_target_expmed): Declare.
4349         (target_globals): Add a expmed field.
4350         (restore_target_globals): Copy the expmed field to
4351         this_target_expmed.
4352         * target-globals.c: Include expmed.h.
4353         (default_target_globals): Initialize the expmed field.
4354         (save_target_globals): Likewise.
4355
4356 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4357
4358         * Makefile.in (target-globals.o): Depend on reload.h.
4359         * reload.h (target_reload): New structure.
4360         (default_target_reload): Declare.
4361         (this_target_reload): Declare as a variable or define as a macro.
4362         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
4363         * reload1.c (default_target_reload): New variable
4364         (this_target_reload): New conditional variable.
4365         (indirect_symref_ok, double_reg_address_ok): Delete.
4366         (spill_indirect_levels): Redefine as a macro.
4367         * target-globals.h (this_target_reload): Declare.
4368         (target_globals): Add a reload field.
4369         (restore_target_globals): Copy the reload field to
4370         this_target_reload.
4371         * target-globals.c: Include hard-reg-set.h.
4372         (default_target_globals): Initialize the reload field.
4373         (save_target_globals): Likewise.
4374
4375 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4376
4377         * rtl.h (target_rtl): Add x_static_reg_base_value.
4378         * alias.c (static_reg_base_value): Redefine as a macro.
4379
4380 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4381
4382         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
4383         (GTFILES): Remove reginfo.c.
4384         * rtl.h (target_rtl): Add x_top_of_stack.
4385         (top_of_stack): New macro.
4386         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
4387         (top_of_stack): Delete.
4388
4389 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4390
4391         * regs.h (target_regs): Add x_hard_regs_of_mode,
4392         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
4393         x_may_move_out_cost and x_last_mode_for_init_move_cost.
4394         (have_regs_of_mode, contains_reg_of_mode, move_cost)
4395         (may_move_in_cost, may_move_out_cost): Redefine as macros.
4396         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
4397         (may_move_in_cost, may_move_out_cost): Delete.
4398         (last_mode_for_init_move_cost): Redefine as a macro.
4399
4400 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4401
4402         * hard-reg-set.h (target_hard_regs): New structure.
4403         (default_target_hard_regs): Declare.
4404         (this_target_hard_regs): Declare as a variable or define as a macro.
4405         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
4406         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
4407         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
4408         (reg_class_size, reg_class_subclasses, reg_class_subunion)
4409         (reg_class_superunion, reg_names): Redefine as macros.
4410         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
4411         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
4412         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
4413         (reg_class_contents, reg_class_size, reg_class_subclasses)
4414         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
4415         (default_target_hard_regs): New variable
4416         (this_target_hard_regs, initial_call_really_used_regs)
4417         (initial_reg_alloc_order): New conditional variables.
4418         (initial_reg_names): New variable.
4419         (init_reg_sets): Assert that initial_call_really_used_regs,
4420         initial_reg_alloc_order and initial_reg_names
4421         are all the same size as their variable counterparts.  Use them to
4422         initialize those counterparts.
4423         * target-globals.h (this_target_hard_regs): Declare.
4424         (target_globals): Add a hard_regs field.
4425         (restore_target_globals): Copy the hard_regs field to
4426         this_target_hard_regs.
4427         * target-globals.c: Include hard-reg-set.h.
4428         (default_target_globals): Initialize the hard_regs field.
4429         (save_target_globals): Likewise.
4430
4431 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4432
4433         * Makefile.in (target-globals.o): Depend on $(RTL_H).
4434         * rtl.h (target_rtl): New structure.
4435         (default_target_rtl): Declare.
4436         (this_target_rtl): Declare as a variable or define as a macro.
4437         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
4438         Redefine as macros.
4439         * emit-rtl.c (default_target_rtl): New variable.
4440         (this_target_rtl): New conditional variable.
4441         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
4442         (return_address_pointer_rtx): Delete.
4443         (initial_regno_reg_rtx): New macro.
4444         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
4445         (init_emit_regs): Likewise.
4446         * target-globals.h (this_target_rtl): Declare.
4447         (target_globals): Add a rtl field.
4448         (restore_target_globals): Copy the rtl field to this_target_rtl.
4449         * target-globals.c: Include rtl.h.
4450         (default_target_globals): Initialize the rtl field.
4451         (save_target_globals): Likewise.
4452
4453 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4454
4455         * Makefile.in (target-globals.o): Depend on $(REGS_H).
4456         * regs.h (target_reg_modes): New structure.
4457         (default_target_reg_modes): Declare.
4458         (this_target_reg_modes): Declare as a variable or define as a macro.
4459         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
4460         * reginfo.c (default_target_reg_modes): New variable.
4461         (this_target_reg_modes): New conditional variable.
4462         (hard_regno_nregs, reg_raw_mode): Delete.
4463         * target-globals.h (this_target_regs): Declare.
4464         (target_globals): Add a regs field.
4465         (restore_target_globals): Copy the regs field to this_target_regs.
4466         * target-globals.c: Include regs.h.
4467         (default_target_globals): Initialize the regs field.
4468         (save_target_globals): Likewise.
4469
4470 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
4471
4472         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
4473         * doc/tm.texi: Regenerate.
4474         * Makefile.in (OBJS-common): Add target-globals.o.
4475         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
4476         and target-globals.h.
4477         (target-globals.o): New rule.
4478         (GTFILES): Include $(srcdir)/target-globals.h.
4479         * defaults.h (SWITCHABLE_TARGET): Define.
4480         * gengtype.c (open_base_files): Add target-globals.h to the
4481         list of includes.
4482         * target-globals.h: New file.
4483         * target-globals.c: Likewise.
4484
4485         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
4486         * flags.h (target_flag_state): New structure.
4487         (default_target_flag_state): Declare.
4488         (this_target_flag_state): Declare as a variable or define as a macro.
4489         (align_loops_log): Redefine as a macro.
4490         (align_loops_max_skip, align_jumps_log): Likewise.
4491         (align_jumps_max_skip, align_labels_log): Likewise.
4492         (align_labels_max_skip, align_functions_log): Likewise.
4493         * toplev.c (default_target_flag_state): New variable.
4494         (this_target_flag_state): New conditional variable.
4495         (align_loops_log): Delete.
4496         (align_loops_max_skip, align_jumps_log): Likewise.
4497         (align_jumps_max_skip, align_labels_log): Likewise.
4498         (align_labels_max_skip, align_functions_log): Likewise.
4499         * target-globals.h (this_target_flag_state): Declare.
4500         (target_globals): Add a flag_state field.
4501         (restore_target_globals): Copy the flag_state field to
4502         this_target_flag_state.
4503         * target-globals.c: Include flags.h.
4504         (default_target_globals): Initialize the flag_state field.
4505         (save_target_globals): Likewise.
4506
4507 2010-07-12  Jie Zhang  <jie@codesourcery.com>
4508
4509         * postreload.c (reg_symbol_ref[]): New.
4510         (move2add_use_add2_insn): New.
4511         (move2add_use_add3_insn): New.
4512         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
4513         (move2add_note_store): Likewise.
4514
4515 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
4516
4517         PR rtl-optimization/44752
4518         * genautomata.c (main): Don't emit an empty file even if there
4519         is no automaton.
4520
4521 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4522
4523         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
4524         ix86_solaris_return_in_memory.
4525         * config/i386-protos.h: Reflect this.
4526         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
4527         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
4528         Move ...
4529         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
4530
4531 2010-07-12  Jie Zhang  <jie@codesourcery.com>
4532
4533         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
4534         align the stack when it's going to be saved.
4535
4536 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4537
4538         PR pch/14940
4539         * config/host-solaris.c (mmap_fixed): New function.
4540         (sol_gt_pch_get_address): Use it.
4541         (sol_gt_pch_use_address): Likewise.
4542
4543 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4544
4545         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4546         pentiumpro on Solaris 8 and 9/x86.
4547         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
4548         Document SSE/SSE2 support.
4549         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
4550
4551 2010-07-12  Andi Kleen  <ak@linux.intel.com>
4552
4553         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
4554         instead of gcc_assert to print better error message for multiple
4555         prevailing defs.
4556
4557 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
4558
4559         * config/i386/i386.c (ix86_asm_output_function_label): Change format
4560         string placeholder from 0x%x to %#x.
4561         (ix86_code_end): Use putc to output '\n'.
4562         (ix86_print_operand) <case ';'>: Use putc to output ';'.
4563
4564 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
4565
4566         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
4567         in directive -export.
4568
4569 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
4570
4571         * reginfo.h (reg_classes_intersect_p): Change arguments type to
4572         reg_class_t.
4573         * rtl.h (reg_classes_intersect_p): Adjust prototype.
4574
4575         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4576         Remove macros.
4577         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
4578         rs6000_memory_move_cost): Remove
4579         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
4580         TARGET_MEMORY_MOVE_COST): Define.
4581         (rs6000_register_move_cost): Make static. Change arguments type from
4582         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
4583         (rs6000_memory_move_cost): Make static. Change arguments type from
4584         'enum reg_class' to reg_class_t.
4585
4586 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
4587
4588         PR middle-end/42505
4589         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
4590         lookup code into....
4591         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
4592         new functions.
4593         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
4594         * cfgloopanal.c (target_clobbered_regs): Define.
4595         (init_set_costs): Initialize target_clobbered_regs.
4596         (estimate_reg_pressure_cost): Add call_p argument.  When true,
4597         adjust the number of available registers to exclude the
4598         call-clobbered registers.
4599         * cfgloop.h (target_clobbered_regs): Declare.
4600         (estimate_reg_pressure_cost): Adjust declaration.
4601         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
4602         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
4603         (determine_set_costs): Dump target_clobbered_regs.
4604         (loop_body_includes_call): New function.
4605         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
4606         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
4607         call_p flag through.
4608         (best_gain_for_invariant): Likewise.
4609         (find_invariants_to_move): Likewise.
4610         (move_single_loop_invariants): Likewise, using already-computed
4611         has_call field.
4612
4613 2010-07-10  Richard Guenther  <rguenther@suse.de>
4614             Joern Rennecke  <joern.rennecke@embecosm.com>
4615
4616         PR debug/44832
4617         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
4618         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
4619         unless they have DECL_IGNORED_P set.
4620
4621 2010-07-10  Richard Guenther  <rguenther@suse.de>
4622
4623         PR lto/44889
4624         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
4625         helper function.
4626         (gimple_types_compatible_p): Similar to pointed-to
4627         types allow and merge a mix of complete and incomplete aggregate.
4628         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
4629         (iterative_hash_gimple_type): Adjust for that.
4630
4631 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
4632
4633         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
4634
4635 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
4636
4637         PR objc/44140
4638         * config/darwin.c (output_objc_section_asm_op): Save and restore
4639         section when outputting ObjC section list.
4640
4641 2010-07-09  Jan Hubicka  <jh@suse.cz>
4642
4643         * lto-streamer-out.c (produce_symtab): Do not write alias
4644         cgraph/varpool nodes.
4645
4646 2010-07-09  Jan Hubicka  <jh@suse.cz>
4647
4648         * tree-inline.c (declare_return_variable): Fix ICE while
4649         inlining DECL_BY_VALUE function not in SSA form
4650
4651 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
4652
4653         PR tree-optimization/44576
4654         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
4655         New.  Pull out from is_loop_prefetching_profitable to implement
4656         the trip count to ahead ratio heuristic.
4657         (mem_ref_count_reasonable_p): New.  Pull out from
4658         is_loop_prefetching_profitable to implement the instruction to
4659         memory reference ratio heuristic.  Also consider not reasonable if
4660         the memory reference count is above a threshold (to avoid
4661         explosive compilation time.
4662         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
4663         is_loop_prefetching_profitable to implement the instruction to
4664         prefetch ratio heuristic.
4665         (is_loop_prefetching_profitable): Removed.
4666         (loop_prefetch_arrays): Distribute the cost analysis across the
4667         function to allow early exit of the prefetch analysis.
4668         is_loop_prefetching_profitable is splitted into three functions,
4669         with each one called as early as possible.
4670         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
4671         number of memory references in a loop is considered too many.
4672
4673 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
4674
4675         * reload.c (find_reloads): Don't clear badop if we have a winreg
4676         alternative, but not win, and the class only has fixed regs.
4677         * hard-reg-set.h (class_only_fixed_regs): Declare.
4678         * reginfo.c (class_only_fixed_regs): New array.
4679         (init_reg_sets_1): Initialize it.
4680         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
4681         discourage alternatives using the stack pointer.
4682
4683         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
4684
4685         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
4686
4687         * config/arm/arm.md (cbranchqi4): Fix array size.
4688         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
4689         calculating length.
4690
4691 2010-07-09  Richard Guenther  <rguenther@suse.de>
4692
4693         * gimple.c (struct type_fixup_s): New struct and VEC type.
4694         (gimple_register_type_fixups): New static global.
4695         (gimple_queue_type_fixup): New function.
4696         (gimple_types_compatible_p): Queue type fixups instead of
4697         applying them here.
4698         (gimple_register_type): Apply queued fixups for the
4699         canonical type.  Empty the type fixup queue.
4700
4701 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
4702
4703         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
4704         * configure: Regenerate.
4705         * config.in: Ditto.
4706
4707 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
4708             Denys Vlasenko  <dvlasenk@redhat.com>
4709             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4710
4711         PR tree-optimization/28632
4712         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
4713         (extract_range_from_binary_expr): Further optimize
4714         BIT_AND_EXPR and BIT_IOR_EXPR.
4715
4716 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
4717
4718         * tree-if-conv.c (fold_or_predicates): New.
4719         (add_to_predicate_list): Call it.
4720
4721 2010-07-09  Richard Guenther  <rguenther@suse.de>
4722
4723         PR middle-end/44890
4724         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
4725         if base is a pointer.
4726         * tree-cfg.c (verify_expr): Update MEM_REF checking.
4727
4728 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4729
4730         PR target/44877
4731         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
4732         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
4733         builtin mask for load/store builtins.
4734
4735 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
4736
4737         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
4738         for "lock addl".
4739         * configure: Regenerate.
4740         * config/i386/i386.c (ix86_print_operand) <case ';'>:
4741         Remove TARGET_MACHO.
4742
4743 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
4744
4745         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
4746         default ISA flags.
4747         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
4748
4749 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
4750
4751         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
4752
4753 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
4754
4755         * config/picochip/picochip.md (commsTestPort): Emit more
4756         efficient sequence for tstport instruction.
4757
4758 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
4759
4760         * config/i386/i386.c (ix86_veclib_handler): Make static.
4761
4762 2010-07-09  Richard Guenther  <rguenther@suse.de>
4763
4764         PR tree-optimization/44852
4765         * tree-ssa-alias.c: Include toplev.h for exact_log2.
4766         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
4767         in MEM_REF.
4768         (indirect_refs_may_alias_p): Likewise.
4769         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
4770
4771 2010-07-09  Richard Guenther  <rguenther@suse.de>
4772
4773         PR tree-optimization/44882
4774         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
4775         sets do conflict.
4776         (vectorizable_load): Likewise.
4777
4778 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
4779
4780         PR target/40657
4781         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
4782         All callers changed.
4783         Handle the case when we're called for the epilogue.
4784         (thumb_unexpanded_epilogue): Use it.
4785         (thumb1_expand_epilogue): Likewise.
4786
4787 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
4788
4789         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
4790         both ranges are range_int_cst_p with non-negative minimum,
4791         try harder to derive smaller range.
4792
4793 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4794
4795         * genrecog.c: Include diagnostic-core.h before toplev.h.
4796         * genoutput.c: Likewise.
4797         * genextract.c: Likewise.
4798         * genautomata.c: Likewise.
4799         * genemit.c: Likewise.
4800         * genpeep.c: Likewise.
4801         * genattrtab.c: Likewise.
4802         * genconditions.c: Likewise.
4803         * genpreds.c: Likewise.
4804
4805 2010-07-08  Andi Kleen  <ak@linux.intel.com>
4806
4807         * lto-section-in.c (lto_section_name): Add missing comma.
4808
4809 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
4810
4811         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
4812         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
4813         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
4814         (ia64_override_options): Rename to...
4815         (ia64_option_override): ... this one. Make static.
4816
4817 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4818
4819         PR middle-end/44843
4820         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
4821         pointed-to type of the offset in a MEM_REF to compute the alignment.
4822
4823 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
4824
4825         * final.c (final_scan_insn): Replace
4826         TARGET_UNWIND_INFO macro check by unwind_emit
4827         hook NULL check.
4828         * targhooks.c (default_unwind_emit): Removed.
4829         * targhooks.h (default_unwind_emit): Likewise.
4830         * target.def (unwind_emit): Set default value to NULL.
4831
4832         * config/i386/i386-protos.h (ix86_asm_output_function_label):
4833         New prototype.
4834         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
4835         for NULL fntype argument and allow 64-bit targets.
4836         (ix86_asm_output_function_label): New function.
4837         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
4838         (ix86_handle_fndecl_attribute): Likewise.
4839         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
4840         * doc/doc/tm.texi: Regenerated.
4841         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
4842         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
4843         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
4844         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
4845         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
4846         * config/elfos.h: Likewise.
4847         * config/i386/cygming.h: Likewise.
4848         * config/netbsd-aout.h: Likewise.
4849         * config/openbsd.h: Likewise.
4850         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
4851         by ix86_asm_output_function_label function call.
4852         * varasm.c (assemble_start_function): Use
4853         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
4854
4855 2010-07-08  Jan Hubicka  <jh@suse.cz>
4856
4857         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
4858         New function.
4859         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
4860         Declare.
4861         * ipa-cp.c (ipcp_estimate_growth): Use it.
4862         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
4863         Likewise.
4864
4865 2010-07-08  Jan Hubicka  <jh@suse.cz>
4866
4867         * tree-inline.c (declare_return_variable): Allocate annotation for new
4868         temporary.
4869
4870 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
4871
4872         PR tree-optimization/44710
4873         * tree-if-conv.c (parse_predicate): New.
4874         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
4875         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
4876
4877 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
4878
4879         * common.opt (ftree-loop-if-convert): New flag.
4880         * doc/invoke.texi (ftree-loop-if-convert): Documented.
4881         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
4882         when flag_tree_loop_if_convert is set.
4883
4884 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
4885
4886         * config/i386/i386.c: Use short syntax for function calls
4887         through function pointers.
4888         * config/i386/i386.md: Ditto.
4889
4890 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4891
4892         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
4893
4894 2010-07-08  Richard Guenther  <rguenther@suse.de>
4895
4896         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
4897         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
4898
4899 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
4900
4901         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
4902         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
4903         (loc_list_from_tree): Likewise.
4904         (output_loc_operands): Handle outputting DW_OP_const[48]u
4905         with loc->dtprel set.
4906         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
4907
4908 2010-07-08  Jan Hubicka  <jh@suse.cz>
4909
4910         * ipa.c: Include pointer-set.h
4911         (cgraph_externally_visible_p): New attribute ALIASED;
4912         when in LTO, hidden symbols are local unless they are aliased.
4913         (function_and_variable_visibility): Compute aliased nodes;
4914         handle LTO and hidden symbol on functions and vars.
4915         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
4916         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
4917
4918 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4919
4920         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
4921         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4922         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4923         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4924         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4925         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
4926         (ix86_gen_probe_stack_range): Likewise.
4927         (override_options): Set them.
4928         (ix86_target_stack_probe): New function.
4929         (ix86_compute_frame_layout): Force use of push instructions to
4930         save registers if stack checking with probes is enabled.
4931         (get_scratch_register_on_entry): New function.
4932         (release_scratch_register_on_entry): Likewise.
4933         (ix86_adjust_stack_and_probe): Likewise.
4934         (output_adjust_stack_and_probe): Likewise.
4935         (ix86_emit_probe_stack_range): Likewise.
4936         (output_probe_stack_range): Likewise.
4937         (ix86_expand_prologue): Emit stack checking code if static built-in
4938         stack checking is enabled.
4939         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
4940         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
4941         (output_adjust_stack_and_probe): Likewise.
4942         (output_probe_stack_range): Likewise.
4943         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
4944         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
4945         TARGET_STACK_PROBE.
4946         (allocate_stack_worker_64): Likewise.
4947         (allocate_stack): Likewise.
4948         (adjust_stack_and_probe): New insn.
4949         (probe_stack_range): Likewise.
4950
4951 2010-07-08  Richard Guenther  <rguenther@suse.de>
4952
4953         PR tree-optimization/44831
4954         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
4955         a MEM_REF preserving TBAA info of the original dereference.
4956         Dereference the original pointer if the address is not invariant.
4957         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
4958         at least one invariant address that we are going to dereference.
4959
4960 2010-07-08  Richard Guenther  <rguenther@suse.de>
4961
4962         PR tree-optimization/44861
4963         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
4964         information when building MEM_REFs.
4965         (vectorizable_load): Likewise.
4966         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
4967
4968 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4969
4970         * config/sol2-c.c: Do not include diagnostic-core.h.
4971
4972 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4973
4974         PR bootstrap/44768
4975         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
4976         with respect to current_function_decl. Pass decl of the function.
4977         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
4978         * ipa-inline.c (compute_inline_parameters): Pass decl to
4979         estimated_stack_frame_size.
4980
4981 2010-07-08  Richard Guenther  <rguenther@suse.de>
4982
4983         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4984         New function.
4985         (valueize_refs): Call it.
4986
4987 2010-07-08  Richard Guenther  <rguenther@suse.de>
4988
4989         PR rtl-optimization/44838
4990         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
4991         SSA form do not use pointer equivalence.
4992
4993 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4994
4995         * dwarf2out.c (AT_linkage_name): Delete.
4996         (add_linkage_attr): New function.
4997         (add_linkage_name): Call it to emit the linkage attribute.
4998         (dwarf2out_finish): Likewise.
4999         (move_linkage_attr): Explicitly accept both attribute variants.
5000
5001 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5002
5003         * toplev.h: Do not include diagnostic-core.h.
5004         Include diagnostic-core.h in every file that includes toplev.h.
5005         * c-tree.h: Do not include toplev.h.
5006         * pretty-print.h: Update comment.
5007         * Makefile.in: Update dependencies.
5008         * alias.c: Include diagnostic-core.h in every file that includes
5009         toplev.h.
5010         * attribs.c: Likewise.
5011         * auto-inc-dec.c: Likewise.
5012         * bb-reorder.c: Likewise.
5013         * bt-load.c: Likewise.
5014         * caller-save.c: Likewise.
5015         * calls.c: Likewise.
5016         * cfg.c: Likewise.
5017         * cfganal.c: Likewise.
5018         * cfgbuild.c: Likewise.
5019         * cfgcleanup.c: Likewise.
5020         * cfghooks.c: Likewise.
5021         * cfgloop.c: Likewise.
5022         * combine.c: Likewise.
5023         * config/alpha/alpha.c: Likewise.
5024         * config/arc/arc.c: Likewise.
5025         * config/arm/arm.c: Likewise.
5026         * config/arm/pe.c: Likewise.
5027         * config/avr/avr.c: Likewise.
5028         * config/bfin/bfin.c: Likewise.
5029         * config/cris/cris.c: Likewise.
5030         * config/crx/crx.c: Likewise.
5031         * config/darwin-c.c: Likewise.
5032         * config/darwin.c: Likewise.
5033         * config/fr30/fr30.c: Likewise.
5034         * config/frv/frv.c: Likewise.
5035         * config/h8300/h8300.c: Likewise.
5036         * config/host-darwin.c: Likewise.
5037         * config/i386/i386.c: Likewise.
5038         * config/i386/netware.c: Likewise.
5039         * config/i386/nwld.c: Likewise.
5040         * config/i386/winnt-cxx.c: Likewise.
5041         * config/i386/winnt-stubs.c: Likewise.
5042         * config/i386/winnt.c: Likewise.
5043         * config/ia64/ia64-c.c: Likewise.
5044         * config/ia64/ia64.c: Likewise.
5045         * config/iq2000/iq2000.c: Likewise.
5046         * config/lm32/lm32.c: Likewise.
5047         * config/m32c/m32c-pragma.c: Likewise.
5048         * config/m32c/m32c.c: Likewise.
5049         * config/m32r/m32r.c: Likewise.
5050         * config/m68hc11/m68hc11.c: Likewise.
5051         * config/m68k/m68k.c: Likewise.
5052         * config/mcore/mcore.c: Likewise.
5053         * config/mep/mep-pragma.c: Likewise.
5054         * config/mep/mep.c: Likewise.
5055         * config/mmix/mmix.c: Likewise.
5056         * config/mn10300/mn10300.c: Likewise.
5057         * config/moxie/moxie.c: Likewise.
5058         * config/pa/pa.c: Likewise.
5059         * config/pdp11/pdp11.c: Likewise.
5060         * config/picochip/picochip.c: Likewise.
5061         * config/rs6000/rs6000-c.c: Likewise.
5062         * config/rs6000/rs6000.c: Likewise.
5063         * config/rx/rx.c: Likewise.
5064         * config/s390/s390.c: Likewise.
5065         * config/score/score.c: Likewise.
5066         * config/score/score3.c: Likewise.
5067         * config/score/score7.c: Likewise.
5068         * config/sh/sh.c: Likewise.
5069         * config/sh/symbian-base.c: Likewise.
5070         * config/sh/symbian-c.c: Likewise.
5071         * config/sh/symbian-cxx.c: Likewise.
5072         * config/sol2-c.c: Likewise.
5073         * config/sol2.c: Likewise.
5074         * config/sparc/sparc.c: Likewise.
5075         * config/spu/spu.c: Likewise.
5076         * config/stormy16/stormy16.c: Likewise.
5077         * config/v850/v850-c.c: Likewise.
5078         * config/v850/v850.c: Likewise.
5079         * config/vax/vax.c: Likewise.
5080         * config/vxworks.c: Likewise.
5081         * config/xtensa/xtensa.c: Likewise.
5082         * convert.c: Likewise.
5083         * cse.c: Likewise.
5084         * cselib.c: Likewise.
5085         * dbgcnt.c: Likewise.
5086         * dbxout.c: Likewise.
5087         * ddg.c: Likewise.
5088         * dominance.c: Likewise.
5089         * emit-rtl.c: Likewise.
5090         * explow.c: Likewise.
5091         * expmed.c: Likewise.
5092         * fixed-value.c: Likewise.
5093         * fold-const.c: Likewise.
5094         * fwprop.c: Likewise.
5095         * gcse.c: Likewise.
5096         * ggc-common.c: Likewise.
5097         * ggc-page.c: Likewise.
5098         * ggc-zone.c: Likewise.
5099         * gimple-low.c: Likewise.
5100         * gimplify.c: Likewise.
5101         * graph.c: Likewise.
5102         * haifa-sched.c: Likewise.
5103         * ifcvt.c: Likewise.
5104         * implicit-zee.c: Likewise.
5105         * integrate.c: Likewise.
5106         * ira-build.c: Likewise.
5107         * ira-color.c: Likewise.
5108         * ira-conflicts.c: Likewise.
5109         * ira-costs.c: Likewise.
5110         * ira-lives.c: Likewise.
5111         * ira.c: Likewise.
5112         * lists.c: Likewise.
5113         * loop-doloop.c: Likewise.
5114         * loop-iv.c: Likewise.
5115         * lto-opts.c: Likewise.
5116         * lto-symtab.c: Likewise.
5117         * main.c: Likewise.
5118         * modulo-sched.c: Likewise.
5119         * optabs.c: Likewise.
5120         * params.c: Likewise.
5121         * plugin.c: Likewise.
5122         * postreload-gcse.c: Likewise.
5123         * postreload.c: Likewise.
5124         * predict.c: Likewise.
5125         * profile.c: Likewise.
5126         * real.c: Likewise.
5127         * regcprop.c: Likewise.
5128         * reginfo.c: Likewise.
5129         * regmove.c: Likewise.
5130         * reorg.c: Likewise.
5131         * resource.c: Likewise.
5132         * rtl.c: Likewise.
5133         * rtlanal.c: Likewise.
5134         * sched-deps.c: Likewise.
5135         * sched-ebb.c: Likewise.
5136         * sched-rgn.c: Likewise.
5137         * sdbout.c: Likewise.
5138         * sel-sched-dump.c: Likewise.
5139         * sel-sched-ir.c: Likewise.
5140         * simplify-rtx.c: Likewise.
5141         * stmt.c: Likewise.
5142         * stor-layout.c: Likewise.
5143         * store-motion.c: Likewise.
5144         * targhooks.c: Likewise.
5145         * tree-cfg.c: Likewise.
5146         * tree-cfgcleanup.c: Likewise.
5147         * tree-dump.c: Likewise.
5148         * tree-eh.c: Likewise.
5149         * tree-inline.c: Likewise.
5150         * tree-nomudflap.c: Likewise.
5151         * tree-object-size.c: Likewise.
5152         * tree-optimize.c: Likewise.
5153         * tree-outof-ssa.c: Likewise.
5154         * tree-phinodes.c: Likewise.
5155         * tree-profile.c: Likewise.
5156         * tree-ssa-ccp.c: Likewise.
5157         * tree-ssa-coalesce.c: Likewise.
5158         * tree-ssa-live.c: Likewise.
5159         * tree-ssa-loop-niter.c: Likewise.
5160         * tree-ssa-loop-prefetch.c: Likewise.
5161         * tree-ssa-loop.c: Likewise.
5162         * tree-ssa-structalias.c: Likewise.
5163         * tree-ssa-uninit.c: Likewise.
5164         * tree-ssa.c: Likewise.
5165         * tree-vect-data-refs.c: Likewise.
5166         * tree-vect-loop-manip.c: Likewise.
5167         * tree-vect-loop.c: Likewise.
5168         * tree-vect-patterns.c: Likewise.
5169         * tree-vect-stmts.c: Likewise.
5170         * tree-vrp.c: Likewise.
5171         * varasm.c: Likewise.
5172         * vec.c: Likewise.
5173         * web.c: Likewise.
5174         * xcoffout.c: Likewise.
5175
5176 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
5177
5178         * gengtype.c (write_field_root): New function.
5179         (write_root): Use it.
5180
5181 2010-07-07  Wei Guozhi  <carrot@google.com>
5182
5183         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
5184         of lowest bits to lshift/compare): Add a missing line.
5185
5186 2010-07-07  Wei Guozhi  <carrot@google.com>
5187
5188         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
5189         of lowest bits to lshift/compare): New.
5190
5191 2010-07-07  Tom Tromey  <tromey@redhat.com>
5192
5193         * doc/tm.texi: Update.
5194         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
5195         Add @hook.
5196         * target.def (want_debug_pub_sections): New hook.
5197         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
5198         * dwarf2out.c (add_pubname_string): Check
5199         targetm.want_debug_pub_sections.
5200         (add_pubname): Likewise.
5201         (add_pubtype): Likewise.
5202
5203 2010-07-07  Jie Zhang  <jie@codesourcery.com>
5204
5205         * genautomata.c (output_automata_list_min_issue_delay_code):
5206         Correctly decompress min_issue_delay.
5207
5208 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5209
5210         PR rtl-optimization/44404
5211         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
5212         possible, use reg_overlap_mentioned_p instead.
5213
5214 2010-07-07  Duncan Sands  <baldrick@free.fr>
5215
5216         PR middle-end/41355
5217         * tree.c (build_function_type_skip_args): Copy the original type using
5218         build_distinct_type_copy rather than copy_node.
5219
5220 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
5221
5222         PR target/44850
5223         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
5224         revision 161876.
5225         (ix86_expand_prologue): Likewise.
5226         (ix86_handle_fndecl_attribute): Likewise.
5227         (ix86_asm_declare_function_name): Likewise.
5228         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5229         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5230         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
5231         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
5232         * doc/extend.texi: Likewise.
5233
5234 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
5235
5236         PR target/44844
5237         * config/i386/i386.md (rdrand<mode>): Changed to expand to
5238         retry if the carry flag isn't valid.
5239         (rdrand<mode>_1): New.
5240
5241 2010-07-07  Richard Guenther  <rguenther@suse.de>
5242
5243         PR middle-end/44790
5244         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
5245         for expanding the constant offset for MEM_REFs.
5246
5247 2010-07-07  Richard Guenther  <rguenther@suse.de>
5248
5249         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
5250         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
5251         * gimple.h (is_gimple_operand): Remove.
5252         * gimple.c (is_gimple_operand): Likewise.
5253         (walk_gimple_op): Fix wi->val_only setting for calls.
5254         * tree-cfg.c (verify_gimple_call): Fix argument validation.
5255         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
5256         invalid gimple calls.
5257
5258 2010-07-06  Jan Hubicka  <jh@suse.cz>
5259
5260         * lto-cgraph.c (output_cgraph): Add missing declaration.
5261
5262 2010-07-06  Jan Hubicka  <jh@suse.cz>
5263
5264         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
5265         partition.
5266
5267 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
5268
5269         * doc/gimple.texi (GIMPLE_DEBUG): Document.
5270         * doc/rtl.texi (Debug Information): New node.
5271         (NOTE_INSN_VAR_LOCATION): Document.
5272         (debug_insn): Likewise.
5273         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
5274
5275 2010-07-07  Jan Hubicka  <jh@suse.cz>
5276
5277         With parts by Richard Guenther.
5278
5279         PR middle-end/44813
5280         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
5281         for functions passed by reference.
5282         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
5283         in memory when passed by reference.
5284         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
5285         beggining.
5286         * ipa-split.c (split_function): Cleanup way return value is passed;
5287         handle SSA DECL_BY_REFERENCE retvals.
5288         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
5289         DECL_BY_REFERENCE is set.
5290         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
5291         find_what_p_points_to): Handle RESULT_DECL.
5292         * tree-inline.c (declare_return_variable): Get new entry_block argument;
5293         when passing by reference ensure that RESULT_DECL is gimple_val.
5294         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
5295         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
5296
5297 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5298
5299         PR rtl-optimization/44787
5300         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
5301         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
5302
5303 2010-07-06  Jan Hubicka  <jh@suse.cz>
5304
5305         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
5306         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
5307         with body can prevail.
5308         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
5309         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
5310         * cgraph.c (cgraph_get_node_or_alias): New function.
5311         * cgraph.h (cgraph_get_node_or_alias): Declare.
5312
5313 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
5314
5315         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
5316         support.
5317         (ix86_expand_prologue): Likewise.
5318         (ix86_handle_fndecl_attribute): Likewise.
5319         (ix86_asm_declare_function_name): New function for
5320         ASM_DECLARE_FUNCTION_NAME.
5321         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
5322         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
5323         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
5324         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
5325         * doc/extend.texi: Adjust documentation about ms_hook_prologue
5326         attribute.
5327
5328 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
5329
5330         * config/i386/i386.md (immediate_operand): New mode attribute.
5331
5332         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
5333         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
5334         using P mode iterator.
5335         (pro_epilogue_adjust_stack_di_2): Rename from
5336         pro_epilogue_adjust_stack_rex64_2.
5337
5338         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
5339
5340 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
5341
5342         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
5343         through gen_mov_insv_1 function pointer.
5344         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
5345         gen_truncxf<mode>2 through gen_truncxf function pointer.
5346         (remainder<mode>3): Ditto.
5347         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
5348         (allocate_stack): Call gen_allocate_stack_worker_64 or
5349         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
5350         function pointer.
5351         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
5352         function pointer.
5353
5354 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
5355
5356         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
5357         operand constraint instead of <r><i>m.
5358
5359 2010-07-06  Richard Guenther  <rguenther@suse.de>
5360
5361         PR middle-end/44828
5362         * convert.c (convert_to_integer): Watch out for overflowing
5363         MULT_EXPR as well.
5364
5365 2010-07-05  Jan Hubicka  <jh@suse.cz>
5366
5367         * lto-streamer.c (write_symbol_vec): Rename to ...
5368         (write_symbol) ... this one; write only symbol given and when
5369         present in cache. Sanity check that what is defined is present
5370         in cgraph/varpool with body/finalized decl.
5371         (write_symbols_of_kind): Remove.
5372         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
5373         pairs to produce symtab.
5374         (produce_asm_for_decls): Update call of produce_symtab; don't do so
5375         when doing WPA streaming.
5376
5377 2010-07-05  Jan Hubicka  <jh@suse.cz>
5378
5379         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
5380         function is still available to fold into.
5381
5382 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
5383
5384         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
5385         * function.h (struct_function): Change type of local_decls field
5386         to a VEC.
5387         (add_local_decl): New function.
5388         (FOR_EACH_LOCAL_DECL): New macro.
5389         * cfgexpand.c (init_vars_expansion): Adjust for new type of
5390         cfun->local_decls.
5391         (estimated_stack_frame_size): Likewise.
5392         (expand_used_vars): Likewise.
5393         * cgraphbuild.c (build_cgraph_edges): Likewise.
5394         * function.c (instantiate_decls_1): Likewise.
5395         * ipa-struct-reorg.c (build_data_structure): Likewise.
5396         * ipa-type-escape.c (analyze_function): Likewise.
5397         * lto-streamer-in.c (input_function): Likewise.
5398         * lto-streamer-out.c (output_function): Likewise.
5399         * tree-ssa-live.c (remove_unused_locals): Likewise.
5400         * tree.c (free_lang_data_in_decl): Likewise.
5401         (find_decls_types_in_node): Likewise.
5402         * omp-low.c (remove_exit_barrier): Likewise.
5403         (expand_omp_taskreg): Likewise.
5404         (list2chain): Rename to...
5405         (vec2chain): ...this.  Adjust.
5406         * cgraphunit.c (assemble_thunk): Call add_local_decl.
5407         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
5408         * gimple-low.c (record_vars_into): Likewise.
5409         * tree-inline.c (remap_decls): Likewise.
5410         (declare_return_variable): Likewise.
5411         (declare_inline_vars): Likewise.
5412         (copy_forbidden): Adjust for new type of cfun->local_decls.
5413         (add_local_variables): New function.
5414         (expand_call_inline): Call it.
5415         (tree_function_versioning): Likewise.
5416
5417 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5418
5419         AVX Programming Reference (June, 2010)
5420         * config/i386/cpuid.h (bit_F16C): New.
5421         (bit_RDRND): Likewise.
5422         (bit_FSGSBASE): Likewise.
5423
5424         * config/i386/i386-builtin-types.def: Add
5425         "DEF_FUNCTION_TYPE (UINT16)", function types for
5426         float16 <-> float conversions and
5427         "DEF_FUNCTION_TYPE (VOID, UINT64)".
5428
5429         * config/i386/i386-c.c (ix86_target_macros_internal): Support
5430         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
5431         OPTION_MASK_ISA_F16C.
5432
5433         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
5434         (OPTION_MASK_ISA_RDRND_SET): Likewise.
5435         (OPTION_MASK_ISA_F16C_SET): Likewise.
5436         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
5437         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
5438         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
5439         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
5440         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
5441         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
5442         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
5443         (override_options): Handle them.
5444         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
5445         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
5446         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
5447         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
5448         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
5449         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
5450         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
5451         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
5452         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
5453         (bdesc_args): Likewise.
5454         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
5455         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
5456         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
5457         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
5458         Handle non-memory store.
5459
5460         * config/i386/i386.h (TARGET_FSGSBASE): New.
5461         (TARGET_RDRND): Likewise.
5462         (TARGET_F12C): Likewise.
5463
5464         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
5465         (UNSPEC_VCVTPS2PH): Likewise.
5466         (UNSPECV_RDFSBASE): Likewise.
5467         (UNSPECV_RDGSBASE): Likewise.
5468         (UNSPECV_WRFSBASE): Likewise.
5469         (UNSPECV_WRGSBASE): Likewise.
5470         (UNSPECV_RDRAND): Likewise.
5471         (rdfsbase<mode>): Likewise.
5472         (rdgsbase<mode>): Likewise.
5473         (wrfsbase<mode>): Likewise.
5474         (wrgsbase<mode>): Likewise.
5475         (rdrand<mode>): Likewise.
5476
5477         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
5478
5479         * config/i386/immintrin.h (_rdrand_u16): New.
5480         (_rdrand_u32): Likewise.
5481         (_readfsbase_u32): Likewise.
5482         (_readfsbase_u64): Likewise.
5483         (_readgsbase_u32): Likewise.
5484         (_readgsbase_u64): Likewise.
5485         (_writefsbase_u32): Likewise.
5486         (_writefsbase_u64): Likewise.
5487         (_writegsbase_u32): Likewise.
5488         (_writegsbase_u64): Likewise.
5489         (_rdrand_u64): Likewise.
5490         (_cvtsh_ss): Likewise.
5491         (_mm_cvtph_ps): Likewise.
5492         (_mm256_cvtph_ps): Likewise.
5493         (_cvtss_sh): Likewise.
5494         (_mm_cvtps_ph): Likewise.
5495         (_mm256_cvtps_ph): Likewise.
5496
5497         * config/i386/sse.md (vcvtph2ps): New.
5498         (*vcvtph2ps_load): Likewise.
5499         (vcvtph2ps256): Likewise.
5500         (vcvtps2ph): Likewise.
5501         (*vcvtps2ph): Likewise.
5502         (*vcvtps2ph_store): Likewise.
5503         (vcvtps2ph256): Likewise.
5504
5505         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
5506
5507         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
5508
5509 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
5510
5511         PR bootstrap/44512
5512         * genenums.c (main): Output include of insn-constants.h
5513         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
5514
5515 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
5516
5517         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
5518         (override_options): Initialize it.
5519         (ix86_expand_prologue): Use it.
5520
5521 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
5522
5523         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
5524
5525 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
5526
5527         * double-int.h (fit_double_type): Remove declaration.
5528         * double-int.c (fit_double_type): Remove function.
5529         * tree.h (int_fits_type_p): Adjust prototype.
5530         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
5531         instead of fit_double_type.
5532         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
5533         instead of fit_double_type and build_int_cst_wide.
5534         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
5535         instead of fit_double_type and build_int_cst_wide.
5536         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
5537         of fit_double_type.
5538
5539 2010-07-05  Jan Hubicka  <jh@suse.cz>
5540
5541         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
5542         in_other_partition.
5543         * lto-cgraph.c (referenced_from_other_partition_p,
5544         reachable_from_other_partition_p): Use in_other_partition flags.
5545         (output_node, output_varpool_node): COMDAT nodes always have private
5546         copies and thus are never used from other partition.
5547
5548 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
5549
5550         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
5551         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
5552         * config/ia64/ia64.c Include reload.h.
5553         (ia64_memory_move_cost): New function.
5554         (TARGET_MEMORY_MOVE_COST): Define.
5555         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
5556         memory_move_cost.
5557
5558 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
5559
5560         PR middle-end/42505
5561         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
5562         comments about cost model.
5563         (try_add_cand_for):  Add second strategy for choosing initial set
5564         based on original IVs, controlled by ORIGINALP argument.
5565         (get_initial_solution): Add ORIGINALP argument.
5566         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
5567         (find_optimal_iv_set): Try two different strategies for choosing
5568         the IV set, and return the one with lower cost.
5569
5570 2010-07-05  Richard Guenther  <rguenther@suse.de>
5571
5572         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
5573
5574 2010-07-05  Richard Guenther  <rguenther@suse.de>
5575
5576         * tree.c (reference_alias_ptr_type): New function.
5577         * tree.h (reference_alias_ptr_type): Declare.
5578         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
5579         allow non-TARGET_MEM_REF new refs.
5580         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
5581         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
5582         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
5583         (create_mem_ref): Get alias pointer type.  Adjust calls to
5584         create_mem_ref_raw.
5585         (maybe_fold_tmr): Likewise.
5586         * tree-flow.h (create_mem_ref): Adjust prototype.
5587
5588 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
5589
5590         PR c++/44808
5591         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
5592         *from_p is VAR_DECL.
5593
5594 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
5595
5596         * tree.h (build_call_list): Remove.
5597         * tree.c (build_call_list): Remove.
5598
5599 2010-07-05  Richard Guenther  <rguenther@suse.de>
5600
5601         * double-int.h (double_int_sub): Declare.
5602         * double-int.c (double_int_sub): New function.
5603         * dwarf2out.c (field_byte_offset): Use it.
5604         * fixed-value.c (do_fixed_add): Likewise.
5605         (do_fixed_multiply): Likewise.
5606         (do_fixed_divide): Likewise.
5607         * tree-predcom.c (add_ref_to_chain): Likewise.
5608         (determine_roots_comp): Likewise.
5609         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
5610
5611 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
5612
5613         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
5614         implementations.
5615
5616 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
5617
5618         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
5619         * arm-modes.def (CC_NOTB): Don't define.
5620         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
5621         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
5622         (LTUGEU): New code_iterator.
5623         (cnb, optab): New corresponding code_attrs.
5624         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
5625         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
5626         using LTUGEU.
5627         (addsi3_carryin_shift_<optab>): Likewise.
5628         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
5629         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
5630         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
5631         (subsi3_compare): Renamed from subsi3_compare0_c.
5632         Change CC_NOTB to CC.
5633         (arm_subsi3_insn): Allow constants for operand 0.
5634         (compare_scc peephole for eq case): New.
5635         (compare_scc splitters): Change CC_NOTB to CC.
5636
5637 2010-07-05  Richard Guenther  <rguenther@suse.de>
5638
5639         * tree-ssa-loop-im.c (for_each_index): Do not handle
5640         ALIGN_INDIRECT_REF.
5641         (gen_lsm_tmp_name): Likewise.
5642         * tree-dump.c (dequeue_and_dump): Likewise.
5643         * tree-pretty-print.c (dump_generic_node): Likewise.
5644         (op_code_prio): Likewise.
5645         (op_symbol_code): Likewise.
5646         * tree.c (staticp): Likewise.
5647         (build1_stat): Likewise.
5648         * tree.h (INDIRECT_REF_P): Likewise.
5649         * fold-const.c (maybe_lvalue_p): Likewise.
5650         (operand_equal_p): Likewise.
5651         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5652         (ao_ref_init_from_vn_reference): Likewise.
5653         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
5654         (find_interesting_uses_address): Likewise.
5655         * dwarf2out.c (loc_list_from_tree): Likewise.
5656         * gimplify.c (gimplify_expr): Likewise.
5657         * tree-eh.c (tree_could_trap_p): Likewise.
5658         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5659         * cfgexpand.c (expand_debug_expr): Likewise.
5660         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5661         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
5662         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
5663         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
5664         * tree-ssa-operands.c (get_expr_operands): Likewise.
5665         * expr.c (safe_from_p): Likewise.
5666         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
5667         * tree-vect-data-refs.c (vect_setup_realignment): Build
5668         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
5669         * tree-vect-stmts.c (vectorizable_load): Likewise.
5670         * tree.def (ALIGN_INDIRECT_REF): Remove.
5671
5672 2010-07-05  Richard Guenther  <rguenther@suse.de>
5673
5674         PR tree-optimization/44784
5675         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
5676         for inserted stmts.
5677         (find_or_generate_expression): Fix SCCVN insertion check.
5678
5679 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
5680
5681         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
5682         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5683         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
5684         directives.
5685
5686 2010-07-05  Ira Rosen  <irar@il.ibm.com>
5687
5688         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
5689         statements that are not vectorized.
5690         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
5691         in INSIDE_COST.
5692
5693 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
5694
5695         PR bootstrap/44820
5696         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
5697
5698 2010-07-05  Richard Guenther  <rguenther@suse.de>
5699
5700         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
5701         RESULT_DECLs properly.
5702
5703 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
5704
5705         PR rtl-optimization/44695
5706         * config/i386/i386.md (extract_code): Removed.
5707         (<u>divmodqi4): Likewise.
5708         (divmodqi4): New.
5709         (udivmodqi4): Likewise.
5710         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
5711         (udivmodhiqi3): Likewise.
5712
5713 2010-07-04  Jan Hubicka  <jh@suse.cz>
5714
5715         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
5716
5717 2010-07-04  Jan Hubicka  <jh@suse.cz>
5718
5719         * cgraphunit.c (init_cgraph): Only initialize dump file if it
5720         is not already initialized.
5721
5722 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
5723
5724         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
5725         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
5726         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
5727         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
5728         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
5729         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
5730         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
5731         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
5732         (sync_new_nand_optab): Redefine as macros.
5733         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
5734         Delete.
5735         (direct_optab_index): New enum.
5736         (direct_optab_d): New structure.
5737         (direct_optab): New typedef.
5738         (direct_optab_table): Declare.
5739         (direct_optab_handler, set_direct_optab_handler): New functions.
5740         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
5741         (sync_lock_release_optab): New macros.
5742         * optabs.c (direct_optab_table): New variable.
5743         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
5744         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
5745         cmpstr_optab and cmpstrn_optab.
5746         (emit_conditional_move): Likewise for movcc_optab.
5747         (can_conditionally_move_p): Likewise for movcc_gen_code.
5748         (init_insn_codes): Clear direct_optab_table.
5749         (init_optabs): Don't initialize the new "direct optabs" here.
5750         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
5751         vcond_gen_code.
5752         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
5753         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
5754         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
5755         (expand_sync_operation): Likewise other sync_*_optabs.
5756         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
5757         to sync_compare_and_swap_optab.
5758         (expand_sync_lock_test_and_set): Use direct_optab_handler for
5759         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
5760         to the names of both.
5761         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
5762         cmpstr_optab and cmpstrn_optab.
5763         (expand_builtin_lock_release): Likewise sync_lock_release.
5764         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
5765         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
5766         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
5767         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
5768         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
5769         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
5770         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
5771         (sync_lock_test_and_set, sync_lock_release): Delete.
5772         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
5773         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
5774         * genopinit.c (optabs): Use set_direct_optab_handler for the new
5775         macro optabs.
5776         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
5777         the "optab" local variable.  Use direct_optab_handler for optab and
5778         sync_compare_and_swap_optab.
5779         * reload1.c (reload_in_optab, reload_out_optab): Delete.
5780         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
5781         reload_in_optab and reload_out_optab.
5782         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
5783         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5784         * config/pa/pa.c (pa_secondary_reload): Likewise.
5785         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
5786         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
5787         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
5788         (VMSupportsCS8_builtin): Likewise.
5789
5790 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
5791
5792         * optabs.h (optab_handlers): Change type of insn_code to int.
5793         (optab_handler, set_optab_handler, convert_optab_handler)
5794         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
5795         CODE_FOR_nothing".
5796         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
5797         (init_insn_codes): Zero both the above arrays.
5798         (init_optabs): Never call init_insn_codes first time around.
5799
5800 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
5801
5802         * optabs.h (optab_handler, convert_optab_handler): Turn into
5803         inline functions that return an insn code.
5804         (set_optab_handler, set_convert_optab_handler): New functions.
5805         * builtins.c: Replace optab_handler(X)->insn_code with
5806         optab_handler or set_optab_handler thoughout.  Likewise
5807         convert_optab_handler(X)->insn_code with convert_optab_handler
5808         and set_convert_optab_handler.
5809         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
5810         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
5811         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
5812         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5813         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
5814         config/spu/spu.c: Likewise.
5815
5816 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
5817
5818         PR target/44531
5819         * config.gcc (sh*-*-*): Use regular expressions instead of
5820         the 'i' modifier for sed substitutions.
5821
5822 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
5823
5824         * gimple.c (gimple_body): Comments added.
5825
5826 2010-07-04  Richard Guenther  <rguenther@suse.de>
5827
5828         PR middle-end/44809
5829         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
5830         of an INDIRECT_REF.
5831
5832 2010-07-04  Richard Guenther  <rguenther@suse.de>
5833
5834         PR tree-optimization/44479
5835         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
5836         extra SSA name copy statements which preserves points-to
5837         information.
5838         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5839         Copy points-to information for all pointers.  Properly handle
5840         MEM_REFs.
5841         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
5842         copy statements.
5843         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
5844         dependency.
5845
5846 2010-07-04  Richard Guenther  <rguenther@suse.de>
5847
5848         PR middle-end/44785
5849         * tree-inline.c (initialize_inlined_parameters): Do not
5850         re-use pointer-map slot over remap_type call.
5851
5852 2010-07-04  Richard Guenther  <rguenther@suse.de>
5853
5854         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
5855
5856 2010-07-04  Richard Guenther  <rguenther@suse.de>
5857
5858         PR tree-optimization/44656
5859         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
5860         again after value-replacing in the defintions lhs.
5861
5862 2010-07-04  Ira Rosen  <irar@il.ibm.com>
5863             Revital Eres  <eres@il.ibm.com>
5864
5865         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
5866         Document new arguments.
5867         * doc/tm.texi: Regenerate.
5868         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
5869         Handle unaligned store.
5870         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
5871         * target.def (builtin_vectorization_cost): Add new arguments.
5872         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
5873         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
5874         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
5875         (vect_vfa_segment_size): Fix indentation.
5876         * tree-vectorizer.h (struct _vect_peel_info): New.
5877         (struct _vect_peel_extended_info): New.
5878         (struct _loop_vec_info): Add new field for peeling hash table and a
5879         macro for its access.
5880         (VECT_MAX_COST): Define.
5881         (vect_get_load_cost): Declare.
5882         (vect_get_store_cost, vect_get_known_peeling_cost,
5883         vect_get_single_scalar_iteraion_cost): Likewise.
5884         (vect_supportable_dr_alignment): Add new argument.
5885         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
5886         field.
5887         (destroy_loop_vec_info): Free peeling hash table.
5888         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
5889         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
5890         vect_analyze_slp. Fix indentation.
5891         (vect_get_single_scalar_iteraion_cost): New function.
5892         (vect_get_known_peeling_cost): Likewise.
5893         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
5894         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
5895         statement. Move outside cost calculation inside unknown peeling case.
5896         Call vect_get_known_peeling_cost for known amount of peeling.
5897         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
5898         reference to the print message of forced alignment.
5899         (vect_verify_datarefs_alignment): Update call to
5900         vect_supportable_dr_alignment.
5901         (vect_get_data_access_cost): New function.
5902         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
5903         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
5904         vect_peeling_hash_choose_best_peeling): Likewise.
5905         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
5906         to store all the accesses in the loop and find best possible access to
5907         align using peeling for known alignment case. For unknown alignment
5908         check if stores are preferred or if peeling is worthy.
5909         (vect_find_same_alignment_drs): Analyze pairs of loads too.
5910         (vect_supportable_dr_alignment): Add new argument and check aligned
5911         accesses according to it.
5912         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
5913         (cost_for_stmt): Call vect_get_stmt_cost.
5914         (vect_model_simple_cost): Likewise.
5915         (vect_model_store_cost): Call vect_get_stmt_cost. Call
5916         vect_get_store_cost to calculate the cost of the statement.
5917         (vect_get_store_cost): New function.
5918         (vect_model_load_cost): Call vect_get_stmt_cost. Call
5919         vect_get_load_cost to calculate the cost of the statement.
5920         (vect_get_load_cost): New function.
5921         (vectorizable_store): Update call to vect_supportable_dr_alignment.
5922         (vectorizable_load): Likewise.
5923         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
5924         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
5925         arguments. Handle unaligned store.
5926         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
5927         (rs6000_builtin_support_vector_misalignment): Return true for word and
5928         double word alignments for VSX.
5929         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
5930         vect_supportable_dr_alignment and builtin_vectorization_cost.
5931
5932 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5933
5934         PR target/44597
5935         * config/pa/predicates.md (prefetch_cc_operand): Remove.
5936         (prefetch_nocc_operand): Likewise.
5937         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
5938         (prefetch_20): New insn.
5939         (prefetch_cc): Remove.
5940         (prefetch_nocc): Likewise.
5941
5942 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5943
5944         * expr.c (vector_mode_valid_p): Move to c-common.c.
5945         * expr.h (vector_mode_valid_p): Do not declare here.
5946         * system.h: Poison GCC_EXPR_H in front-ends.
5947         * Makefile.in: Update dependencies.
5948
5949 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5950
5951         PR target/44705
5952         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
5953
5954 2010-07-03  Jan Hubicka  <jh@suse.cz>
5955
5956         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
5957         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
5958         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
5959         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
5960         Likewise.
5961
5962         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
5963         Update timevars.V
5964         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
5965         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
5966         TV_IPA_LTO_DECL_OUT): New.
5967         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
5968
5969 2010-07-03  Jan Hubicka  <jh@suse.cz>
5970
5971         * ipa-inline.c (update_edge_key): Break out from ...
5972         update_callers_keys): ... here;
5973         (update_callee_keys): Update only the edges from caller to callee.
5974         (update_all_calle_keys): Do what update_calle_keys did.
5975         (decide_inlining_of_small_functions): Avoid recomputing of all
5976         callees when badness increase.
5977
5978 2010-07-03  Jie Zhang  <jie@codesourcery.com>
5979
5980         * config/arm/arm.c (arm_attr_length_move_neon): New.
5981         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
5982         * config/arm/neon.md (define_mode_attr V_slen): Remove.
5983         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
5984         to compute length attribute.
5985
5986 2010-07-03  Jie Zhang  <jie@codesourcery.com>
5987
5988         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
5989         as predicate for operand 1 and remove its constraint.
5990         * config/arm/predicates.md (vfp_register_operand): New.
5991         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
5992         (*push_fp_multi): Likewise.
5993
5994 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
5995
5996         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
5997
5998 2010-07-03  Jan Hubicka  <jh@suse.cz>
5999
6000         * config/i386/i386.c (override_options): Revert accidental commit.
6001
6002 2010-07-02  Le-Chun Wu  <lcwu@google.com>
6003
6004         PR c++/44128
6005         * doc/invoke.texi: Update documentation of -Wshadow.
6006
6007 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
6008             Julian Brown  <julian@codesourcery.com>
6009             Sandra Loosemore <sandra@codesourcery.com>
6010
6011         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
6012         comparisons.  Adjust to take both operands.
6013         (arm_select_cc_mode): Handle DImode comparisons.
6014         (arm_gen_compare_reg): Generate a scratch register for DImode
6015         comparisons which require one.  Use xor for Thumb equality checks.
6016         (arm_const_double_by_immediates): New.
6017         (arm_print_operand): Allow 'Q' and 'R' for constants.
6018         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
6019         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
6020         arm_canonicalize_comparison.
6021         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
6022         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
6023         prototype.
6024         (arm_const_double_by_immediates): Declare.
6025         * config/arm/constraints.md (Di): New constraint.
6026         * config/arm/predicates.md (arm_immediate_di_operand)
6027         (arm_di_operand, cmpdi_operand): New.
6028         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
6029         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
6030         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
6031         (cstoredi4): Handle non-Cirrus also.
6032
6033 2010-07-02  Julian Brown  <julian@codesourcery.com>
6034             Sandra Loosemore <sandra@codesourcery.com>
6035
6036         PR target/43703
6037         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
6038         (smax<mode>3): Disable for NEON float modes when
6039         flag_unsafe_math_optimizations is false.
6040         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
6041         (*mul<mode>3_neon)
6042         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
6043         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
6044         for NEON float modes when flag_unsafe_math_optimizations is false.
6045         (quad_halves_<code>v4sf): Only enable if
6046         flag_unsafe_math_optimizations is true.
6047         * doc/invoke.texi (ARM Options): Add note about floating point
6048         vectorization requiring -funsafe-math-optimizations.
6049
6050 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
6051             Julian Brown  <julian@codesourcery.com>
6052
6053         * config/arm/neon.md (UNSPEC_VABA): Delete.
6054         (UNSPEC_VABAL): Delete.
6055         (UNSPEC_VABS): Delete.
6056         (UNSPEC_VMUL_N): Delete.
6057         (adddi3_neon): New.
6058         (subdi3_neon): New.
6059         (mul<mode>3add<mode>_neon): Make the pattern named.
6060         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6061         (neon_vadd<mode>): Replace with define_expand, and move the remaining
6062         unspec parts...
6063         (neon_vadd<mode>_unspec): ...to this.
6064         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
6065         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
6066         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
6067         (neon_vaba<mode>): Rewrite in terms of vabd.
6068         (neon_vabal<mode>): Rewrite in terms of vabdl.
6069         (neon_vabs<mode>): Rewrite without unspec.
6070         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
6071         (*arm_subdi3): Likewise.
6072         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
6073         No_op attribute to disable assembly output checks.
6074         * config/arm/arm_neon.h: Regenerated.
6075         * doc/arm-neon-intrinsics.texi: Regenerated.
6076
6077 2010-07-02  Jan Hubicka  <jh@suse.cz>
6078
6079         * ipa-split.c (split_function): For aggregate values, set the return
6080         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
6081         *<retval> = fncall.part ().
6082         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
6083
6084 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
6085
6086         * config/arm/neon.md (UNSPEC_VAND): Delete.
6087         (UNSPEC_VBIC): Delete.
6088         (UNSPEC_VCLZ): Delete.
6089         (UNSPEC_VCNT): Delete.
6090         (UNSPEC_VEOR): Delete.
6091         (UNSPEC_VORN): Delete.
6092         (UNSPEC_VORR): Delete.
6093         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
6094         core registers too.
6095         (anddi3_neon): Likewise.
6096         (orndi3_neon): Likewise.
6097         (bicdi3_neon): Likewise.
6098         (xordi3_neon): Likewise.
6099         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
6100         rid of unspec and handle unused operand.
6101         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
6102         * config/arm/predicates.md (imm_for_neon_logic_operand):
6103         Require TARGET_NEON.
6104         (imm_for_neon_inv_logic_operand): Likewise.
6105         * config/arm/arm.md (define_split for logical_binary_operator):
6106         Disable for NEON registers.
6107         (anddi3): Add new define_expand, and rename the insn.  Disable
6108         this insn for NEON, where anddi3_neon now applies.
6109         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
6110         (iordi3): As for anddi3.
6111         (xordi3): Likewise.
6112         * config/arm/neon.ml (Vand): Split DImode variants and mark them
6113         as No_op to disable testing for exact instruction match.
6114         (Vorr): Likewise.
6115         (Veor): Likewise.
6116         (Vbic): Likewise.
6117         (Vorn): Likewise.
6118         * config/arm/arm_neon.h: Regenerated.
6119         * doc/arm-neon-intrinsics.texi: Regenerated.
6120
6121 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
6122
6123         * expr.h (emit_stack_probe): Declare.
6124         * explow.c (emit_stack_probe): Make global.
6125         (anti_adjust_stack_and_probe): Fix comments.
6126         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
6127         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6128         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6129         * config/sparc/sparc.c: Include except.h.
6130         (sparc_emit_probe_stack_range): New function.
6131         (output_probe_stack_range): Likewise.
6132         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
6133         built-in stack checking is enabled.
6134         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
6135         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
6136         (probe_stack_range): New insn.
6137
6138 2010-07-02  Richard Guenther  <rguenther@suse.de>
6139
6140         PR target/43958
6141         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
6142         for argument alignment.
6143
6144 2010-07-02  Jan Hubicka  <jh@suse.cz>
6145
6146         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
6147         walk backwards from entry_bb to check only those basic block of header
6148         that might lead to execution of split part.
6149         (consider_split) ... here.
6150         (find_return_bb): Allow assignment in return BB.
6151         (find_retval): New.
6152         (split_function): Fix name of cloned function; take care of updating
6153         return value in return_bb containing move.
6154
6155 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
6156
6157         PR target/44771
6158         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
6159         used variable insn.
6160
6161 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
6162
6163         * implicit-zee.c (combine_reaching_defs): Fix long lines.
6164         (is_set_with_extension_DI): Delete.
6165         (struct zero_extend_info): New structure.
6166         (add_removable_zero_extend): New function.
6167         (find_removable_zero_extends): Use note_stores to find SETs.
6168         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
6169
6170 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
6171
6172         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
6173         is_miss_rate_acceptable. Pull total_positions computation
6174         out of the loops.  Early return if miss_positions exceeds
6175         the acceptable threshold.
6176         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
6177         is_miss_rate_acceptable after renaming of compute_miss_rate.
6178
6179 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
6180
6181         PR middle-end/44576
6182         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
6183         of 1000) for miss rate if the address diference is greater than or
6184         equal to the cache line size (the two reference will never hit the
6185         same cache line).
6186
6187 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
6188
6189         PR target/42835
6190         * config/arm/arm-modes.def (CC_NOTB): New mode.
6191         * config/arm/arm.c (get_arm_condition_code): Handle it.
6192         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
6193         * config/arm/arm.md (subsi3_compare0_c): New pattern.
6194         (compare_scc): Now a define_and_split.  Add a number of extra
6195         splitters before it.
6196
6197         PR target/42172
6198         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
6199         and ZERO_EXTEND.
6200         (arm_rtx_costs_1): Likewise.
6201         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
6202         * config/arm/arm.md (is_arch6): New attribute.
6203         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
6204         extendqisi2): Tighten the code somewhat, avoiding invalid
6205         RTL to occur in the expander patterns.
6206         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
6207         (thumb1_zero_extendhisi2_v6): Delete.
6208         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
6209         (thumb1_extendhisi2_v6): Delete.
6210         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
6211         (thumb1_extendqisi2_v6): Delete.
6212         (zero_extendhisi2 for register input splitter): New.
6213         (zero_extendqisi2 for register input splitter): New.
6214         (thumb1_extendhisi2 for register input splitter): New.
6215         (extendhisi2 for register input splitter): New.
6216         (extendqisi2 for register input splitter): New.
6217         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
6218         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
6219         and add support for a register alternative requiring a split.
6220         (thumb1_zero_extendqisi2): Likewise.
6221         (arm_zero_extendqisi2): Likewise.
6222         (arm_extendhisi2): Likewise.
6223         (arm_extendqisi2): Likewise.
6224
6225 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
6226
6227         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
6228         instead of an unspec.
6229         (neon_expand_vector_init): Likewise.
6230         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
6231         (UNSPEC_VDUP_LANE): Delete.
6232         (UNSPEC VDUP_N): Delete.
6233         (UNSPEC_VGET_HIGH): Delete.
6234         (UNSPEC_VGET_LANE): Delete.
6235         (UNSPEC_VGET_LOW): Delete.
6236         (UNSPEC_VMVN): Delete.
6237         (UNSPEC_VSET_LANE): Delete.
6238         (V_double_vector_mode): New.
6239         (vec_set<mode>_internal): Make code emitted match that for the
6240         corresponding intrinsics.
6241         (vec_setv2di_internal): Likewise.
6242         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
6243         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
6244         (neon_vset_lane<mode>): Combine double and quad patterns and
6245         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
6246         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
6247         (neon_vdup_n<mode>): Rewrite RTL without unspec.
6248         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
6249         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
6250         with neon_vdup_lanev2di, adjusting the pattern from the latter
6251         to be predicable for consistency.
6252         (neon_vdup_lane<mode>_internal): New.
6253         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
6254         to avoid using an unspec.
6255         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
6256         (neon_vdup_lanev2di): Turn into a define_expand.
6257         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
6258         (neon_vget_high<mode>): Replace with....
6259         (neon_vget_highv16qi): New pattern using canonical RTL.
6260         (neon_vget_highv8hi): Likewise.
6261         (neon_vget_highv4si): Likewise.
6262         (neon_vget_highv4sf): Likewise.
6263         (neon_vget_highv2di): Likewise.
6264         (neon_vget_low<mode>): Replace with....
6265         (neon_vget_lowv16qi): New pattern using canonical RTL.
6266         (neon_vget_lowv8hi): Likewise.
6267         (neon_vget_lowv4si): Likewise.
6268         (neon_vget_lowv4sf): Likewise.
6269         (neon_vget_lowv2di): Likewise.
6270
6271         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
6272         test for this emitting vmov.
6273         (Vset_lane): Likewise.
6274         (Vdup_n): Likewise.
6275         (Vmov_n): Likewise.
6276
6277         * doc/arm-neon-intrinsics.texi: Regenerated.
6278
6279 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
6280
6281         * config/arm/neon.md (vec_extractv2di): Correct error in register
6282         numbering to reconcile with neon_vget_lanev2di.
6283
6284 2010-07-02  Richard Guenther  <rguenther@suse.de>
6285
6286         * tree-ssa-structalias.c (pt_solution_set_var): New function.
6287         * tree-ssa-alias.h (pt_solution_set_var): Declare.
6288         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
6289         points-to information.
6290
6291 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
6292
6293         * config/s390/s390.c (override_options): Adopt prefetching
6294         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
6295
6296 2010-07-02  Jan Hubicka  <jh@suse.cz>
6297
6298         * df-problems.c (df_kill_notes): Do not collect dead  notes.
6299         (df_set_note): Just call add_reg_note.
6300         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
6301         df_create_unused_note): Do not deal with lists of old notes.
6302         (df_note_bb_compute): Likewise.
6303
6304 2010-07-02  Richard Guenther  <rguenther@suse.de>
6305
6306         * tree-ssa-structalias.c (find_func_aliases): Handle
6307         pointer alignment via BIT_AND_EXPR.
6308         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
6309
6310 2010-07-02  Richard Guenther  <rguenther@suse.de>
6311
6312         * tree-data-ref.c (initialize_data_dependence_relation): Handle
6313         mismatching number of dimensions properly.
6314
6315 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6316
6317         PR target/44707
6318         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
6319         (lo_sum (high ...) ...) patterns generated by earlier passes.
6320
6321 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6322
6323         * doc/install.texi (Prerequisites): Document Perl requirement on
6324         Solaris 2.
6325         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
6326
6327 2010-07-02  Richard Guenther  <rguenther@suse.de>
6328
6329         PR middle-end/44777
6330         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
6331
6332 2010-07-02  Jan Hubicka  <jh@suse.cz>
6333
6334         PR middle-end/44706
6335         * predict.c (predict_paths_for_bb): Handle case when control dependence
6336         BB has only abnormal edges.
6337
6338 2010-07-02  Richard Guenther  <rguenther@suse.de>
6339
6340         PR tree-optimization/44748
6341         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
6342         the embedded conversion in MEM_REFs.
6343
6344 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
6345
6346         * reload.c: Include toplev.h.
6347         * recog.c:  Likewise.
6348         * Makefile.in: Adjust dependencies.
6349
6350 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
6351
6352         PR debug/44694
6353         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
6354         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
6355
6356 2010-07-01  Richard Guenther  <rguenther@suse.de>
6357
6358         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
6359         types for offsets.
6360
6361 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
6362
6363         PR target/44732
6364         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
6365         Fix argument types.
6366
6367 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
6368
6369         PR target/44727
6370         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6371         Make sure operand 0 dies.
6372
6373 2010-07-01  Richard Guenther  <rguenther@suse.de>
6374
6375         PR middle-end/42834
6376         PR middle-end/44468
6377         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
6378         * doc/generic.texi (References to storage): Document MEM_REF.
6379         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
6380         (print_call_name): Likewise.
6381         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
6382         (build_simple_mem_ref_loc): New function.
6383         (mem_ref_offset): Likewise.
6384         * tree.h (build_simple_mem_ref_loc): Declare.
6385         (build_simple_mem_ref): Define.
6386         (mem_ref_offset): Declare.
6387         * fold-const.c: Include tree-flow.h.
6388         (operand_equal_p): Handle MEM_REF.
6389         (build_fold_addr_expr_with_type_loc): Likewise.
6390         (fold_comparison): Likewise.
6391         (fold_unary_loc): Fold
6392         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
6393         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
6394         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
6395         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
6396         (ptr_deref_may_alias_ref_p_1): Likewise.
6397         (ao_ref_base_alias_set): Properly differentiate base object for
6398         offset and TBAA.
6399         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
6400         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
6401         (indirect_refs_may_alias_p): Likewise.
6402         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
6403         chasing code.
6404         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
6405         (call_may_clobber_ref_p_1): Likewise.
6406         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
6407         * expr.c (expand_assignment): Handle MEM_REF.
6408         (store_expr): Handle MEM_REFs from STRING_CSTs.
6409         (store_field): If expanding a MEM_REF of a non-addressable
6410         decl use bitfield operations.
6411         (get_inner_reference): Handle MEM_REF.
6412         (expand_expr_addr_expr_1): Likewise.
6413         (expand_expr_real_1): Likewise.
6414         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
6415         * alias.c (ao_ref_from_mem): Handle MEM_REF.
6416         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
6417         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
6418         (dr_analyze_indices): Likewise.
6419         (dr_analyze_alias): Likewise.
6420         (object_address_invariant_in_loop_p): Likewise.
6421         * gimplify.c (mark_addressable): Handle MEM_REF.
6422         (gimplify_cond_expr): Build MEM_REFs.
6423         (gimplify_modify_expr_to_memcpy): Likewise.
6424         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
6425         (gimple_fold_indirect_ref): Adjust.
6426         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
6427         * tree.def (MEM_REF): New tree code.
6428         * tree-dfa.c: Include toplev.h.
6429         (get_ref_base_and_extent): Handle MEM_REF.
6430         (get_addr_base_and_unit_offset): New function.
6431         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
6432         * gimple-fold.c (may_propagate_address_into_dereference): Handle
6433         MEM_REF.
6434         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
6435         accesses if the array has just one dimension.  Remove always true
6436         parameter.  Do not require type compatibility here.
6437         (maybe_fold_offset_to_component_ref): Remove.
6438         (maybe_fold_stmt_indirect): Remove.
6439         (maybe_fold_reference): Remove INDIRECT_REF handling.
6440         Fold back to non-MEM_REF.
6441         (maybe_fold_offset_to_address): Simplify.  Deal with type
6442         mismatches here.
6443         (maybe_fold_reference): Likewise.
6444         (maybe_fold_stmt_addition): Likewise.  Also handle
6445         &ARRAY + I in addition to &ARRAY[0] + I.
6446         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
6447         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
6448         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
6449         * tree-ssa.c (useless_type_conversion_p): Make most pointer
6450         conversions useless.
6451         (warn_uninitialized_var): Handle MEM_REF.
6452         (maybe_rewrite_mem_ref_base): New function.
6453         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
6454         to SSA form.
6455         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
6456         INDIRECT_REF handling.
6457         (copy_tree_body_r): Handle MEM_REF.
6458         * gimple.c (is_gimple_addressable): Adjust.
6459         (is_gimple_address): Likewise.
6460         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
6461         invariant base are invariant.
6462         (is_gimple_min_lval): Adjust.
6463         (is_gimple_mem_ref_addr): New function.
6464         (get_base_address): Handle MEM_REF.
6465         (count_ptr_derefs): Likewise.
6466         (get_base_loadstore): Likewise.
6467         * gimple.h (is_gimple_mem_ref_addr): Declare.
6468         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
6469         * tree-cfg.c (verify_address): New function, split out from ...
6470         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
6471         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
6472         INDIRECT_REFs.
6473         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
6474         INDIRECT_REF.  Allow conversions.
6475         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
6476         a register does not change its size.
6477         (verify_types_in_gimple_reference): Verify MEM_REF.
6478         (verify_gimple_assign_single): Disallow INDIRECT_REF.
6479         Handle MEM_REF.
6480         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
6481         New.
6482         (mark_address_taken): Handle MEM_REF.
6483         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
6484         (get_asm_expr_operands): Pass opf_not_non_addressable.
6485         (get_expr_operands): Handle opf_[not_]non_addressable.
6486         Handle MEM_REF.  Remove INDIRECT_REF handling.
6487         * tree-vrp.c (check_array_ref): Handle MEM_REF.
6488         (search_for_addr_array): Likewise.
6489         (check_array_bounds): Likewise.
6490         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
6491         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
6492         (ref_always_accessed_p): Likewise.
6493         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
6494         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
6495         Handle MEM_REF.
6496         * cgraphbuild.c (mark_load): Properly check for NULL result
6497         from get_base_address.
6498         (mark_store): Likewise.
6499         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
6500         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
6501         handling for MEM_REF.
6502         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
6503         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
6504         * builtins.c (stabilize_va_list_loc): Use the function ABI
6505         valist type if we couldn't canonicalize the argument type.
6506         Always dereference with the canonical va-list type.
6507         (maybe_emit_free_warning): Handle MEM_REF.
6508         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
6509         memmove to memcpy.
6510         * builtins.c (fold_builtin_memory_op): Use ref-all types
6511         for all memcpy foldings.
6512         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
6513         (build_outer_var_ref): Likewise.
6514         (scan_omp_1_op): Likewise.
6515         (lower_rec_input_clauses): Likewise.
6516         (lower_lastprivate_clauses): Likewise.
6517         (lower_reduction_clauses): Likewise.
6518         (lower_copyprivate_clauses): Likewise.
6519         (expand_omp_atomic_pipeline): Likewise.
6520         (expand_omp_atomic_mutex): Likewise.
6521         (create_task_copyfn): Likewise.
6522         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
6523         Remove old union trick.  Initialize constant offsets.
6524         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
6525         INDIRECT_REF.  Init base_alias_set properly.
6526         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
6527         (vn_reference_fold_indirect): Adjust for MEM_REFs.
6528         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
6529         for ARRAY_REFs.
6530         (may_insert): Remove.
6531         (visit_reference_op_load): Do not test may_insert.
6532         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
6533         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
6534         a field to store the constant offset this op applies.
6535         (run_scc_vn): Adjust prototype.
6536         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
6537         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
6538         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
6539         bother about volatile qualifiers on pointers.
6540         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
6541         * tree-ssa-loop-ivopts.c
6542         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
6543         (strip_offset_1): Likewise.
6544         (find_interesting_uses_address): Replace INDIRECT_REF handling with
6545         MEM_REF handling.
6546         (get_computation_cost_at): Likewise.
6547         * ipa-pure-const.c (check_op): Handle MEM_REF.
6548         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
6549         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
6550         and constants.
6551         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
6552         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
6553         (eliminate_local_variables_1): Likewise.
6554         (create_call_for_reduction_1): Likewise.
6555         (create_loads_for_reductions): Likewise.
6556         (create_loads_and_stores_for_name): Likewise.
6557         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
6558         (ssa_accessed_in_tree): Handle MEM_REF.
6559         (ssa_accessed_in_assign_rhs): Likewise.
6560         (update_type_size): Likewise.
6561         (analyze_accesses_for_call_stmt): Likewise.
6562         (analyze_accesses_for_assign_stmt): Likewise.
6563         (transform_access_sites): Likewise.
6564         (transform_allocation_sites): Likewise.
6565         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
6566         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
6567         not handle INDIRECT_REF.
6568         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
6569         (cond_store_replacement): Likewise.
6570         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
6571         MEM_REF, no not handle INDIRECT_REFs.
6572         (insert_into_preds_of_block): Properly initialize avail.
6573         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
6574         for ARRAY_REFs.  Properly handle reference lookups that
6575         require a bit re-interpretation.
6576         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
6577         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
6578         (build_ref_for_offset_1): Remove.
6579         (build_ref_for_offset): Build MEM_REFs.
6580         (gate_intra_sra): Disable for now.
6581         (sra_ipa_modify_expr): Handle MEM_REF.
6582         (ipa_early_sra_gate): Disable for now.
6583         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
6584         MEM_REF handling.
6585         (disqualify_base_of_expr): Likewise.
6586         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
6587         MEM_REF handling.
6588         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
6589         Use mem_ref_offset.  Remove bogus folding.
6590         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
6591         (make_fancy_name_1): Add support for MEM_REF.
6592         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
6593         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
6594         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
6595         (compute_complex_ancestor_jump_func): Likewise.
6596         (ipa_analyze_virtual_call_uses): Likewise.
6597         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
6598         INDIRECT_REF folding with more generalized MEM_REF folding.
6599         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
6600         (forward_propagate_addr_into_variable_array_index): Also handle
6601         &ARRAY + I in addition to &ARRAY[0] + I.
6602         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
6603         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
6604         creates assignments with overlap.
6605         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
6606         (get_frame_field): Likewise.
6607         (get_nonlocal_debug_decl): Likewise.
6608         (convert_nonlocal_reference_op): Likewise.
6609         (struct nesting_info): Add mem_refs pointer-set.
6610         (create_nesting_tree): Allocate it.
6611         (convert_local_reference_op): Insert to be folded mem-refs.
6612         (fold_mem_refs): New function.
6613         (finalize_nesting_tree_1): Perform defered folding of mem-refs
6614         (free_nesting_tree): Free the pointer-set.
6615         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
6616         (vectorizable_load): Likewise.
6617         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
6618         (propagate_with_phi): Likewise.
6619         * tree-object-size.c (addr_object_size): Handle MEM_REFs
6620         instead of INDIRECT_REFs.
6621         (compute_object_offset): Handle MEM_REF.
6622         (plus_stmt_object_size): Handle MEM_REF.
6623         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
6624         for &MEM_REF.
6625         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
6626         (symbol_marked_for_renaming): Likewise.
6627         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
6628         (fold-const.o): Add $(TREE_FLOW_H).
6629         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
6630         (find_func_clobbers): Likewise.
6631         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
6632         (decompose_access): Likewise.
6633         (replace_field_acc): Likewise.
6634         (replace_field_access_stmt): Likewise.
6635         (insert_new_var_in_stmt): Likewise.
6636         (get_stmt_accesses): Likewise.
6637         (reorg_structs_drive): Disable.
6638         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
6639         (ix86_canonical_va_list_type): Likewise.
6640
6641 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
6642
6643         PR other/44566
6644         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
6645         * target.def (struct gcc_target): Replace enum reg_class with
6646         reg_class_t in hook argument / return types.
6647         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
6648         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
6649         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
6650         * targhooks.h (default_branch_target_register_class): Likewise.
6651         (default_ira_cover_classes, default_secondary_reload): Likewise.
6652         (default_memory_move_cost, default_register_move_cost): Likewise.
6653         * targhooks.c (default_branch_target_register_class): Likewise.
6654         (default_ira_cover_classes, default_secondary_reload): Likewise.
6655         (default_memory_move_cost, default_register_move_cost): Likewise.
6656         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
6657         * bt-load.c (branch_target_load_optimize): Likewise.
6658         * ira.c (setup_cover_and_important_classes): Likewise.
6659         * ira-costs.c (copy_cost): Likewise.
6660         * reload1.c (emit_input_reload_insns): Likewise.
6661         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
6662         * config/frv/frv.c (frv_secondary_reload): Likewise.
6663         * config/s390/s390.c (s390_secondary_reload): Likewise.
6664         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
6665         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
6666         (ix86_register_move_cost): Likewise.
6667         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
6668         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
6669         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
6670         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
6671         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
6672         (rs6000_ira_cover_classes): Likewise.
6673         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
6674         * config/picochip/picochip-protos.h (picochip_secondary_reload):
6675         Likewise.
6676         * config/pa/pa.c (pa_secondary_reload): Likewise.
6677         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
6678         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
6679         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
6680         * doc/tm.texi: Regenerate.
6681
6682 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
6683
6684         PR bootstrrap/44726
6685         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
6686         use.
6687         (build_alias_set_optimal_p): Likewise.
6688         (build_base_obj_set_for_drs): Likewise.
6689
6690 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
6691
6692         * target.def: Remove comment about licensing problems of function
6693         declarations.
6694
6695         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
6696         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
6697         * doc/tm.texi: Regenerate.
6698
6699         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
6700         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
6701
6702         * target.def (enum_va_list_p): Use DEFHOOK.
6703         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
6704         Rename ptype to ptree.
6705         * doc/tm.texi: Regenerate.
6706
6707         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
6708         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
6709         * doc/tm.texi: Regenerate.
6710
6711         * target.def (memory_move_cost): Use DEFHOOK.
6712         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
6713         Rename regclass AKA class to rclass.
6714         * doc/tm.texi: Regenerate.
6715
6716         * target.def (pragma_parse): Use DEFHOOK.
6717         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
6718         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
6719         * doc/tm.texi: Regenerate.
6720
6721         * target.def (pass_by_reference): Use DEFHOOK.
6722         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
6723         * doc/tm.texi: Regenerate.
6724
6725         * target.def (resolve_overloaded_builtin): Rename params to arglist.
6726         Use DEFHOOK.
6727         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
6728         * doc/tm.texi: Regenerate.
6729
6730         * target.def (return_pops_args): Use DEFHOOK.
6731         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
6732         Rename stack-size to size.
6733         * doc/tm.texi: Regenerate.
6734
6735         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
6736         last-sched_cycle to last_clock, cur_cycle to clock.
6737         * doc/tm.texi.in: Use @hook.
6738         * doc/tm.texi: Regenerate.
6739
6740         * target.def (print_operand, print_operand_address): Update comment.
6741         (print_operand_punct_valid_p): Likewise.
6742
6743 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6744
6745         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
6746         to rtl.h.
6747         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
6748         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
6749         * rtl-error.h: New.
6750         * regrename.c: Do not include toplev.h. Include rtl-error.h.
6751         * rtl-error.c: Likewise.
6752         * reload.c: Likewise.
6753         * recog.c:  Likewise.
6754         * sel-sched.c: Likewise.
6755         * function.c: Likewise.
6756         * reg-stack.c: Likewise.
6757         * cfgrtl.c: Likewise.
6758         * reload1.c: Likewise.
6759         * final.c: Include rtl-error.
6760         * Makefile.in: Adjust dependencies.
6761
6762 2010-06-30  Jan Hubicka  <jh@suse.cz>
6763
6764         PR middle-end/PR44706
6765         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
6766         to return the value.
6767
6768 2010-06-30  Michael Matz  <matz@suse.de>
6769
6770         PR bootstrap/44699
6771         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
6772         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
6773         a gimple reg, attach the original VDEF to the last store in the
6774         sequence.
6775
6776 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
6777
6778         PR other/44034
6779         * config/darwin.c (darwin_override_options): Use renamed
6780         targetm.asm_out.emit_unwind_label.
6781
6782 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
6783
6784         PR tree-optimization/39799
6785         * tree-inline.c (remap_ssa_name): Initialize variable only if
6786         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
6787
6788 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
6789
6790         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
6791
6792 2010-06-30  Richard Guenther  <rguenther@suse.de>
6793
6794         PR target/44722
6795         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
6796         against oscillation with reverse peephole2.
6797
6798 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6799
6800         PR target/44721
6801         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6802         Fix last commit.
6803
6804 2010-06-30  Nick Clifton  <nickc@redhat.com>
6805
6806         * config/rx/rx-modes.def: New file.
6807         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
6808         (CC_REGNUM): Define.
6809         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
6810         register.
6811         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
6812         (SELECT_CC_MODE): Define.
6813         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
6814         (reg:CC CC_REG) instead of (cc0).
6815         (attr "cc"): Delete.
6816         (cbranchsi4): Do not split compare and branch here. Instead move
6817         it to...
6818         (cbranchsi4_<code>): ... here.  New patterns.
6819         (cmpsi): Call rx-compare_redundant to find out if it is necessary
6820         to emit the compare instruction.
6821         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
6822         cc_status flags.
6823         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
6824         FIRST_PSEUDO_REGNUM.
6825         (rx_expand_prologue, rx_expand_epilogue): Likewise.
6826         (rx_notice_update_cc): Delete.
6827         (rx_cc_modes_compatible): New function.
6828         (flags_needed_for_conditional): New function.
6829         (flags_from_mode): New function.
6830         (rx_compare_redundant): New function - scans backwards through
6831         insn list to find out if condition flags are already set correctly.
6832         (TARGET_CC_MODES_COMPATIBLE): Define.
6833         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
6834
6835         * config/rx/rx.h (BRANCH_COST): Define.
6836         (REGISTER_MOVE_COST): Define.
6837         * config/rx/predicates (rx_source_operand): Allow all constant types.
6838         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
6839         (tstsi4): New pattern.
6840         * config/rx/rx.c (rx_memory_move_cost): Define.
6841         (TARGET_MEMORY_MOVE_COST): Define.
6842
6843 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6844
6845         * tree.h (block_may_fallthru): Declare here.
6846         * tree-flow.h (block_may_fallthru): Do not declare here.
6847         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
6848         bitmap.h
6849         * Makefile.in (c-typeck.o): Update dependencies.
6850
6851 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
6852
6853         PR debug/44694
6854         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
6855         * cselib.c (cfa_base_preserved_regno): New static variable.
6856         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
6857         of REGNO (cfa_base_preserved_val->locs->loc).
6858         (cselib_preserve_cfa_base_value): Add regno argument, set
6859         cfa_base_preserved_regno to it.
6860         (cselib_invalidate_regno): Allow removal of registers other than
6861         cfa_base_preserved_regno from cfa_base_preserved_val.
6862         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
6863         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
6864         of MEM addresses, if not on LHS.
6865         (reverse_op): Don't add reverse ops for cfa_base_rtx.
6866         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
6867
6868 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
6869
6870         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
6871         static variables.
6872         (peep2_buf_position): New static function.
6873         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
6874         peephole2_optimize): Use it.
6875         (peep2_attempt, peep2_update_life): New static functions, broken out
6876         of peephole2_optimize.
6877         (peep2_fill_buffer): New static function.
6878         (peephole2_optimize): Change the main loop to try to fill the buffer
6879         with the maximum number of insns before matching them against
6880         peepholes.  Use a forward scan.  Remove special case for targets with
6881         conditional execution.
6882         * genrecog.c (change_state): Delete dead code.
6883         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6884         Rewrite so as not to expect the second insn to have had a peephole
6885         applied yet.
6886
6887 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
6888
6889         * genhooks.c (emit_findices): Cast field precision to int.
6890         (emit_documentation): Likewise.
6891
6892 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
6893
6894         PR tree-optimization/43801
6895         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
6896         if old_decl was DECL_ONE_ONLY.
6897
6898         PR debug/44668
6899         * dwarf2out.c (add_accessibility_attribute): New function.
6900         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
6901         instead of adding DW_AT_accessibility manually.
6902         (gen_enumeration_type_die, gen_struct_or_union_type_die,
6903         gen_typedef_die): Use it.
6904
6905 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
6906
6907         * vmsdbgout.c (full_name): Just output the file name if not native.
6908
6909 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
6910
6911         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
6912         (funcnam_table): New static table.
6913         (funcnum_table): New static table.
6914         (write_rtnbeg): Write value saved in funcnum_table.
6915         (write_rtnend): Write value saved in funcnum_table.
6916         (vmsdbgout_begin_function): Save current function info in
6917         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
6918         (vmsdbgout_finish): Iterate over funcnum_table.
6919
6920 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
6921
6922         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
6923         (vmsdbgout_type_decl): Declare
6924         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
6925         (FUNC_EPILOGUE_LABEL): New macro
6926         (vmsdbgout_begin_epilogue): New function.
6927         (vmsdbgout_type_decl): New function.
6928
6929 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
6930
6931         * vmsdbg.h: Update copyright.
6932
6933 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
6934
6935         * vmsdbg.h (DST_K_TBG): New DST constant.
6936         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
6937         (write_modbeg): Cast module_language to avoid warning.
6938         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
6939
6940 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
6941
6942         PR other/44034
6943         * target.def, doc/tm.texi.in, genhooks.c: New files.
6944         * target.h: Instead of defining individual hook members,
6945         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
6946         include target.def.
6947         * target-def.h: Instead of defining individual hook initializers,
6948         include target-hooks-def.h.
6949         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
6950         targetm.live_on_entry -> targetm.extra_live_on_entry
6951         targetm.sched.md_finish ->targetm.sched.finish
6952         targetm.sched.md_init -> targetm.sched.init
6953         targetm.sched.md_init_global -> targetm.sched.init_global
6954         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
6955         targetm.asm_out.except_table_label ->
6956           targetm.asm_out.emit_except_table_label
6957         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
6958         targetm.target_help -> targetm.help
6959         targetm.vectorize.builtin_support_vector_misalignment ->
6960           targetm.vectorize.support_vector_misalignment
6961         targetm.file_start_app_off -> targetm.asm_file_start_app_off
6962         targetm.file_start_file_directive ->
6963          targetm.asm_file_start_file_directive
6964         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
6965         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
6966         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
6967         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
6968           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
6969         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
6970           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
6971         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
6972         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
6973         * Makefile.in (TARGET_H): Depend on target.def.
6974         (TARGET_DEF_H): Depend on target-hooks-def.h.
6975         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
6976         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
6977         * doc/tm.texi: Regenerate.
6978
6979         * Makefile.in (s-tm-texi): Remove stray tab / rule.
6980
6981         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
6982         (targetm.sched.init): Likewise.
6983
6984 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
6985
6986         PR bootstrap/44713
6987         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
6988         (function_arg_advance_32): Const-ify TYPE parameter.
6989         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
6990         (ix86_function_arg_advance): Change type of NAMED to bool.
6991         (function_arg_32): Const-ify CUM and TYPE parameters.
6992         (function_arg_64): Likewise.  Change type of NAMED to bool.
6993         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
6994         to bool.
6995         (ix86_function_arg): Change type of NAMED to bool.
6996         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
6997         last argument as a bool.
6998
6999 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
7000
7001         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
7002         (OVERRIDE_OPTIONS): Add note of obsolescence.
7003         Replace references with references to TARGET_OPTION_OVERRIDE.
7004         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
7005          the macro).
7006         * targhooks.c (default_target_option_override): New function.
7007         * targhooks.h (default_target_option_override): Declare.
7008         * target.h (struct gcc_target): Add override member to
7009         target_option member.
7010         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
7011         targetm.target_option.override call.
7012         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
7013         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
7014
7015 2010-06-29  Jan Hubicka  <jh@suse.cz>
7016
7017         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
7018
7019 2010-06-29  Jan Hubicka  <jh@suse.cz>
7020
7021         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
7022         unreachable.
7023         (rebuild_frequencies): New function.
7024         * predict.h (rebuild_frequencies): Declare.
7025         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
7026         entry block and edge reaching new_entry.
7027         (tree_function_versioning): When doing partial cloning, rebuild
7028         frequencies when done.
7029         * passes.c (execute_function_todo): Use rebild_frequencies.
7030
7031 2010-06-29  Richard Guenther  <rguenther@suse.de>
7032
7033         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
7034         * tree-flow.h (enum noalias_state): Remove.
7035         (struct var_ann_d): Remove noalias_state member.
7036
7037 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
7038
7039         PR target/43902
7040         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
7041         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
7042         (maddhidi4): Likewise.
7043
7044         Revert parts of the change for PR25130.
7045         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7046         MEM_ALIAS_SET.
7047
7048 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
7049
7050         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
7051         targetm.calls.function_incoming_arg, and
7052         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
7053         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
7054         * target.h (struct gcc_target): Add function_arg_advance,
7055         function_arg, and function_incoming_arg fields.
7056         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
7057         (TARGET_FUNCTION_INCOMING_ARG): Define.
7058         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
7059         and TARGET_FUNCTION_INCOMING_ARG.
7060         * targhooks.h (default_function_arg_advance): Declare.
7061         (default_function_arg, default_function_incoming_arg): Declare.
7062         * targhooks.c (default_function_arg_advance): New function.
7063         (default_function_arg, default_function_incoming_arg): New function.
7064         * config/i386/i386.c (function_arg_advance): Rename to...
7065         (ix86_function_arg_advance): ...this.  Make static.
7066         (function_arg): Rename to...
7067         (ix86_function_arg): ...this.  Make static.
7068         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7069         (TARGET_FUNCTION_ARG): Define.
7070         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
7071         (FUNCTION_ARG): Delete.
7072         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
7073         (function_arg): Delete prototype.
7074
7075 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
7076
7077         * reginfo.c (init_reg_sets_1): Adjust comments.
7078         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
7079         * calls.c (prepare_call_address): Likewise.
7080         (emit_call_1): Use targetm.calls.return_pops_args.
7081         (expand_call): Likewise.
7082         * function.c (assign_parms): Likewise.
7083         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
7084         * target.h (struct gcc_target) [struct calls]: Add
7085         return_pops_args field.
7086         * targhooks.h (default_return_pops_args): Declare.
7087         * targhooks.c (default_return_pops_args): Define.
7088         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
7089         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
7090         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
7091         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
7092         documentation.
7093         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
7094         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
7095         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
7096         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
7097         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
7098         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
7099         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
7100         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
7101         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
7102         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
7103         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
7104         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
7105         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
7106         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
7107         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
7108         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
7109         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
7110         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
7111         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
7112         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
7113         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
7114         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
7115         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
7116         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
7117         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
7118         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
7119         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
7120         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
7121         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
7122         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
7123         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
7124         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
7125         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
7126         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
7127         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
7128         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
7129         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
7130         * config/i386/i386.c (ix86_return_pops_args): Make static.
7131         Constify arguments.
7132         (TARGET_RETURN_POPS_ARGS): Define.
7133         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
7134         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
7135         (TARGET_RETURN_POPS_ARGS): Define.
7136         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
7137         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
7138         (TARGET_RETURN_POPS_ARGS): Define.
7139
7140 2010-06-29  Richard Guenther  <rguenther@suse.de>
7141
7142         PR middle-end/44667
7143         * tree-inline.c (initialize_inlined_parameters): Make sure
7144         to remap the inlined parameter variable substitutions types.
7145
7146 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
7147
7148         PR rtl-optimization/44659
7149         * combine.c (make_compound_operation) <SUBREG>: Do not return the
7150         result of force_to_mode if it partially re-expanded the compound.
7151
7152 2010-06-28  Jan Hubicka  <jh@suse.cz>
7153
7154         PR middle-end/44671
7155         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
7156         RESULT_DECL.
7157
7158 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
7159
7160         * double-int.h (force_fit_type_double): Remove declaration.
7161         * double-int.c (force_fit_type_double): Move to tree.c.
7162         * tree.h (force_fit_type_double): Declare.
7163         * tree.h (force_fit_type_double): Moved from double-int.c. Use
7164         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
7165         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
7166         * convert.c (convert_to_pointer): Adjust call to
7167         force_fit_type_double.
7168         * tree-vrp.c (extract_range_from_assert,
7169         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
7170         * fold-const.c: Update comment.
7171         (int_const_binop, fold_convert_const_int_from_int,
7172         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
7173         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
7174         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
7175         round_up_loc): Adjust call to force_fit_type_double.
7176
7177 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
7178
7179         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
7180
7181 2010-06-28  Martin Jambor  <mjambor@suse.cz>
7182
7183         * tree-sra.c (convert_callers): New parameter, change fndecls of
7184         recursive calls.
7185         (modify_function): Pass the old decl to convert_callers.
7186
7187 2010-06-28  Martin Jambor  <mjambor@suse.cz>
7188
7189         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
7190         ipa_check_create_node_params and ipa_initialize_node_params with
7191         checking asserts they are not necessary.
7192
7193 2010-06-28  Jan Hubicka  <jh@suse.cz>
7194
7195         PR tree-optimization/44687
7196         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
7197
7198 2010-06-28  Martin Jambor  <mjambor@suse.cz>
7199
7200         PR c++/44535
7201         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
7202         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
7203         instead of BINFO_BASE_BINFO.
7204
7205 2010-06-28  Michael Matz  <matz@suse.de>
7206
7207         PR middle-end/44592
7208         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
7209         proper VDEF chain for intermediate stores in the sequence.
7210
7211 2010-06-28  Jan Hubicka  <jh@suse.cz>
7212
7213         PR tree-optimization/44357
7214         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
7215         uninlinable functions.
7216
7217 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
7218
7219         * config.gcc (powerpc*-*-*): Handle titan.
7220         * config/rs6000/rs6000.c (titan_cost): New costs.
7221         (rs6000_override_options): Add "titan" to processor_target_table.
7222         Add Titan to branch alignment logic.
7223         Correctly set rs6000_cost for titan.
7224         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
7225         * config/rs6000/titan.md: New file.
7226         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
7227
7228 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
7229
7230         * tree-browser.c (TB_history_stack): Convert to a VEC.
7231         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
7232         (TB_history_prev): Likewise.
7233
7234 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
7235
7236         * vec.h (vec_heap_free): Add parentheses around free.
7237
7238 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
7239
7240         * system.h: Poison GCC_EXCEPT_H for front-end files.
7241
7242         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
7243         langhook.
7244         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
7245         Define to NULL by default.
7246         * except.h: Define GCC_EXCEPT_H.
7247         (doing_eh): Remove prototype.
7248         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
7249         (lang_protect_cleanup_actions): Remove.
7250         * except.c (lang_protect_cleanup_actions): Remove.
7251         (doing_eh): Remove.
7252         (gen_eh_region): Don't check doing_eh here.
7253         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
7254         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
7255         instead of lang_protect_cleanup_actions.
7256         * omp-low.c (maybe_catch_exception): Likewise.
7257         * Makefile.in: Update dependencies.
7258
7259 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
7260
7261         * cgraph.h (struct varpool_node): new used_from_object_file flag.
7262         (struct cgraph_local_info): new used_from_object_file flag.
7263         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
7264         (cgraph_clone_node): initialize used_from_object_file.
7265         (cgraph_create_virtual_clone): initialize used_from_object_file.
7266         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
7267         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
7268         when compiling with -fwhole-program.
7269         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
7270         internal resolver.
7271         * ipa.c (function_and_variable_visibility): Set externally_visible
7272         flag of varpool_node if used_from_object_file flag is set.
7273         (cgraph_externally_visible_p): check used_from_object_file flag.
7274         * doc/invoke.texi (-fwhole-program option): Change description of
7275         externally_visible attribute accordingly.
7276         * doc/extend.texi (externally_visible): Ditto.
7277
7278 2010-06-27  Jan Hubicka  <jh@suse.cz>
7279
7280         * params.def (max-inline-insns-auto): Default to 40.
7281         * doc/invoke.texi (max-inline-insns-auto): Document the change.
7282
7283 2010-06-27  Jan Hubicka  <jh@suse.cz>
7284
7285         PR middle-end/44671
7286         PR middle-end/44686
7287         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
7288         signature change.
7289         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
7290         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
7291
7292 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
7293
7294         * target.h (struct gcc_target): Add register_move_cost field.
7295         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
7296         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
7297         * targhooks.c (default_register_move_cost): New function.
7298         * targhooks.h (default_register_move_cost): Declare function.
7299         * defaults.h (REGISTER_MOVE_COST): Delete.
7300         * ira-int.h (ira_register_move_cost): Update comment.
7301         * ira.c (ira_register_move_cost): Update comment.
7302         * reload.h (register_move_cost): Declare.
7303         * reginfo.c (register_move_cost): New function.
7304         (move_cost): Update comment.
7305         (init_move_cost, memory_move_secondary_cost): Replace
7306         REGISTER_MOVE_COST with register_move_cost.
7307         * postreload.c (reload_cse_simplify_set): (Ditto.).
7308         * reload.c (find_valid_class, find_reloads): (Ditto.).
7309         * reload1.c (choose_reload_regs): (Ditto.).
7310         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
7311         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
7312         * doc/md.texi (can_create_pseudo_p): Update documentation.
7313
7314         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
7315         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
7316         * config/i386/i386.h (ix86_memory_move_cost): Make static.
7317         (TARGET_MEMORY_MOVE_COST): Define.
7318
7319         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
7320         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
7321         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
7322         (TARGET_MEMORY_MOVE_COST): Define.
7323
7324 2010-06-27  Richard Guenther  <rguenther@suse.de>
7325
7326         PR tree-optimization/44683
7327         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
7328         false edge from the inverted condition.
7329
7330 2010-06-27  Richard Guenther  <rguenther@suse.de>
7331
7332         PR middle-end/44684
7333         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
7334         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
7335         for register LHS.  Or non-store assignments.
7336
7337 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
7338
7339         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
7340         (sparc_emit_set_const64): Likewise.  Remove disabled code.
7341         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
7342         (sparc_emit_set_const64): Likewise.
7343
7344 2010-06-26  Catherine Moore  <clm@codesourcery.com>
7345
7346         * config/mips/mips.md (alu_type): New attribute.
7347         (type): Infer type from alu_type.
7348         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
7349         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
7350         *subsi3_extended, negsi2, negdi2, *low<mode>,
7351         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
7352         xor<mode>3, *nor<mode>3,
7353         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
7354         *zero_extendhi_truncqi):  Set alu_type instead of type.
7355
7356 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
7357
7358         * config/alpha/alpha.c (alpha_need_linkage): Adjust
7359         splay_tree_new_ggc call.
7360         (alpha_use_linkage): Likewise.
7361
7362 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
7363
7364         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
7365         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
7366         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
7367         (static_specs): Remove switches_need_spaces.
7368         (process_command, do_self_spec): Hardcode handling "-o" instead of
7369         checking switches_need_spaces.
7370         * system.h (SWITCHES_NEED_SPACES): Poison.
7371
7372 2010-06-26  Richard Guenther  <rguenther@suse.de>
7373
7374         PR tree-optimization/44393
7375         * tree-loop-distribution.c (generate_loops_for_partition): Fix
7376         stmt removal and VOP renaming.
7377         (generate_memset_zero): Remove redundant stmt updating.
7378         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
7379         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
7380
7381 2010-06-26  Jan Hubicka  <jh@suse.cz>
7382
7383         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
7384         edges comming from header are equivalent.
7385         (visit_bb): Handle PHIs correctly.
7386         * tree-inline.c (copy_phis_for_bb): Be able to copy
7387         PHI from entry edge.
7388         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
7389
7390 2010-06-26  Richard Guenther  <rguenther@suse.de>
7391
7392         PR middle-end/44674
7393         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
7394         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
7395
7396 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
7397
7398         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
7399         add_infile, alloc_switch): New.
7400         (process_command): Remove variable lang_n_infiles.  Process
7401         options in a single pass.  Use new functions for allocating
7402         infiles and switches arrays.  Properly skip operands of
7403         -Xpreprocessor and -Xassembler.
7404
7405 2010-06-26  Jan Hubicka  <jh@suse.cz>
7406
7407         PR middle-end/44671
7408         * cgraphunit.c (cgraph_function_versioning): Remove wrong
7409         cgraph_make_decl_local call; fix typo copying RTL data.
7410
7411 2010-06-25  DJ Delorie  <dj@redhat.com>
7412
7413         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
7414         (m32c_output_aligned_common): Likewise.
7415         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
7416         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
7417         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
7418         (m32c_register_pragmas): Register it.
7419         * config/m32c/m32c.c (m32c_get_pragma_address): New.
7420         (m32c_insert_attributes): Set #pragma address decls volatile.
7421         (pragma_entry_eq): New.
7422         (pragma_entry_hash): New.
7423         (m32c_note_pragma_address): New.
7424         (m32c_get_pragma_address): New.
7425         (m32c_output_aligned_common): New.
7426         * doc/extend.texi: Document the new pragma.
7427
7428         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
7429         also.
7430         * config/m32c/predicates.md (m32c_any_operand): Check the code
7431         instead of memory_operand so as to allow matching volatile MEMs.
7432         (m32c_nonimmediate_operand): Likewise.
7433         (mra_operand): Allow volatiles.
7434
7435 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
7436
7437         PR debug/44610
7438         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
7439         address if the offset is unknown.
7440
7441 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
7442
7443         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
7444         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
7445         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
7446         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
7447         to ia64_start_function. Invoke it.
7448         * config/ia64/ia64.c (ia64_start_function): Call new function
7449         dwarf2out_vms_debug_main_pointer.
7450
7451 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
7452
7453         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
7454         statements computing the true predicate.
7455
7456 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
7457
7458         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
7459         to boolean_true_node.
7460         (reset_bb_predicate): New.
7461         (predicate_bbs): Call reset_bb_predicate.
7462
7463 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
7464
7465         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
7466         (tree_if_conversion): Returns true when something has been changed.
7467         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
7468         changed something.
7469
7470 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
7471
7472         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
7473         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
7474         * tree-if-conv.c: Include dbgcnt.h.
7475         (tree_if_conversion): Use if_conversion_tree to count the number of
7476         if-convertible loops.
7477
7478 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
7479
7480         * common.opt (fprefetch-loop-arrays): Re-define
7481         -fprefetch-loop-arrays as a tri-state option with the initial
7482         value of -1.
7483         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
7484         pass only when flag_prefetch_loop_arrays > 0.
7485         * toplev.c (process_options): Note that, with tri-states,
7486         flag_prefetch_loop_arrays>0 means prefetching is enabled.
7487         * config/i386/i386.c (override_options): Enable prefetching at -O3
7488         for a set of CPUs that sw prefetching is helpful.
7489         (software_prefetching_beneficial_p): New.  Return TRUE if software
7490         prefetching is beneficial for the given CPU.
7491
7492 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
7493
7494         PR rtl-optimization/44326
7495         * implicit-zee.c (find_removable_zero_extends): Replace
7496         INSN_P with NONDEBUG_INSN_P.
7497
7498 2010-06-25  Martin Jambor  <mjambor@suse.cz>
7499
7500         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
7501         (struct ipa_node_params): Removed the modification_analysis_done flag.
7502         (ipa_is_param_modified): Removed.
7503         (ipa_analyze_node): Declare.
7504         (ipa_compute_jump_functions): Remove declaration.
7505         (ipa_count_arguments): Likewise.
7506         (ipa_detect_param_modifications): Likewise.
7507         (ipa_analyze_params_uses): Likewise.
7508         * ipa-prop.c (struct param_analysis_info): New type.
7509         (visit_store_addr_for_mod_analysis): Removed.
7510         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
7511         moved down in the file.
7512         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
7513         (ipa_count_arguments): Made static.
7514         (mark_modified): New function.
7515         (is_parm_modified_before_call): New function.
7516         (compute_pass_through_member_ptrs): New parameter parms_info, call
7517         is_parm_modified_before_call instead of ipa_is_param_modified.
7518         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
7519         it to compute_pass_through_member_ptrs.
7520         (ipa_compute_jump_functions): New parameter parms_info, pass it to
7521         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
7522         on the callee if it is analyzed.  Made static.
7523         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
7524         is_parm_modified_before_call instead of ipa_is_param_modified.
7525         (ipa_analyze_call_uses): New parameter parms_info, pass it to
7526         ipa_analyze_indirect_call_uses.
7527         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
7528         ipa_analyze_call_uses.
7529         (ipa_analyze_params_uses): New parameter parms_info, pass it to
7530         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
7531         (ipa_analyze_node): New function.
7532         (ipa_print_node_params): Do not dump the modified flag.
7533         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
7534         it.  Do not stream the modified parameter flag.
7535         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
7536         it.  Do not stream the modified parameter flag.
7537         * ipa-cp.c (ipcp_analyze_node): Removed.
7538         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
7539         with only a call to ipa_analyze_node.
7540         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
7541         node with only a call to ipa_analyze_node.
7542
7543 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7544
7545         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
7546
7547 2010-06-25  Jan Hubicka  <jh@suse.cz>
7548
7549         * tree-pass.h (pass_split_functions): Declare.
7550         * opts.c (decode_options): Enable function splitting at -O2
7551         * timevar.def (TV_IPA_FNSPLIT): New macro.
7552         * ipa-split.c: New file.
7553         * common.opt (-fpartial-inlining): New flag.
7554         * Makefile.in (ipa-split.o): New object file.
7555         * passes.c (init_optimization_passes): Add ipa-split.
7556         * params.def (partial-inlining-entry-probability): New parameters.
7557         * doc/invoke.texi (-fpartial-inlining): New.
7558
7559 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7560
7561         PR 44665
7562         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
7563         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
7564         (gimplify_expr): Likewise.
7565
7566 2010-06-25  Martin Jambor  <mjambor@suse.cz>
7567
7568         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
7569         statements instead of bailing out on them.
7570         (ipa_analyze_indirect_call_uses): Do not require that loads from the
7571         parameter are in the same BB as the condition.  Update comments.
7572
7573 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
7574
7575         PR middle-end/43866
7576         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
7577         true or always false, return NULL_TREE.
7578         (tree_unswitch_single_loop): Optimize conditions even when reaching
7579         max-unswitch-level parameter.  If num > 0, optimize first all conditions
7580         using entry checks, then do still reachable block discovery and consider
7581         only conditions in still reachable basic blocks in the loop.
7582
7583         PR tree-optimization/44539
7584         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
7585         the call doesn't have LHS, but has VDEF.
7586
7587 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
7588
7589         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
7590         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
7591         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
7592         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
7593         * system.h (MODIFY_TARGET_NAME): Poison.
7594
7595 2010-06-25  Alan Modra  <amodra@gmail.com>
7596
7597         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
7598         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
7599         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7600         CMODEL_LARGE as default.
7601         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
7602         (offsettable_ok_by_alignment): Delete.
7603         (rs6000_emit_move): Remove mcmodel=medium optimization.
7604
7605 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
7606
7607         With large parts from Jim Wilson:
7608         PR target/43902
7609         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
7610         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
7611         * optabs.c (optab_for_tree_code): Likewise.
7612         (expand_widen_pattern_expr): Likewise.
7613         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
7614         out of execute_optimize_widening_mul.
7615         (convert_plusminus_to_widen): New function.
7616         (execute_optimize_widening_mul): Use the two new functions.
7617         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
7618         Remove code to generate widening multiply-accumulate.  Add support
7619         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
7620         * gimple-pretty-print.c (dump_ternary_rhs): New function.
7621         (dump_gimple_assign): Call it when appropriate.
7622         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
7623         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
7624         (expand_gimple_stmt_1): Likewise.
7625         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
7626         WIDEN_MULT_MINUS_EXPR.
7627         * tree-ssa-operands.c (get_expr_operands): Likewise.
7628         * tree-inline.c (estimate_operator_cost): Likewise.
7629         * gimple.c (extract_ops_from_tree_1): Renamed from
7630         extract_ops_from_tree.  Add new arg for a third operand; fill it.
7631         (gimple_build_assign_stat): Support operations with three operands.
7632         (gimple_build_assign_with_ops_stat): Likewise.
7633         (gimple_assign_set_rhs_from_tree): Likewise.
7634         (gimple_assign_set_rhs_with_ops_1): Renamed from
7635         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
7636         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
7637         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
7638         WIDEN_MULT_MINUS_EXPR.
7639         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
7640         (extract_ops_from_tree_1): Adjust declaration.
7641         (gimple_assign_set_rhs_with_ops_1): Likewise.
7642         (gimple_build_assign_with_ops): Pass NULL for last operand.
7643         (gimple_build_assign_with_ops3): New macro.
7644         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
7645         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
7646         functions.
7647         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
7648         (verify_gimple_assign): Call it.
7649         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
7650         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
7651         functions for dealing with three-operand statements.
7652         * tree.c (commutative_ternary_tree_code): New function.
7653         * tree.h (commutative_ternary_tree_code): Declare it.
7654         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
7655         ternary statements.
7656         (gimple_assign_nonzero_warnv_p): Likewise.
7657         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
7658         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
7659         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
7660         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
7661         (struct hashtable_expr): New member ternary in the union.
7662         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
7663         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
7664         (iterative_hash_hashable_expr): Likewise.
7665         (print_expr_hash_elt): Handle EXPR_TERNARY.
7666         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
7667         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
7668         statements.  Handle GIMPLE_TERNARY_RHS.
7669
7670 2010-06-25  Jan Hubicka  <jh@suse.cz>
7671
7672         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
7673
7674 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
7675
7676         PR c/44517
7677         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
7678         parameters are not good.
7679         (c_parser_parameter_declaration): Error unknown type name if the type
7680         name can't start declaration specifiers.
7681
7682 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
7683
7684         * gcc.c (translate_options): Don't mention +e in comment.
7685         (process_command): Don't handle +e specially.
7686
7687 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
7688
7689         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
7690
7691         * ira-build.c (merge_hard_reg_conflicts): New function.
7692         (create_cap_allocno, copy_info_to_removed_store_destinations,
7693         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
7694         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
7695         (remove_unnecessary_allocnos, remove_low_level_allocnos)
7696         copy_nifo_to_removed_store_destination): Use them.
7697         * ira-lives.c (make_hard_regno_born): New function, split out of
7698         make_regno_born.
7699         (make_allocno_born): Likewise.
7700         (make_hard_regno_dead): New function, split out of make_regno_dead.
7701         (make_allocno_dead): Likewise.
7702         (inc_register_pressure): New function, split out of set_allocno_live.
7703         (dec_register_pressure): New function, split out of clear_allocno_live.
7704         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
7705         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
7706         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
7707         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
7708         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
7709         mark_pseudo_regno_live.
7710         (process_bb_node_lives): Use mark_pseudo_regno_live,
7711         make_hard_regno_born and make_allocno_dead.
7712         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
7713         set_allocno_live, clear_allocno_live): Delete functions.
7714
7715         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
7716         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
7717         functions.
7718         (ira_flattening): Use ira_parent_allocno.
7719         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
7720         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
7721
7722         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
7723         statement.
7724
7725         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
7726         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
7727         minmax_set_iter_cond, minmax_set_iter_next,
7728         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
7729         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
7730         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
7731         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
7732         uses changed.
7733
7734         * ira-int.h (struct live_range, live_range_t): Renamed from struct
7735         ira_allocno_live_range and allocno_live_range_t; all uses changed.
7736         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
7737         All uses changed.
7738
7739 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
7740
7741         * thumb2.md (thumb2_tlobits_cbranch): Delete.
7742         (peephole2 to convert zero_extract/compare of single bit to
7743          lshift/compare): New.
7744
7745 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
7746
7747         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
7748         recursive call and call to 'int_const_binop'.
7749         (build_range_check, fold_cond_expr_with_comparison, unextend,
7750         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
7751         multiple_of_p): Adjust call to const_binop.
7752
7753 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
7754
7755         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
7756         determine size of XFmode operand.
7757         (XFmode extended DFmode push splitter): Ditto.
7758         (XFmode extended SFmode push splitter): Ditto.
7759
7760 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
7761
7762         PR target/44588
7763         * config/i386/i386.md (extract_code): New.
7764         (<u>divmodqi4): Likewise.
7765         (divmodhiqi3): Likewise.
7766         (udivmodhiqi3): Likewise.
7767         (<u>divqi3): Remvoved.
7768
7769 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
7770
7771         PR middle-end/44492
7772         * recog.h (struct recog_data): Add is_asm field.
7773         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
7774         present in constraints of inline-asm operand and memory operand
7775         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
7776         (extract_insn): Initialize recog_data.is_asm.
7777         * doc/md.texi (Constraints): Document operand side-effect rules.
7778
7779 2010-06-24  Andi Kleen  <ak@linux.intel.com>
7780
7781         * c-parser.c (c_parser_conditional_expression): Call
7782         warn_for_omitted_condop.
7783         * doc/invoke.texi: Document omitted condop warning.
7784
7785 2010-06-24  Nick Clifton<nickc@redhat.com>
7786
7787         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
7788         insn in the sequence is a jump insn before setting its label.
7789
7790 2010-06-24  Alan Modra  <amodra@gmail.com>
7791
7792         * collect2.c (main): Match exactly --version and --help.
7793
7794 2010-06-24  DJ Delorie  <dj@redhat.com>
7795
7796         * config/m32c/m32c-pragma.c: Don't include rtl.h.
7797
7798 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
7799
7800         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
7801         using X87MODEF mode iterator.
7802         (pushsf splitter): Macroize splitter using P mode iterator.
7803         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
7804         mode iterator.
7805
7806         (*movxf_internal): Rename from *movxf_integer.
7807         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
7808         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
7809         (*movdf_internal): Rename from *movdf_integer.
7810         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
7811         (*movsf_internal): Rename from *movdf_1.
7812
7813 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
7814
7815         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
7816         (const_gimple_seq_node): Removed typedefs.
7817
7818         * gimple.h (gimple_seq_node_d, gimple_seq_node)
7819         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
7820
7821 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
7822
7823         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
7824         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
7825         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
7826         and CODE_FOR_vec_extract_lo_v4df.
7827
7828         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
7829         Changed to define_insn_and_split.
7830         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
7831         (vec_extract_lo_v16hi): Likewise.
7832         (vec_extract_lo_v32qi): Likewise.
7833         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
7834         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
7835
7836 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
7837
7838         PR target/44640
7839         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
7840         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
7841         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
7842         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
7843         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
7844
7845         PR target/44640
7846         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
7847
7848         PR other/44644
7849         * df-core.c (struct df): Rename to df_d.
7850         * df.h (struct df): Likewise.
7851         * dse.h (struct df): Remove forward declaration.
7852         * recog.h (struct insn_data): Rename to:
7853         (struct_insn_data_d).  Adjusted all users.
7854
7855 2010-06-23  Arnaud Charlet  <charlet@adacore.com
7856
7857         PR ada/22220
7858         * doc/install.texi: Update requirements to build GNAT.
7859
7860 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
7861
7862         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
7863         enum type.
7864         (m68k_sched_attr_opx_type): Remove unreachable return.
7865         (m68k_sched_attr_opy_type): Likewise.
7866         (m68k_sched_attr_size): Likewise.
7867         (sched_get_opxy_mem_type): Likewise.
7868         (m68k_sched_attr_op_mem): Likewise.
7869
7870 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
7871
7872         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
7873         new statement and adjust VDEF only if necessary.  Remove superfluous
7874         call to maybe_clean_or_replace_eh_stmt.
7875         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
7876         copy the flags.
7877         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
7878         * tree-inline.c (copy_bb): ...and not there.
7879
7880 2010-06-22  Cary Coutant  <ccoutant@google.com>
7881
7882         * dwarf2out.c (is_nested_in_subprogram): New function.
7883         (should_move_die_to_comdat): Use it.
7884         (copy_ancestor_tree): Don't mark DIEs here.
7885         (copy_decls_walk): Start walk from root of newly-added tree;
7886         mark DIEs here instead.
7887
7888 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
7889
7890         * config/i386/i386.md (unit): Also check sseishft1.
7891
7892 2010-06-22  Jan Hubicka  <jh@suse.cz>
7893
7894         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
7895         enabled.
7896
7897 2010-06-22  Jan Hubicka  <jh@suse.cz>
7898
7899         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
7900         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
7901         Return true if something changed.
7902         * df.h (df_confluence_function_n): Return bool.
7903         * df-core.c (df_worklist_propagate_forward,
7904         df_worklist_propagate_backward): Track changes and ages.
7905         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
7906         track ages.
7907         * dse.c (dse_confluence_n): Return always true.
7908
7909 2010-06-22  Jan Hubicka  <jh@suse.cz>
7910
7911         * bitmap.c (bitmap_clear_bit): Micro optimize.
7912
7913 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
7914
7915         * config/i386/i386.md (SWI1248x): New mode iterator.
7916         (SWI48x): Ditto.
7917         (SWI12): Ditto.
7918         (SWI24): Ditto.
7919
7920         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
7921         SWI1248x mode iterator.
7922         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
7923         using SWI124 mode iterator.
7924         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
7925         mode iterator.
7926         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
7927         *pushdi2_prologue_rex64 using P mode iterator.
7928         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
7929         using SWI48 mode iterator.
7930         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
7931         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
7932         using SWI1248x mode iterator.
7933         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
7934         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
7935         SWI48 mode iterator.
7936         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
7937         iterator.
7938         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
7939         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
7940         SWI12 mode iterator.
7941         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
7942         SWI12 mode iterator.
7943         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
7944         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
7945         SWI24 mode iterator.
7946         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
7947         SWI48 mode iterator.
7948         (mov<mode>_insn_1): New expander.
7949         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
7950         using SWI48x mode iterator.
7951
7952         (*movoi_internal_avx): Rename from *movoi_internal.
7953         (*movti_internal_rex64): Rename from *movti_rex64.
7954         (*movti_internal_sse): Rename from *movti_sse.
7955         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
7956         (*movdi_internal): Rename from *movdi_2.
7957         (*movsi_internal): Rename from *movsi_1.
7958         (*movhi_internal): Rename from *movhi_1.
7959         (*movqi_internal): Rename from *movqi_1.
7960
7961         (insv): Update the call to gen_movsi_insv_1 for rename.
7962         * config/i386/i386.c (promote_duplicated_reg): Ditto.
7963
7964 2010-06-22  Jan Hubicka  <jh@suse.cz>
7965
7966         * passes.c (execute_function_todo): Move call of statistics_fini_pass
7967         to ...
7968         (execute_todo) ... this one.
7969
7970 2010-06-22  Alan Modra  <amodra@gmail.com>
7971
7972         PR target/44364
7973         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
7974         * caller-save.c (insert_restore, insert_save): Use non-validate
7975         form of adjust_address.
7976
7977 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7978
7979         PR target/39690
7980         * config/pa/pa.c (override_options): Disable
7981         -freorder-blocks-and-partition.
7982
7983 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
7984
7985         PR target/44615
7986         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
7987
7988         * config/i386/i386.md (type): Add sseishft1
7989
7990         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
7991         (ppro_insn_load): Likewise.
7992         (ppro_insn_store): Likewise.
7993         (ppro_insn_both): Likewise.
7994
7995         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
7996         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
7997         for type.
7998         (*vec_extractv2di_1_avx): Likewise.
7999         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
8000         type.  Remove atom_unit.
8001         (*vec_extractv2di_1_sse2): Likewise.
8002
8003 2010-06-21  DJ Delorie  <dj@redhat.com>
8004
8005         * diagnostic.h (diagnostic_classification_change_t): New.
8006         (diagnostic_context): Add history and push/pop list.
8007         (diagnostic_push_diagnostics): Declare.
8008         (diagnostic_pop_diagnostics): Declare.
8009         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
8010         from pragmas in a history chain instead of the global table.
8011         (diagnostic_push_diagnostics): New.
8012         (diagnostic_pop_diagnostics): New.
8013         (diagnostic_report_diagnostic): Scan history chain to find state
8014         of diagnostics as of the diagnostic location.
8015         * opts.c (set_option): Pass UNKNOWN_LOCATION to
8016         diagnostic_classify_diagnostic.
8017         (enable_warning_as_error): Likewise.
8018         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
8019         use in the history chain.
8020         * doc/extend.texi: Document pragma GCC diagnostic changes.
8021
8022 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
8023
8024         * dwarf2out.c (add_linkage_name): New function.  Don't add
8025         anything to DW_TAG_member DIEs.
8026         (add_name_and_src_coords_attributes): Use it.
8027         (gen_variable_die): Call it for C++ static data members if
8028         specification is DW_TAG_member.
8029
8030         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
8031         C++ char16_t and char32_t.
8032
8033         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
8034         * genattrtab.c: Include vecprim.h.
8035         (cached_attrs, cached_attr_count, attrs_seen_once,
8036         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
8037         attrs_cached_after): New variables.
8038         (find_attrs_to_cache): New function.
8039         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
8040         (write_test_expr): Add attrs_cached argument, return it too,
8041         attempt to cache non-const attributes used more than once in
8042         a single case handling.
8043         (write_attr_get): Use find_attrs_to_cache, for caching candidates
8044         emit cached_* variables.  Adjust write_attr_set callers.
8045         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
8046         to find attributes that should be cached in this block.  Adjust
8047         write_test_expr callers.
8048         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
8049         callers.
8050         (make_automaton_attrs): Adjust write_test_expr caller.
8051
8052         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
8053         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
8054         (make_automaton_attrs): If find_tune_attr returns non-NULL,
8055         write separate internal_dfa_insn_code_* and insn_default_latency_*
8056         functions for each attribute's value and emit init_sched_attrs
8057         function and function pointers.
8058         * genattr.c (const_attrs, reservations): New variables.
8059         (gen_attr): Add const attributes to const_attrs vector.
8060         (check_tune_attr, find_tune_attr): New functions.
8061         (main): Add reservations to reservations vector.  If find_tune_attr
8062         returns true, add prototype for init_sched_attrs and make
8063         internal_dfa_insn_code and insn_default_latency function pointers,
8064         otherwise define init_sched_attrs as dummy macro.
8065         * cfgexpand.c: Include insn-attr.h.
8066         (gimple_expand_cfg): Call init_sched_attrs.
8067
8068         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
8069
8070         PR target/44575
8071         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
8072         va_arg from a set of register save slots into a temporary,
8073         if the container is bigger than type size, do the copying
8074         using smaller mode or using memcpy.
8075
8076         PR bootstrap/44426
8077         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
8078         prototype.
8079         (sel_print_to_dot): Remove macro.
8080         (sel_print): Likewise.  New prototype.
8081         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
8082         (sel_print): New function.
8083
8084 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8085
8086         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
8087         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
8088
8089 2010-06-21  Nick Clifton  <nickc@redhat.com>
8090
8091         * config/rx/rx.h (PTRDIFF_TYPE): Define.
8092         (SMALL_REGISTER_CLASS): Define (to zero).
8093         (PRINT_OPERAND): Delete.
8094         (PRINT_OPERAND_ADDRESS): Delete.
8095         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
8096         (rx_print_operand_address): Delete prototype.
8097         * config/rx/rx.c (rx_print_operand): Make static.
8098         Allow %H and %L to handle CONST_DOUBLEs.
8099         (rx_print_operand_address): Make static.
8100         (rx_gen_move_template): Rename local variable 'template' to
8101         out_template.
8102         (rx_function_arg): Do not pass unknown sized objects in registers.
8103         (TARGET_PRINT_OPERAND): Define.
8104         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8105
8106 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
8107
8108         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
8109
8110 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
8111
8112         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
8113         stack-alignment for simple leaf-functions.
8114
8115 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
8116
8117         * doc/install.texi: Document bootstrap-lto.
8118
8119 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
8120
8121         PR debug/44248
8122         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
8123         (input_function): Drop them here, if VTA is disabled.
8124
8125 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
8126
8127         PR target/44546
8128         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
8129         New predicate.
8130         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
8131         ix86_swapped_fp_comparsion_operator instead of
8132         ix86_fp_comparison_operator.
8133
8134         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
8135         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
8136         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
8137         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
8138         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
8139         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
8140
8141 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
8142
8143         PR other/32998
8144         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
8145         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
8146         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
8147         (decode_cmdline_option): Update for this return value.  Set
8148         orig_option_with_args_text field.  Set arg field for unknown
8149         options.  Make static.
8150         (decode_cmdline_options_to_array): New.
8151         (prune_options): Update handling of find_opt return value.
8152         * opts.c (read_cmdline_option): Take decoded option.  Return void.
8153         (read_cmdline_options): Take decoded options.
8154         (decode_options): Add parameters for decoded options.  Use
8155         decode_cmdline_options_to_array.  Use decoded options for -O
8156         scan.  Use integral_argument for -O parameters.  Update call to
8157         read_cmdline_options.
8158         (enable_warning_as_error): Update handling of find_opt return value.
8159         * opts.h: Update comment on unknown options.
8160         (struct cl_decoded_option): Update comments on opt_index and arg.
8161         Add orig_option_with_args_text.
8162         (decode_cmdline_option): Remove.
8163         (decode_cmdline_options_to_array): Declare.
8164         (decode_options): Update prototype.
8165         * toplev.c (save_argv): Remove.
8166         (save_decoded_options, save_decoded_options_count): New.
8167         (read_integral_parameter): Remove.
8168         (print_switch_values): Use decoded options.
8169         (toplev_main): Don't set save_argv.  Update call to decode_options.
8170         * toplev.h (read_integral_parameter): Remove.
8171         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
8172
8173 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
8174
8175         PR target/44072
8176         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
8177         immediate.
8178         * constraints.md (Pw, Px): New constraints.
8179         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
8180
8181 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
8182
8183         * config/i386/sse.md (fma4modesuffixf4): Removed.
8184         (ssemodesuffixf2s): Likewise.
8185         (ssemodesuffixf4): Likewise.
8186         (ssemodesuffixf2c): Likewise.
8187         (ssescalarmodesuffix2s): Likewise.
8188         (avxmodesuffixf2c): Likewise.
8189         (ssemodesuffix): New.
8190         (ssescalarmodesuffix): Likewise.
8191         Update patterns with ssemodesuffix and ssescalarmodesuffix.
8192
8193 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
8194
8195         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
8196
8197 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
8198
8199         * stor-layout.c (debug_rli): Remove unused local variables.
8200
8201 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8202
8203         PR rtl-optimization/40900
8204         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
8205         original expression for later reuse.
8206         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
8207         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
8208
8209 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
8210
8211         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
8212         double_int_fits_in_uhwi_p): Implement as static inline.
8213         (double_int_xor): New inline function.
8214         (double_int_lrotate, double_int_rrotate, double_int_max,
8215         double_int_umax, double_int_smax, double_int_min, double_int_umin,
8216         double_int_smin): Declare.
8217         (lrotate_double, rrotate_double): Remove declaration.
8218         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
8219         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
8220         (double_int_lrotate, double_int_rrotate, double_int_max,
8221         double_int_umax, double_int_smax, double_int_min, double_int_umin,
8222         double_int_smin): New function.
8223         * fold-const.c (int_const_binop): Clean up, use double_int_*
8224         functions.
8225         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
8226         double_int_* and immed_double_int_const functions.
8227
8228 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
8229
8230         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
8231         * function.c (types_used_by_cur_var_decl): Likewise.
8232         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
8233
8234 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
8235
8236         * tree.h (record_layout_info): Change type of pending_statics field
8237         to a VEC.
8238         * stor-layout.c (start_record_layout): Store NULL into
8239         pending_statics.
8240         (debug_rli): Call debug_vec_tree instead of debug_tree.
8241         (place_field): Likewise.
8242         (finish_record_layout): Likewise.
8243
8244 2010-06-18  Alan Modra  <amodra@gmail.com>
8245
8246         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
8247
8248 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8249
8250         PR target/43740
8251         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
8252         for SET source operand from SET destination operand.
8253
8254 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
8255
8256         PR rtl-optimization/39871
8257         * reload1.c (init_eliminable_invariants): For flag_pic, disable
8258         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
8259         (function_invariant_p): Rule out a plus of frame or arg pointer with
8260         a SYMBOL_REF.
8261         * ira.c (find_reg_equiv_invariant_const): Likewise.
8262
8263 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
8264
8265         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
8266         print_operand_address and puts to output the operand for CONST.
8267
8268 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
8269
8270         PR debug/44572
8271         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
8272         hook.
8273
8274 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8275
8276         * v850-protos.h (print_operand): Delete.
8277         (print_operand_address): Delete.
8278         * v850.h (PRINT_OPERAND): Delete.
8279         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8280         (PRINT_OPERAND_ADDRESS): Delete.
8281         * v850.c (print_operand_address): Rename to...
8282         (v850_print_operand_address): ...this.  Make static. Call
8283         v850_print_operand.
8284         (print_operand): Rename to...
8285         (v850_print_operand): ...this.  Make static.  Call
8286         v850_print_operand_address.
8287         (v850_print_operand_punct_valid_p): New function.
8288         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8289         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8290
8291 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8292
8293         * config/sh/sh-protos.h (print_operand): Delete.
8294         (print_operand_address): Delete.
8295         * config/sh/sh.h (PRINT_OPERAND): Delete.
8296         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8297         (PRINT_OPERAND_ADDRESS): Delete.
8298         * config/sh/sh.c (sh_print_operand_address): Make static.
8299         (sh_print_operand): Make static.  Call sh_print_operand_address
8300         and sh_print_operand.
8301         (sh_print_operand_punct_valid_p): New function.
8302         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8303         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8304
8305 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8306
8307         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
8308         (mcore_print_operand_address): Delete.
8309         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
8310         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8311         (PRINT_OPERAND_ADDRESS): Delete.
8312         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
8313         (mcore_print_operand): Make static.
8314         (mcore_print_operand_punct_valid_p): New function.
8315         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
8316         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8317
8318 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8319
8320         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
8321         (print_operand_address): Delete.
8322         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
8323         (PRINT_OPERAND_ADDRESS): Delete.
8324         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
8325         static.
8326         (m68hc11_print_operand): Make static.
8327         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8328
8329 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8330
8331         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
8332         (m32r_print_operand_address): Delete.
8333         * config/m32r/m32r.h (m32r_punct_chars): Delete.
8334         (PRINT_OPERAND): Delete.
8335         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8336         (PRINT_OPERAND_ADDRESS): Delete.
8337         * config/m32r/m32r.c (m32r_punct_chars): Make static.
8338         (m32r_print_operand_address): Make static.
8339         (m32r_print_operand): Make static.
8340         (m32r_print_operand_punct_valid_p): New function.
8341         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8342         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8343
8344 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8345
8346         * config/iq2000/iq2000-protos.h (print_operand): Delete.
8347         (print_operand_address): Delete.
8348         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
8349         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8350         (PRINT_OPERAND_ADDRESS): Delete.
8351         (iq2000_print_operand_punct): Delete.
8352         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
8353         (iq2000_print_operand_address): Make static.
8354         (iq2000_print_operand): Make static.
8355         (iq2000_print_operand_punct_valid_p): New function.
8356         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8357         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8358
8359 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8360
8361         * config/frv/frv-protos.h (frv_print_operand): Delete.
8362         (frv_print_operand_address): Delete.
8363         * config/frv/frv.h (PRINT_OPERAND): Delete.
8364         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8365         (PRINT_OPERAND_ADDRESS): Delete.
8366         * config/frv/frv.c (frv_print_operand_address): Make static.
8367         (frv_print_operand): Make static.
8368         (frv_print_operand_punct_valid_p): New function.
8369         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8370         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8371
8372 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
8373
8374         * tree.h (vec_member): Declare.
8375         * tree.c (vec_member): Define.
8376
8377 2010-06-17  Richard Guenther  <rguenther@suse.de>
8378
8379         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
8380         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
8381
8382 2010-06-17  Richard Guenther  <rguenther@suse.de>
8383
8384         * tree-inline.c (declare_return_variable): Remove bogus code.
8385
8386 2010-06-17  Richard Guenther  <rguenther@suse.de>
8387
8388         * gimplify.c (gimplify_bind_expr): Always promote complex
8389         and vector variables to registers if possible.
8390
8391 2010-06-17  Richard Guenther  <rguenther@suse.de>
8392
8393         * expr.c (get_inner_reference): Use double_int for bit_offset
8394         calculation.
8395
8396 2010-06-16  DJ Delorie  <dj@redhat.com>
8397
8398         * common.opt (-fstrict-volatile-bitfields): new.
8399         * doc/invoke.texi: Document it.
8400         * fold-const.c (optimize_bit_field_compare): For volatile
8401         bitfields, use the field's type to determine the mode, not the
8402         field's size.
8403         * expr.c (expand_assignment): Likewise.
8404         (get_inner_reference): Likewise.
8405         (expand_expr_real_1): Likewise.
8406         * expmed.c (store_fixed_bit_field): Likewise.
8407         (extract_bit_field_1): Likewise.
8408         (extract_fixed_bit_field): Likewise.
8409
8410 2010-06-16  Richard Guenther  <rguenther@suse.de>
8411
8412         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
8413
8414 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
8415
8416         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
8417         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
8418         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
8419         * debug.c: Likewise.
8420         * sdbout.c: Likewise.
8421         * vmsdbgout.c: Likewise.
8422         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
8423         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
8424         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
8425         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
8426         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
8427         * dwarf2out.c (dw_fde_struct): New fields
8428         dw_fde_vms_{end,begin}_prologue.
8429         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
8430         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
8431         (dwarf2out_vms_end_prologue): New function.
8432         (dwarf2out_vms_begin_epilogue): New function.
8433         (dw_val_struct): New value dw_val_class_vms_delta.
8434         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
8435         begin_epilogue for VMS.
8436         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
8437         new static functions.
8438         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
8439         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
8440         static functions.
8441         (print_die): New case dw_val_class_vms_delta.
8442         (attr_checksum): Likewise.
8443         (same_dw_val_p: Likewise.
8444         (size_of_die): Likewise.
8445         (value_format): Likewise.
8446         (output_die): Likewise.
8447         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
8448         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
8449         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
8450         dwarf2out_cfi_begin_epilogue
8451         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
8452
8453 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
8454
8455         * config/cris/cris-protos.h (cris_print_operand): Delete.
8456         (cris_print_operand_address): Delete.
8457         * config/cris/cris.h (PRINT_OPERAND): Delete.
8458         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8459         (PRINT_OPERAND_ADDRESS): Delete.
8460         * config/cris/cris.c (cris_print_operand_address): Make static.
8461         (cris_print_operand): Make static.
8462         (cris_print_operand_punct_valid_p): New function.
8463         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8464         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8465
8466 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
8467
8468         * config/arm/arm-protos.h (arm_print_operand): Delete.
8469         (arm_print_operand_address): Delete.
8470         * config/arm/arm.h (PRINT_OPERAND): Delete.
8471         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8472         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
8473         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
8474         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
8475         (arm_print_operand): Make static.
8476         (arm_print_operand_punct_valid_p): New function.
8477         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8478         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8479
8480 2010-06-16  Nick Clifton  <nickc@redhat.com>
8481
8482         * config/rx/constraints.md (NEGint4): New constraint.
8483         * config/rx/rx.md (attr cc): Add set_zsc.
8484         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
8485         initialised.
8486         (cmpsf): Likewise.
8487         (call_internal): Clobber the cc0 register.
8488         (call_value_internal): Likewise.
8489         (cstoresi4): Likewise.
8490         (movsieq): Likewise.
8491         (movsine): Likewise.
8492         (addsi3): Add alternative to handle small negative constants.
8493         (sunsi3): Likewise.
8494         (addsi3): Do not set the O bit in the cc0 register.
8495         (adddi3): Likewise.
8496         (subsi3): Likewise.
8497         (subdi3): Likewise.
8498         (andsi3): Reorder alternatives to prefer shorter forms.
8499         (mulsi3): Likewise.
8500         (iorsi3): Likewise.
8501         (negsi2): Note that the cc0 flags are set.
8502         (rotlsi3): Note that only the Z and S bits are set in cc0.
8503         (lshrsi3): Likewise.
8504         (ashlsi3): Likewise.
8505         (subsf3): Use %Q for the MEM operand.
8506         (fix_truncsfsi2): Likewise.
8507         (floatsisf2): Likewise.
8508         (bitset): Remove early clobber from destination.
8509         (bitset_in_memory): Likewise.
8510         (lrintsf2): Clobber the cc0 register.
8511         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
8512         (rx_print_operand): Handle %N.
8513
8514 2010-06-16  Jan Hubicka  <jh@suse.cz>
8515
8516         * df-core.c (df_compact_blocks): Free problem_temps vector.
8517
8518 2010-06-16  Martin Jambor  <mjambor@suse.cz>
8519
8520         PR tree-optimization/43905
8521         * tree-sra.c: Include tree-inline.h.
8522         (create_abstract_origin): Removed.
8523         (modify_function): Version the call graph node instead of creating
8524         abstract origins and dealing with same_body aliases.
8525         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
8526         function is versionable.
8527         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
8528
8529 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
8530
8531         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
8532         (CHOOSE_DYNAMIC_LINKER): Update.
8533
8534 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
8535
8536         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
8537         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
8538         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
8539         *prefetch_3dnow_rex.
8540
8541 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
8542
8543         * target.h (struct asm_out):Add declare_constant_name field.
8544         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
8545         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
8546         * output.h (default_asm_declare_constant_name): Declare.
8547         (assemble_label): Update prototype.
8548         * varasm.c (assemble_constant_contents): Use
8549         targetm.asm_out.declare_constant_name target hook.
8550         (assemble_label): Add 'file' argument.
8551         (default_asm_declare_constant_name): New function.
8552         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
8553         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
8554         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
8555
8556         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
8557         * config/darwin.c (darwin_asm_declare_constant_name): New function.
8558         (machopic_output_indirection): Update assemble_label argument list.
8559         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
8560         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
8561
8562 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
8563
8564         PR middle-end/44391
8565         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
8566         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
8567
8568 2010-06-15  Richard Guenther  <rguenther@suse.de>
8569
8570         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
8571
8572 2010-06-15  Paul Brook  <paul@codesourcery.com>
8573
8574         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
8575         hard-float ABI.
8576
8577 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
8578
8579         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
8580         don't get a vector type for output.
8581
8582 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
8583
8584         PR fortran/44536
8585         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
8586         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
8587         (LANG_HOOKS_DECLS): Add it.
8588         * gimplify.c (omp_notice_variable): Call
8589         lang_hooks.decls.omp_report_decl.
8590
8591 2010-06-15  Martin Jambor  <mjambor@suse.cz>
8592
8593         PR lto/44464
8594         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
8595         on the newly dead SSA name.
8596
8597 2010-06-15  Alan Modra  <amodra@gmail.com>
8598
8599         * doc/invoke.texi: Add mcmodel to powerpc options.
8600         * configure.ac: Add HAVE_LD_LARGE_TOC test.
8601         * configure: Regenerate.
8602         * config.in: Regenerate.
8603         * config/rs6000/linux64.opt (mcmodel): New.
8604         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
8605         (TARGET_CMODEL, SET_CMODEL): Define.
8606         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
8607         select CMODEL_MEDIUM default.
8608         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
8609         (TARGET_CMODEL): Define default.
8610         * config/rs6000/rs6000.c (cmodel): New variable.
8611         (rs6000_explicit_options): Add cmodel field.
8612         (rs6000_handle_option): Handle -mcmodel.
8613         (create_TOC_reference): Add largetoc_reg param.  Generate high,
8614         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
8615         (rs6000_delegitimize_address): Recognise new toc reference rtl
8616         and minimal-toc rtl.
8617         (rs6000_legitimize_reload_address): Handle new toc references.
8618         (print_operand_address): Handle legitimate_constant_pool_address_p
8619         match before lo_sum.
8620         (rs6000_eliminate_indexed_memrefs): Tidy.
8621         (rs6000_emit_move): Tweak threshold for inlining constants.
8622         Keep rs6000_emit_allocate_stack large stack frame offsets
8623         loaded into r0 inline.
8624         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
8625         (tocrel_base, tocrel_offset): New variables.
8626         (toc_relative_expr_p): Set them here.
8627         (print_operand_address): Skip over any offset on constant pool address.
8628         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
8629         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
8630         (offsettable_ok_by_alignment): New function.
8631         (rs6000_emit_move): Address suitably aligned local symbol_refs
8632         relative to the toc pointer for -mcmodel=medium.
8633         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
8634         strict param.  Allow lo_sum version of addressing.  Verify reg
8635         used for -mminimal-toc and -mcmodel != small.  Update all callers.
8636         * config/rs6000/constraints.md: Update for above change.
8637         * config/rs6000/predicates.md: Likewise.
8638         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
8639         code.
8640         (tls_gd): Split for -mcmodel=medium/large.
8641         (tls_gd_high, tls_gd_low): New.
8642         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
8643         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
8644         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
8645         (largetoc_high, largetoc_low): New.
8646         (cmptf_internal2): Add clobber.
8647         * config/rs6000/rs6000-protos.h: Update.
8648
8649 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
8650
8651         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
8652         true if no prefetch is going to be generated for a given group.
8653         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
8654         estimate the prefetch_count.
8655         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
8656         prefetch count by considering the unroll_factor and prefetch_mod
8657         for is_loop_prefetching_profitable.
8658
8659 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
8660
8661         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
8662         anything if the argument is not a MEM.
8663
8664 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
8665
8666         PR debug/43650
8667         PR debug/44181
8668         PR debug/44247
8669         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
8670         debug stmts.
8671         (canonicalize_loop_ivs): Likewise.
8672
8673 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
8674
8675         PR debug/43656
8676         * haifa-sched.c (setup_insn_reg_pressure_info,
8677         update_register_pressure): Reject debug insns.
8678         (ready_sort): Don't setup reg pressure for debug insns.
8679         (schedule_insn): Don't update reg pressure for debug insns.
8680
8681 2010-06-14  Richard Guenther  <rguenther@suse.de>
8682
8683         * lto-streamer.c (cached_bp): Remove.
8684         (bitpack_delete): Likewise.
8685         (bitpack_create): Likewise.
8686         (bp_get_next_word): Likewise.
8687         (bp_pack_value, bp_unpack_value): Move ...
8688         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
8689         Re-implement.
8690         (struct bitpack_d): Likewise.
8691         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
8692         New inline functions.
8693         * lto-streamer-out.c (lto_output_bitpack): Remove.
8694         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
8695         (pack_value_fields): Adjust.
8696         (lto_write_tree): Likewise.
8697         (output_gimple_stmt): Likewise.
8698         (output_function): Likewise.
8699         * lto-streamer-in.c (input_gimple_stmt): Adjust.
8700         (input_function): Likewise.
8701         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
8702         (lto_input_bitpack): Remove.
8703         (lto_materialize_tree): Adjust.
8704         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
8705         * lto-cgraph.c (lto_output_edge): Adjust.
8706         (lto_output_node): Likewise.
8707         (lto_output_varpool_node): Likewise.
8708         (lto_output_ref): Likewise.
8709         (input_node): Likewise.
8710         (input_varpool_node): Likewise.
8711         (input_ref): Likewise.
8712         (input_edge): Likewise.
8713         (output_node_opt_summary): Likewise.
8714         (input_node_opt_summary): Likewise.
8715         * ipa-pure-const.c (pure_const_write_summary): Likewise.
8716         (pure_const_read_summary): Likewise.
8717         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
8718         (ipa_read_indirect_edge_info): Likewise.
8719         (ipa_write_node_info): Likewise.
8720         (ipa_read_node_info): Likewise.
8721
8722 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
8723
8724         PR target/44534
8725         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
8726         (vec_extract_lo_v16hi): Likewise.
8727         (vec_extract_lo_v32qi): Likewise.
8728
8729 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
8730
8731         PR bootstrap/44426
8732         * tree.h (build_call_expr): Don't define as vararg macro, instead
8733         add a prototype.
8734         * builtins.c (build_call_nofold): Remove.
8735         (expand_builtin_int_roundingfn, expand_builtin_pow,
8736         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
8737         expand_builtin_memset_args, expand_builtin_strcmp,
8738         expand_builtin_strncmp, expand_builtin_memory_chk): Use
8739         build_call_nofold_loc instead of build_call_nofold.
8740         (build_call_expr): New function.
8741
8742         PR tree-optimization/44508
8743         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
8744         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
8745         don't eliminate trivially dead stmts.
8746         * tree-vrp.c (vrp_finalize): Pass false as last argument
8747         to substitute_and_fold.
8748         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
8749         to substitute_and_fold.
8750         * tree-ssa-ccp.c (ccp_finalize): Likewise.
8751
8752         PR bootstrap/44509
8753         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
8754
8755 2010-06-14  Ira Rosen  <irar@il.ibm.com>
8756
8757         PR tree-optimization/44507
8758         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
8759         to build initial vector for BIT_AND_EXPR.
8760         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
8761
8762 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
8763
8764         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
8765         adjust z10prop set_attr.
8766
8767 2010-06-13  Jan Hubicka  <jh@suse.cz>
8768
8769         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
8770         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
8771         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
8772         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
8773         datastructure checks into checking asserts.
8774         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
8775         * tree-ssa-sccvn.c (VN_INFO): Likewise.
8776         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
8777         df_ref_create_structure): Likewise.
8778         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
8779         pool_free): Use gcc_checking_assert.
8780         * alias.c (get_alias_set): Likewise.
8781         * var-tracking.c (variable_htab_free, shared_hash_copy,
8782         canonicalize_values_mark, variable_merge_over_cur): Likewise.
8783         * lto-streamer.c (bp_unpack_value): Likewise.
8784
8785 2010-06-13  Richard Guenther  <rguenther@suse.de>
8786
8787         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
8788         Do not stream but initialize TYPE_CANONICAL to NULL.
8789         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
8790         * gimple.c (gimple_types_compatible_p): Disregard
8791         TYPE_STRUCTURAL_EQUALITY_P.
8792         (gimple_register_type): Use TYPE_CANONICAL as cache.
8793         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
8794         before registering common types.
8795         * config/i386/i386.c (ix86_function_arg_boundary): Do not
8796         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
8797         * tree.h (TYPE_CANONICAL): Clarify documentation.
8798
8799 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
8800
8801         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8802         LIBCALL_VALUE): Remove macros.
8803         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
8804         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8805         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8806         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
8807         (ia64_function_value): Make static. Handle receiving the function
8808         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
8809
8810 2010-06-12  Jan Hubicka  <jh@suse.cz>
8811
8812         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
8813         at correct place.
8814
8815 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
8816
8817         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
8818
8819 2010-06-12  Jan Hubicka  <jh@suse.cz>
8820
8821         * df-core.c (df_clear_bb_info): New function.
8822         (df_set_blocks): bb_info is always allocated.
8823         (df_get_bb_info): Use block_info_elt_size.
8824         (df_set_bb_info): Likewise.
8825         (df_compact_blocks): Update for new block_info.
8826         (grow_bb_info): New function.
8827         * df-problems.c (df_grow_bb_info): Move to df-core.c
8828         (df_rd_set_bb_info): Remove.
8829         (df_rd_free_bb_info): Do not free block pool.
8830         (df_rd_alloc): Do not create pool, use check for
8831         obstack presence instead of NULL pointer for new blocks.
8832         (df_rd_free): DO not free alloc pool; clear block_info.
8833         (problem_RD): Add size of block info structure.
8834         (df_lr_set_bb_info): Remove.
8835         (df_lr_free_bb_info): Do not free block pool.
8836         (df_lr_alloc): Do not create pool, use check for
8837         obstack presence instead of NULL pointer for new blocks.
8838         (df_lr_free): DO not free alloc pool; clear block_info.
8839         (problem_LR): Add size of block info structure.
8840         (df_live_set_bb_info): Remove.
8841         (df_live_free_bb_info): Do not free block pool.
8842         (df_live_alloc): Do not create pool, use check for
8843         obstack presence instead of NULL pointer for new blocks.
8844         (df_live_free): DO not free alloc pool; clear block_info.
8845         (problem_LIVE): Add size of block info structure.
8846         (problem_CHAIN): Add size of block info structure.
8847         (df_byte_lr_set_bb_info): Remove.
8848         (df_byte_lr_free_bb_info): Do not free block pool.
8849         (df_byte_lr_alloc): Do not create pool, use check for
8850         obstack presence instead of NULL pointer for new blocks.
8851         (df_byte_lr_free): DO not free alloc pool; clear block_info.
8852         (problem_BYTE_LR): Add size of block info structure.
8853         (problem_NOTE): Add size of block info structure.
8854         (df_byte_MD_set_bb_info): Remove.
8855         (df_byte_MD_free_bb_info): Do not free block pool.
8856         (df_byte_MD_alloc): Do not create pool, use check for
8857         obstack presence instead of NULL pointer for new blocks.
8858         (df_byte_MD_free): DO not free alloc pool; clear block_info.
8859         (problem_BD): Add size of block info structure.
8860         * df-scan.c (df_scan_free_internal): Free block pool.
8861         (df_scan_set_bb_info): Remove.
8862         (df_scan_free_bb_info): Check for artificial_defs instead
8863         of bb_info being non-NULL.
8864         (df_scan_alloc): DO not create df_scan_block pool.
8865         (problem_SCAN): Set size of block info.
8866         (df_bb_refs_record): Do not allocate bb_info.
8867         * df.h (df_problem): Add block_info_elt_size.
8868         (struct dataflow): Change block_info to void *.
8869         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
8870         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
8871         in-line structures.
8872
8873 2010-06-12  Jan Hubicka  <jh@suse.cz>
8874
8875         PR tree-optimize/44485
8876         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
8877         containing use of return value of noreturn function.
8878
8879 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
8880
8881         * targhooks.c (default_function_value): Don't use
8882         FUNCTION_OUTGOING_VALUE.
8883         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
8884         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
8885
8886 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
8887
8888         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
8889         Add crtfastmath.o to extra_parts.
8890         * config/mips/crtfastmath.c: New.
8891         * config/mips/linux.h (ENDFILE_SPEC): New.
8892
8893 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
8894
8895         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
8896         old_type in parameter.
8897         (gcc_type_for_value): Update call to gcc_type_for_interval.
8898         (compute_type_for_level_1): Renamed compute_type_for_level.
8899         Update call to gcc_type_for_interval.
8900
8901 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
8902
8903         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
8904         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
8905
8906 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
8907
8908         * opts-common.c: Include options.h.
8909         (integral_argument): Move from opts.c.
8910         (decode_cmdline_option): New.  Based on read_cmdline_option.
8911         * opts.c (integral_argument): Move to opts-common.c.
8912         (read_cmdline_option): Move most contents to
8913         decode_cmdline_option.  Use %qs in diagnostics.
8914         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
8915         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
8916         decode_cmdline_option): New.
8917
8918 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         PR target/44481
8921         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
8922         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
8923         (partiysi2_cmp): Ditto.
8924         (*partiyhi2_cmp): Ditto.
8925         (*parityqi2_cmp): Remove.
8926
8927 2010-06-11  Jan Hubicka  <jh@suse.cz>
8928
8929         * bitmap.h (bmp_iter_next_bit): New.
8930         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
8931
8932 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
8933             Eric Botcazou  <ebotcazou@adacore.com>
8934
8935         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
8936         computed cost.
8937
8938 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
8939
8940         * config/i386/i386.md (unspec): New define_c_enum.
8941         (unspecv): Ditto.
8942
8943 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
8944
8945         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
8946
8947 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
8948
8949         PR middle-end/44483
8950         * tree-if-conv.c (bb_predicate_s): New struct.
8951         (bb_predicate_p): New.
8952         (bb_has_predicate): New.
8953         (bb_predicate): New.
8954         (set_bb_predicate): New.
8955         (bb_predicate_gimplified_stmts): New.
8956         (set_bb_predicate_gimplified_stmts): New.
8957         (add_bb_predicate_gimplified_stmts): New.
8958         (init_bb_predicate): New.
8959         (free_bb_predicate): New.
8960         (is_predicated): Use bb_predicate.
8961         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
8962         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
8963         before processing their successors.
8964         (clean_predicate_lists): Removed.
8965         (find_phi_replacement_condition): Use bb_predicate.
8966         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
8967         computations.
8968         (insert_gimplified_predicates): New.
8969         (combine_blocks): Call insert_gimplified_predicates.
8970         (tree_if_conversion): Call free_bb_predicate instead of
8971         clean_predicate_lists.
8972
8973 2010-10-11  Paul Brook  <paul@codesourcery.com>
8974
8975         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
8976         * config/arm/arm.c (all_architectures): Change v7e-m default to
8977         cortexm4.
8978         * config/arm/arm-cores.def: Add cortex-m4.
8979         * config/arm/arm-tune.md: Regenerate.
8980
8981 2010-06-11  Jan Hubicka  <jh@suse.cz>
8982
8983         * ipa-pure-const.c (special_builtlin_state): New function.
8984         (check_call): Use it instead of special casign BUILT_IN_RETURN.
8985         (propagate_pure_const): Use it.
8986
8987 2010-06-11  Jan Hubicka  <jh@suse.cz>
8988
8989         * df-problems.c (df_live_scratch): Convert to bitmap_head.
8990         (df_live_alloc): Initialize df_live_scratch when initializing
8991         problem_data.
8992         (df_live_transfer_function): Update uses of df_live_scratch.
8993         (df_live_free): Free problem_data; clear df_live_scratch before
8994         releasing the obstack.
8995         (df_md_free): Free problem data.
8996
8997 2010-06-11  Jan Hubicka  <jh@suse.cz>
8998
8999         * doc/invoke.texi (Wsuggest-attribute): Document.
9000         (Wmissing-noreturn): Remove.
9001         * ipa-pure-const.c (warn_function_noreturn): New function.
9002         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
9003         warn_missing_noreturn.
9004         * common.opt (Wsuggest-attribute=noreturn): New.
9005         * tree-flow.h (warn_function_noreturn): Declare.
9006         * tree-cfg.c (execute_warn_function_noreturn): Use
9007         warn_function_noreturn.
9008         (gate_warn_function_noreturn): New.
9009         (pass_warn_function_noreturn): Update.
9010
9011 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9012
9013         * c-typeck.c (handle_warn_cast_qual): Add loc
9014         parameter. Improve warning message.
9015         (build_c_cast): Pass location to handle_warn_cast_qual.
9016
9017 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
9018
9019         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
9020         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
9021         insn mnemonic.
9022         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
9023
9024 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
9025
9026         Fix bootstap on mips
9027         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
9028         be naming typedefs.
9029
9030 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
9031
9032         * system.h (helper_const_non_const_cast): New inline for
9033         gcc version <= 4.0.
9034         (CONST_CAST2): For gcc version <= 4.0 use
9035         new helper to do const/non-const casting.
9036
9037 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9038
9039         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
9040         * Makefile.in (OBJS-common): Include insn-enums.o.
9041         (insn-enums.o): New rule.
9042         (simple_generated_c): Add insn-enums.c.
9043         (build/genenums.o): New rule.
9044         (genprogmd): Add "enums".
9045         * genconstants.c (print_enum_type): Declare a C string array
9046         for each enum.
9047         * genenums.c: New file.
9048         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
9049         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
9050         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
9051
9052 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9053
9054         * doc/md.texi (define_enum_attr): Document.
9055         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
9056         * read-md.h (lookup_enum_type): Declare.
9057         * read-md.c (lookup_enum_type): New function.
9058         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
9059         * genattrtab.c (attr_desc): Add an enum_name field.
9060         (evaluate_eq_attr): Take the associated attribute as argument.
9061         Get the enum prefix from the enum_name field, if defined.
9062         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
9063         (simplify_test_exp): Pass attr to evaluate_eq_attr.
9064         (add_attr_value): New function, split out from...
9065         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
9066         (write_test_expr): Pass attr to evaluate_eq_attr.
9067         (write_attr_get): Use the enum_name as the enum tag, if defined.
9068         (write_attr_valueq): Use the enum_name as a prefix, if defined.
9069         (find_attr): Initialize enum_name.
9070         (main): Handle DEFINE_ENUM_ATTR.
9071         * gensupport.c (process_rtx): Likewise.
9072         * config/mips/mips.h (mips_tune_attr): Delete.
9073         * config/mips/mips.md (cpu): Use define_attr_enum.
9074
9075 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9076
9077         * doc/md.texi (define_c_enum, define_enum): Document.
9078         * read-md.h (md_constant): Add a parent_enum field.
9079         (enum_value, enum_type): New structures.
9080         (upcase_string, traverse_enum_types): Declare.
9081         * read-md.c (enum_types): New variable.
9082         (upcase_string, add_constant): New functions.
9083         (handle_constants): Don't create the hash table here.
9084         Use add_constant.
9085         (traverse_md_constants): Don't check for a null md_constants.
9086         (decimal_string, handle_enum, traverse_enum_types): New functions.
9087         (read_md_files): Initialize md_constants and md_enums.
9088         * genconstants.c (print_md_constant): Ignore info argument.
9089         Only print constants that belong to no enum.
9090         (print_enum_type): New function.
9091         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
9092         for each defined enum type.
9093         * config/mips/mips.md (processor): New define_enum.
9094         (unspec): New define_c_enum.
9095         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
9096         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
9097         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
9098         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
9099         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
9100         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
9101         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
9102         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
9103         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
9104         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
9105         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
9106         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
9107         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
9108         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
9109         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
9110         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
9111         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
9112         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
9113         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
9114         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
9115         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
9116         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
9117         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
9118         (UNSPEC_RDDSP): Move to mips-dsp.md.
9119         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
9120         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
9121         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
9122         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
9123         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
9124         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
9125         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
9126         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
9127         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
9128         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
9129         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
9130         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
9131         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
9132         Moved to mips-dspr2.md.
9133         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
9134         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
9135         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
9136         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
9137         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
9138         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
9139         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
9140         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
9141         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
9142         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
9143         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
9144         UNSPEC_LOONGSON_PSADBH)
9145         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
9146         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
9147         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
9148         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
9149         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
9150         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
9151         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
9152         (cpu): Update comment.
9153         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
9154         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
9155         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
9156         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
9157         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
9158         UNSPEC_LOONGSON_PCMPEQ)
9159         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
9160         UNSPEC_LOONGSON_PINSR_0)
9161         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
9162         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
9163         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
9164         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
9165         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
9166         UNSPEC_LOONGSON_PSADBH)
9167         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
9168         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
9169         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
9170         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
9171         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
9172         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
9173         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
9174         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
9175         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
9176         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
9177         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
9178         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
9179         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
9180         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
9181         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
9182         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
9183         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
9184         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
9185         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
9186         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
9187         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
9188         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
9189         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
9190         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
9191         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
9192         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
9193         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
9194         (UNSPEC_RDDSP): Moved from mips.md.
9195         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
9196         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
9197         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
9198         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
9199         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
9200         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
9201         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
9202         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
9203         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
9204         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
9205         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
9206         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
9207         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
9208         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
9209         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
9210         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
9211         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
9212         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
9213         (UNSPEC_SCC): Moved from mips.md.
9214         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
9215         "processor_type" to "processor".
9216         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
9217         * config/mips/mips.h (processor_type): Delete.
9218         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
9219         "processor_type" to "processor".
9220
9221 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9222
9223         * configure.ac (tm_include_list): Add insn-constants.h.
9224         * configure: Regenerate.
9225         * Makefile.in (GTM_H): Move insn-constants.h here from...
9226         (TM_H): ...here.
9227         * mkconfig.sh: Remove special handling for insn-constants.h.
9228
9229 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9230
9231         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
9232         (BUILD_MD): ...this new variable.
9233         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
9234         that include the old contents of simple_generated_h and
9235         simple_generated_c.
9236         (simple_generated_h, simple_generated_c): Include them.  Add
9237         insn-constants.h.
9238         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
9239         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
9240         Remove these dependencies from the main rule and include
9241         insn-conditions.md in the command line only if it appears
9242         in the dependency list.
9243         (insn-constants.h, s-constants): Delete.
9244         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
9245         or gensupport.h.
9246         (build/genmddeps.o): Likewise.
9247         (genprogrtl): New variable that contains everything from genprogmd
9248         except mddeps and constants.
9249         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
9250         depend on $(BUILD_MD)
9251         (genprog): New variable.  Make these programs depend on
9252         $(BUILD_ERRORS).
9253         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
9254         (main): Use read_md_files instead of init_rtx_reader_args.
9255         * genconstants.c: As for genmddeps.c.
9256         * read-md.h (read_skip_construct): Declare.
9257         * read-md.c (read_skip_construct): New function.
9258         (handle_file): Allow a null handle_directive, skipping the
9259         construct if so.
9260         (parse_include): Update the comment accordingly.
9261
9262 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9263
9264         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
9265         * genmddeps.c: Include read-md.h.
9266         (main): Call init_rtx_reader_args instead of init_md_reader_args.
9267         * genattr.c (main): Likewise.
9268         * genattrtab.c (main): Likewise.
9269         * genautomata.c (main): Likewise.
9270         * gencodes.c (main): Likewise.
9271         * genconditions.c (main): Likewise.
9272         * genconfig.c (main): Likewise.
9273         * genconstants.c (main): Likewise.
9274         * genemit.c (main): Likewise.
9275         * genextract.c (main): Likewise.
9276         * genflags.c (main): Likewise.
9277         * genopinit.c (main): Likewise.
9278         * genoutput.c (main): Likewise.
9279         * genpeep.c (main): Likewise.
9280         * genrecog.c (main): Likewise.
9281         * genpreds.c (main): Likewise.
9282         * gensupport.h (in_fname): Move to read-md.h.
9283         (init_md_reader_args_cb): Rename to...
9284         (init_rtx_reader_args_cb): ...this and return a bool.
9285         (init_md_reader_args): Rename to...
9286         (init_rtx_reader_args): ...this and return a bool.
9287         (include_callback): Move to read-md.h.
9288         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
9289         (file_name_list, first_dir_md_include): Move to read-md.c
9290         (first_bracket_include): Delete unused variable.
9291         (last_dir_md_include): Move to read-md.c.
9292         (process_include): Delete, moving code to read-md.c:handle_include.
9293         (process_rtx): Don't handle INCLUDE.
9294         (save_string): Delete.
9295         (rtx_handle_directive): New function.
9296         (init_md_reader_args_cb): Rename to...
9297         (init_rtx_reader_args_cb): ...this and return a boolean success value.
9298         Use read_md_args.
9299         (init_md_reader_args): Rename to...
9300         (init_rtx_reader_args): ...this and return a boolean success value.
9301         * rtl.def (INCLUDE): Delete.
9302         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
9303         argument.
9304         * read-rtl.c (read_conditions): Don't gobble ')' here.
9305         (read_mapping): Likewise.
9306         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
9307         Handle top-level non-rtx constructs here rather than in read_rtx_1.
9308         Store the whole queue in *X.  Remove call to init_md_reader.
9309         (read_rtx_1): Rename to...
9310         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
9311         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
9312         here.
9313         (read_nested_rtx): New function.  Handle (nil) here rather than
9314         in read_rtx_code.
9315         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
9316         gobble ')' here.
9317         * read-md.h (directive_handler_t): New type.
9318         (in_fname, include_callback): Moved from read-md.h.
9319         (read_constants, init_md_reader): Delete.
9320         (read_md_files): Declare.
9321         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
9322         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
9323         from gensupport.c.
9324         (read_constants): Rename to...
9325         (handle_constants): ...this.  Don't gobble ')' here.
9326         (handle_include, handle_file, handle_toplevel_file)
9327         (parse_include): New functions, mostly taken from gensupport.c.
9328         (init_md_reader): Subsume into...
9329         (read_md_files): ...this new function.
9330
9331 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9332
9333         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
9334         (unread_char): Decrement read_md_lineno after putting back '\n'.
9335         * read-md.c (fatal_with_file_and_line): Push back any characters
9336         that we decide not to add to the context.
9337         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
9338         fatal_expected_char in cases where '/' ends a line (for example).
9339         (read_name): Don't increment read_md_lineno here.
9340         (read_escape): Likewise.
9341         (read_quoted_string): Likewise.
9342         (read_braced_string): Likewise.
9343
9344 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9345
9346         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
9347         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
9348         * genconstants.c: Include read-md.h.
9349         * read-rtl.c (md_constants): Move to read-md.c.
9350         (md_name): Move to read-md.h.
9351         (initialize_iterators): Use leading_string_hash instead of def_hash
9352         and leading_string_eq_p instead of def_name_eq_p.
9353         (read_name): Move to read-md.c.
9354         (def_hash, def_name_eq_p): Delete.
9355         (read_constants, traverse_md_constants): Move to read-md.c.
9356         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
9357         * read-md.h: Include hashtab.h.
9358         (md_name): Moved from read-rtl.c.
9359         (md_constant): Moved from read-md.h.
9360         (leading_string_hash, leading_string_eq_p, read_name)
9361         (read_constants, traverse_md_constants): Declare.
9362         * read-md.c (md_constants): Moved from read-rtl.c.
9363         (leading_string_hash, leading_string_eq_p): New functions.
9364         (read_name, read_constants, traverse_md_constants): Moved from
9365         read-rtl.c.
9366
9367 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9368
9369         * read-rtl.c (md_name): New structure.
9370         (read_name): Take an md_name instead of a buffer pointer.
9371         Use the "string" field instead of strcpy when expanding constants.
9372         (read_constants): Remove the tmp_char argument.  Update the calls
9373         to read_name, using two local name buffers instead of the tmp_char
9374         argument.  Merge the constant-creation code.
9375         (read_conditions): Remove the tmp_char argument.  Update the calls
9376         to read_name, using a local name buffer instead of the tmp_char
9377         argument.
9378         (read_mapping): Replace tmp_char variable with a local name buffer.
9379         Update the calls to read_name.
9380         (read_rtx_1): Likewise.  Update the calls to read_constants and
9381         read_conditions.
9382
9383 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9384
9385         * Makefile.in (build/read-md.o): Depend on errors.h.
9386         * read-md.h (error_with_line): Declare.
9387         * read-md.c: Include errors.h.
9388         (message_with_line_1): New function, extracted from...
9389         (message_with_line): ...here.
9390         (error_with_line): New function.
9391         * genattrtab.c: If a call to message_with_line is followed by
9392         "have_error = 1;", replace both statements with a call to
9393         error_with_line.
9394         * genoutput.c: Likewise.
9395         * genpreds.c: Likewise.
9396         * genrecog.c: If a call to message_with_line is followed by
9397         "error_count++;", replace both statements with a call to
9398         error_with_line.
9399         (errorcount): Delete.
9400         (main): Don't check it.
9401         * gensupport.c: If a call to message_with_line is followed by
9402         "errors = 1;", replace both statements with a call to error_with_line.
9403         (errors): Delete.
9404         (process_define_cond_exec): Check have_error instead of errors.
9405         (init_md_reader_args_cb): Likewise.  Don't set errors.
9406
9407 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9408
9409         * read-md.h (read_md_file): Declare.
9410         (read_char, unread_char): New functions.
9411         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
9412         (read_quoted_string, read_string): Remove FILE * argument.
9413         * read-md.c (read_md_file): New variable.
9414         (read_md_filename, read_md_lineno): Update comments and remove
9415         unnecessary initialization.
9416         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
9417         (read_escape, read_quoted_string, read_braced_string, read_string):
9418         Remove FILE * argument.  Update calls accordingly, using read_char
9419         and unread_char instead of getc and ungetc.
9420         * rtl.h (read_rtx): Remove FILE * argument.
9421         * read-rtl.c (iterator_group): Remove FILE * argument from
9422         "find_builtin".
9423         (iterator_traverse_data): Remove "infile" field.
9424         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
9425         (add_mapping, read_name, read_constants, read_conditions)
9426         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
9427         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
9428         Remove file arguments from all calls, using read_char and unread_char
9429         instead of getc and ungetc.
9430         * gensupport.c (process_include): Preserve read_md_file around
9431         the include.  Set read_md_file to the handle of the included file.
9432         Update call to read_rtx.
9433         (init_md_reader_args_cb): Set read_md_file to the handle of the file
9434         and remove local FILE *.  Update calls to read_rtx.
9435
9436 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9437
9438         * read-md.h (read_rtx_lineno): Rename to...
9439         (read_md_lineno): ...this.
9440         (read_rtx_filename): Rename to...
9441         (read_md_filename): ...this.
9442         (copy_rtx_ptr_loc): Rename to...
9443         (copy_md_ptr_loc): ...this.
9444         (print_rtx_ptr_loc): Rename to...
9445         (print_md_ptr_loc): ...this.
9446         * read-md.c: Likewise.  Update references after renaming.
9447         (string_obstack): Replace RTL with MD in comment.
9448         (set_rtx_ptr_loc): Rename to...
9449         (set_md_ptr_loc): ...this.
9450         (get_rtx_ptr_loc): Rename to...
9451         (get_md_ptr_loc): ...this.
9452         * genconditions.c: Update references after renaming.
9453         * genemit.c: Likewise.
9454         * genoutput.c: Likewise.
9455         * genpreds.c: Likewise.
9456         * gensupport.c: Likewise.
9457         * read-rtl.c: Likewise.
9458
9459 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
9460
9461         * Makefile.in (READ_MD_H): New variable.
9462         (BUILD_RTL): Add build/read-md.o.
9463         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
9464         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
9465         (build/genattrtab.o, build/genconditions.o build/genemit.o)
9466         (build/genextract.o, build/genflags.o, build/genoutput.o)
9467         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
9468         (build/read-md.o): New rule.
9469         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
9470         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
9471         * coretypes.h: ...here.
9472         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
9473         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
9474         * genattr.c: Include read-md.h.
9475         * genattrtab.c: Likewise.
9476         * genconditions.c: Likewise.
9477         * genemit.c: Likewise.
9478         * genextract.c: Likewise.
9479         * genflags.c: Likewise.
9480         * genoutput.c: Likewise.
9481         * genpreds.c: Likewise.
9482         * genrecog.c: Likewise.
9483         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
9484         (join_c_conditions, print_c_condition, read_rtx_filename)
9485         (read_rtx_lineno): Move to read-md.h.
9486         * read-rtl.c: Include read-md.h.
9487         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
9488         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
9489         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
9490         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
9491         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
9492         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
9493         (read_braced_string, read_string): Move to read-md.c.
9494         (read_rtx): Move some initialization to init_md_reader and call
9495         init_md_reader here.
9496         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
9497         Move to read-md.h.
9498         * gensupport.c: Include read-md.h.
9499         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
9500         * read-md.h, read-md.c: New files.
9501
9502 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
9503
9504         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9505         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9506         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
9507         * config/moxie/moxie.c (moxie_function_value): Make static.
9508         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
9509         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9510
9511 2010-06-10  Martin Jambor  <mjambor@suse.cz>
9512
9513         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
9514         * dbgcnt.def (tree_sra): New counter.
9515         * tree-sra.c: Include dbgcnt.h.
9516         (gate_intra_sra): Check tree_sra debug counter.
9517
9518 2010-06-10  Martin Jambor  <mjambor@suse.cz>
9519
9520         PR tree-optimization/44258
9521         * tree-sra.c (build_access_subtree): Return false iff there is a
9522         partial overlap.
9523         (build_access_trees): Likewise.
9524         (analyze_all_variable_accesses): Disqualify candidates if
9525         build_access_trees returns true for them.
9526
9527 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
9528
9529         PR debug/41371
9530         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
9531         tail-recurse into canonical node.  Fast-forward over
9532         non-canonical VALUEs.
9533
9534 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
9535
9536         PR boostrap/44470
9537         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
9538         (*addsi_1_zext) <TYPE_LEA>: Likewise.
9539         (add lea splitter): Likewise.
9540         (add_zext lea splitter): Likewise.
9541
9542 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
9543
9544         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
9545
9546 2010-06-10  Jan Hubicka  <jh@suse.cz>
9547
9548         * df-problems.c (df_live_problem_data): Add live_bitmaps.
9549         (df_live_alloc): Initialize problem data and live_osbtacks.
9550         (df_live_finalize): Remove obstack, problem data; do not
9551         clear all bitmaps.
9552         (df_live_top_dump, df_live_bottom_dump): Do not dump old
9553         data when not allocated.
9554         (df_live_verify_solution_start): Do not allocate problem data.
9555         (df_live_verify_solution_end): Check if out is allocated.
9556         (struct df_md_problem_data): New structure.
9557         (df_md_alloc): Allocate problem data.
9558         (df_md_free): Free problem data; do not clear bitmaps.
9559
9560 2010-06-10  Jan Beulich  <jbeulich@novell.com>
9561
9562         PR bootstrap/37304
9563         * configure.ac: Replace $() with ${} when intending to expand
9564         variables rather than invoking commands.
9565         * configure: Re-generate.
9566
9567 2010-06-10  Jan Hubicka  <jh@suse.cz>
9568
9569         PR rtl-optimization/44460
9570         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
9571         TYPE_NEEDS_CONSTRUCTING sanity check.
9572
9573 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
9574
9575         * doc/include/fdl.texi: Move to GFDL version 1.3.
9576
9577         * doc/cpp.texi: Move to GFDL version 1.3.
9578         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
9579         * doc/gccint.texi: Move to GFDL version 1.3.
9580         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
9581         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
9582         * doc/invoke.texi: Move to GFDL version 1.3.
9583
9584 2010-06-09  Jan Hubicka  <jh@suse.cz>
9585
9586         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
9587         Break out from ...
9588         (propagate) ... here; swap the order.
9589
9590 2010-06-09  Jan Hubicka  <jh@suse.cz>
9591
9592         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
9593         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
9594         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
9595         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
9596
9597 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
9598
9599         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
9600         Do not the gather memory reference in the outer loop if the step
9601         is not a constant.
9602
9603 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
9604
9605         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
9606         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
9607         8 to 4.  Minor change of the related comments.
9608
9609 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
9610
9611         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
9612         the scev analysis when the variable is not used outside the loop
9613         in a close phi node: call compute_overall_effect_of_inner_loop.
9614
9615 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
9616
9617         * graphite-sese-to-poly.c (single_pred_cond): Renamed
9618         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
9619         (build_sese_conditions_before): Renamed call to single_pred_cond.
9620         (build_sese_conditions_after): Same.
9621
9622 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
9623
9624         * graphite-poly.h: Fix comments and indentation.
9625         * graphite-sese-to-poly.c: Same.
9626         (build_sese_conditions_before): Compute stmt and gbb only when needed.
9627         * tree-chrec.c: Fix comments and indentation.
9628         (tree-ssa-loop-niter.c): Same.
9629
9630 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
9631
9632         PR rtl-optimization/42461
9633         * dce.c (deletable_insn_p): Return true for const or pure calls again.
9634         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
9635
9636 2010-06-09  Jan Hubicka  <jh@suse.cz>
9637
9638         * bitmap.c (bitmap_and): Walk array forward.
9639         (bitmap_and_compl_into): Likewise.
9640         (bitmap_xor): Likewise.
9641         (bitmap_xor_into):  Likewise.
9642         (bitmap_equal_p): Likewise.
9643         (bitmap_intersect_p): Likewise.
9644         (bitmap_intersect_compl_p): Likewise.
9645         (bitmap_ior_and_into): Likewise.
9646         (bitmap_elt_copy): Likewise.
9647         (bitmap_and_compl): Likewise.
9648         (bitmap_elt_ior): Likewise.
9649
9650 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
9651
9652         * opts-common.c (prune_options): Ensure replacement argv array
9653         is correctly terminated by a NULL entry.
9654
9655 2010-06-09  Jan Hubicka  <jh@suse.cz>
9656
9657         * cgraph.h (varpool_first_static_initializer,
9658         varpool_next_static_initializer): Make checking only when
9659         checking enabled.
9660         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
9661         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
9662         gcc_assert to gcc_checking_assert.
9663         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
9664         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
9665         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
9666         op_iter_init_phiuse, op_iter_init_phidef,
9667         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
9668         gcc_checking_assert.
9669         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
9670         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
9671         partition_is_global, live_on_entry, live_on_exit,
9672         live_merge_and_clear): Likewise.
9673         * system.h (gcc_checking_assert): New macro.
9674         * gimple.h (set_bb_seq): Use gcc_checking_assert.
9675
9676 2010-06-09  Jason Merrill  <jason@redhat.com>
9677
9678         * Makefile.in (TAGS): Collect tags info from c-family.
9679
9680 2010-06-09  Jan Hubicka  <jh@suse.cz>
9681
9682         * gimple.h (gcc_gimple_checking_assert): New macro.
9683         (gimple_set_def_ops, gimple_set_use_ops,
9684         gimple_set_vuse, gimple_set_vdef,
9685         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
9686         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
9687         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
9688         gimple_asm_output_op, gimple_asm_output_op_ptr,
9689         gimple_asm_set_output_op, gimple_asm_clobber_op,
9690         gimple_asm_set_clobber_op, gimple_asm_label_op,
9691         gimple_asm_set_label_op, gimple_try_set_kind,
9692         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
9693         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
9694         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
9695         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
9696         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
9697         gimple_omp_for_set_initial, gimple_omp_for_final,
9698         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
9699         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
9700         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
9701         conditional with ENABLE_GIMPLE_CHECKING.
9702         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
9703
9704 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
9705
9706         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
9707         (get_computation_cost_at): Use it.
9708         (determine_use_iv_cost_condition): Likewise.
9709         (determine_iv_cost): Likewise.
9710
9711 2010-06-09  Richard Guenther  <rguenther@suse.de>
9712
9713         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
9714         replace constants.
9715
9716 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
9717
9718         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
9719
9720 2010-06-09  Martin Jambor  <mjambor@suse.cz>
9721
9722         PR tree-optimization/44423
9723         * tree-sra.c (dump_access): Dump also grp_assignment_read.
9724         (analyze_access_subtree): Pass negative allow_replacements to children
9725         if the current type is scalar.
9726
9727 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
9728
9729         PR testsuite/42843
9730         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
9731         * doc/plugins.texi (Plugin license check): Update information
9732         on type of plugin_is_GPL_compatible.
9733         * Makefile.in (PLUGINCC): Define as $(COMPILER).
9734         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
9735
9736 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
9737
9738         * config/arm/arm.c (thumb2_reorg): New function.
9739         (arm_reorg): Call it.
9740         * config/arm/thumb2.md (define_peephole2 for flag clobbering
9741         arithmetic operations): Delete.
9742
9743 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
9744
9745         PR target/44067
9746         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
9747         e500v2 target.
9748
9749 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
9750
9751         PR plugins/44459
9752         * gcc-plugin.h: Encapsulate all declarations in extern "C".
9753
9754 2010-06-08  Jan Hubicka  <jh@suse.cz>
9755
9756         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
9757         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
9758
9759 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
9760
9761         PR tree-optimization/39874
9762         PR middle-end/28685
9763         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
9764         Declare.
9765         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
9766         same_bool_result_p): New.
9767         (and_var_with_comparison, and_var_with_comparison_1,
9768         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
9769         (or_var_with_comparison, or_var_with_comparison_1,
9770         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
9771         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
9772         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
9773         of combine_comparisons.
9774         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
9775
9776 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
9777
9778         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9779         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9780         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
9781         pdp11_function_value_regno_p): New functions.
9782         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9783         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9784
9785 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
9786
9787         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
9788         Thumb-2 in the MINUS case.
9789
9790 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9791
9792         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
9793
9794         * doc/gty.texi (GTY Options): Document typed GC allocation and
9795         variable_size GTY option.
9796
9797         * ggc-internal.h: New.
9798
9799         * ggc.h: Update copyright year.
9800         (digit_string): Move to stringpool.c.
9801         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
9802         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
9803         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
9804         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
9805         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
9806         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
9807         (ggc_force_collect, ggc_get_size, ggc_statistics)
9808         (ggc_print_common_statistics): Move to ggc-internal.h.
9809         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
9810         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
9811         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
9812         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
9813         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
9814         (ggc_alloc_zone_pass_stat): Remove.
9815         (ggc_internal_alloc_stat, ggc_internal_alloc)
9816         (ggc_internal_cleared_alloc_stat): New.
9817         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
9818         (ggc_internal_vec_alloc_stat)
9819         (ggc_internal_cleared_vec_alloc_stat)
9820         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
9821         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
9822         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
9823         (ggc_cleared_alloc_ptr_array_two_args): New.
9824         (htab_create_ggc, splay_tree_new_ggc): Redefine.
9825         (ggc_splay_alloc): Change the type of the first argument to
9826         enum gt_types_enum.
9827         (ggc_alloc_string): Make macro.
9828         (ggc_alloc_string_stat): New.
9829         (ggc_strdup): Redefine.
9830         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
9831         (ggc_alloc_rtvec_sized): New.
9832         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
9833         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
9834         (ggc_internal_cleared_alloc_zone_stat)
9835         (ggc_internal_zone_alloc_stat)
9836         (ggc_internal_zone_cleared_alloc_stat)
9837         (ggc_internal_zone_vec_alloc_stat)
9838         (ggc_alloc_zone_rtx_def_stat)
9839         (ggc_alloc_zone_tree_node_stat)
9840         (ggc_alloc_zone_cleared_tree_node_stat)
9841         (ggc_alloc_cleared_gimple_statement_d_stat): New.
9842
9843         * ggc-common.c: Include ggc-internal.h.
9844         (ggc_internal_cleared_alloc_stat): Rename from
9845         ggc_alloc_cleared_stat.
9846         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
9847         (ggc_calloc): Remove.
9848         (ggc_cleared_alloc_htab_ignore_args): New.
9849         (ggc_cleared_alloc_ptr_array_two_args): New.
9850         (ggc_splay_alloc): Add obj_type parameter.
9851         (init_ggc_heuristics): Formatting fixes.
9852
9853         * ggc-none.c: Update copyright year.
9854         (ggc_alloc_stat): Rename to ggc_alloc_stat.
9855         (ggc_alloc_cleared_stat): Rename to
9856         ggc_internal_cleared_alloc_stat.
9857         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
9858
9859         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
9860         Remove references to ggc_alloc in comments.
9861         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
9862         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
9863         (new_ggc_zone, destroy_ggc_zone): Remove.
9864         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
9865
9866         * ggc-zone.c: Include ggc-internal.h.  Remove references to
9867         ggc_alloc in comments.
9868         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
9869         (ggc_internal_alloc_zone_pass_stat): New.
9870         (ggc_internal_cleared_alloc_zone_stat): New.
9871         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
9872         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
9873         (new_ggc_zone, destroy_ggc_zone): Remove.
9874
9875         * stringpool.c: Update copyright year.  Include ggc-internal.h
9876         (digit_vector): Make static.
9877         (digit_string): Moved from ggc.h.
9878         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
9879         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
9880
9881         * Makefile.in (GGC_INTERNAL_H): New.
9882         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
9883         $(GGC_INTERNAL_H) to dependencies.
9884
9885         * gentype.c: Update copyright year.
9886         (walk_type): Accept variable_size GTY option.
9887         (USED_BY_TYPED_GC_P): New macro.
9888         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
9889         whitespace at the end of strings.
9890         (get_type_specifier, variable_size_p): New functions.
9891         (alloc_quantity, alloc_zone): New enums.
9892         (write_typed_alloc_def): New function.
9893         (write_typed_struct_alloc_def): Likewise.
9894         (write_typed_typed_typedef_alloc_def): Likewise.
9895         (write_typed_alloc_defns): Likewise.
9896         (output_typename, write_splay_tree_allocator_def): Likewise.
9897         (write_splay_tree_allocators): Likewise.
9898         (main): Call write_typed_alloc_defns and
9899         write_splay_tree_allocators.
9900
9901         * lto-streamer.h (lto_file_decl_data_ptr): New.
9902
9903         * passes.c (order): Define using cgraph_node_ptr.
9904
9905         * strinpool.c (struct string_pool_data): Declare nested_ptr using
9906         ht_identifier_ptr.
9907
9908         * gimple.h (union gimple_statement_d): Likewise.
9909
9910         * rtl.h (struct rtx_def): Likewise.
9911         (struct rtvec_def): Likewise.
9912
9913         * tree.h (union tree_node): Likewise.
9914
9915         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
9916
9917         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
9918
9919         * tree-scalar-evolution.c (scev_initialize): Likewise.
9920
9921         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
9922
9923         * dwarf2asm.c (dw2_force_const_mem): Likewise.
9924
9925         * omp-low.c (lower_omp_critical): Likewise.
9926
9927         * bitmap.h (struct bitmap_head_def): Update comment to not
9928         reference ggc_alloc.
9929
9930         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
9931
9932         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
9933
9934         * ipa-prop.c (duplicate_ggc_array): Rename to
9935         duplicate_ipa_jump_func_array.  Use typed GC allocation.
9936         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
9937
9938         * gimple.c (gimple_alloc_stat): Use
9939         ggc_alloc_cleared_gimple_statement_d_stat.
9940
9941         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
9942
9943         * tree.c (make_node_stat): Use
9944         ggc_alloc_zone_cleared_tree_node_stat.
9945         (make_tree_vec_stat): Likewise.
9946         (build_vl_exp_stat): Likewise.
9947         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
9948         (make_tree_binfo_stat): Likewise.
9949         (tree_cons_stat): Likewise.
9950
9951         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
9952         (shallow_copy_rtx_stat): Likewise.
9953         (make_node_stat): Likewise.
9954
9955         * lto-symtab.c: Fix comment.
9956
9957         * tree-cfg.c (create_bb): Update comment to not reference
9958         ggc_alloc_cleared.
9959         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
9960
9961         * varpool.c (varpool_node): Use typed GC allocation.
9962         (varpool_extra_name_alias): Likewise.
9963
9964         * varasm.c (emutls_decl): Likewise.
9965         (get_unnamed_section): Likewise.
9966         (get_noswitch_section): Likewise.
9967         (get_section): Likewise.
9968         (get_block_for_section): Likewise.
9969         (build_constant_desc): Likewise.
9970         (create_constant_pool): Likewise.
9971         (force_const_mem): Likewise.
9972
9973         * tree.c (build_vl_exp_stat): Likewise.
9974         (build_real): Likewise.
9975         (build_string): Likewise.
9976         (decl_debug_expr_insert): Likewise.
9977         (decl_value_expr_insert): Likewise.
9978         (type_hash_add): Likewise.
9979         (build_omp_clause): Likewise.
9980
9981         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
9982
9983         * tree-ssa.c (init_tree_ssa): Likewise.
9984
9985         * tree-ssa-structalias.c (heapvar_insert): Likewise.
9986
9987         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
9988
9989         * tree-ssa-loop-niter.c (record_estimate): Likewise.
9990
9991         * tree-ssa-alias.c (get_ptr_info): Likewise.
9992
9993         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
9994
9995         * tree-phinodes.c (allocate_phi_node): Likewise.
9996
9997         * tree-iterator.c (tsi_link_before): Likewise.
9998         (tsi_link_after): Likewise.
9999
10000         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
10001
10002         * tree-dfa.c (create_var_ann): Likewise.
10003
10004         * tree-cfg.c (create_bb): Likewise.
10005
10006         * toplev.c (alloc_for_identifier_to_locale): Likewise.
10007         (general_init): Likewise.
10008
10009         * stringpool.c (stringpool_ggc_alloc): Likewise.
10010         (gt_pch_save_stringpool): Likewise.
10011
10012         * sese.c (if_region_set_false_region): Likewise.
10013
10014         * passes.c (do_per_function_toporder): Likewise.
10015
10016         * optabs.c (set_optab_libfunc): Likewise.
10017         (set_conv_libfunc): Likewise.
10018
10019         * lto-symtab.c (lto_symtab_register_decl): Likewise.
10020
10021         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
10022         (input_eh_region): Likewise.
10023         (input_eh_lp): Likewise.
10024         (make_new_block): Likewise.
10025         (unpack_ts_real_cst_value_fields): Likewise.
10026
10027         * lto-section-in.c (lto_new_in_decl_state): Likewise.
10028
10029         * lto-cgraph.c (input_node_opt_summary): Likewise.
10030
10031         * loop-init.c (loop_optimizer_init): Likewise.
10032
10033         * lambda.h (lambda_vector_new): Likewise.
10034
10035         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
10036
10037         * ira.c (update_equiv_regs): Likewise.
10038
10039         * ipa.c (cgraph_node_set_new): Likewise.
10040         (cgraph_node_set_add): Likewise.
10041         (varpool_node_set_new): Likewise.
10042         (varpool_node_set_add): Likewise.
10043
10044         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
10045         (duplicate_ipa_jump_func_array): Likewise.
10046         (ipa_read_node_info): Likewise.
10047
10048         * ipa-cp.c (ipcp_create_replace_map): Likewise.
10049
10050         * integrate.c (get_hard_reg_initial_val): Likewise.
10051
10052         * gimple.c (gimple_alloc_stat): Likewise.
10053         (gimple_build_omp_for): Likewise.
10054         (gimple_seq_alloc): Likewise.
10055         (gimple_copy): Likewise.
10056
10057         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
10058         (gsi_insert_after_without_update): Likewise.
10059
10060         * function.c (add_frame_space): Likewise.
10061         (insert_temp_slot_address): Likewise.
10062         (assign_stack_temp_for_type): Likewise.
10063         (allocate_struct_function): Likewise.
10064         (types_used_by_var_decl_insert): Likewise.
10065
10066         * except.c (init_eh_for_function): Likewise.
10067         (gen_eh_region): Likewise.
10068         (gen_eh_region_catch): Likewise.
10069         (gen_eh_landing_pad): Likewise.
10070         (add_call_site): Likewise.
10071
10072         * emit-rtl.c (get_mem_attrs): Likewise.
10073         (get_reg_attrs): Likewise.
10074         (start_sequence): Likewise.
10075         (init_emit): Likewise.
10076
10077         * dwarf2out.c (new_cfi): Likewise.
10078         (queue_reg_save): Likewise.
10079         (dwarf2out_frame_init): Likewise.
10080         (new_loc_descr): Likewise.
10081         (find_AT_string): Likewise.
10082         (new_die): Likewise.
10083         (add_var_loc_to_decl): Likewise.
10084         (clone_die): Likewise.
10085         (clone_as_declaration): Likewise.
10086         (break_out_comdat_types): Likewise.
10087         (new_loc_list): Likewise.
10088         (loc_descriptor): Likewise.
10089         (add_loc_descr_to_each): Likewise.
10090         (add_const_value_attribute): Likewise.
10091         (tree_add_const_value_attribute): Likewise.
10092         (add_comp_dir_attribute): Likewise.
10093         (add_name_and_src_coords_attributes): Likewise.
10094         (lookup_filename): Likewise.
10095         (store_vcall_insn): Likewise.
10096         (dwarf2out_init): Likewise.
10097
10098         * dbxout.c (dbxout_init): Likewise.
10099
10100         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
10101
10102         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
10103
10104         * config/score/score7.c (score7_output_external): Likewise.
10105
10106         * config/score/score3.c (score3_output_external): Likewise.
10107
10108         * config/s390/s390.c (s390_init_machine_status): Likewise.
10109
10110         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
10111         (rs6000_init_machine_status): Likewise.
10112         (output_toc): Likewise.
10113
10114         * config/pa/pa.c (pa_init_machine_status): Likewise.
10115         (get_deferred_plabel): Likewise.
10116
10117         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
10118
10119         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
10120
10121         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
10122
10123         * config/mep/mep.c (mep_init_machine_status): Likewise.
10124         (mep_note_pragma_flag): Likewise.
10125
10126         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
10127
10128         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
10129
10130         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
10131
10132         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
10133         (i386_pe_maybe_record_exported_symbol): Likewise.
10134
10135         * config/i386/i386.c (get_dllimport_decl): Likewise.
10136         (ix86_init_machine_status): Likewise.
10137         (assign_386_stack_local): Likewise.
10138
10139         * config/frv/frv.c (frv_init_machine_status): Likewise.
10140
10141         * config/darwin.c (machopic_indirection_name): Likewise.
10142
10143         * config/cris/cris.c (cris_init_machine_status): Likewise.
10144
10145         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
10146
10147         * config/avr/avr.c (avr_init_machine_status): Likewise.
10148
10149         * config/arm/arm.c (arm_init_machine_status): Likewise.
10150
10151         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
10152         (alpha_need_linkage): Likewise.
10153         (alpha_use_linkage): Likewise.
10154
10155         * cgraph.c (cgraph_allocate_node): Likewise.
10156         (cgraph_create_edge_1): Likewise.
10157         (cgraph_create_indirect_edge): Likewise.
10158         (cgraph_add_asm_node): Likewise.
10159
10160         * cfgrtl.c (init_rtl_bb_info): Likewise.
10161
10162         * cfgloop.c (alloc_loop): Likewise.
10163         (rescan_loop_exit): Likewise.
10164
10165         * cfg.c (init_flow): Likewise.
10166         (alloc_block): Likewise.
10167         (unchecked_make_edge): Likewise.
10168
10169         * c-parser.c (c_parse_init): Likewise.
10170         (c_parse_file): Likewise.
10171
10172         * c-decl.c (bind): Likewise.
10173         (record_inline_static): Likewise.
10174         (push_scope): Likewise.
10175         (make_label): Likewise.
10176         (lookup_label_for_goto): Likewise.
10177         (finish_struct): Likewise.
10178         (finish_enum): Likewise.
10179         (c_push_function_context): Likewise.
10180
10181         * bitmap.c (bitmap_element_allocate): Likewise.
10182         (bitmap_gc_alloc_stat): Likewise.
10183
10184         * alias.c (record_alias_subset): Likewise.
10185         (init_alias_analysis): Likewise.
10186
10187 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
10188
10189         * fold-const.c (fold_comparison): Remove redundant parenthesis.
10190         * tree-inline.c (expand_call_inline): Pass translated return value of
10191         cgraph_inline_failed_string to diagnostic function.
10192
10193 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
10194             Shujing Zhao  <pearly.zhao@oracle.com>
10195
10196         PR c/37724
10197         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
10198         implicit bad conversions is initialization.
10199         (error_init): Use gmsgid instead of msgid for argument name and change
10200         the call for error.
10201         (pedwarn_init): Use gmsgid instead of msgid for argument name and
10202         change the call for pedwarn.
10203         (warning_init): Use gmsgid instead of msgid for argument name and
10204         change the call for warning.
10205
10206 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
10207
10208         * config/mips/mips-protos.h (mips_print_operand): Delete.
10209         (mips_print_operand_address): Delete.
10210         * config/mips/mips.h (mips_print_operand_punct): Delete.
10211         (PRINT_OPERAND): Delete.
10212         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10213         (PRINT_OPERAND_ADDRESS): Delete.
10214         * config/mips/mips.c (mips_print_operand_punct): Make static.
10215         (mips_print_operand_address): Make static.
10216         (mips_print_operand): Make static.  Call
10217         mips_print_operand_punct_valid_p.
10218         (mips_print_operand_punct_valid_p): New function.
10219         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10220         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10221
10222 2010-06-07  Jan Hubicka  <jh@suse.cz>
10223
10224         PR middle-end/44454
10225         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
10226         are allocated.
10227
10228 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
10229
10230         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
10231         name of RECORD.
10232
10233 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10234
10235         * doc/sourcebuild.texi (Effective-Target Keywords, Other
10236         attributes): Document gas.
10237
10238 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
10239
10240         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
10241         <TYPE_LEA>: Split instruction.
10242         <default>: Remove alternative 2 handling.
10243         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
10244         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
10245         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
10246
10247         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
10248         (ashift_zext lea splitter): Use DImode for multiplication.
10249
10250         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
10251         to generate addition.
10252
10253 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
10254
10255         * common.opt (fira-verbose): Use Var.
10256         (fpcc-struct-return): Use Init instead of VarExists.
10257         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
10258         toplev.c.
10259         * flags.h (flag_signed_char, flag_short_enums,
10260         flag_pcc_struct_return, flag_ira_verbose,
10261         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
10262         * toplev.c (flag_detailed_statistics, flag_signed_char,
10263         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
10264         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
10265         * toplev.h (flag_crossjumping, flag_if_conversion,
10266         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
10267         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
10268         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
10269         flag_cprop_registers, time_report, flag_ira_loop_pressure,
10270         flag_ira_coalesce, flag_ira_move_spills,
10271         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
10272
10273 2010-06-07  Jan Hubicka  <jh@suse.cz>
10274
10275         * df-core.c (df_analyze_problem): Do verification after allocation.
10276
10277         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
10278         (df_lr_alloc): Initialize problem data; move bitmaps to
10279         lr_bitmaps obstack.
10280         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
10281         (df_lr_verify_solution_start): Do not initialize problem data;
10282         allocate bitmaps in lr_bitmaps.
10283         (df_lr_verify_solution_end): Do not free problem data.
10284
10285 2010-06-07  Jan Hubicka  <jh@suse.cz>
10286
10287         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
10288         if caller is noreturn.
10289         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
10290         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
10291         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
10292         * ipa-pure-const.c (check_decl): Add IPA parameter.
10293         (state_from_flags): New function.
10294         (better_state, worse_state): New functions.
10295         (check_call): When in IPA mode, do not care about callees.
10296         (check_load, check_store): Update.
10297         (check_ipa_load, check_ipa_store): New.
10298         (check_stmt): When in IPA mode, use IPA checkers.
10299         (analyze_function): Use state_from_flags.
10300         (propagate): Check indirect edges and references.
10301
10302 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
10303
10304         PR rtl-optimization/44404
10305         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
10306         of count_occurrences to see if it's safe to modify mem_insn.
10307
10308 2010-06-07  Richard Guenther  <rguenther@suse.de>
10309
10310         * gimplify.c (gimplify_cleanup_point_expr): For empty body
10311         and EH-only cleanup drop the cleanup instead of inserting it
10312         unconditionally.
10313
10314 2010-06-07  Ira Rosen  <irar@il.ibm.com>
10315
10316         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
10317         documentation.
10318         * targhooks.c (default_builtin_vectorization_cost): New function.
10319         * targhooks.h (default_builtin_vectorization_cost): Declare.
10320         * target.h (enum vect_cost_for_stmt): Define.
10321         (builtin_vectorization_cost): Change argument and comment.
10322         * tree-vectorizer.h: Remove cost model macros.
10323         * tree-vect-loop.c: Include target.h.
10324         (vect_get_cost): New function.
10325         (vect_estimate_min_profitable_iters): Replace cost model macros with
10326         calls to vect_get_cost.
10327         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
10328         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
10329         default implementation.
10330         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
10331         calls to target hook builtin_vectorization_cost.
10332         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
10333         Likewise.
10334         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
10335         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
10336         implementation to return costs.
10337         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
10338         * config/spu/spu.h: Remove vectorizer cost model macros.
10339         * config/i386/i386.h: Likewise.
10340         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
10341         a call to target hook builtin_vectorization_cost.
10342
10343 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
10344
10345         PR target/44319
10346         * config/i386/i386.c (override_options): Turn zee pass on for level 2
10347         and above and defer till target is known.
10348         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
10349         turn off otherwise.
10350
10351 2010-05-25  Jan Hubicka  <jh@suse.cz>
10352
10353         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
10354         (df_compact_blocks): Likewise.
10355         * df.h (struct df): Turn hardware_regs_used,
10356         regular_block_artificial_uses, eh_block_artificial_uses,
10357         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
10358         bitmap_head.
10359         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
10360         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
10361         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
10362         df_scan_blocks, df_insn_delete, df_insn_rescan,
10363         df_insn_rescan_debug_internal, df_insn_rescan_all,
10364         df_process_deferred_rescans, df_process_deferred_rescans,
10365         df_notes_rescan, df_get_call_refs, df_get_call_refs,
10366         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
10367         df_record_entry_block_defs, df_record_exit_block_uses,
10368         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
10369         df_scan_verify): Update.
10370
10371 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
10372
10373         PR c++/44188
10374         * c-common.c (is_typedef_decl): Move this definition ...
10375         * tree.c (is_typedef_decl): ... here.
10376         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
10377         * c-common.h (is_typedef_decl): Move this declaration ...
10378         * tree.h (is_typedef_decl): ... here.
10379         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
10380         * dwarf2out.c (is_naming_typedef_decl): New function.
10381         (gen_tagged_type_die): Split out of ...
10382         (gen_type_die_with_usage): ... this function. When an anonymous
10383         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
10384         is emitted for the typedef.
10385         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
10386         anonymous tagged types.
10387
10388 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10389
10390         PR c/20000
10391         * c-decl.c (grokdeclarator): Delete warning.
10392
10393 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
10394
10395         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
10396         newly built CALL_EXPR.
10397         * tree-profile.c (tree_profiling): Don't profile functions produced
10398         for built-in stuff.
10399
10400 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
10401
10402         PR bootstrap/44427
10403         PR bootstrap/44428
10404         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
10405         endianness-independent.
10406
10407 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
10408
10409         * c-common.c: Move to c-family/.
10410         * c-common.def: Likewise.
10411         * c-common.h: Likewise.
10412         * c-cppbuiltin.c: Likewise.
10413         * c-dump.c: Likewise.
10414         * c-format.c: Likewise.
10415         * c-format.h : Likewise.
10416         * c-gimplify.c: Likewise.
10417         * c-lex.c: Likewise.
10418         * c-omp.c: Likewise.
10419         * c.opt: Likewise.
10420         * c-opts.c: Likewise.
10421         * c-pch.c: Likewise.
10422         * c-ppoutput.c: Likewise.
10423         * c-pragma.c: Likewise.
10424         * c-pragma.h: Likewise.
10425         * c-pretty-print.c: Likewise.
10426         * c-pretty-print.h: Likewise.
10427         * c-semantics.c: Likewise.
10428         * stub-objc.c: Likewise.
10429
10430         * gengtype.c (get_file_langdir): Special-case files in c-family/.
10431         (get_output_file_with_visibility): Fix name for c-common.h.
10432         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
10433
10434         * c-tree.h: Update include path for moved files.
10435         * c-lang.c: Likewise.
10436         * c-lang.h: Likewise.
10437         * c-parser.c: Likewise.
10438         * c-convert.c: Likewise.
10439         * c-decl.c: Likewise.
10440         * c-objc-common.c: Likewise.
10441         * configure.ac: Make sure c-family/ exists in the build directory.
10442         * configure: Regenerate.
10443         * Makefile.in: Update paths for moved files.  Regroup files per
10444         location and update dependencies.  Move generated_files down after
10445         ALL_GTFILES_H.
10446
10447         * config/spu/spu-c.c: Update paths for moved files.
10448         * config/mep/mep-pragma.c: Likewise.
10449         * config/darwin-c.c: Likewise.
10450         * config/i386/msformat-c.c: Likewise.
10451         * config/i386/i386-c.c: Likewise.
10452         * config/avr/avr-c.c: Likewise.
10453         * config/sol2-c.c: Likewise.
10454         * config/ia64/ia64-c.c: Likewise.
10455         * config/rs6000/rs6000-c.c: Likewise.
10456         * config/arm/arm.c: Likewise.
10457         * config/arm/arm-c.c: Likewise.
10458         * config/h8300/h8300.c: Likewise.
10459         * config/v850/v850-c.c: Likewise.
10460
10461         * config/t-darwin: Fix dependencies for moved files.
10462         * config/t-sol2: Fix dependencies for moved files.
10463         * config/mep/t-mep: Fix dependencies for moved files.
10464         * config/ia64/t-ia64: Fix dependencies for moved files.
10465         * config/rs6000/t-rs6000: Fix dependencies for moved files.
10466         * config/v850/t-v850: Fix dependencies for moved files.
10467         * config/v850/t-v850e: Fix dependencies for moved files.
10468
10469         * config/m32c/m32c-pragma.c
10470
10471         * po/exgettext: Look in c-family/ also.
10472
10473 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10474
10475         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
10476         (mark_control_dependent_edges_necessary): Call it instead of marking
10477         the last statement manually.
10478         (propagate_necessity): Likewise.
10479
10480 2010-06-05  Jan Hubicka  <jh@suse.cz>
10481
10482         * basic-block.h (compute_dominance_frontiers): Updated.
10483         (compute_idf): Likewise.
10484
10485         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
10486         for dominance frontiers.
10487         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
10488         (insert_updated_phi_nodes_for): Likewise.
10489         (update_ssa): Likewise.
10490         * cfganal.c (compute_dominance_frontiers_1): Likewise.
10491         (compute_dominance_frontiers): Likewise.
10492         (compute_idf): Likewise.
10493         * df-problems.c (df_md_local_compute): Likewise.
10494
10495 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
10496
10497         * target.h (struct gcc_target): Add memory_move_cost field.
10498         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
10499         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
10500         * targhooks.c (default_memory_move_cost): New function.
10501         * targhooks.h (default_memory_move_cost): Declare function.
10502         * reload.h (memory_move_cost): Declare.
10503         (memory_move_secondary_cost): Change type of 'in' argument to bool.
10504         * reginfo.c (memory_move_cost): New function.
10505         (memory_move_secondary_cost): Change type of 'in' argument to bool.
10506         * ira.h (ira_memory_move_cost): Update comment.
10507         * ira.c (ira_memory_move_cost): Update comment.
10508         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
10509         with memory_move_cost.
10510         * postreload.c (reload_cse_simplify_set): (Ditto.).
10511         * reload1.c (choose_reload_regs): (Ditto.).
10512         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
10513         (MEMORY_MOVE_COST):  Revise documentation.
10514
10515         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
10516         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
10517         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
10518         type of 'in' argument to bool.
10519         (TARGET_MEMORY_MOVE_COST): Define.
10520
10521 2010-06-05  Jan Hubicka  <jh@suse.cz>
10522
10523         * ipa-pure-const.c (propagate): Fix typo in handling of functions
10524         that cannot return.  Be more careful when merging the results with
10525         previously known ones.
10526
10527 2010-06-05  Matthias Klose  <doko@ubuntu.com>
10528
10529         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
10530         function to add the -iplugindir option.
10531         (find_plugindir_spec_function): Add new declaration and function.
10532         (static_spec_func): Use it for "find-plugindir".
10533
10534 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
10535
10536         PR c++/44361
10537         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
10538         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
10539         statement expression.
10540
10541 2010-06-05  Jan Hubicka  <jh@suse.cz>
10542
10543         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
10544         (df_rd_problem_data): Convert sparse_invalidated_by_call,
10545         dense_invalidated_by_call to bitmap head.
10546         (df_rd_alloc, df_rd_bb_local_compute_process_def,
10547         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
10548         df_rd_start_dump, df_lr_verify_transfer_functions,
10549         df_live_verify_transfer_functions, df_chain_create_bb,
10550         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
10551         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
10552         df_simulate_one_insn_forwards, df_md_alloc,
10553         df_md_bb_local_compute_process_def,
10554         df_md_bb_local_compute_process_def, df_md_local_compute,
10555         df_md_transfer_function df_md_free): Update.
10556
10557 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
10558
10559         PR c/44322
10560         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
10561         target type for ADDR_EXPR; require no changes to qualifiers except
10562         for function types.
10563         * c-tree.h (c_build_type_variant): Remove.
10564
10565 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
10566
10567         * genautomata.c (get_excl_set): Do work per element, not per char.
10568         (check_presence_pattern_sets): Similar.
10569         (check_absence_pattern_sets): Similar.
10570
10571 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
10572
10573         * genautomata.c (curr_state_pass_num): Delete.
10574         (min_issue_delay_pass_states): Delete.
10575         (min_issue_delay): Delete.
10576         (initiate_min_issue_delay_pass_states): Delete.
10577         (output_min_issue_delay_table): Compute min_issue_delay_vect
10578         using a breadth-first search variant.
10579         (output_tables): Don't call initiate_min_issue_delay_pass_states.
10580
10581 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
10582
10583         PR boostrap/44421
10584         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
10585         (df_byte_lr_bb_local_compute): Likewise.
10586
10587 2010-06-03  Jason Merrill  <jason@redhat.com>
10588
10589         Implement noexcept operator (5.3.7)
10590         * c-common.c (c_common_reswords): Add noexcept.
10591         * c-common.h (enum rid): Add RID_NOEXCEPT.
10592
10593 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
10594
10595         * config/darwin-driver.c (darwin_default_min_version): Use
10596         GCC-specific formats in diagnostics.
10597         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
10598         diagnostics.
10599         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
10600         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
10601         eval_spec_function, handle_braces, process_brace_body, main,
10602         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
10603         getenv_spec_function, compare_version_strings,
10604         version_compare_spec_function): Use GCC-specific formats in
10605         diagnostics.
10606
10607 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
10608
10609         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
10610         that operand 0 and operand 1 are equal.
10611         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
10612         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
10613         and operand 1 are equal.
10614         <default>: Ditto.  Remove ??? comment.
10615         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
10616         and operand 1 are equal.
10617         <default>: Ditto.  Remove ??? comment.
10618         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
10619         are equal.
10620         (*add<mode>_4) <default>: Ditto.
10621         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
10622
10623 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
10624
10625         * config/i386/i386-protos.h (ix86_print_operand): Declare.
10626         * config/i386/i386.c (ix86_print_operand): Make non-static.
10627         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
10628         * output.h (output_operand): Declare.
10629         * final.c (output_operand): Make non-static.
10630
10631 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
10632
10633         PR rtl-optimization/44013
10634         * sched-deps.c (add_dependence_list_and_free): Don't free lists
10635         when processing debug insns.
10636
10637         PR debug/41371
10638         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
10639         recursing.  Check that recursion is bounded.  Rename inner var
10640         to avoid hiding incoming argument.
10641
10642 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
10643
10644         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
10645         operands[2] == 255.
10646         (*addqi_3): Ditto.
10647         (*addqi_4): Ditto.
10648         (*addqi_5): Ditto.
10649         (*addqi_ext_1_rex64): Ditto.
10650         (*addqi_ext_1): Ditto.
10651
10652         (*addqi_4): Check for incdec_operand in QImode.
10653
10654         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
10655         using SWI mode iterator.
10656         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
10657         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
10658         mode iterator.
10659         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
10660         using SWI mode iterator.
10661
10662 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10663
10664         PR c/25880
10665         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
10666         * c-format.c (gcc_diag_flag_specs): Add hash.
10667         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
10668         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
10669         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
10670         pp_c_cv_qualifiers. Handle qualifiers spelling here.
10671         (pp_c_type_qualifier_list): Call the function above.
10672         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
10673         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
10674         (WARN_FOR_QUALIFIERS): New macro.
10675         (convert_for_assignment): Use it.
10676
10677 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
10678
10679         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
10680
10681 2010-06-04  Jan Hubicka  <jh@suse.cz>
10682
10683         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
10684         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
10685         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
10686         DF_BYTE_LR_OUT): Update for embedded bitmaps.
10687         * fwprop.c (single_def_use_enter_block): Likewise.
10688         * ddg.c (create_ddg_dep_from_intra_loop_link,
10689         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
10690         * loop-iv.c (latch_dominating_def): Likewise.
10691         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
10692         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
10693         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
10694         df_rd_transfer_function, df_rd_top_dump,
10695         df_rd_bottom_dump): Update.
10696         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
10697         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
10698         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
10699         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
10700         df_lr_verify_solution_start, df_lr_verify_solution_end,
10701         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
10702         df_live_free_bb_info, df_live_alloc, df_live_reset,
10703         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
10704         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
10705         df_live_verify_solution_start, df_live_verify_solution_end,
10706         df_live_verify_transfer_functions, df_chain_create_bb,
10707         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
10708         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
10709         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
10710         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
10711         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
10712         df_byte_lr_transfer_function, df_byte_lr_top_dump,
10713         df_byte_lr_bottom_dump, df_create_unused_note,
10714         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
10715         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
10716         df_md_transfer_function, df_md_init, df_md_confluence_0,
10717         df_md_confluence_n,
10718         df_md_top_dump, df_md_bottom_dump): Update.
10719         (struct df_lr_problem_data): Embedd bitmap headers.
10720
10721 2010-06-04  Jan Hubicka  <jh@suse.cz>
10722
10723         * dce.c (dce_process_block): Do not re-scan already marked
10724         instructions.
10725
10726 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
10727
10728         PR rtl-optimization/39871
10729         PR rtl-optimization/40615
10730         PR rtl-optimization/42500
10731         PR rtl-optimization/42502
10732         * ira.c (init_reg_equiv_memory_loc: New function.
10733         (ira): Call it twice.
10734         * reload.h (calculate_elim_costs_all_insns): Declare.
10735         * ira-costs.c: Include "reload.h".
10736         (regno_equiv_gains): New static variable.
10737         (init_costs): Allocate it.
10738         (finish_costs): Free it.
10739         (ira_costs): Call calculate_elim_costs_all_insns.
10740         (find_costs_and_classes): Take estimated elimination costs
10741         into account.
10742         (ira_adjust_equiv_reg_cost): New function.
10743         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
10744         * reload1.c (init_eliminable_invariants, free_reg_equiv,
10745         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
10746         (elim_bb): New static variable.
10747         (reload): Move code out of here into init_eliminable_invariants and
10748         free_reg_equiv.  Call them.
10749         (calculate_elim_costs_all_insns): New function.
10750         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
10751         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
10752         but call note_reg_elim_costly if we turned a valid memory address
10753         into an invalid one.
10754         * Makefile.in (ira-costs.o): Depend on reload.h.
10755
10756 2010-06-04  Julian Brown  <julian@codesourcery.com>
10757
10758         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
10759         for pool ranges.
10760
10761 2010-06-04  Richard Guenther  <rguenther@suse.de>
10762
10763         PR lto/41584
10764         * cgraph.h (struct varpool_node): Add lto_file_data field.
10765         * lto-cgraph.c (input_varpool_node): Initialize it.
10766
10767 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
10768
10769         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
10770         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
10771         predicate in "type" attribute calculation.
10772         (*addsi_1_zext): Ditto.
10773         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
10774         (*addsi_2_zext): Ditto.
10775         (*add<mode>_3): Ditto.
10776         (*addsi_3_zext): Ditto.
10777         (*add<mode>_5): Ditto.
10778
10779 2010-06-03  Jan Hubicka  <jh@suse.cz>
10780
10781         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
10782         of bitmap_bit_p.
10783         * cfganal.c (compute_dominance_frontiers_1): Likewise.
10784
10785 2010-06-03  Jan Hubicka  <jh@suse.cz>
10786
10787         * df-problems.c (df_create_unused_note, df_note_bb_compute):
10788         micro-optimize the checks when to add new note.
10789
10790 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
10791
10792         * final.c (output_asm_insn): Call
10793         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
10794         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
10795         (output_address): Call targetm.asm_out.print_operand_address.
10796         Update comments.
10797         * target.h (struct gcc_target): Add print_operand,
10798         print_operand_address, and print_operand_punct_valid_p fields.
10799         * targhooks.h (default_print_operand): Declare.
10800         (default_print_operand_address): Declare.
10801         (default_print_operand_punct_valid_p): Declare.
10802         * targhooks.c (default_print_operand): Define.
10803         (default_print_operand_address): Define.
10804         (default_print_operand_punct_valid_p): Define.
10805         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
10806         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
10807         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
10808         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
10809         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
10810         * vmsdbgout.c (addr_const_to_string): Update comment.
10811         * config/i386/i386.c (print_operand): Rename to...
10812         (ix86_print_operand): ...this.  Make static.
10813         (print_operand_address): Rename to...
10814         (ix86_print_operand_address): ...this.  Make static.  Call
10815         ix86_print_operand instead of PRINT_OPERAND.
10816         (ix86_print_operand_punct_valid_p): New function.
10817         (TARGET_PRINT_OPERAND): Define.
10818         (TARGET_PRINT_OPERAND_ADDRESS): Define.
10819         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10820         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
10821         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10822         (PRINT_OPERAND): Delete.
10823         (PRINT_OPERAND_ADDRESS): Delete.
10824         * config/i386/i386-protos.h (print_operand): Delete prototype.
10825         (print_operand_address): Delete prototype.
10826
10827 2010-06-03  Richard Guenther  <rguenther@suse.de>
10828
10829         PR tree-optimization/44403
10830         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10831         Preserve pointer qualifiers.
10832         (vect_create_data_ref_ptr): Likewise.
10833
10834 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
10835
10836         PR c++/44294
10837         * defaults.h (MAX_FIXED_MODE_SIZE): New.
10838
10839         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
10840
10841 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
10842
10843         PR debug/44375
10844         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
10845         return false if merging the bbs would lead to goto_locus
10846         location being lost from the IL.
10847
10848 2010-06-03  Jan Hubicka  <jh@suse.cz>
10849             Jakub Jelinek  <jakub@redhat.com>
10850
10851         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
10852         set->regs[i] is NULL or has just one entry.
10853
10854 2010-06-03  Jan Hubicka  <jh@suse.cz>
10855
10856         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
10857         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
10858
10859 2010-06-03  Paul Brook  <paul@codesourcery.com>
10860
10861         * config/arm/arm.c (FL_TUNE): Define.
10862         (arm_default_cpu, arm_cpu_select): Remove.
10863         (all_cores): Populate core field.
10864         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
10865         (arm_find_cpu): New function.
10866         (arm_handle_option): Lookup cpu/architecture names.
10867         (arm_override_options): Cleanup mcpu/march/mtune handling.
10868         (arm_file_start): Ditto.
10869
10870 2010-06-03  Alan Modra  <amodra@gmail.com>
10871
10872         PR target/44169
10873         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
10874         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
10875         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
10876         (rs6000_emit_load_toc_table): Likewise.
10877
10878 2010-06-02  Jan Hubicka  <jh@suse.cz>
10879
10880         * passes.c (init_optimization_passes): Put ipa reference
10881         after ipa pure-const.
10882
10883 2010-06-02  Jan Hubicka  <jh@suse.cz>
10884
10885         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
10886         calls_read_all and calls_write_all.
10887         (get_reference_optimization_summary): Fix formatting.
10888         (is_proper_for_analysis): Check that decl is not readonly.
10889         (propagate_bits): Check CONST/PURE/noreturn flags.
10890         (ipa_init): Move all_module_statics to optimization_summary_obstack.
10891         (analyze_function): Ignore indirect edges.
10892         (copy_global_bitmap): For all module statics, do nothing.
10893         (generate_summary): Do not print calls_read_all/calls_write_all.
10894         (read_write_all_from_decl): Take node as argument; check
10895         cgraph_node_cannot_return.
10896         (propagate): Reorganize read_all/write_all computation;
10897         check indirect edges; check ecf flags; use all_module_statics
10898         in the results; do not free all_module_statics.
10899         (stream_out_bitmap): Handle all_module_statics.
10900         (ipa_reference_write_optimization_summary): Likewise; use
10901         varpool/cgraph encoders to get boundaries.
10902         (ipa_reference_read_optimization_summary): Read in all_module_statics;
10903         use it when possible.
10904
10905 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10906
10907         PR target/44218
10908         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
10909         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
10910
10911         * doc/extend.texi (powerpc builtins): Document vec_recip,
10912         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
10913
10914         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
10915         (rs6000_emit_swrsqrt): Ditto.
10916         (rs6000_emit_swdivsf): Delete.
10917         (rs6000_emit_swdivdf): Ditto.
10918         (rs6000_emit_swrsqrtsf): Ditto.
10919
10920         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
10921         describe the reciprocal estimate support for each type.
10922         (recip_options): Map -mrecip=<opt> into option bits.
10923         (gen_2arg_fn_t): New typedef for binary rtx gen function.
10924         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
10925         reciprocal estimate instructions.
10926         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
10927         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
10928         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
10929         cost information if -mdebug=cost or -mdebug=reg.
10930         (rs6000_override_options): Set -mrecip-precision for power6, and
10931         power7 machines.  If -mvsx or -mdfp, enable various options that
10932         came in previous instruction set ISAs, unless the option was
10933         explicitly disabled by the command line option.  Parse
10934         -mrecip=<opt> options.
10935         (rs6000_builtin_vectorized_function): Add support for vectorizing
10936         the reciprocal estimate builtins and expansions.
10937         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
10938         (bdesc_2arg): Add reciprocal estimate builtins.
10939         (bdesc_1arg): Add reciprocal square root estimate builtins.
10940         (rs6000_expand_builtin): Rewrite to use a switch statement,
10941         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
10942         (rs6000_init_builtins): Create declarations for reciprocal
10943         estimate builtins.
10944         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
10945         sized, prefer traditional floating point registers, if integer
10946         vector types, prefer altivec registers.  Don't actually look at
10947         the memory address any more.
10948         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
10949         builtins.
10950         (rs6000_load_constant_and_splat): New helper function to load up
10951         the constant for reciprocal estimate instructions.
10952         (rs6000_emit_madd): New helper function for generating
10953         multiply/add type instructions, based on the current switches.
10954         (rs6000_emit_msub): Ditto.
10955         (rs6000_emit_mnsub): Ditto.
10956         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
10957         replace a divide with a reciprocal estimate and fixup, adding
10958         support for machines with high precision and vectors.
10959         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
10960         low precision machines.
10961         (rs6000_emit_swdiv): New common function to be called to replace a
10962         division with reciprocal estimate and fixup.
10963         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
10964         for double and vector types.  Add support for high precision machines.
10965
10966         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
10967         the reciprocal estimate instructions can be generated.
10968         (TARGET_FRE): Ditto.
10969         (TARGET_FRSQRTES): Ditto.
10970         (TARGET_FRSQRTE): Ditto.
10971         (RS6000_RECIP_*): New macros for reciprocal estimate support.
10972
10973         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
10974         square root estimate on vectors.
10975         (re<mode>2): New insn for reciprocal division estimate on vectors.
10976
10977         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
10978         New builtin.
10979         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
10980         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
10981         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
10982         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
10983         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
10984         (RS6000_BUILTIN_RSQRT): Ditto.
10985         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
10986         floating point builtin.
10987
10988         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10989         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
10990         __RECIP_PRECISION__ based on the command line switches.
10991         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
10992
10993         * config/rs6000/rs6000.opt (-mrecip): Document add support for
10994         replacing division instructions with reciprocal estimate and fixup.
10995         (-mrecip=<opt>): New option.
10996         (-mrecip-precision): Ditto.
10997
10998         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
10999         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
11000         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
11001         precision scalar.
11002
11003         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
11004         (UNSPEC_VREFP): Ditto.
11005         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
11006         conterparts with regard to support of -mno-fused-madd and -ffast-math.
11007         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
11008         reciprocal estimate instructions to be generated.
11009         (altivec_vrefp): Ditto.
11010
11011         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
11012         estimate support.
11013         (rreg): New mode attribute for reciprocal estimate support.
11014         (recip<mode>3): New insn for division using reciprocal estimate
11015         and fixup builtins.
11016         (divide define_split): New define_split to convert floating point
11017         division to use reciprocal estimate if the user used the
11018         appropriate options and the split is run when we can add new
11019         pseudo registers for the fixup.
11020         (rsqrt<mode>2): New insn for reciprocal square root support.
11021         (recipsf3): Move into recip<mode>3.
11022         (recipdf3): Ditto.
11023         (fres): Use TARGET_FRES.
11024         (rsqrtsf2): Move into rsqrt<mode>2.
11025         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
11026         (copysignsf3): Add support for VSX.
11027         (fred): Use TARGET_FRE.
11028         (fred_fpr): Ditto.
11029         (rsqrtdf_internal1): New function for frsqrte instruciton.
11030
11031         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
11032         (vec_rsqrt): Ditto.
11033
11034 2010-06-03  Richard Guenther  <rguenther@suse.de>
11035
11036         PR middle-end/44291
11037         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
11038         (set_user_assembler_libfunc): Likewise.
11039
11040 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
11041
11042         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
11043         defaults.h.
11044         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
11045         to defaults.h
11046         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
11047         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
11048         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
11049         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
11050         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
11051         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
11052         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
11053         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
11054         * defaults.h: Updated for above mentioned changes.
11055
11056 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
11057
11058         * c-common.c: Remove header include of tm_p.h.
11059         * Makefile.in (c-common.o): Remove TM_P_H dependency.
11060
11061 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
11062
11063         * tree.h (struct tree_decl_map): New type.
11064         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
11065         (tree_decl_map_hash): New prototype.
11066         (debug_expr_for_decl, value_expr_for_decl): Change into
11067         tree_decl_map hashtab from tree_map.
11068         (init_ttree): Adjust initialization.
11069         (tree_decl_map_hash): New function.
11070         (decl_debug_expr_lookup, decl_debug_expr_insert,
11071         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
11072
11073 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11074
11075         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
11076         linker emulations.
11077         * configure: Regenerate.
11078         * config.in: Regenerate.
11079
11080         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
11081         (X86_64_EMULATION): Define.
11082         (TARGET_LD_EMULATION): Use them.
11083
11084         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
11085         (SPARC64_EMULATION): Define.
11086         (LINK_ARCH_SPEC): Use them.
11087
11088 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
11089
11090         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
11091         smallest_mode_for_size for computing the precision types of new
11092         graphite IVs.  Do not call lang_hooks.types.type_for_size.
11093
11094 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
11095
11096         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
11097         information.
11098         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
11099
11100 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
11101
11102         PR middle-end/44363
11103         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
11104         return false instead.
11105
11106 2010-06-02  Jan Hubicka  <jh@suse.cz>
11107
11108         PR middle-end/44295
11109         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
11110         create new cgraph node to check callee.
11111
11112 2010-06-02  Richard Guenther  <rguenther@suse.de>
11113
11114         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
11115
11116 2010-06-02  Richard Guenther  <rguenther@suse.de>
11117
11118         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
11119         (lto_wrapper_cleanup): ... this.  Do not exit.
11120         (fatal): Adjust.  Exit here.
11121         (fatal_perror): Likewise.
11122         (fatal_signal): New function.
11123         (main): Set up signal handlers to cleanup temporary files.
11124         * Makefile.in (lto-wrapper.o): Adjust dependencies.
11125
11126 2010-06-02  Richard Guenther  <rguenther@suse.de>
11127
11128         PR tree-optimization/44377
11129         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
11130
11131 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11132
11133         * config/s390/2097.md (z10_fhex): Remove insn reservation.
11134         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
11135         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
11136         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
11137         instruction.
11138         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
11139
11140 2010-06-02  Jan Hubicka  <jh@suse.cz>
11141
11142         * bitmap.c (bitmap_descriptor): Add search_iter.
11143         (bitmap_find_bit): Increment it.
11144         (print_statistics): Print it.
11145
11146 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
11147
11148         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
11149         instead of gimple_build_call_vec.  Delete unnecessary local variable.
11150
11151 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
11152
11153         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
11154         change from yesterday.
11155
11156 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
11157
11158         * c-ada-spec.c: Clean up redundant includes.
11159
11160 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
11161
11162         * gimplify.c: Do not include except.h and optabs.h.
11163         (gimplify_body): Do not initialize RTL profiling.
11164         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
11165         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
11166         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
11167         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
11168         langhooks.h.
11169
11170         * tree-pretty-print.h: Include pretty-print.h.
11171         * gimple-pretty-print.h: Include pretty-print.h.
11172
11173         * tree-pretty-print.c: Do not include diagnostic.h.
11174         * tree-vrp.c: Likewise.
11175         * tree-tailcall.c: Likewise
11176         * tree-scalar-evolution.c: Likewise
11177         * tree-ssa-dse.c: Likewise
11178         * tree-chrec.c: Likewise
11179         * tree-ssa-sccvn.c: Likewise
11180         * tree-ssa-copyrename.c: Likewise
11181         * tree-nomudflap.c: Likewise
11182         * tree-call-cdce.c: Likewise
11183         * tree-stdarg.c: Likewise
11184         * tree-ssa-math-opts.c: Likewise
11185         * tree-nrv.c: Likewise
11186         * tree-ssa-sink.c: Likewise
11187         * tree-browser.c: Likewise
11188         * tree-ssa-loop-ivcanon.c: Likewise
11189         * tree-ssa-loop.c: Likewise
11190         * tree-parloops.c: Likewise
11191         * tree-ssa-address.c: Likewise
11192         * tree-ssa-ifcombine.c: Likewise
11193         * tree-if-conv.c: Likewise
11194         * tree-data-ref.c: Likewise
11195         * tree-affine.c: Likewise
11196         * tree-ssa-phiopt.c: Likewise
11197         * tree-ssa-coalesce.c: Likewise
11198         * tree-ssa-pre.c: Likewise
11199         * tree-ssa-live.c: Likewise
11200         * tree-predcom.c: Likewise
11201         * tree-ssa-forwprop.c: Likewise
11202         * tree-ssa-dce.c: Likewise
11203         * tree-ssa-ter.c: Likewise
11204         * tree-ssa-loop-prefetch.c: Likewise
11205         * tree-optimize.c: Likewise
11206         * tree-ssa-phiprop.c: Likewise
11207         * tree-object-size.c: Likewise
11208         * tree-outof-ssa.c: Likewise
11209         * tree-ssa-structalias.c: Likewise
11210         * tree-switch-conversion.c: Likewise
11211         * tree-ssa-reassoc.c: Likewise
11212         * tree-ssa-operands.c: Likewise
11213         * tree-vectorizer.c: Likewise
11214         * tree-vect-data-refs.c: Likewise
11215         * tree-vect-generic.c: Likewise
11216         * tree-vect-stmts.c: Likewise
11217         * tree-vect-patterns.c: Likewise
11218         * tree-vect-slp.c: Likewise
11219         * tree-vect-loop.c: Likewise
11220         * tree-ssa-loop-ivopts.c: Likewise
11221         * tree-ssa-loop-im.c: Likewise
11222         * tree-ssa-loop-niter.c: Likewise
11223         * tree-ssa-loop-unswitch.c: Likewise
11224         * tree-ssa-loop-manip.c: Likewise
11225         * tree-ssa-loop-ch.c: Likewise
11226         * tree-dump.c: Likewise
11227         * tree-complex.c: Likewise
11228
11229         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
11230         * tree-ssa-uninit.c: Likewise
11231         * tree-ssa-threadupdate.c: Likewise
11232         * tree-ssa-uncprop.c: Likewise
11233         * tree-ssa-ccp.c: Likewise
11234         * tree-ssa-dom.c: Likewise
11235         * tree-ssa-propagate.c: Likewise
11236         * tree-ssa-alias.c: Likewise
11237         * tree-dfa.c: Likewise
11238         * tree-cfgcleanup.c: Likewise
11239         * tree-sra.c: Likewise
11240         * tree-ssa-copy.c: Likewise
11241         * tree-ssa.c: Likewise
11242         * tree-profile.c: Likewise
11243         * tree-cfg.c: Likewise
11244         * tree-ssa-threadedge.c: Likewise
11245         * tree-vect-loop-manip.c: Likewise
11246
11247         * tree-inline.c: Do not include diagnostic.h and expr.h.
11248         Include rtl.h.
11249         (copy_decl_for_dup_finish): Do not use NULL_RTX.
11250
11251         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
11252         * tree-loop-distribution.c: Likewise.
11253
11254 2010-06-01  Jan Hubicka  <jh@suse.cz>
11255
11256         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
11257
11258 2010-06-01  Jan Hubicka  <jh@suse.cz>
11259
11260         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
11261         remove return value.
11262         (split_bbs_on_noreturn_calls) .... here.
11263         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
11264         * tree-flow.h (fixup_noreturn_call): New.
11265
11266 2010-06-01  Jan Hubicka  <jh@suse.cz>
11267
11268         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
11269
11270 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
11271
11272         * tree.h (build_nt_call_list): Delete.
11273         * tree.c (build_nt_call_list): Delete.
11274
11275 2010-06-01  Jan Hubicka  <jh@suse.cz>
11276
11277         * fwprop.c: Make emit-rtl.h include last.
11278         * rtlanal.c: Include emit-rtl.h.
11279         * genautomata.c: Output emit-rtl include into insn-automata.c
11280         * df-scan.c: Include emit-rtl.h.
11281         * haifa-sched.c: Indlude emit-rtl.h.
11282         * mode-switching.c: Indlude emit-rtl.h.
11283         * graph.c: Indlude emit-rtl.h.
11284         * sel-sched.c: Include emit-rtl.h.
11285         * sel-sched-ir.c: Include emit-rtl.h.
11286         * ira-build.c: Include emit-rtl.h.
11287         * emit-rtl.c (first_insn, last_insn): Remove defines.
11288         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
11289         Move to emit-rtl.h.
11290         (set_new_first_and_last_insn, get_last_insn_anywhere,
11291         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
11292         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
11293         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
11294         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
11295         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
11296         Use accessor functions.
11297         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
11298          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
11299         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
11300         mem_expr_equal_p): Move here from rtl.h.
11301         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
11302         Move here from emit-rtl.c; make inline.
11303         * cfglayout.h: Include emit-rtl.h.
11304         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
11305          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
11306         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
11307         mem_expr_equal_p, get_insns, set_first-insn,
11308         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
11309         * reg-stack.c: Include emit-rtl.h.
11310         * dce.c: Likewise.
11311
11312 2010-06-01  Jan Hubicka  <jh@suse.cz>
11313
11314         * cgraph.h (tree_function_versioning): Update prototype.
11315         (cgraph_function_versioning): Update prototype.
11316         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
11317         bitmap.
11318         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
11319         (cgraph_materialize_clone, save_inline_function_body): Update use of
11320         tree_function_versioning.
11321         * tree-inline.c (copy_bb): Look for previous copied block to link
11322         after; fix debug output.
11323         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
11324         (copy_body): Likewise.
11325         (expand_call_inline): Update use of copy_body.
11326         (tree_function_versioning): Update use of copy body; accept
11327         blocks_to_copy and new_entry.
11328
11329 2010-06-01  Jan Hubicka  <jh@suse.cz>
11330
11331         * gegenrtl.c: Remove unnecesary prototypes.
11332         (gendecl): Remove.
11333         (gendef): Produce static inline.
11334         (gencode): Remove.
11335         (main): Do not decode parameters; generate header only.
11336         * Makefile.in (genrtl.c): Remove.
11337
11338 2010-06-01  Jan Hubicka  <jh@suse.cz>
11339
11340         * tree-switch-conversion.c (build_one_array): Make it readonly.
11341
11342 2010-06-01  Richard Guenther  <rguenther@suse.de>
11343
11344         * optabs.c (init_optabs): Guard all accesses to reinit.
11345         * ipa-pure-const.c (propagate): Fix another typo.
11346         * opts.c (common_handle_option): Split assignment to bool.
11347         * c-opts.c (c_common_handle_option): Likewise.
11348
11349 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
11350             Matthew Gingell  <gingell@adacore.com>
11351
11352         * doc/invoke.texi: Mention -fdump-ada-spec.
11353         * tree-dump.c (dump_files): Add ada-spec.
11354         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
11355         * tree-pass.h (tree_dump_index): Add TDI_ada.
11356         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
11357         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
11358         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
11359         * c-decl.c: Include c-ada-spec.h.
11360         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
11361         functions.
11362         (c_write_global_declarations): Add handling of -fdump-ada-spec.
11363         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
11364         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
11365         * c-ada-spec.h, c-ada-spec.c: New files.
11366
11367 2010-06-01  Richard Guenther  <rguenther@suse.de>
11368
11369         PR lto/43853
11370         * ipa-pure-const.c (get_function_state): Hand back varying state
11371         if we do not have one.
11372         (has_function_state): New function.
11373         (duplicate_node_data): Adjust.
11374         (remove_node_data): Likewise.
11375         (pure_const_write_summary): Likewise.
11376         (propagate): Likewise.  Fix typo.
11377
11378 2010-06-01  Jan Hubicka  <jh@suse.cz>
11379
11380         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
11381         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
11382         (execute_all_ipa_transforms): Do not play with the states.
11383
11384 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
11385
11386         * config/arm/t-linux-androideabi: New.
11387         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
11388
11389 2010-06-01  Jan Hubicka  <jh@suse.cz>
11390
11391         * tree-inline.c (estimate_num_insns): For stdarg functions look
11392         into call statement to count cost of argument passing.
11393
11394 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
11395
11396         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
11397         argument for fprintf.
11398         (ix86_output_addr_diff_elt): Likewise.
11399         (x86_function_profiler): Likewise.
11400         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
11401         (LPREFIX): Likewise.
11402         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11403
11404 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
11405
11406         PR target/44338
11407         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
11408         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
11409         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
11410         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
11411         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
11412         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
11413         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
11414         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
11415         TARGET_FUSED_MADD.
11416
11417 2010-05-31  Jan Hubicka  <jh@suse.cz>
11418
11419         * tree.h (tree_range_check_failed): Declare noreturn.
11420
11421 2010-05-31  Jan Hubicka  <jh@suse.cz>
11422
11423         * gimple.c (gimple_call_builtin_p): New function.
11424         * gimple.h (gimple_call_builtin_p): Declare.
11425         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
11426         to exit.
11427         (execute_warn_function_return): BUILT_IN_RETURN is return.
11428         (split_critical_edges): Return edges are not critical.
11429         (is_ctrl_altering_stmt): Builtin_in_return is altering.
11430         (gimple_verify_flow_info): Handle built_in_return.
11431         (execute_warn_function_return): Handle built_in_return.
11432         * ipa-pure-const.c (check_call): Ignore builtin_return.
11433
11434 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
11435
11436         PR middle-end/44337
11437         * expr.c (expand_assignment): Don't store anything for out-of-bounds
11438         array accesses with non-MEM.
11439
11440         PR tree-optimization/44182
11441         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
11442         newly needs to end a bb is followed by debug stmts, instead return
11443         true from the function at the end.
11444         (maybe_move_debug_stmts_to_successors): New function.
11445         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
11446
11447 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
11448
11449         PR target/44161
11450         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
11451
11452 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
11453
11454         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
11455         for nested functions in non-optimized compilation.
11456
11457 2010-05-31  Richard Guenther  <rguenther@suse.de>
11458
11459         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
11460
11461 2010-05-30  Jan Hubicka  <jh@suse.cz>
11462
11463         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
11464
11465 2010-05-30  Richard Guenther  <rguenther@suse.de>
11466
11467         PR lto/42975
11468         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
11469         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
11470         no longer needed.
11471
11472 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
11473
11474         * config/darwin.c (output_objc_section_asm_op): Add comment.
11475         (name_needs_quotes): Add '_' to list of valid comment chars.
11476         (machopic_output_function_base_name): Remove unneeded quotes.
11477         (darwin_encode_section_info): Adjust asm whitespace.
11478         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
11479         (ASM_OUTPUT_LOCAL): Ditto.
11480         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
11481         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
11482         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
11483
11484 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
11485
11486         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
11487         RS6000_OUTPUT_BASENAME unconditionally.
11488         (rs6000_output_function_epilogue): Likewise.
11489
11490 2010-05-30  Jan Hubicka  <jh@suse.cz>
11491
11492         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
11493         nodes.
11494
11495 2010-05-30  Richard Guenther  <rguenther@suse.de>
11496
11497         * tree-cfg.c (verify_gimple_assign_single): Implement
11498         verification for COND_EXPR rhs.
11499
11500 2010-05-30  Jan Hubicka  <jh@suse.cz>
11501
11502         * cgraph.h (cgraph_dump_file): Declare.
11503         * cgraphunit.c (cgraph_dump_file): Export.
11504         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
11505
11506 2010-05-30  Jan Hubicka  <jh@suse.cz>
11507
11508         * dwarf2out.c (reference_to_unused,
11509         premark_types_used_by_global_vars_helper): Avoid creation of new
11510         varpool nodes.
11511
11512 2010-05-30  Jan Hubicka  <jh@suse.cz>
11513
11514         * cgraph.h (cgraph_node_cannot_return,
11515         cgraph_edge_cannot_lead_to_return): New functions.
11516         * cgraph.c (cgraph_node_cannot_return,
11517         cgraph_edge_cannot_lead_to_return): Use them.
11518         * ipa-pure-const.c (pure_const_names): New static var.
11519         (check_call): Handle calls not leading to return.
11520         (pure_const_read_summary): Dump info read.
11521         (propagate): Dump info about propagation process; ignore side effects
11522         of functions not leading to exit; fix handling of pure functions.
11523
11524 2010-05-30  Jan Hubicka  <jh@suse.cz>
11525
11526         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
11527         for tail call epilogues.
11528
11529 2010-05-30  Jan Hubicka  <jh@suse.cz>
11530
11531         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
11532         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
11533         dump files.
11534
11535 2010-05-29  Jan Hubicka  <jh@suse.cz>
11536
11537         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
11538         node; remove references in node we no longer keep in cgrpah but need
11539         body of.
11540
11541 2010-05-29  Jan Hubicka  <jh@suse.cz>
11542
11543         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
11544
11545 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11546
11547         PR target/44165
11548         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
11549
11550 2010-05-29  Jan Hubicka  <jh@suse.cz>
11551
11552         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
11553         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
11554         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
11555         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
11556         debug_names_replaced_by, debug_update_ssa): Likewise.
11557         * sbitmap.c (debug_sbitmap): Likewise.
11558         * genrecog.c (debug_decision, debug_decision_list): Likewise.
11559         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
11560         debug_tree_chain): Likewise.
11561         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
11562         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
11563         * optabs.c (debug_optab_libfuncs): Likewise.
11564         (verify_loop_closed_ssa): Likewise.
11565         * value-prof.c (verify_histograms): Likewise.
11566         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
11567         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
11568         * cfghooks.c (verify_flow_info): Likewise.
11569         * fold-const.c (debug_fold_checksum): Likewise.
11570         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
11571         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
11572         Likewise.
11573         * omega.c (debug_omega_problem): Likewise.
11574         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
11575         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
11576         * dominance.c (verify_dominators, debug_dominance_info,
11577         debug_dominance_tree): Likewise.
11578         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
11579         * df_regno_debug, df_ref_debug,
11580         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
11581         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
11582         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
11583         * sel-sched.c (debug_state): Likewise.
11584         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
11585         Likewise.
11586         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
11587         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
11588         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
11589         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
11590         Likewise.
11591         * c-pretty-print.c (debug_c_tree): Likewise.
11592         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
11593         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
11594         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
11595         * ebitmap.c (debug_ebitmap): Likewise.
11596         * function.c (debug_find_var_in_block_tree): Likewise.
11597         * print-rtl.c (debug_rtx): Likewise.
11598         (debug_rtx_count): Likewise.
11599         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
11600         * stor-layout.c (debug_rli): Likewise.
11601         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
11602         * tree-data-ref.c (debug_data_references,
11603         debug_data_dependence_relations, debug_data_reference,
11604         debug_data_dependence_relation, debug_rdg_vertex,
11605         debug_rdg_component, debug_rdg): Likewise.
11606         * tree-affine.c (debug_aff): Likewise.
11607         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
11608         Likewise.
11609         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
11610         * emit-rtl.c (verify_rtl_sharing): Likewise.
11611         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
11612         debug_value_expressions): Likewise.
11613         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
11614         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
11615         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
11616         * cfglayout.c (verify_insn_chain): Likewise.
11617         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
11618         debug_clast_stmt, debug_generated_program): Likewise.
11619         * ggc-page.c (debug_print_page_list): Likewise.
11620         * tree-ssa-ter.c (debug_ter): Likewise.
11621         * graphite-dependences.c (debug_pddr): Likewise.
11622         * sched-deps.c (debug_ds): Likewise.
11623         * tree-ssa.c (verify_ssa): Likewise.
11624         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
11625         debug_scattering_functions, debug_iteration_domains, debug_pdr,
11626         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
11627         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
11628         * tree-inline.c (debug_find_tree): Likewise.
11629         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
11630         debug_ppl_powerset_matrix): Likewise.
11631         * var-tracking.c (debug_dv): Likewise.
11632         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
11633         * cfgloop.c (verify_loop_structure): Likewise.
11634         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
11635         * c-common.c (verify_sequence_points): Likewise.
11636         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
11637         debug_candidates, debug_rgn_dependencies): Likewise.
11638         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
11639         * debug_constraint_graph, debug_solution_for_var,
11640         debug_sa_points_to_info): Likewise.
11641         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
11642         Likewie.
11643         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
11644         debug_loops, debug_loop, debug_loop_num): Likewise.
11645         * passes.c (debug_pass): Likewise.
11646         (dump_properties): Likewise; add cfglayout property.
11647         (debug_properties): Likewise.
11648         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
11649         * varpool.c (debug_varpool): Likewise.
11650         * regcprop.c (debug_value_data): Likewise.
11651         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
11652         debug_immediate_uses_for): Likewise.
11653
11654 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
11655
11656         PR bootstrap/44315
11657         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
11658         Filter out insn-flags.h.
11659
11660 2010-05-29  Jan Hubicka  <jh@suse.cz>
11661
11662         * cgraph.h (struct varpool_node_set_def,
11663         struct cgraph_node_set_def): Remove unused AUX pointer.
11664         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
11665         VEC_empty macro.
11666
11667 2010-05-29  Jan Hubicka  <jh@suse.cz>
11668
11669         PR middle-end/44324
11670         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
11671
11672 2010-05-29  Richard Guenther  <rguenther@suse.de>
11673
11674         * lto-streamer.c (cached_bp): New global variable.
11675         (bitpack_create): Return the cached bitpack, if available.
11676         (bitpack_delete): Clear and cache the bitpack, if appropriate.
11677         (bp_pack_value): Remove redundant asserts.
11678
11679 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
11680
11681         PR middle-end/44306
11682         * tree-if-conv.c (is_true_predicate): New.
11683         (is_predicated): Use is_true_predicate.
11684         (add_to_predicate_list): Same.  Do not use unshare_expr.
11685         (add_to_dst_predicate_list): Same.
11686
11687 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
11688
11689         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
11690         field on edges.
11691         (predicate_bbs): Same.
11692         (clean_predicate_lists): Same.
11693         (find_phi_replacement_condition): Do not AND the predicate from
11694         edge->aux.
11695
11696 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
11697
11698         PR bootstrap/44315
11699         * Makefile.in (build/gencondmd.o): Add a missing `\'.
11700
11701 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11702
11703         PR target/44261
11704         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
11705         (negdf2): Adjust expander pattern and use negdf2_slow.
11706         (negsf2): Likewise.
11707
11708 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
11709
11710         * basic-block.h (struct control_flow_graph): Move last_label_uid field
11711         up.
11712         * df.h (struct df_base_ref): Move regno field up.
11713         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
11714         * expr.h (struct separate_ops): Move location field up.
11715         * optabs.h (struct optab_d): Move libcall_basename field down.
11716         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
11717         * config/i386/i386.h (struct machine_function): Convert call_abi field
11718         into a bitfield.  Move cfa field to the end of the structure.
11719
11720 2010-05-29  Jan Hubicka  <jh@suse.cz>
11721
11722         * varpool.c (varpool_get_node): Fix lookup.
11723
11724 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
11725
11726         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
11727         RTL specific prototypes with #ifdef RTX_CODE.
11728         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
11729         * config/spu/t-spu-elf: Fix dependencies.
11730
11731         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
11732
11733 2010-05-29  Mike Stump  <mikestump@comcast.net>
11734
11735         PR bootstrap/44315
11736         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
11737         TM_H when building to avoid dependency loops.
11738
11739 2010-05-29  Jan Hubicka  <jh@suse.cz>
11740
11741         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
11742         refs and body; not the whole node for masters of materialized clones.
11743
11744 2010-05-29  Mike Stump  <mikestump@comcast.net>
11745
11746         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
11747
11748 2010-05-29  Jan Hubicka  <jh@suse.cz>
11749
11750         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
11751         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
11752         use of clone_function_name.
11753         * cgraph.h (cgraph_create_virtual_clone,
11754         cgraph_function_versioning): update prototypes.
11755         (clone_function_name): Declare.
11756         * ipa-cp.c (ipcp_insert_stage): Update call of
11757         cgraph_create_virtual_clone.
11758         * omp-low.c (create_omp_child_function_name): Use
11759         cgraph_create_virtual_clone.
11760         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
11761         (cgraph_function_versioning): Take SUFFIX argument; produce new name
11762         and make decl local.
11763
11764 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
11765
11766         * vec.h: Include statistics.h
11767         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
11768         with VEC_H.
11769
11770 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
11771
11772         * c-lex.c: Do not include c-tree.h.
11773         * c-pretty-print.c: Likewise.
11774         * c-opts.c: Likewise.
11775         * c-gimplify.c: Likewise.
11776         * c-common.c: Likewise.
11777         * c-dump.c: Likewise.  Include c-common.h.
11778
11779 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
11780
11781         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
11782         before including diagnostic-core.h.
11783         (c_cpp_error): New prototype moved from c-tree.h.
11784         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
11785         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
11786         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
11787         (c_cpp_error): Prototype moved to c-common.h.
11788         * Makefile.in: Update dependency for C_COMMON_H.
11789
11790 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
11791
11792         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
11793         * c-common.c (c_register_addr_space): Remove here.
11794         * c-decl.c (c_register_addr_space): Re-add here.
11795
11796 2010-05-28  Mike Stump  <mikestump@comcast.net>
11797
11798         * config/darwin-c.c: Remove c-tree.h include.
11799
11800 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
11801
11802         * gcc.c: Include diagnostic.h.
11803         (error_count): Remove.  All users changed to use errorcount.
11804         (programname): Remove.  All users changed to use progname.
11805         (fancy_abort, internal_error, fatal_error, error, warning, inform,
11806         fnotice): Remove.
11807         (execute): Don't include "Internal error" and bug reporting
11808         information in argument of internal_error call.
11809         (process_command): Don't increment error_count after calling
11810         perror_with_name.
11811         (input_filename): Rename to gcc_input_filename.  All users
11812         changed.
11813         (main): Call diagnostic_initialize.  Register delete_temp_files
11814         with atexit.  Use seen_error to test for errors.
11815         * gcc.h: Include diagnostic-core.h.
11816         (fatal_error, error, warning): Remove.
11817         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
11818         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
11819         (gcc.o): Update dependencies.
11820
11821 2010-05-28  Jeff Law  <law@redhat.com>
11822
11823         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
11824         functions.
11825         * ira.h (ira_bad_reload_regno): Declare
11826         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
11827
11828         * ira-color.c (update_curr_costs): Free updated hard reg costs.
11829         (ira_reassign_conflict_allocnos): Remove bogus asserts.
11830         (allocno_reload_assign): Likewise.
11831
11832 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
11833
11834         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
11835         build1_stat.
11836
11837 2010-05-28  Richard Guenther  <rguenther@suse.de>
11838
11839         PR lto/44312
11840         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
11841         Stream fixed-point constants mode.
11842         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
11843         and TYPE_PRECISION.
11844         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
11845         Stream fixed-point constants mode.
11846         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
11847         and TYPE_PRECISION.
11848
11849 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
11850
11851         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
11852         only place it was called from.
11853         (number_of_latch_executions): Do not return chrec_dont_know when the
11854         may_be_zero is a runtime condition: instead, return a COND_EXPR
11855         including the may_be_zero condition.
11856         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
11857         of nb_iterations.
11858         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
11859         COND_EXPRs.
11860
11861 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
11862
11863         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
11864         generate COND_EXPRs for degenerate_phi_result.
11865
11866 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
11867
11868         PR middle-end/44293
11869         * tree-if-conv.c (if_convertible_loop_p): Check the
11870         if-convertibility of phi nodes in non predicated BBs.
11871
11872 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
11873
11874         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
11875
11876 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
11877
11878         PR driver/15303
11879         * gcc.c (inform, warning, inform): New functions.
11880         (fatal_ice): Rename to internal_error; change cmsgid parameter to
11881         gmsgid.  All callers changed.
11882         (notice): Rename to fnotice; add parameter fp.  All callers changed.
11883         (fatal_error): Rename to fatal_signal.  All users changed.
11884         (fatal): Rename to fatal_error; change cmsgid parameter to
11885         gmsgid.  All callers changed.
11886         (process_command): Use warning instead of error for warnings.
11887         (end_going_arg): Don't use _() around argument of error.
11888         (do_spec_1): Use inform for message from %n specs.  Use warning
11889         instead of error for warnings.
11890         (main): Use inform for comparison messages.  Use warning for
11891         message about unused linker input.
11892         (error): Increment error_count.  Print "error: ".
11893         * gcc.h (fatal): Change to fatal_error.
11894         (warning): Declare.
11895         * config/darwin-driver.c (darwin_default_min_version): Use warning
11896         instead of fprintf for warnings.
11897         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
11898
11899 2010-05-28  Julian Brown  <julian@codesourcery.com>
11900
11901         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
11902         (*thumb2_addsi3_compare0_scratch): New.
11903         * config/arm/constraints.md (Pv): New.
11904         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
11905         for ARM mode only.
11906         (*addsi3_compare0_scratch): Likewise.
11907
11908 2010-05-28  Jan Hubicka  <jh@suse.cz>
11909
11910         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
11911         check.
11912         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
11913         only on local statics.
11914
11915 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
11916
11917         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
11918
11919 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11920
11921         PR bootstrap/44314
11922         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
11923         (OPTION_GLIBC): Define.
11924
11925 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
11926
11927         PR debug/41048
11928         * dwarf2out.c (double_int_type_size_in_bits): New function.
11929         (round_up_to_align): Change first argument and return value to
11930         double_int.
11931         (field_byte_offset): Work internally on double_ints.
11932
11933         PR target/43636
11934         * builtins.c (expand_movstr): Use a temporary pseudo instead
11935         of target even when target is not NULL and not const0_rtx, but
11936         fails movstr predicate.
11937         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
11938
11939 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
11940
11941         * final.c (rest_of_clean_state): Use %m in errors instead of
11942         strerror (errno).
11943         * gengtype.c (read_input_list, close_output_files): Use xstrerror
11944         instead of strerror.
11945         * toplev.c (process_options): Use %m in errors instead of strerror
11946         (errno).
11947         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
11948         (errno).
11949
11950 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
11951
11952         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
11953         (ix86_canonical_va_list_type): Make static.  Add declaration.
11954         (ix86_enum_va_list): Make static.  Reindent.
11955         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
11956         (ix86_canonical_va_list_type): Ditto.
11957         (ix86_enum_va_list): Ditto.
11958
11959 2010-05-28  Richard Guenther  <rguenther@suse.de>
11960
11961         * lto-wrapper.c (run_gcc): With -save-temps generate a
11962         user-visible ltrans filename.  Fixup ltrans unit numbering.
11963
11964 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
11965
11966         * c-common.c (c_common_nodes_and_builtins): Replace use
11967         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
11968         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
11969         to ix86_enum_va_list.
11970         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
11971         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
11972         (TARGET_ENUM_VA_LIST_P): Add hook description.
11973         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
11974         * target.h (gcc_target): Add enum_va_list hook.
11975
11976         PR bootstrap/44299
11977         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
11978         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
11979         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
11980
11981 2010-05-28  Alan Modra  <amodra@gmail.com>
11982
11983         PR target/44266
11984         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11985         emit_library_call machinery to set up __tls_get_addr calls.
11986
11987 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11988
11989         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
11990
11991 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
11992
11993         Revert fix for PR c++/44188
11994         * c-common.c (is_typedef_decl): Revert the moving of  this
11995         definition ...
11996         * tree.c (is_typedef_decl): ... here.
11997         (typdef_variant_p): Revert the moving of this  definition
11998         here from gcc/cp/tree.c.
11999         * c-common.h (is_typedef_decl): Revert the moving of this
12000         declaration ...
12001         * tree.h (is_typedef_decl): ... here.
12002         (typedef_variant_p): Revert the moving of this  declaration here
12003         from gcc/cp/cp-tree.h
12004         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
12005         (gen_tagged_type_die): Revert the splitting out of ...
12006         (gen_type_die_with_usage): ... this function. Revert the anonymous
12007         tagged type handling.
12008         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
12009         typedefs naming anonymous tagged types.
12010
12011 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
12012
12013         * config/rs6000/rs6000-modes.def (PSImode): Delete.
12014
12015 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
12016
12017         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
12018         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
12019         throughout.
12020         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
12021         "xer" to "ca".
12022         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
12023         XER_REGS to CA_REGS throughout.
12024         * config/rs6000/rs6000.h: Same.
12025         (ADDITIONAL_REGISTER_NAMES): Add "xer".
12026         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
12027         that mode_iterator "P" is the size for arithmetic carries as well.
12028         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
12029
12030 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
12031
12032         PR bootstrap/44255
12033         * combine.c (struct rtx_subst_pair): Define unconditionally.
12034         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
12035         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
12036         Call make_compound_operation on pair->to.
12037         (propagate_for_debug): Don't call make_compound_operation here.
12038         Always use simplify_replace_fn_rtx.
12039
12040 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
12041
12042         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
12043         * config/xtensa/xtensa.c (override_options): Check
12044           TARGET_FORCE_NO_PIC and set flag_pic.
12045         * config/xtensa/xtensa.opt: Document -mforce-no-pic
12046
12047 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
12048
12049         PR bootstrap/44299
12050         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
12051         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
12052
12053 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
12054
12055         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
12056         toplev.h.
12057         * diagnostic.c: Don't include toplev.h.
12058         (progname): Define.  Moved from toplev.c.
12059         (seen_error): New function.
12060         * diagnostic.h: Include diagnostic-core.h.
12061         (diagnostic_t, emit_diagnostic): Don't declare here.
12062         * toplev.c (progname): Move to toplev.c.
12063         (emit_debug_global_declarations, compile_file, finalize,
12064         do_compile, toplev_main): Use seen_error.
12065         * toplev.h: Include diagnostic-core.h.
12066         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
12067         internal_error, warning, warning_at, error, error_n, error_at,
12068         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
12069         verbatim, fnotice, progname): Move to diagnostic-core.h.
12070         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
12071         (expand_builtin_expect): Use seen_error.
12072         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
12073         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
12074         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
12075         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
12076         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
12077         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
12078         errorcount for errors.
12079         * c-opts.c (c_common_finish): Use seen_error.
12080         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
12081         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
12082         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
12083         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
12084         (get_coverage_counts): Use seen_error.
12085         * dwarf2out.c (dwarf2out_finish): Use seen_error.
12086         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
12087         gimplify_body): Use seen_error.
12088         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
12089         * ipa-pure-const.c (gate_pure_const): Use seen_error.
12090         * ipa-reference.c (gate_reference): Use seen_error.
12091         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
12092         * lambda-code.c: Include diagnostic-core.h instead of
12093         diagnostic.h.
12094         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
12095         * lto-compress.c: Include diagnostic-core.h instead of
12096         diagnostic.h.
12097         * lto-section-in.c: Include diagnostic-core.h instead of
12098         diagnostic.h.
12099         * lto-streamer-out.c: Include diagnostic-core.h instead of
12100         diagnostic.h.
12101         * lto-streamer.c: Include diagnostic-core.h instead of
12102         diagnostic.h.
12103         (gate_lto_out): Use seen_error.
12104         * matrix-reorg.c: Include diagnostic-core.h instead of
12105         diagnostic.h.
12106         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
12107         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
12108         (gate_expand_omp, lower_omp_1): Use seen_error.
12109         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
12110         (rest_of_decl_compilation, rest_of_type_compilation,
12111         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
12112         * tree-cfg.c (label_to_block_fn): Use seen_error.
12113         * tree-inline.c (optimize_inline_calls): Use seen_error.
12114         * tree-mudflap.c (mudflap_finish_file): Use
12115         seen_error.
12116         * tree-optimize.c (gate_all_optimizations,
12117         gate_all_early_local_passes, gate_all_early_optimizations): Use
12118         seen_error.
12119         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
12120         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
12121         (varpool_remove_unreferenced_decls,
12122         varpool_assemble_pending_decls): Use seen_error.
12123         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
12124         (TOPLEV_H, DIAGNOSTIC_H): Update.
12125         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
12126         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
12127         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
12128         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
12129         coverage.o, lambda-code.o): Update dependencies.
12130
12131 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
12132
12133         PR c++/44188
12134         * c-common.c (is_typedef_decl): Move this definition ...
12135         * tree.c (is_typedef_decl): ... here.
12136         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
12137         * c-common.h (is_typedef_decl): Move this declaration ...
12138         * tree.h (is_typedef_decl): ... here.
12139         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
12140         * dwarf2out.c (is_naming_typedef_decl): New function.
12141         (gen_tagged_type_die): Split out of ...
12142         (gen_type_die_with_usage): ... this function. When an anonymous
12143         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
12144         is emitted for the typedef.
12145         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
12146         anonymous tagged types.
12147
12148 2010-05-27  Jason Merrill  <jason@redhat.com>
12149
12150         * print-tree.c (debug_vec_tree): New fn.
12151         (print_vec_tree): New fn.
12152         * tree.h: Declare them.
12153         * gdbinit.in (pvt): New command.
12154
12155         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
12156
12157         * gdbinit.in (pdd): New command.
12158
12159 2010-05-27  Jan Hubicka  <jh@suse.cz>
12160
12161         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
12162         (update_caller_keys): Return early if there are no callers;
12163         only update fibheap when decresing the key.
12164         (update_callee_keys): Avoid recursion.
12165         (decide_inlining_of_small_functions): When badness does not match;
12166         re-insert into fibheap.
12167
12168 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
12169
12170         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
12171         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
12172         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
12173         (ALL_HOST_OBJS): Now a union of the above two.
12174         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
12175         all files in ALL_HOST_FRONTEND_OBJS.
12176         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
12177
12178         * c-common.c: Pretend to be a backend file by undefining
12179         IN_GCC_FRONTEND (still need rtl.h here).
12180
12181 2010-05-27  Jan Hubicka  <jh@suse.cz>
12182
12183         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
12184         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
12185
12186 2010-05-27  Jan Hubicka  <jh@suse.cz>
12187
12188         * sched-ebb.c: Rename struct deps to struct deps_desc.
12189         * ddg.c: Likewise.
12190         * sel-sched-ir.c: Likewise.
12191         * sched-deps.c: Likewise.
12192         * sched-int.h: Likewise.
12193         * sched-rgn.c: Likewise.
12194
12195 2010-05-27  Jon Beniston  <jon@beniston.com>
12196
12197         PR 43726
12198         * config/lm32/lm32.h: Remove definition of
12199         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
12200
12201 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
12202
12203         PR lto/44230
12204         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
12205
12206 2010-05-27  Richard Guenther  <rguenther@suse.de>
12207
12208         PR tree-optimization/44284
12209         * tree-vect-stmts.c (vectorizable_assignment): Handle
12210         sign-changing conversions as simple copy.
12211
12212 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
12213
12214         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
12215         Bionic C library.
12216         (__gthread_active_p): Check for pthread_create if compiling against
12217         Bionic C library.
12218
12219 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
12220
12221         Support compilation for Android platform.  Reimplement -mandroid.
12222
12223         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
12224         (*android*): Set ANDROID_DEFAULT.
12225         (arm*-*-linux*): Include linux-android.h.
12226         (arm*-*-eabi*): Don't include previous -mandroid implementation.
12227         * config/arm/eabi.h: Remove, move Android-specific parts ...
12228         * config/linux-android.h: ... here.  New file.
12229         * config/arm/eabi.opt: Rename to ...
12230         * config/linux-android.opt: ... this.
12231         (mandroid): Allow -mno-android option.  Initialize based on
12232         ANDROID_DEFAULT.
12233         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
12234         Move logic to corresponding LINUX_TARGET_* macros.
12235         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
12236         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
12237         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
12238         Android definitions.
12239         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
12240         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
12241         Document.
12242
12243 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
12244
12245         Add support for Bionic C library
12246
12247         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
12248         macro.
12249         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
12250         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
12251
12252         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
12253         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
12254         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
12255         to support multiple C libraries.  Handle Bionic.
12256         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
12257         (BIONIC_DYNAMIC_LINKER64): Define.
12258         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
12259         Update.
12260         (TARGET_HAS_SINCOS): Enable for Bionic.
12261
12262         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
12263         the last option specified on command line take effect.
12264         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
12265         (mbionic): New.
12266         (mglibc, muclibc): Update.
12267
12268         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
12269         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
12270         DEFAULT_LIBC.
12271
12272         * doc/invoke.texi (-mglibc, -muclibc): Update.
12273         (-mbionic): Document.
12274
12275 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12276
12277         * c-common.h (c_register_addr_space): Add prototype.
12278         (ADDR_SPACE_KEYWORD): Remove.
12279         * c-common.c (c_register_addr_space): New function.
12280         (c_addr_space_name): Reimplement.
12281         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
12282
12283         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
12284         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
12285
12286         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
12287         Remove TARGET_ADDR_SPACE_KEYWORDS.
12288
12289 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
12290
12291         * input.c: New file.
12292         * input.h (main_input_filename): Move declaration to toplev.h.
12293         * toplev.c (input_location, line_table): Move to input.c
12294         * toplev.h (main_input_filename): Move declaration from input.h.
12295         * tree.c (expand_location): Move to input.c.
12296         * Makefile.in (OBJS-common): Add input.o.
12297         (input.o): Add dependencies.
12298
12299 2010-05-27  Richard Guenther  <rguenther@suse.de>
12300
12301         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
12302         for non-existant files.
12303         (fork_execute): Mark args_name file as deleted.
12304
12305 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
12306
12307         PR bootstrp/44287
12308         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
12309         (narrow_signed_type): Likewise.
12310
12311 2010-05-26  Jan Hubicka  <jh@suse.cz>
12312
12313         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
12314         edge only when checking is enabled; check using former_clone_of;
12315         check inline clones too.
12316         (cgraph_materialize_clone): Record former_clone_of pointer.
12317         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
12318         combining redirections; dump args_to_skip bitmap
12319         (cgraph_materialize_all_clones): Do no redirection here.
12320         * ipa-inline.c (inline_transform): Do redirection here.
12321         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
12322         cheking only).
12323
12324 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12325
12326         * config/avr/avr-c.c: Do not include regs.h.
12327         Include cpplib.h for cpp_define and tree.h for c-common.h.
12328         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
12329         * config/avr/t-avr: Fix dependencies for avr-c.o.
12330
12331 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12332
12333         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
12334         string instead of SYMBOL_REF rtx.
12335         * rtl.h (set_stack_check_libfunc): Move prototype from here...
12336         * libfuncs.h: ...to here.  Adjust for explow.c change.
12337
12338 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12339
12340         * pretty-print.c: Don't include ggc.h.
12341         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
12342         (identifier_to_locale): Use them for allocation.
12343         * pretty-print.h (identifier_to_locale_alloc,
12344         identifier_to_locale_free): Declare.
12345         * toplev.c (alloc_for_identifier_to_locale): New.
12346         (general_init): Set identifier_to_locale_alloc and
12347         identifier_to_locale_free.
12348         * Makefile.in (pretty-print.o): Update dependencies.
12349
12350 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12351
12352         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
12353         pointer types if they have different alignment or mode.
12354
12355 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
12356
12357         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12358         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12359         * config/sparc/sparc-protos.h (function_value): Remove declaration.
12360         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
12361         sparc_function_value_regno_p): New functions.
12362         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12363         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12364         (function_value): Rename to...
12365         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
12366         argument to 'outgoing'.
12367         (function_arg_record_value, function_arg_union_value,
12368         function_arg_vector_value): Update comment.
12369
12370 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12371
12372         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
12373         (fde_needed_for_eh_p): New predicate.
12374         (output_call_frame_info): Use it throughout to decide whether FDEs
12375         are needed for EH purpose.
12376         (dwarf2out_begin_prologue): Reorder assignments.
12377
12378 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12379
12380         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12381         special case loop->header.
12382         (is_predicated): New.
12383         (if_convertible_loop_p): Call it.
12384
12385 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12386
12387         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12388         iterator in parameter.  Do not generate code during the analysis.
12389         (tree_if_convert_cond_stmt): Removed.
12390         (tree_if_convert_stmt): Removed.
12391         (predicate_bbs): New.
12392         (if_convertible_loop_p): Call predicate_bbs.
12393         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12394         now contains all the analysis part.
12395
12396 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12397
12398         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12399         statements in the analysis part.
12400         (tree_if_convert_stmt): Update comment.
12401         (remove_conditions_and_labels): New.
12402         (combine_blocks): Call remove_conditions_and_labels.
12403         (tree_if_conversion): Update comment.
12404
12405 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12406
12407         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12408         than 2 predecessors or more than 2 successors.
12409
12410 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12411
12412         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12413         of loops in which the data dependence analysis fails.
12414
12415 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12416
12417         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12418         CDI_POST_DOMINATORS.
12419         (tree_if_conversion): Same.
12420
12421 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12422
12423         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12424
12425 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12426
12427         * tree-if-conv.c: Update copyright years.  Fix comments.
12428         Fix indentation.
12429
12430 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12431
12432         * builtin-types.def (BT_INT128): New primitive type.
12433         (BT_UINT128): Likewise.
12434         * c-common.c (c_common_r): Add __int128 keyword.
12435         (c_common_type_for_size): Handle __int128.
12436         (c_common_type_for_mode): Likewise.
12437         (c_common_signed_or_unsigned_type): Likewise.
12438         (c_common_nodes_and_builtins): Add builtin type
12439         if target supports 128-bit integer scalar.
12440         * c-common.h (enum rid): Add RID_INT128.
12441         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12442         if target supports 128-bit integer scalar.
12443         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12444         (finish_declspecs): Likewise.
12445         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12446         (c_token_starts_declspecs): Likewise.
12447         (c_parser_declspecs): Likewise.
12448         (c_parser_attributes): Likewise.
12449         (c_parser_objc_selector): Likewise.
12450         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12451         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12452         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12453         * tree.c (make_or_reuse_type): Likewise.
12454         (make_unsigned_type): Likewise.
12455         (build_common_tree_nodes_2): Likewise.
12456         * tree.h (enum integer_type_kind): Add itk_int128 and
12457         itk_unsigned_int128.
12458         (int128_integer_type_node): New define.
12459         (int128_unsigned_type_node): New define.
12460         * doc/extend.texi: Add documentation about __int128 type.
12461
12462 2010-05-26  Richard Guenther  <rguenther@suse.de>
12463
12464         * tree-ssa-sccvn.c (copy_nary): Adjust.
12465         (copy_phis): Rename to ...
12466         (copy_phi): ... this.  Adjust.
12467         (copy_references): Rename to ...
12468         (copy_reference): ... this.  Adjust.
12469         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12470         result into the valid table.
12471
12472 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12473
12474         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12475         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12476
12477 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12478
12479         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12480
12481 2010-05-26  Richard Guenther  <rguenther@suse.de>
12482
12483         * opts.c (common_handle_option): Handle OPT_Ofast.
12484
12485 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12486
12487         * diagnostic.c: Don't include opts.h.
12488         (permissive_error_option): Define.
12489         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12490         for classify_diagnostic.  Don't use memset for
12491         classify_diagnostic.  Initialize new and recently added fields.
12492         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12493         N_OPTS.
12494         (diagnostic_report_diagnostic): Pass context parameter to
12495         diagnostic_report_warnings_p.  Use option_enabled and option_name
12496         hooks from context.
12497         (emit_diagnostic): Use permissive_error_option.
12498         (permerror): Likewise.
12499         * diagnostic.h: Don't include options.h.
12500         (struct diagnostic_context): Add n_opts, opt_permissive,
12501         inhibit_warnings, warn_system_headers, option_enabled and
12502         option_name fields.  Change classify_diagnostic to a pointer.
12503         * opts-diagnostic.h: New file.
12504         * opts.c: Include opts-diagnostic.h.
12505         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12506         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12507         (option_name): New function.
12508         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12509         (c_common_handle_option): Set global_dc->permissive for
12510         -fpermissive.
12511         * c-common.c (c_cpp_error): Save and restore
12512         global_dc->warn_system_headers, not variable warn_system_headers.
12513         * toplev.c: Include opts-diagnostic.h.
12514         (general_init): Update call to diagnostic_initialize.  Set
12515         global_dc->show_column, global_dc->option_enabled and
12516         global_dc->option_name.
12517         (process_options): Don't set global_dc fields here.
12518         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12519         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12520
12521 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12522
12523         * config/picochip/picochip.md (movsi): Split a movsi from a
12524         const after reload.
12525
12526 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12527
12528         * ggc-zone.c: Update copyright year.
12529         (poison_region): Mark memory for Valgrind as undefined before
12530         memset () call and inaccessible afterwards.
12531         (ggc_pch_total_size): Change type of i to int.
12532
12533 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12534
12535         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12536
12537 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12538
12539         * ggc-common.c: Update copyright year.
12540         (ggc_rlimit_bound): Remove prototype.  Compile only if
12541         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12542         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12543         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12544         (ggc_min_heapsize_heuristic): Likewise.
12545
12546 2010-05-26  Richard Guenther  <rguenther@suse.de>
12547
12548         PR rtl-optimization/44164
12549         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12550         no-common access-path disambiguation.
12551         (indirect_ref_may_alias_decl_p): Adjust.
12552         (indirect_refs_may_alias_p): Likewise.
12553         (refs_may_alias_p_1): Likewise.
12554
12555 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12556
12557         * c-typeck.c: Do not include expr.h.
12558
12559 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12560
12561         * rtl.h (decl_default_tls_model): Move prototype from here...
12562         * output.h: ...to here.
12563         * c-decl.c: Do not include rtl.h.
12564         * c-pragma.c: Likewise.
12565         * c-parser.c: Likewise.
12566         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12567         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12568         FIXME note for it.  Add a FIXME note for expr.h.
12569         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12570         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12571         defined.
12572
12573 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12574
12575         PR target/44199
12576         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12577         or total_size is larger than red zone size for non-V4 ABI, emit a
12578         stack_tie resp. frame_tie insn before stack pointer restore.
12579         * config/rs6000/rs6000.md (frame_tie): New insn.
12580
12581 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12582
12583         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12584         * lto-streamer-in.c (input_function): Stream it in.
12585         * lto-streamer-out.c (output_function): Stream it out.
12586         * function.c (allocate_struct_function): Set it.
12587         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12588         for flag_non_call_exceptions.
12589         * cfgbuild.c (control_flow_insn_p): Likewise.
12590         (make_edges): Likewise.
12591         * cfgexpand.c (expand_stack_alignment): Likewise.
12592         * combine.c (distribute_notes): Likewise.
12593         * cse.c (cse_extended_basic_block): Likewise.
12594         * except.c (insn_could_throw_p): Likewise.
12595         * gcse.c (simple_mem): Likewise.
12596         * ipa-pure-const.c (check_call): Likewise.
12597         (check_stmt ): Likewise.
12598         * lower-subreg.c (lower-subreg.c): Likewise.
12599         * optabs.c (emit_libcall_block): Likewise.
12600         (prepare_cmp_insn): Likewise.
12601         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12602         * postreload.c (rest_of_handle_postreload): Likewise.
12603         * reload1.c (reload_as_needed): Likewise.
12604         (emit_input_reload_insns): Likewise.
12605         (emit_output_reload_insns): Likewise.
12606         (fixup_abnormal_edges): Likewise.
12607         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12608         * store-motion.c (find_moveable_store): Likewise.
12609         * tree-eh.c (stmt_could_throw_p): Likewise.
12610         (tree_could_throw_p): Likewise.
12611         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12612         * config/arm/arm.c (arm_expand_prologue): Likewise.
12613         (thumb1_expand_prologue): Likewise.
12614         * config/rx/rx.md (cbranchsf4): Likewise.
12615         (cmpsf): Likewise.
12616         * config/s390/s390.c (s390_emit_prologue): Likewise.
12617         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12618         (inline_forbidden_into_p): New predicate.
12619         (expand_call_inline): Use it to forbid inlining.
12620         (tree_can_inline_p): Likewise.
12621
12622 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12623
12624         * config/i386/i386-c.c: Do not include rtl.h.
12625         * config/i386/t-i386: Update dependencies.
12626
12627 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12628
12629         * attribs.c: Do not include rtl.h.
12630         * Makefile.in: Update dependencies.
12631
12632 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12633
12634         * double-int.h (double_int_and): New.
12635         * combine.c (try_combine): Clean up, use double_int_* and
12636         immed_double_int_const functions.
12637
12638 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12639
12640         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12641         stderr to /dev/null instead of grep -q.
12642         * configure: Regenerate.
12643
12644 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12645
12646         * Makefile.in (EXCEPT_H): Fix typo.
12647
12648 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
12649
12650         * ira-build.c (update_conflict_hard_reg_costs): New.
12651         (ira_build): Call update_conflict_hard_reg_costs.
12652
12653 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12654
12655         PR debug/41371
12656         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12657         ENABLE_CHECKING.
12658         (intersect_loc_chains): Walk the s2var's loc_chain together
12659         with s1node chain as long as the locations are equal, don't
12660         call find_loc_in_1pdv in that case.
12661
12662         PR debug/42801
12663         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12664         (copy_bind_expr): ... instead of here.
12665         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12666         if the block hasn't been remapped.
12667         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12668         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12669
12670 2010-05-25  Richard Guenther  <rguenther@suse.de>
12671
12672         PR middle-end/44069
12673         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12674         out-of-bounds array accesses.
12675
12676 2010-05-25  Richard Guenther  <rguenther@suse.de>
12677
12678         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12679         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12680         (run_gcc): Re-organize to make cleanup easier.
12681
12682 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12683
12684         * config/s390/s390.c (optimization_options): Fix and move the
12685         flag_prefetch_loop_arrays override ...
12686         (override_options): ... here.
12687
12688 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12689
12690         * diagnostic.c: Don't include plugin.h.
12691         (diagnostic_report_diagnostic): Don't handle plugins specially
12692         here.  Pass context to internal_error callback.
12693         * diagnostic.h (struct diagnostic_context): Add context parameter
12694         to internal_error callback.
12695         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12696         * plugin.h (struct diagnostic_context): Declare.
12697         (warn_if_plugins, plugins_internal_error_function): Declare.
12698         * toplev.c (general_init): Set global_dc->internal_error.
12699         * Makefile.in (diagnostic.o): Update dependencies.
12700
12701 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
12702
12703         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12704         * config/rs6000/t-darwin64: New.
12705         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12706         build crt2.
12707
12708 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12709
12710         PR 44203
12711         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12712         match the original (and intended) behaviour before r159557.  This
12713         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12714         in two ways.
12715
12716 2010-05-25  Richard Guenther  <rguenther@suse.de>
12717
12718         * doc/invoke.texi: Document -Ofast.
12719         * target.h (struct gcc_target): Add handle_ofast.
12720         * target-def.h (TARGET_HANDLE_OFAST): Add.
12721         (TARGET_INITIALIZER): Adjust.
12722         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12723         * common.opt (Ofast): Add.
12724
12725 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12726
12727         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12728         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12729
12730 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12731
12732         PR target/43610
12733         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12734         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12735         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12736         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12737
12738 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12739
12740         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12741         DW_OP_minus with negated offset instead of DW_OP_plus.
12742         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12743
12744 2010-05-25  Wei Guozhi  <carrot@google.com>
12745
12746         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12747         tst instruction and a new alternative.
12748         * config/arm/constraints.md (Pu): New constraint.
12749
12750 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12751
12752         * function.c (assign_stack_local_1): Initialize variable
12753         to avoid warning when bootstrapping at -O3.
12754
12755 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12756
12757         * configure.ac (all_lang_makefiles): Remove everything related to it.
12758         * configure: Regenerate.
12759         * Makefile.in: Fix reference to ada Make-lang.in.
12760         Remove support for LANG_MAKEFILES.
12761
12762 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12763             Sandra Loosemore  <sandra@codesourcery.com>
12764
12765         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12766         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12767         description.  Add arm_neon_fp16_ok.
12768         (Add Options): Add arm_neon and arm_neon_fp16.
12769
12770 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12771
12772         * diagnostic.c: Don't include flags.h.
12773         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12774         context parameters.  Check flags in the context passed as a parameter.
12775         (diagnostic_build_prefix): Add context parameter.  Check
12776         show_column flag in context.
12777         (diagnostic_action_after_output): Check fatal_errors flag in context.
12778         (diagnostic_report_current_module): Check show_column flag in context.
12779         (default_diagnostic_starter): Update call to
12780         diagnostic_build_prefix.
12781         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12782         (emit_diagnostic): Pass context to permissive_error_kind.
12783         (permerror): Pass context to permissive_error_kind.
12784         * diagnostic.h (struct diagnostic_context): Add show_column,
12785         pedantic_errors, permissive and fatal_errors fields.
12786         (diagnostic_build_prefix): Update prototype.
12787         * langhooks.c
12788         * toplev.c (process_options): Set flags in global_dc from
12789         flag_show_column, flag_pedantic_errors, flag_permissive,
12790         flag_fatal_errors.
12791         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12792         to diagnostic_build_prefix.
12793         * Makefile.in (diagnostic.o): Update dependencies.
12794
12795 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12796
12797         * config/i386/ia32intrin.h (__crc32q): Define only if
12798         __SSE4_2__ is defined.
12799
12800 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12801
12802         PR target/44132
12803         PR middle-end/43602
12804         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12805         DECL_VISIBILITY_SPECIFIED.
12806         (emutls_decl): Set DECL_PRESERVE_P and copy
12807         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12808         (emutls_finalize_control_var): New callback.
12809         (emutls_finish): Finalize emutls control variables.
12810         * toplev.c (compile_file): Move the call to emutls_finish ()
12811         before varpool_assemble_pending_decls ().
12812
12813 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12814
12815         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12816         added to the preprocessor condition.
12817
12818 2010-05-24  Paul Brook  <paul@codesourcery.com>
12819
12820         * gengtype-lex.l: Add HARD_REG_SET.
12821         * expr.c (expand_expr_real_1): Record writes to hard registers.
12822         * function.c (rtl_data): Add asm_clobbers.
12823         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12824         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12825         Use crtl->asm_clobbers.
12826
12827 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12828
12829         * doc/makefile.texi (Makefile): Mention stages 'profile'
12830         and 'feedback' for profiledbootstrap.
12831
12832 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12833
12834         PR target/44245
12835         * config/i386/i386.c (def_builtin): Properly check
12836         OPTION_MASK_ISA_64BIT.
12837
12838 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12839
12840         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12841         typedefs with different but compatible types.  Allow duplicate
12842         typedefs with the same type except for pedantic non-C1X, but give
12843         warning for variably modified types.
12844         * c-typeck.c (tagged_types_tu_compatible_p,
12845         function_types_compatible_p, type_lists_compatible_p,
12846         comptypes_internal): Add parameter different_types_p; set
12847         *different_types_p for different but compatible types.  All
12848         callers changed.
12849         (comptypes_check_different_types): New.
12850         * c-tree.h (comptypes_check_different_types): Declare.
12851
12852 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12853
12854         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12855         * jump.c: Include basic-block.h.
12856         * profile.c: Likewise.
12857         * tree-profile.c: Likewise.
12858         * coverage.c: Likewise.
12859         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12860         (optimize_function_for_speed_p): Likewise.
12861         * function.h (optimize_function_for_size_p,
12862         optimize_function_for_speed_p): Moved here from basic-block.h.
12863         * Makefile.in: Update dependencies.
12864
12865 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12866
12867         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12868         before calling make; allow override through $MAKE.
12869         * doc/invoke.texi (Optimize Options): Document override.
12870
12871 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12872
12873         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12874         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12875         (rs6000_mode_dependent_address_ptr): Make static.
12876         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12877         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12878         Remove.
12879
12880 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12881
12882         PR target/43869
12883         * config/i386/i386.c: Make sure that the correct regparm is passed.
12884
12885 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12886
12887         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12888         * sbitmap.c: ...to here to internalize sbitmap element access.
12889         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12890         Explain why basic-block.h is included.
12891         * function.h: Include tm.h for CUMULATIVE_ARGS.
12892         * Makefile.in: Update dependencies.
12893
12894 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12895
12896         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12897         New core types.
12898         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12899         * sbitmap.c: Include sbitmap.h.
12900         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12901         hard-reg-set.h.  Split everything related to regsets out from here...
12902         * regset.h: ...to here.  New file.
12903         * df.h: Include regset.h and sbitmap.h.
12904         * tree-flow.h: Likewise.
12905         * cfgloop.h: Likewise.
12906         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12907         * cgraph.h: Include vec.h and function.h.
12908         * reload.h (struct insn_chain): Change types of live_throughout
12909         and dead_or_set from regset_head to bitmap_head.
12910         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12911         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12912         spilled_regs from regset_head to bitmap_head to avoid dependency
12913         in regset.h.
12914         * sel-sched-ir.h: Include regset.h.
12915         * reload.c: Include df.h before reload.h.
12916         * caller-save.c: Likewise.
12917         * reload1.c: Likewise.
12918         * ira.c: Likewise.
12919         (mark_elimination): Update type of r to bitmap, consistent with
12920         DF_LR_IN.
12921         * dominance.c: Include bitmap.h.
12922         * modulo-sched.c: Include df.h.
12923         * cfganal.c: Include bitmap.h and sbitmap.h.
12924         * cfgbuild.c: Include sbitmap.h.
12925         * lcm.c: Include sbitmap.h.
12926         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12927         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12928         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12929         * cselib.c: Include bitmap.h.
12930         * tree-optimize.c: Include regset.h.
12931         * stmt.c: Include bitmap.h.
12932         * Makefile.in: Update dependencies.
12933
12934 2010-05-22  Jan Hubicka  <jh@suse.cz>
12935
12936         * cgraph.h (struct varpool_node): Add same_comdat_group.
12937         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12938         pointer.
12939         (output_varpool): Update call of lto_output_varpool_node.
12940         (input_varpool): Read same_comdat_group pointer.
12941         (input_varpool_1): Fixup same_comdat_group pointer.
12942         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12943         group is needed, all are.
12944         * varpool.c (varpool_remove_node): Remove node from same comdat group
12945         linklist too.
12946         (varpool_analyze_pending_decls): Walk same comdat groups.
12947
12948 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12949
12950         * rtl.h (union rtunion_def): Remove rt_bit member.
12951         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12952         * print-rtl (print_rtx): Do not print the member.
12953         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12954         * gengenrtl.c (type_from_format): Likewise.
12955         (accessor_from_format): Likewise.
12956
12957 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12958
12959         * dbgcnt.c: Include toplev.h instead of errors.h.
12960         * ira-emit.c: Don't include errors.h.
12961         * ira.c: Include toplev.h instead of errors.h.
12962         * lto-compress.c: Include toplev.h instead of errors.h.
12963         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12964         ira.o, dbgcnt.o): Update dependencies.
12965
12966 2010-05-22  Richard Guenther  <rguenther@suse.de>
12967
12968         * gimple.c (gimple_types_compatible_p): Check type qualifications
12969         before merging pointer to complete and pointer to incomplete type.
12970         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12971         we use our own resolution algorithm.  The gold linker plugin
12972         doesn't do the job we want it to do here.
12973
12974 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12975
12976         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12977         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12978         (sparc_mode_dependent_address_p): New function.
12979
12980 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12981
12982         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12983
12984         * timevar.c: Do not include any core headers.
12985         (timevar_print): De-i18n-ize.
12986         (print_time): Likewise.
12987         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12988
12989 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12990
12991         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12992         langhooks-def.h.
12993         (diagnostic_initialize): Initialize x_data not last_function.
12994         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12995         (default_diagnostic_starter): Call
12996         diagnostic_report_current_module not
12997         diagnostic_report_current_function.
12998         (diagnostic_report_diagnostic): Initialize x_data not
12999         abstract_origin.
13000         (verbatim): Likewise.
13001         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
13002         x_data.
13003         (struct diagnostic_context): Change last_function to x_data.
13004         (diagnostic_auxiliary_data): Replace with
13005         diagnostic_context_auxiliary_data and
13006         diagnostic_info_auxiliary_data.
13007         (diagnostic_last_function_changed, diagnostic_set_last_function,
13008         diagnostic_report_current_function): Move to tree-diagnostic.h.
13009         (print_declaration, dump_generic_node, print_generic_stmt,
13010         print_generic_stmt_indented, print_generic_expr,
13011         print_generic_decl, debug_c_tree, dump_omp_clauses,
13012         print_call_name, debug_generic_expr, debug_generic_stmt,
13013         debug_tree_chain, default_tree_printer): Move to
13014         tree-pretty-print.h.
13015         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
13016         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
13017         gimple-pretty-print.h.
13018         * pretty-print.c: Don't include tree.h
13019         (pp_base_format): Don't handle %K here.
13020         (pp_base_tree_identifier): Move to tree-pretty-print.c.
13021         * pretty-print.h (text_info): Change abstract_origin to x_data.
13022         (pp_tree_identifier, pp_unsupported_tree,
13023         pp_base_tree_identifier): Move to tree-pretty-print.h.
13024         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
13025         tree-pretty-print.h: New files.
13026         * tree-pretty-print.c: Include tree-pretty-print.h.
13027         (percent_K_format): New.  Moved from pretty-print.c.
13028         (pp_base_tree_identifier): Move from pretty-print.c.
13029         * c-objc-common.c: Include tree-pretty-print.h.
13030         (c_tree_printer): Handle %K here.
13031         * langhooks.c: Include tree-diagnostic.h.
13032         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
13033         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
13034         (default_tree_printer): Handle %K using percent_K_format.
13035         (general_init): Use default_tree_diagnostic_starter.
13036         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
13037         (free_lang_data): Use default_tree_diagnostic_starter.
13038         * c-pretty-print.c: Include tree-pretty-print.h.
13039         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
13040         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
13041         * dwarf2out.c: Include tree-pretty-print.h.
13042         * except.c: Include tree-pretty-print.h.
13043         * gimple-pretty-print.c: Include tree-pretty-print.h and
13044         gimple-pretty-print.h.
13045         * gimplify.c: Include tree-pretty-print.h.
13046         * graphite-poly.c: Include tree-pretty-print.h and
13047         gimple-pretty-print.h.
13048         * ipa-cp.c: Include tree-pretty-print.h.
13049         * ipa-inline.c: Include gimple-pretty-print.h.
13050         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
13051         * ipa-pure-const.c: Include gimple-pretty-print.h.
13052         * ipa-struct-reorg.c: Include tree-pretty-print.h and
13053         gimple-pretty-print.h.
13054         * ipa-type-escape.c: Include tree-pretty-print.h.
13055         * print-rtl.c: Include tree-pretty-print.h.
13056         * print-tree.c: Include gimple-pretty-print.h.
13057         * sese.c: Include tree-pretty-print.h.
13058         * tree-affine.c: Include tree-pretty-print.h.
13059         * tree-browser.c: Include tree-pretty-print.h.
13060         * tree-call-cdce.c: Include gimple-pretty-print.h.
13061         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
13062         * tree-chrec.c: Include tree-pretty-print.h.
13063         * tree-data-ref.c: Include tree-pretty-print.h and
13064         gimple-pretty-print.h.
13065         * tree-dfa.c: Include tree-pretty-print.h.
13066         * tree-if-conv.c: Include tree-pretty-print.h and
13067         gimple-pretty-print.h.
13068         * tree-inline.c: Include tree-pretty-print.h.
13069         * tree-into-ssa.c: Include tree-pretty-print.h and
13070         gimple-pretty-print.h.
13071         * tree-nrv.c: Include tree-pretty-print.h.
13072         * tree-object-size.c: Include tree-pretty-print.h and
13073         gimple-pretty-print.h.
13074         * tree-outof-ssa.c: Include tree-pretty-print.h and
13075         gimple-pretty-print.h.
13076         * tree-parloops.c: Include tree-pretty-print.h and
13077         gimple-pretty-print.h.
13078         * tree-predcom.c: Include tree-pretty-print.h and
13079         gimple-pretty-print.h.
13080         * tree-scalar-evolution.c: Include tree-pretty-print.h and
13081         gimple-pretty-print.h.
13082         * tree-sra.c: Include tree-pretty-print.h.
13083         * tree-ssa-address.c: Include tree-pretty-print.h.
13084         * tree-ssa-alias.c: Include tree-pretty-print.h.
13085         * tree-ssa-ccp.c: Include tree-pretty-print.h and
13086         gimple-pretty-print.h.
13087         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
13088         * tree-ssa-copy.c: Include tree-pretty-print.h and
13089         gimple-pretty-print.h.
13090         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
13091         * tree-ssa-dce.c: Include tree-pretty-print.h and
13092         gimple-pretty-print.h.
13093         * tree-ssa-dom.c: Include tree-pretty-print.h and
13094         gimple-pretty-print.h.
13095         * tree-ssa-dse.c: Include gimple-pretty-print.h.
13096         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
13097         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
13098         * tree-ssa-live.c: Include tree-pretty-print.h and
13099         gimple-pretty-print.h.
13100         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
13101         gimple-pretty-print.h.
13102         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
13103         gimple-pretty-print.h.
13104         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
13105         gimple-pretty-print.h.
13106         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
13107         gimple-pretty-print.h.
13108         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
13109         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
13110         * tree-ssa-operands.c: Include tree-pretty-print.h and
13111         gimple-pretty-print.h.
13112         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
13113         gimple-pretty-print.h.
13114         * tree-ssa-pre.c: Include tree-pretty-print.h and
13115         gimple-pretty-print.h.
13116         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
13117         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
13118         gimple-pretty-print.h.
13119         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
13120         gimple-pretty-print.h.
13121         * tree-ssa-sink.c: Include gimple-pretty-print.h.
13122         * tree-ssa-ter.c: Include tree-pretty-print.h and
13123         gimple-pretty-print.h.
13124         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
13125         * tree-ssa.c: Include tree-pretty-print.h and
13126         gimple-pretty-print.h.
13127         * tree-stdarg.c: Include gimple-pretty-print.h.
13128         * tree-switch-conversion.c: Include gimple-pretty-print.h.
13129         * tree-tailcall.c: Include tree-pretty-print.h and
13130         gimple-pretty-print.h.
13131         * tree-vect-data-refs.c: Include tree-pretty-print.h and
13132         gimple-pretty-print.h.
13133         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
13134         gimple-pretty-print.h.
13135         * tree-vect-loop.c: Include tree-pretty-print.h and
13136         gimple-pretty-print.h.
13137         * tree-vect-patterns.c: Include gimple-pretty-print.h.
13138         * tree-vect-slp.c: Include tree-pretty-print.h and
13139         gimple-pretty-print.h.
13140         * tree-vect-stmts.c: Include tree-pretty-print.h and
13141         gimple-pretty-print.h.
13142         * tree-vectorizer.c: Include tree-pretty-print.h.
13143         * tree-vrp.c: Include tree-pretty-print.h and
13144         gimple-pretty-print.h.
13145         * value-prof.c: Include tree-pretty-print.h and
13146         gimple-pretty-print.h.
13147         * var-tracking.c: Include tree-pretty-print.h.
13148         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
13149         (tree-diagnostic.o): New dependencies.
13150         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
13151         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
13152         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
13153         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
13154         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
13155         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
13156         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
13157         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
13158         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
13159         tree-ssa-address.o, tree-ssa-loop-niter.o,
13160         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
13161         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
13162         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
13163         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
13164         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
13165         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
13166         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
13167         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
13168         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
13169         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
13170         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
13171         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
13172         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
13173         tree-switch-conversion.o, var-tracking.o, value-prof.o,
13174         cfgexpand.o, pretty-print.o): Update dependencies.
13175
13176 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
13177
13178         * tree-ssa-structalias.c: Remove tm_p.h from include.
13179
13180 2010-05-21  Jeff Law  <law@redhat.com>
13181
13182         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
13183
13184 2010-05-21  Jason Merrill  <jason@redhat.com>
13185
13186         * tree-eh.c (cleanup_is_dead_in): New.
13187         (lower_try_finally): Don't generate a dead cleanup region.
13188         (lower_cleanup): Likewise.
13189
13190 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
13191
13192         PR debug/44223
13193         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
13194         unchain each use from the cyclic next_regno_use chain first.
13195
13196 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
13197
13198         * real: Do not include gmp.h, mpfr.h, and mpc.h.
13199         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
13200         (real_value_negate, real_value_abs): New prototypes.
13201         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
13202         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
13203         new include file for interface between MPFR and REAL_VALUE_TYPE.
13204         * real.c: Include realmpfr.h.
13205         (real_arithmetic2): Remove legacy function.
13206         (real_value_negate): New.
13207         (real_value_abs): New.
13208         (mfpr_from_real, real_from_mpfr): Move from here...
13209         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
13210         * builtins.c: Include realmpfr.h.
13211         * fold-const.c: Include realmpfr.h.
13212         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
13213         (fold_negate_const): Likewise.
13214         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
13215         * toplev.c: Include realmpfr.h.
13216         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
13217         and real_value_negate.
13218         * fixed-value.c (check_real_for_fixed_mode): Likewise.
13219         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
13220         (vfp3_const_double_index): Likewise.
13221         (arm_print_operand): Likewise.
13222         * Makefile.in: Update dependencies.
13223
13224 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13225
13226         * config/s390/s390.c (override_options): Increase the default
13227         of max-completely-peel-times.
13228
13229 2010-05-21  Julian Brown  <julian@codesourcery.com>
13230             Mark Mitchell  <mark@codesourcery.com>
13231
13232         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
13233         sibling calls for Thumb-1.
13234         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
13235         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
13236         Thumb-2.
13237         (*call_insn, *call_value_insn): Don't use for Thumb-2.
13238         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
13239         for Thumb-2.
13240         (return): New expander.
13241         (*arm_return): New name for ARM return insn.
13242         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
13243
13244 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
13245
13246         * config.gcc (sparc64-*-rtems*): New target.
13247
13248 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
13249
13250         * tree.c (build_function_decl_skip_args): Fix grammar.
13251         (build_function_type_list_1): Fix typos, adjust formatting.
13252
13253 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
13254
13255         * tree.h: Include real.h and fixed-value.h as basic datatypes.
13256         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
13257         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
13258         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
13259         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
13260         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
13261         tree-pretty-print.c, tree-loop-distribution.c,
13262         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
13263         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
13264         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
13265         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
13266         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
13267         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
13268         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
13269         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
13270         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
13271         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
13272         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
13273         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
13274         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
13275         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
13276         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
13277         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
13278         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
13279         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
13280         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
13281         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
13282         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
13283         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
13284         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
13285         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
13286         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
13287         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
13288         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
13289         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
13290         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
13291         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
13292         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
13293         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
13294         config/score/score7.c, config/score/score.c, config/arm/arm.c,
13295         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
13296         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
13297         config/bfin/bfin.c: Clean up redundant includes.
13298         * Makefile.in: Update accordingly.
13299
13300 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
13301
13302         PR middle-end/44204
13303         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
13304         statement has no arguments.
13305
13306 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
13307
13308         PR/44139
13309         * varasm.c (emutls_decl): Merge attributes to new decl.
13310
13311 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13312
13313         PR middle-end/44101
13314         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
13315         around the uniquized constructor if its type requires a conversion.
13316
13317 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
13318
13319         PR debug/44205
13320         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
13321         at -O0 goto_locus of any of the incoming edges differs from
13322         goto_locus of outgoing edge, or gimple_location of any of the
13323         labels differs.
13324
13325 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
13326
13327         * ira.c (ira_non_ordered_class_hard_regs): Define.
13328         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
13329         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
13330         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
13331         cost of unaligned hard regs when allocating multi-reg pseudos.
13332
13333 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
13334
13335         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
13336         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
13337         for TARGET_NO_FLOAT.
13338         * config/mips/mips.c (mips_file_start): Expand conditional expression
13339         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
13340         (mips_override_options): Move -mno-float override -msoft-float and
13341         -mhard-float.
13342         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
13343         Condition(TARGET_SUPPORTS_NO_FLOAT).
13344         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
13345         __mips_no_float here.
13346         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
13347         (TARGET_SUPPORTS_NO_FLOAT): Define.
13348         * config/mips/sdemtk.opt: Delete.
13349
13350 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
13351
13352         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
13353
13354 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
13355
13356         PR target/43733
13357         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
13358         * configure: Regenerate.
13359         * config.in: Regenerate.
13360         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
13361         instead of sahf only for 64bit targets.
13362
13363 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13364
13365         PR debug/44178
13366         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
13367         setup_ref_regs for DEBUG_INSNs.
13368
13369 2010-05-20  Jan Hubicka  <jh@suse.cz>
13370
13371         PR middle-end/44197
13372         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
13373
13374 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13375
13376         PR bootstrap/43870
13377         * df-scan.c (df_ref_compare): Stabilize sort.
13378
13379 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13380
13381         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13382         argument.  Don't use DW_OP_piece if offset is non-zero,
13383         put offset into second DW_OP_bit_piece argument.
13384         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13385         compute offset.
13386
13387 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13388
13389         PR target/44202
13390         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13391         settings for 16-bit-constant "addo" alternative.
13392
13393 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13394
13395         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13396         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13397
13398         PR target/43764
13399         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13400         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13401         Use it.
13402
13403 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13404
13405         * diagnostic.c (FLOAT, FFS): Don't undefine.
13406         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13407         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13408         include ordering.
13409
13410 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13411
13412         * combine.c (propagate_for_debug): Call make_compound_operation
13413         on the source value.
13414         (try_combine): When implementing a split chosen by find_split_point,
13415         either copy i2src or set it to null.  Assert that i2src is not null
13416         before substituting into CALL_INSN_FUNCTION_USAGE.
13417
13418 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13419
13420         * double-int.h (double_int_ior): New function.
13421         * tree.h (build_int_cst_wide_type): Remove.
13422         * tree.c (build_int_cst_wide_type): Remove.
13423         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13424         of build_int_cst_wide_type.
13425         * stor-layout.c (set_sizetype): (Ditto.).
13426         * dojump.c (do_jump): Use build_int_cstu instead of
13427         build_int_cst_wide_type.
13428
13429 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13430
13431         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13432         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13433         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13434         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13435         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13436         propagate the 'data' argument to copy_tree_r.
13437         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13438         Propagate 'data' argument to walk_tree.
13439         (copy_if_shared): New function.
13440         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13441         (unmark_visited): New function.
13442         (unshare_body): Call copy_if_shared instead of doing it manually.
13443         (unvisit_body): Call unmark_visited instead of doing it manually.
13444
13445 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13446
13447         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13448         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13449         * hooks.c: Likewise.
13450         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13451         hook_tree_tree_int_treep_bool_null.
13452         * target.h (struct gcc_target): Update signature of fold_builtin
13453         field.
13454         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13455         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13456         instead of the call expression.
13457         (fold_builtin_call_array): Pass n and argarray directly.
13458         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13459         consing a list.
13460         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13461         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13462         `i' and use it in place of `arity'.
13463         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13464         Dereference `args' directly.
13465         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13466
13467 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13468
13469         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13470         3dnow, sse3, sse2.
13471         (Directives): Document optional dg-require-effective-target
13472         selector.
13473
13474 2010-05-19  Richard Guenther  <rguenther@suse.de>
13475
13476         PR lto/44196
13477         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13478
13479 2010-05-19  Richard Guenther  <rguenther@suse.de>
13480
13481         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13482         * common.opt (fwhopr=): New.
13483         * opts.c (common_handle_option): Handle OPT_fwhopr.
13484         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13485         * collect2.c (main): Match -fwhopr*.
13486         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13487         Execute ltrans stage in parallel when jobs is bigger than 1.
13488
13489 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13490
13491         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13492         pentiumpro on Solaris 8/x86 with Sun as.
13493         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13494         hidden alias bug.
13495         (gcc_cv_as_ix86_quad): Check for .quad directive.
13496         * configure: Regenerate.
13497         * config.in: Regenerate.
13498         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13499
13500 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13501
13502         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13503         also for indirect edges.  Actual printing moved...
13504         (ipa_print_node_jump_functions_for_edge): ...here.
13505         (ipa_compute_jump_functions): Renamed to
13506         ipa_compute_jump_functions_for_edge and made static.
13507         (ipa_compute_jump_functions): New function.
13508         (make_edge_direct_to_target): Check if the number of arguments on
13509         the newly direct edge is the same as the number of parametrs of
13510         the callee.
13511         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13512         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13513         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13514         analysis functions unconditionally, call the new
13515         ipa_analyze_params_uses on the node instead of every edge.
13516
13517 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13518
13519         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13520         to tree.
13521         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13522         also checks for a constant int vs.  non-constant but
13523         loop-invariant steps.
13524         (find_or_create_group): Change the sort algorithm to only consider
13525         steps that are constant ints.
13526         (idx_analyze_ref): Adopt code to handle a tree instead of a
13527         HOST_WIDE_INT for step.
13528         (gather_memory_references_ref): Handle tree instead of int and be
13529         prepared to see a NULL_TREE.
13530         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13531         prefetches if the step cannot be calculated at compile time.
13532         (issue_prefetch_ref): Issue prefetches for non-constant but
13533         loop-invariant steps.
13534
13535 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13536
13537         Revert:
13538         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13539
13540         * tree.h (build_call_list): Remove.
13541         * tree.c (build_call_list): Remove.
13542
13543 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13544
13545         * tree.h (build_call_list): Remove.
13546         * tree.c (build_call_list): Remove.
13547
13548 2010-05-18  Jan Hubicka  <jh@suse.cz>
13549
13550         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13551
13552 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13553
13554         PR rtl-optimization/43332
13555         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13556
13557 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13558
13559         * tree.h (build_int_cstu): Implement as static inline.
13560         * tree.c (build_int_cstu): Remove function.
13561         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13562         sign extended.
13563
13564 2010-05-18  Richard Guenther  <rguenther@suse.de>
13565
13566         PR lto/44143
13567         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13568         (debug): Initialize from -save-temps.
13569         (collect_execute): Print command-line when verbose.
13570         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13571         for ltrans invocation.  Produce -dumpbase flag again.
13572         (process_args): Remove.
13573         (main): Simplify.
13574         * collect2.c (maybe_run_lto_and_relink): Only pass object
13575         files to lto-wrapper.
13576         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13577
13578 2010-05-18  Jan Hubicka  <jh@suse.cz>
13579
13580         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13581         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13582
13583 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13584
13585         PR lto/44184
13586         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13587         in a GIMPLE_ASM.
13588         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13589         in a GIMPLE_ASM.
13590
13591 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13592
13593         PR debug/41371
13594         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13595         rtx_equal_p inline.
13596
13597 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13598
13599         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13600         lto-macho as lto_binary_reader.
13601
13602         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13603         after .section directive; just print it before the directive instead.
13604
13605 2010-05-17  Jan Hubicka  <jh@suse.cz>
13606
13607         * cgraph.c (cgraph_create_virtual_clone): Only check
13608         versionable_function_p when not in wpa and checking is enabled.
13609         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13610         there are no more functions to materialize.
13611
13612 2010-05-17  Jan Hubicka  <jh@suse.cz>
13613
13614         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13615         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13616         New functions.
13617         (output_cgraph): Call output_cgraph_opt_summary.
13618         (input_cgrpah): Call input_cgraph_opt_summary.
13619         (output_cgraph_opt_summary_p, output_node_opt_summary,
13620         input_node_opt_summary, input_cgraph_opt_section): New functions.
13621         * lto-section-in.c (lto_section_name): Add cgraphopt.
13622         * tree-inline.c (tree_function_versioning): Handle parm_num.
13623         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13624         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13625
13626 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13627
13628         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13629         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13630         the insn to prefetch ratio heuristic to loops with known trip count.
13631
13632 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13633
13634         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13635         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13636         is far from what is required by the prefetch.
13637
13638 2010-05-17  Jan Hubicka  <jh@suse.cz>
13639
13640         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13641         (ipcp_estimate_growth): Likewise.
13642         (ipcp_const_param_count): Likewise.
13643         (ipcp_insert_stage): Likewise.
13644         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13645         (visit_store_addr_for_mod_analysis): Set used flag.
13646         (ipa_detect_param_modifications): Set used flag for SSE params;
13647         update use of walk_stmt_load_store_addr_ops.
13648         (ipa_print_node_params): Print used flag.
13649         (ipa_write_node_info): Stream used flag.
13650         (ipa_read_node_info): Likewise.
13651         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13652         (ipa_is_param_used): New function.
13653         (lto_ipa_fixup_call_notes): Remove unused declaration.
13654
13655 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13656
13657         PR target/44074
13658         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13659         * configure: Regenerate.
13660         * config.in: Regenerate.
13661         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13662         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13663         Don't emit whitespace.
13664         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13665         (*rep_movsi): Likewise.
13666         (*rep_movsi_rex64): Likewise.
13667         (*rep_movqi): Likewise.
13668         (*rep_movqi_rex64): Likewise.
13669         (*rep_stosdi_rex64): Likewise.
13670         (*rep_stossi): Likewise.
13671         (*rep_stossi_rex64): Likewise.
13672         (*rep_stosqi): Likewise.
13673         (*rep_stosqi_rex64): Likewise.
13674         (*cmpstrnqi_nz_1): Use {%;} after repz.
13675         (*cmpstrnqi_nz_rex_1): Likewise.
13676         (*cmpstrnqi_1): Likewise.
13677         (*cmpstrnqi_rex_1): Likewise.
13678         (*strlenqi_1): Use {%;} after repnz.
13679         (*strlenqi_rex_1): Likewise.
13680         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13681         (*sync_compare_and_swap<mode>): Likewise.
13682         (sync_double_compare_and_swap<mode>): Likewise.
13683         (*sync_double_compare_and_swapdi_pic): Likewise.
13684         (sync_old_add<mode>): Likewise.
13685         (sync_add<mode>): Likewise.
13686         (sync_sub<mode>): Likewise.
13687         (sync_<code><mode>): Likewise.
13688
13689 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13690
13691         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13692         otr_token and polymorphic.
13693         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13694         (cgraph_clone_edge): Copy the above fields.
13695         * tree.c (get_binfo_at_offset): New function.
13696         * tree.h (get_binfo_at_offset): Declare.
13697         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13698         type, reordered items, updated comments.
13699         (union jump_func_value): Added base_type field, reordered fields.
13700         (enum ipa_lattice_type): Moved down in the file.
13701         (struct ipa_param_descriptor): New field polymorphic.
13702         (ipa_is_param_polymorphic): New function.
13703         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13704         (ipa_print_node_jump_functions): Print known type jump functions.
13705         (compute_complex_pass_through): Renamed to...
13706         (compute_complex_assign_jump_func): this.
13707         (compute_complex_ancestor_jump_func): New function.
13708         (compute_known_type_jump_func): Likewise.
13709         (compute_scalar_jump_functions): Create known type and complex ancestor
13710         jump functions.
13711         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13712         flag in the call note accordingly.
13713         (ipa_analyze_call_uses): Renamed to...
13714         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13715         variable var only in the block where it is used.
13716         (ipa_analyze_virtual_call_uses): New function.
13717         (ipa_analyze_call_uses): Likewise.
13718         (combine_known_type_and_ancestor_jfs): Likewise.
13719         (update_jump_functions_after_inlining): Implemented handling of a
13720         number of new jump function types combination.
13721         (print_edge_addition_message): Removed.
13722         (make_edge_direct_to_target): New function.
13723         (try_make_edge_direct_simple_call): Likewise.
13724         (try_make_edge_direct_virtual_call): Likewise.
13725         (update_call_notes_after_inlining): Renamed to...
13726         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13727         indirect calls to try_make_edge_direct_simple_call, also calls
13728         try_make_edge_direct_virtual_call for virtual calls.
13729         (ipa_print_node_params): Changed the header message.
13730         (ipa_write_jump_function): Stream also known type jump functions.
13731         (ipa_read_jump_function): Likewise.
13732         (ipa_write_indirect_edge_info): Stream new fields in
13733         cgraph_indirect_call_info.
13734         (ipa_read_indirect_edge_info): Likewise.
13735         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13736         GIMPLE_FOLD_H.
13737
13738 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13739
13740         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13741
13742 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13743
13744         * tree.h (CALL_EXPR_ARGS): Delete.
13745         (call_expr_arglist): Delete.
13746         * tree.c (call_expr_arglist): Delete.
13747         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13748         targetm.fold_builtin.
13749         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13750         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13751         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13752         arglist parameter.  Use CALL_EXPR_ARG.
13753         (picochip_expand_builtin_3op): Likewise.
13754         (picochip_expand_builtin_2opvoid): Likewise.
13755         (picochip_expand_array_get): Likewise.
13756         (picochip_expand_array_put): Likewise.
13757         (picochip_expand_array_testport): Likewise.
13758         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13759         rather than arglist.
13760         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13761         CALL_EXPR_ARGS.
13762         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13763         than TREE_VALUE and TREE_CHAIN.
13764         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13765         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13766         the arglist.
13767
13768 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13769
13770         PR bootstrap/42347
13771         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13772         to have no fallthru edge.
13773
13774         PR middle-end/44102
13775         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13776         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13777         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13778         add BARRIER after previous bb if needed.
13779
13780 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13781
13782         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13783
13784 2010-05-17  Alan Modra  <amodra@gmail.com>
13785
13786         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13787         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13788         with copy_reg rtx param.
13789         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13790         Correct cases where code for ABI_V4 did not initialise the reg
13791         used to access frame.  Also leave frame_reg_rtx as sp for large
13792         frames that save no regs.
13793
13794 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13795
13796         PR middle-end/44133
13797         * tree-sra.c (create_access_replacement): New parameter rename, mark
13798         the replaement for renaming only when it is true.
13799         (get_access_replacement): Pass true in the rename parameter of
13800         create_access_replacement.
13801         (get_unrenamed_access_replacement): New function.
13802         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13803         replacement declaration from it.
13804
13805 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13806
13807         * function.c (try_fit_stack_local, add_frame_space): New static
13808         functions.
13809         (assign_stack_local_1): Use them.  Look for opportunities to use
13810         space previously wasted on alignment.
13811         * function.h (struct frame_space): New.
13812         (struct rtl_data): Add FRAME_SPACE_LIST member.
13813         * reload1.c (something_was_spilled): New static variable.
13814         (alter_reg): Set it.
13815         (reload): Test it in addition to testing if the frame size changed.
13816
13817 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13818
13819         * config/s390/s390.c: Define sane prefetch settings and activate
13820         flag_prefetch_loop_arrays on -O3.
13821         * config/s390/s390.h: Declare that read can use write prefetch.
13822
13823 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13824
13825         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13826         build.
13827
13828 2010-05-16  Jan Hubicka  <jh@suse.cz>
13829
13830         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13831         function body; do not check stdarg field of struct function.
13832
13833 2010-05-16  Jan Hubicka  <jh@suse.cz>
13834
13835         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13836         * cgraph.h (cgraph_local_info): Add versionable flag.
13837         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13838         (ipcp_versionable_function_p): Use it.
13839         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13840         versionable flag.
13841
13842 2010-05-16  Jan Hubicka  <jh@suse.cz>
13843
13844         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13845         clone into hash when it is different from orig.
13846         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13847         * cgraph.h (cgraph_clone_node): Update prototype.
13848         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13849         (lto_cgraph_encoder_delete): Delete body map.
13850         (lto_cgraph_encoder_size): Move to header.
13851         (lto_cgraph_encoder_encode_body_p,
13852         lto_set_cgraph_encoder_encode_body): New.
13853         (lto_output_node): Do not take written_decls argument; output clone_of
13854         pointer.
13855         (add_node_to): Add include_body_argument; call
13856         lto_set_cgraph_encoder_encode_body on master of the clone.
13857         (add_references): Update use of add_node_to.
13858         (compute_ltrans_boundary): Likewise.
13859         (output_cgraph): Do not create written_decls bitmap.
13860         (input_node): Take nodes argument; stream in clone_of correctly.
13861         (input_cgraph_1): Update use of input_node.
13862         * lto-streamer-out.c (lto_output): Use encoder info to decide
13863         what bodies to output.
13864         * ipa-inline.c (cgraph_clone_inlined_nodes,
13865         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13866         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13867         (lto_cgraph_encoder_size): Define here.
13868         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13869         Declare.
13870
13871 2010-05-16  Richard Guenther  <rguenther@suse.de>
13872
13873         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13874         -fipa-type-escape.
13875         * ipa-type-escape.c (gate_type_escape_vars): Run when
13876         -fipa-struct-reorg runs.
13877         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13878         * common.opt (fipa-type-escape): Remove.
13879
13880 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13881
13882         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13883         (decode_options): Likewise.
13884         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13885
13886 2010-05-16  Jan Hubicka  <jh@suse.cz>
13887
13888         * ipa.c (function_and_variable_visibility): Also bring local all
13889         aliases.
13890
13891 2010-05-16  Richard Guenther  <rguenther@suse.de>
13892
13893         * alias.c (nonoverlapping_memrefs_p): Remove use of
13894         IPA type-escape information.
13895
13896 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13897
13898         * c-common.c (c_common_reswords): Add _Static_assert for C.
13899         * c-parser.c (c_token_starts_declaration,
13900         c_parser_next_token_starts_declaration,
13901         c_parser_static_assert_declaration_no_semi,
13902         c_parser_static_assert_declaration): New.
13903         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13904         Handle static assertions if static_assert_ok.
13905         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13906         c_parser_compound_statement_nostart, c_parser_label,
13907         c_parser_for_statement, c_parser_objc_methodprotolist,
13908         c_parser_omp_for_loop): All callers of
13909         c_parser_declaration_or_fndef changed.
13910         (c_parser_struct_declaration): Handle static assertions.
13911         (c_parser_compound_statement_nostart): Use
13912         c_parser_next_token_starts_declaration and
13913         c_token_starts_declaration to detect start of declarations.
13914         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13915         Likewise.
13916
13917 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13918
13919         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13920         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13921         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13922         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13923         (mmix_function_outgoing_value): Rename to...
13924         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13925         (mmix_function_value_regno_p): Make static.
13926         (mmix_libcall_value): New function.
13927         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13928         mmix_function_value_regno_p): Remove declaration.
13929
13930 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13931
13932         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13933         BUILT_IN_ALLOCA if stack checking is enabled.
13934
13935 2010-05-16  Richard Guenther  <rguenther@suse.de>
13936
13937         * var-tracking.c (vars_copy_1): Inline ...
13938         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13939         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13940         (variable_merge_over_cur): Adjust.  Merge asserts.
13941         (variable_merge_over_src): Likewise.
13942         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13943         (variable_post_merge_new_vals): Merge asserts.
13944         (variable_post_merge_perm_vals): Likewise.
13945         (find_mem_expr_in_1pdv): Likewise.
13946         (dataflow_set_different_value): Remove.
13947         (onepart_variable_different_p): Merge asserts.
13948         (variable_different_p): Likewise.
13949         (dataflow_set_different_1): Inline ...
13950         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13951         (emit_notes_for_differences_1): Merge asserts.
13952
13953 2010-05-16  Richard Guenther  <rguenther@suse.de>
13954
13955         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13956         * optabs.c (libfunc_decl_hash): Likewise.
13957         * varasm.c (emutls_decl): Likewise.
13958
13959 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13960
13961         * c-decl.c: Don't include gimple.h.
13962         (merge_decls): Do not copy gimple_body.
13963
13964 2010-05-15  Jason Merrill  <jason@redhat.com>
13965
13966         * c.opt: Add -fnothrow-opt.
13967
13968 2010-05-15  Jan Hubicka  <jh@suse.cz>
13969
13970         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13971         analyzed.
13972         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13973
13974 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13975
13976         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13977         * Makefile.in: Add it.
13978         Fix all other Makefile dependencies for changes below.
13979         * tree.h: Include it instead of defining VEC primitives here.
13980         * gimple.h: Likewise.
13981         * rtl.h: Likewise.
13982         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13983         * except.h: Include vecir.h, break dependence on tree.h.
13984
13985         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13986         Move from here...
13987         * tree-iterator.c: ...to here.
13988         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13989
13990         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13991         tm_p.h.
13992         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13993         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13994         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13995         tree-mudflap.h, and target.h.
13996         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13997         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13998         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13999         Add FIXME for why gimple.h is still included (should be unnecessary
14000         since GCC 4.5 gimplification unit-at-a-time).
14001         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
14002         * c-pragma.c: Add FIXME for why function.h needs to be included just
14003         for cfun, at front-end level.
14004         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
14005         Do not include ggc.h, but include vecprim.h for VEC(char).
14006         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
14007         Explain why target.h is included.
14008         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
14009         Explain why gimple.h is included.
14010         * c-ppoutput.c: Do not include tm.h.
14011         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
14012         * c-parses.c: Explain why rtl.h is included, and that this (and only
14013         this) is also why tm.h must be included.
14014         Do not include except.h.
14015         * c-lang.c: Do not include ggc.h.
14016
14017 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
14018
14019         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
14020
14021 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
14022
14023         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
14024         unions by default if those structs and unions have no tags.  Do
14025         not condition anonymous struct and unions handling on flag_iso.
14026         Allow anonymous structs and unions for C1X.
14027         (finish_struct): Do not diagnose lack of named fields when
14028         anonymous structs and unions present for C1X.  Accept flexible
14029         array members in structure with anonymous structs or unions but no
14030         directly named fields.
14031         * doc/extend.texi (Unnamed Fields): Update.
14032
14033 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
14034
14035         * gimple.h (compare_field_offset): Rename into...
14036         (gimple_compare_field_offset): ...this.
14037         * gimple.c (compare_field_offset): Rename into...
14038         (gimple_compare_field_offset): ...this.  Compare the full access if
14039         the offset is self-referential.
14040         (gimple_types_compatible_p): Adjust for above renaming.
14041         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
14042         DECL_NONADDRESSABLE_P flag of fields before merging them.
14043
14044 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
14045
14046         * tree.h (ctor_to_list): Delete.
14047         * tree.c (ctor_to_list): Delete.
14048
14049 2010-05-15  Jan Hubicka  <jh@suse.cz>
14050
14051         * ipa-reference.c: Include toplev.h
14052         (is_proper_for_analysis): Only add to all_module_statics
14053         if it is allocated.
14054         (write_node_summary_p, stream_out_bitmap,
14055         ipa_reference_write_optimization_summary,
14056         ipa_reference_read_optimization_summary): New.
14057         (struct ipa_opt_pass_d pass_ipa_reference): Add
14058         optimization summary streaming.
14059         * lto-cgraph.c (referenced_from_this_partition_p,
14060         reachable_from_this_partition_p): New functions.
14061         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
14062         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
14063         * opts.c (decode_options): Enable ipa_reference.
14064         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
14065         * lto-streamer.h (referenced_from_this_partition_p,
14066         reachable_from_this_partition_p): Declare.
14067
14068 2010-05-15  Richard Guenther  <rguenther@suse.de>
14069
14070         PR tree-optimization/44038
14071         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
14072         taking the address of a V_C_E of a constant.
14073
14074 2010-05-14  Jan Hubicka  <jh@suse.cz>
14075
14076         * tree.h (memory_identifier_string): Remove.
14077         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
14078         (ipa_reference_global_vars_info_d): Remove statics_not_read and
14079         statics_not_written.
14080         (ipa_reference_optimization_summary_d): New structure.
14081         (ipa_reference_optimization_summary_t): New type and vector.
14082         (ipa_reference_vars_info_d): Embedd structures instead of using
14083         pointers.
14084         (reference_vars_to_consider): Remove out of GGC space.
14085         (module_statics_escape): Remove.
14086         (global_info_obstack): Rename to ...
14087         (optimization_summary_obstack): ... this one.
14088         (initialization_status_t): Remove.
14089         (memory_identifier_string): Remove.
14090         (get_reference_vars_info): Fix indenting.
14091         (set_reference_vars_info): Likewise.
14092         (get_reference_optimization_summary): New.
14093         (set_reference_optimization_summary): New.
14094         (get_global_reference_vars_info): Remove.
14095         (ipa_reference_get_read_global): Remove.
14096         (ipa_reference_get_written_global): Remove.
14097         (ipa_reference_get_not_read_global): Update.
14098         (ipa_reference_get_not_written_global): Update.
14099         (is_proper_for_analysis): Outlaw addressable.
14100         (propagate_bits): Update for new datastructures.
14101         (analyze_variable): Remove.
14102         (init_function_info): Update for new datastructures.
14103         (clean_function_local_data): Remove.
14104         (clean_function): Remove.
14105         (copy_global_bitmap): Use optimizations_summary_obstack.
14106         (duplicate_node_data): Duplicate optimization summary only.
14107         (remove_node_data): Remove optimization summary only.
14108         (generate_summary): Do not analyze variables; do not compute
14109         module_statics_escape; do not prune solutions by it.
14110         (read_write_all_from_decl): Fix typos in comments.
14111         (propagate): Doscover readonly and nonaddressable first;
14112         update for new datastructures; share global bitmaps.
14113         * ipa-reference.h (ipa_reference_get_read_global,
14114         ipa_reference_get_written_global): Remove.
14115         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
14116         * Makefile.in: Remove ipa-refereference from GT files.
14117
14118 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
14119
14120         PR debug/44112
14121         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
14122         for all SYMBOL_REF_DECLs.
14123
14124 2010-05-14  Jan Hubicka  <jh@suse.cz>
14125
14126         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
14127         (varpool_all_refs_explicit_p): New inline function.
14128         * ipa-reference.c: Update comment.
14129         (module_statics_written): Remove.
14130         (get_static_decl): Remove.
14131         (ipa_init): Do not initialize module_statics_written.
14132         (analyze_function): Likewise.
14133         (generate_summary): Likewise; do not compute module_statics_readonly
14134         and do not update variable flags.
14135         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
14136         * ipa.c: Inlucde flags.h
14137         (cgraph_local_node_p): New.
14138         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
14139         promote functions to local.
14140         (ipa_discover_readonly_nonaddressable_vars): New function.
14141         (function_and_variable_visibility): Use cgraph_local_node_p.
14142         * varpool.c (varpool_finalize_decl): Set force_output for
14143         DECL_PRESERVE_P vars.
14144
14145 2010-05-14  Jan Hubicka  <jh@suse.cz>
14146
14147         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
14148
14149 2010-05-14  Richard Guenther  <rguenther@suse.de>
14150
14151         PR tree-optimization/44119
14152         * tree-ssa-pre.c (eliminate): Properly mark replacement of
14153         a PHI node necessary.
14154
14155 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
14156
14157         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
14158
14159 2010-05-14  Jason Merrill  <jason@redhat.com>
14160
14161         PR c++/44127
14162         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
14163         (gimple_call_set_nothrow): New.
14164         * gimple.c (gimple_build_call_from_tree): Call it.
14165         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
14166
14167         PR c++/44127
14168         * gimplify.c (gimplify_seq_add_stmt): No longer static.
14169         * gimple.h: Declare it.
14170         * gimple.c (gimple_build_eh_filter): No ops.
14171
14172 2010-05-14  Jan Hubicka  <jh@suse.cz>
14173
14174         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
14175         nodes already in queue.
14176         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
14177         re-enqueueing node.
14178
14179 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
14180
14181         PR debug/44136
14182         * cfgexpand.c (expand_debug_expr): If non-memory op0
14183         has BLKmode, return NULL.
14184
14185 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
14186
14187         * config.gcc: Add support for --with-cpu option for bdver1.
14188         * config/i386/i386.h (TARGET_BDVER1): New macro.
14189         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
14190         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
14191         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
14192         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
14193         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
14194         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
14195         (processor_type): Add PROCESSOR_BDVER1.
14196         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
14197         processor_type in config/i386/i386.h.
14198         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
14199         movaps <reg, reg> instead of movapd <reg, reg> when replacing
14200         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
14201         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
14202         to emit packed xor instead of packed double/packed integer
14203         xor for SSE and AVX when moving a zero value.
14204         * config/i386/sse.md: Add check for
14205         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
14206         movapd/movdqa for SSE and AVX.
14207         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
14208         single logical operations i.e and, or and xor instead of packed double
14209         logical operations for SSE and AVX.
14210         * config/i386/i386-c.c (ix86_target_macros_internal):
14211         Add PROCESSOR_BDVER1.
14212         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
14213         (has_fma4, has_xop): New.
14214         * config/i386/i386.c (bdver1_cost): New variable.
14215         (m_BDVER1): New macro.
14216         (m_AMD_MULTIPLE): Add m_BDVER1.
14217         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
14218         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
14219         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
14220         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
14221         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
14222         x86_tune_sse_partial_reg_dependency,
14223         x86_tune_sse_unaligned_load_optimal,
14224         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
14225         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
14226         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
14227         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
14228         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
14229         Enable/disable for bdver1.
14230         (processor_target_table): Add bdver1_cost.
14231         (cpu_names): Add bdver1.
14232         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
14233          processor_alias_table.
14234         (ix86_expand_vector_move_misalign): Change.
14235         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
14236         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
14237         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
14238         of movupd/movdqu for SSE and AVX.
14239         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
14240         (ix86_tune_adjust_cost): Add code for bdver1.
14241         (standard_sse_constant_opcode): Add check for
14242         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
14243         of packed double xor for SSE and AVX.
14244
14245 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
14246
14247         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
14248         result to unsigned.
14249
14250 2010-05-14  Tristan Gingold  <gingold@adacore.com>
14251
14252         * toplev.c (default_debug_hooks): Remove this variable.
14253         (process_options): Remove assignments to default_debug_hooks.
14254
14255 2010-05-14  Martin Jambor  <mjambor@suse.cz>
14256
14257         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
14258         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
14259         * langhooks.h (struct lang_hooks_for_decls): Removed field
14260         fold_obj_type_ref.
14261         * tree.c (free_lang_data): Remove assignment to
14262         lang_hooks.fold_obj_type_ref.
14263         * tree.def (OBJ_TYPE_REF): Update comment.
14264
14265 2010-05-14  Richard Guenther  <rguenther@suse.de>
14266
14267         PR tree-optimization/44124
14268         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
14269
14270 2010-05-14  Alan Modra  <amodra@gmail.com>
14271
14272         PR target/44075
14273         * config/rs6000/rs6000.c (struct machine_function): Reorder
14274         fields for better packing.  Add lr_save_state.
14275         (rs6000_ra_ever_killed): Return lr_save_state if set.
14276         (rs6000_emit_eh_reg_restore): Set lr_save_state.
14277
14278 2010-05-13  Jan Hubicka  <jh@suse.cz>
14279
14280         * varpool.c (decide_is_variable_needed): Drop code checking
14281         TREE_SYMBOL_REFERENCED.
14282
14283 2010-05-13  Jan Hubicka  <jh@suse.cz>
14284
14285         * final.c (output_addr_const): Do not call mark_decl_referenced.
14286         * cgraphunit.c (process_function_and_variable_attributes): Use
14287         mark_needed_node dirrectly.
14288         (assemble_thunk): Do not call mark_decl_referenced.
14289
14290 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
14291
14292         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
14293
14294 2010-05-13  Jeff Law  <law@redhat.com>
14295
14296         * ira-conflicts.c (print_allocno_conflicts): New function broken out
14297         from...
14298         (print_conflicts): Call print_allocno_conflicts.
14299
14300 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14301
14302         PR debug/44104
14303         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
14304         if it is NULL.
14305
14306 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
14307
14308         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
14309         t-mingw-w64 or t-mingw-w32 for multilib configuration.
14310         * config/i386/t-mingw-w32: New.
14311         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
14312
14313 2010-05-13  Martin Jambor  <mjambor@suse.cz>
14314
14315         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
14316         gimple-fold.c).
14317         * gimple-fold.c (get_base_binfo_for_type): New function.
14318         (gimple_get_relevant_ref_binfo): Likewise.
14319         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14320         (gimple_fold_obj_type_ref): Likewise.
14321         (fold_gimple_call): Simplify condition for folding virtual calls
14322         and call gimple_fold_obj_type_ref.
14323         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
14324         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14325
14326 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
14327
14328         * config/rs6000/rs6000-protos.h
14329         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
14330         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
14331         (rs6000_debug_mode_dependent_address)
14332         (rs6000_mode_dependent_address_ptr): Likewise.
14333
14334 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14335
14336         PR debug/43983
14337         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
14338         by SRA.
14339         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
14340         * tree-sra.c (create_access_replacement): Call unshare_expr before
14341         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
14342         * dwarf2out.c: Include tree-flow.h.
14343         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
14344         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
14345         Handle DW_OP_bit_piece.
14346         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
14347         construct_piece_list, adjust_piece_list): New functions.
14348         (add_var_loc_to_decl): Handle SRA optimized variables.
14349         Adjust for var_loc_note to loc field renaming.
14350         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
14351         in VAR_LOCATION note.
14352         (new_loc_descr_op_bit_piece): New function.
14353         (dw_sra_loc_expr): New function.
14354         (dw_loc_list): Use it.  Don't handle the last range after the
14355         loop, handle it inside of the loop.  Adjust for var_loc_note
14356         to loc field renaming.
14357         (add_location_or_const_value_attribute): Only special case
14358         single entry loc lists if loc is NOTE_P.  Adjust for
14359         var_loc_note to loc field renaming.
14360         (dwarf2out_var_location): Don't set newloc->var_loc_note
14361         and newloc->next here.
14362
14363 2010-05-12  Jan Hubicka  <jh@suse.cz>
14364
14365         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
14366         flag.
14367         * cgraph.h (cgraph_only_called_directly_p,
14368         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
14369         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
14370         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
14371         (assemble
14372         * ipa.c (cgraph_remove_unreachable_nodes): Use
14373         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
14374         flags.
14375         * tree-inline.c (copy_bb): Check address_taken flag.
14376         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14377         externally_visible flag.
14378
14379 2010-05-12  Jason Merrill  <jason@redhat.com>
14380
14381         PR bootstrap/44048
14382         PR target/44099
14383         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14384         * sdbout.c (plain_type_1): Likewise.
14385         * dwarf2out.c (is_base_type): Likewise.
14386         (gen_type_die_with_usage): Likewise.  Generate
14387         DW_TAG_unspecified_type for any LANG_TYPE.
14388
14389 2010-05-12  Jan Hubicka  <jh@suse.cz>
14390
14391         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14392         indrect edges too.
14393         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14394         (cgraph_clone_edge): Update.
14395         (cgraph_node_remove_callees): Remove indirect calls too.
14396         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14397         (cgraph_create_indirect_edge): Update prototype.
14398         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14399         is_proper_for_analysis.
14400         (add_new_function, visited_nodes, function_insertion_hook_holder,
14401         get_local_reference_vars_info, mark_address_taken, mark_address,
14402         mark_load, mark_store, check_asm_memory_clobber, check_call,
14403         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14404         (ipa_init): Do not initialize visited_nodes;
14405         function_insertion_hook_holder.
14406         (analyze_variable): Rewrite.
14407         (analyze_function): Rewrite.
14408         (copy_local_bitmap): Remove.
14409         (duplicate_node_dat): Do not duplicate local info.
14410         (generate_summary): Simplify to only walk cgraph.
14411         (write_node_summary_p, ipa_reference_write_summary,
14412         ipa_reference_read_summary): Remove.
14413         (propagate): Do not remove function insertion;
14414         generate summary.
14415         (pass_ipa_reference): NULLify summary handling fields.
14416         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14417         (input_edge): Input ecf_flags.
14418         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14419         (update_indirect_edges_after_inlining): Ignore edges with unknown
14420         param.
14421
14422 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14423
14424         * implicit-zee.c: New file.
14425         * tree-pass.h (pass_implicit_zee): Declare.
14426         * passes.c (init_optimization_passes): Add zee pass.
14427         * common.opt (fzee): New flag.
14428         * timevar.def (TV_ZEE): Define.
14429         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14430         and beyond.
14431         * Makefile.in (implicit-zee.o): Add new build file.
14432
14433 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14434             Nathan Froyd  <froydnj@codesourcery.com>
14435
14436         * c-common.c (sync_resolve_params): Remove write-only variable.
14437
14438 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14439
14440         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14441         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14442         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14443         * targhooks.c (default_mode_dependent_address_p): New function.
14444         * targhooks.h (default_mode_dependent_address_p): Declare function.
14445         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14446         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14447         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14448         target hook. Change return type to bool.
14449         * recog.h (mode_dependent_address_p): Change return type to bool.
14450
14451 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14452             Nathan Froyd  <froydnj@codesourcery.com>
14453
14454         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14455         build_function_type_2, build_function_type_3): Remove.
14456         (mudflap_init): Use build_function_type_list.
14457
14458 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14459             Nathan Froyd  <froydnj@codesourcery.com>
14460
14461         * coverage.c (build_fn_info_value): Call build_constructor instead of
14462         build_constructor_from_list.
14463         (build_ctr_info_value): Likewise.
14464         (build_gcov_info): Likewise.
14465
14466 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14467
14468         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14469         resultant constructor.
14470         (build_constructor_single): Don't set TREE_CONSTANT.
14471         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14472
14473 2010-05-12  Jan Hubicka  <jh@suse.cz>
14474
14475         * cgraph.h (struct varpool_node): Add aux.
14476         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14477         * varpool.c (varpool_remove_node): Do not remove initializer.
14478         (varpool_reset_queue): Export.
14479         (varpool_finalize_decl): Volatile vars are forced to be output.
14480         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14481         replaced decl.
14482         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14483         process_references, varpool_can_remove_if_no_refs): New functions.
14484         (cgraph_remove_unreachable_nodes): Handle variables too.
14485
14486 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14487
14488         PR target/44088
14489         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14490
14491 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14492
14493         PR middle-end/44085
14494         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14495         change value of ORT_TASK.
14496         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14497         (omp_notice_threadprivate_variable): New function.
14498         (omp_notice_variable): Call it for threadprivate variables.
14499         If enclosing ctx is a task, print enclosing task rather than
14500         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14501         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14502         if task has untied clause.
14503
14504         PR debug/42278
14505         * dwarf2out.c (base_type_die): Don't add name attribute here.
14506         (modified_type_die): Instead of sizetype use
14507         its underlying original type.  If a DW_TAG_base_type doesn't
14508         have name added, add __unknown__.
14509         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14510         always call force_type_die instead.
14511
14512 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14513
14514         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14515         for __stack_chk_guard.
14516
14517 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14518
14519         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14520         don't call start_source_file debug hook here...
14521         (finish_options): ... but here, after outputting predefined and
14522         command line defines and undefs.
14523
14524         PR middle-end/44071
14525         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14526         no fallthru edge.
14527         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14528         optimizing away empty bb with no successors, move over its
14529         footer chain to fallthru predecessor.
14530         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14531         (rtl_split_edge): For asm goto call patch_jump_insn even if
14532         splitting fallthru edge.
14533
14534         PR c++/44059
14535         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14536         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14537         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14538         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14539         on DW.ref.* decls.
14540
14541         PR c++/44062
14542         * c-parser.c (c_parser_expression): Mark LHS of a comma
14543         expression as read if it is a decl, handled component or
14544         COMPOUND_EXPR with that on the RHS.
14545         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14546         if it is a decl or handled component.
14547
14548 2010-05-11  Jan Hubicka  <jh@suse.cz>
14549
14550         * lto-symtab.c (lto_symtab_free): New function.
14551         * lto-streamer.h (lto_symtab_free): Declare.
14552
14553 2010-05-11  Jan Hubicka  <jh@suse.cz>
14554
14555         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14556         that if function is needed it is reachable.
14557         (lto_output_node): See if it the function is reachable or referenced.
14558         (output_cgraph): Update call of lto_output_node.
14559         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14560
14561 2010-05-11  Jan Hubicka  <jh@suse.cz>
14562
14563         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14564         Mark as used.
14565
14566 2010-05-11  Jan Hubicka  <jh@suse.cz>
14567
14568         PR tree-optimize/44063
14569         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14570         queue.
14571         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14572         limits.
14573         (estimate_function_body_sizes): Compute sizes even when disregarding.
14574
14575 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14576
14577         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14578
14579 2010-05-11  Jan Hubicka  <jh@suse.cz>
14580
14581         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14582         into every boundary.
14583
14584 2010-05-11  Jan Hubicka  <jh@suse.cz>
14585
14586         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14587
14588 2010-05-11  Jan Hubicka  <jh@suse.cz>
14589
14590         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14591         lto_streamer_cache_delete): Put nodes into heap.
14592         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14593         heap.
14594
14595 2010-05-11  Jan Hubicka  <jh@suse.cz>
14596
14597         * cgraphbuild.c (cgraph_rebuild_references): New.
14598         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14599         out extern inlines.
14600         * cgraph.h (cgraph_rebuild_references): Declare.
14601         * tree-inline.c (tree_function_versioning): Use it.
14602         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14603
14604 2010-05-11  Jan Hubicka  <jh@suse.cz>
14605
14606         * cgraph.c: Include ipa-utils.h
14607         (cgraph_create_virtual_clone): Update references.
14608         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14609
14610 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14611
14612         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14613         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14614         cache size.
14615
14616 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14617
14618         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14619
14620 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14621
14622         * gcc.c (execute): For -### don't quote arguments that
14623         contain just alphanumerics and _/-. characters.
14624         * doc/invoke.texi: Document that change for -###.
14625
14626         PR debug/44023
14627         * df-problems.c (struct dead_debug): Add to_rescan field.
14628         (dead_debug_init): Clear to_rescan field.
14629         (dead_debug_finish): Rescan all debug insns in to_rescan
14630         bitmap and free the bitmap.
14631         (dead_debug_insert_before): Instead of rescanning debug insns
14632         immediately queue their rescanning until dead_debug_finish.
14633         (df_note_bb_compute): After dead_debug_add do continue instead
14634         of break.
14635
14636 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14637
14638         PR debug/44028
14639         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14640         clear also INSN_REG_USE_LIST.
14641
14642 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14643
14644         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14645
14646 2010-05-10  Jan Hubicka  <jh@suse.cz>
14647
14648         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14649         commited change.
14650
14651 2010-05-10  Jan Hubicka  <jh@suse.cz>
14652
14653         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14654         Allocate encoders.
14655         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14656         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14657         (lto_streamer_cache_create): Init alloc pool.
14658         (lto_streamer_cache_delete): Free alloc pool.
14659         * lto-streamer.h: Include alloc pool.
14660         (lto_streamer_cache_d): Use alloc pool.
14661         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14662
14663 2010-05-10  Jan Hubicka  <jh@suse.cz>
14664
14665         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14666         * cgraphbuild.c: Include except.h
14667         (record_type_list, record_eh_tables): New function.
14668         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14669
14670 2010-05-10  Jan Hubicka  <jh@suse.cz>
14671
14672         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14673         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14674         rather than unused.
14675
14676 2010-05-10  Michael Matz  <matz@suse.de>
14677
14678         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14679         (can_reassociate_p): Use FLOAT_TYPE_P.
14680         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14681         (vect_force_simple_reduction): ... this.
14682         * tree-parloops.c (gather_scalar_reductions): Use
14683         vect_force_simple_reduction.
14684         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14685         vect_is_simple_reduction, add modify argument, if true rewrite
14686         "a-b" into "a+(-b)".
14687         (vect_is_simple_reduction, vect_force_simple_reduction): New
14688         functions.
14689         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14690
14691 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14692             Vladimir Makarov  <vmakarov@redhat.com>
14693
14694         PR rtl-optimization/44012
14695         * ira-build.c (remove_unnecessary_allocnos): Nullify
14696         regno_allocno_map of the removed allocno.
14697
14698 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14699
14700         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14701         to /dev/null.
14702         * configure: Regenerate.
14703
14704 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14705
14706         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14707         unused.
14708         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14709         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14710         support in Sun ld.
14711         * configure: Regenerate.
14712
14713 2010-05-10  Richard Guenther  <rguenther@suse.de>
14714
14715         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14716         marked if the entry identifier is marked.
14717
14718 2010-05-10  Richard Guenther  <rguenther@suse.de>
14719
14720         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14721         (handle_fnspec_attribute): New function.
14722         * gimple.h (gimple_call_return_flags): Declare.
14723         (gimple_call_arg_flags): Likewise.
14724         * gimple.c (gimple_call_arg_flags): New function.
14725         (gimple_call_return_flags): Likewise.
14726         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14727         New argument flags.
14728         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14729         return value flags.
14730         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14731         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14732         main work to ...
14733         (make_heapvar_for): ... this new function.
14734         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14735         (handle_lhs_call): Likewise.
14736         (find_func_aliases): Adjust.
14737
14738 2010-05-10  Richard Guenther  <rguenther@suse.de>
14739
14740         PR tree-optimization/44050
14741         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14742
14743 2010-05-10  Wei Guozhi  <carrot@google.com>
14744
14745         PR target/42879
14746         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14747
14748 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14749
14750         PR c/10676
14751         * c-typeck.c (lookup_field): Take a type directly.  Update
14752         recursive calls.
14753         (build_component_ref): Update call to lookup_field.
14754         (set_init_label): Use lookup_field to find initialized field.
14755         Handle returned list of fields like a sequence of designators.
14756
14757 2010-05-09  Richard Guenther  <rguenther@suse.de>
14758
14759         PR middle-end/44024
14760         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14761         handle &FUNCTION_DECL.
14762
14763 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14764
14765         PR c/4784
14766         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14767         structures and unions recursively.
14768         (detect_field_duplicates): Move duplicate detection with a hash to
14769         detect_field_duplicates_hash.  Always use a hash if anonymous
14770         structures or unions are present.
14771         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14772         give errors.
14773
14774 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14775
14776         PR target/44046
14777         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14778         detect Atom, Core 2 and Core i7.
14779
14780 2010-05-09  Richard Guenther  <rguenther@suse.de>
14781
14782         * gcc.c (store_arg): Handle temporary file deletion for
14783         joined arguments.
14784
14785 2010-05-09  Richard Guenther  <rguenther@suse.de>
14786
14787         PR middle-end/44043
14788         * ipa-inline.c (estimate_function_body_sizes): Return after
14789         disregarding inline limits.
14790
14791 2010-05-09  Richard Guenther  <rguenther@suse.de>
14792
14793         * gcc.c (store_arg): Revert last change.
14794
14795 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14796
14797         PR middle-end/28685
14798         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14799         (optimize_ops_list): Call it.
14800
14801 2010-05-08  Richard Guenther  <rguenther@suse.de>
14802
14803         PR tree-optimization/44030
14804         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14805         NECESSARY flag if we propagate from a inserted expression.
14806
14807 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14808
14809         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14810         domain types as equal if they are both PLACEHOLDER_EXPRs.
14811
14812 2010-05-08  Richard Guenther  <rguenther@suse.de>
14813
14814         * lto-wrapper.c (run_gcc): Remove linker output from
14815         command line for LTRANS invocation.
14816
14817 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14818
14819         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14820         lto-macho as lto_binary_reader.
14821         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14822         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14823         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14824         in lto_start and lto_end calls.
14825         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14826         magic numbers.
14827         (scan_prog_file): Update is_elf_or_coff call.
14828         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14829
14830         * collect2.c (main): Fix enum comparison.
14831
14832         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14833         Add prototypes.
14834         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14835         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14836         and TARGET_ASM_LTO_END.
14837         * darwin.c: Include obstack.h and lto-streamer.h.
14838         (lto_section_names_offset, lto_section_names_obstack,
14839         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14840         global variables.
14841         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14842         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14843         to a temporary file.
14844         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14845         (darwin_asm_named_section): For LTO sections, replace the name with
14846         the offset of the section name in a string table, and build this
14847         table.
14848         (darwin_file_start): Initialize global vars for LTO support.
14849         (darwin_file_end): If output to asm_out_file was redirected, append it
14850         to the proper asm_out_file here.  Add the section names section.
14851
14852 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14853
14854         * c-pragma.c (pending_weak_d, pending_weak): New.
14855         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14856         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14857         handle_pragma_weak): Update the uses of pending_weaks.
14858
14859 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14860
14861         PR documentation/44016
14862         * doc/standards.texi (Standards): Link to unversioned
14863         cxx0x_status.html page.
14864
14865 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
14866
14867         PR target/43708
14868         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14869         in addition to TREE_USED, to avoid "set but unused" warnings.
14870
14871 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14872
14873         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14874         (is_loop_prefetching_profitable): Do not insert prefetches
14875         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14876         times the prefetch ahead distance.
14877
14878 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14879
14880         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14881         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14882         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14883         the unroll_factor.
14884
14885 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14886
14887         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14888         a diagnostic info when the insn-to-mem ratio is too small.
14889
14890 2010-05-07  Richard Guenther  <rguenther@suse.de>
14891
14892         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14893         the linker plugin.
14894         (store_arg): Queue temp_filename for deletion instead of
14895         the whole argument.
14896
14897 2010-05-07  Richard Guenther  <rguenther@suse.de>
14898
14899         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14900         (run_gcc): Handle LTRANS phase invocation.
14901         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14902
14903 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14904
14905         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14906         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14907
14908 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14909
14910         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14911
14912 2010-05-07  Richard Guenther  <rguenther@suse.de>
14913
14914         PR tree-optimization/44020
14915         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14916         code when PRE is not yet initialized.
14917
14918 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14919
14920         * config/mips/dbxmdebug.h: Remove.
14921         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14922
14923 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14924
14925         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14926         with null pointer and also warn about ordered comparison of zero with
14927         pointer if -Wextra.
14928
14929 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14930
14931         * graphite-blocking.c
14932         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14933         * graphite-clast-to-gimple.c
14934         (clast_to_gcc_expression): Same.
14935         (precision_for_value): Same.
14936         (precision_for_interval): Same.
14937         (gcc_type_for_interval): Same.
14938         (graphite_create_new_guard): Same.
14939         (compute_bounds_for_level): Same.
14940         (graphite_create_new_loop_guard): Same.
14941         * graphite-interchange.c
14942         (build_linearized_memory_access): Same.
14943         (pdr_stride_in_loop): Same.
14944         (memory_strides_in_loop_1): Same.
14945         (memory_strides_in_loop): Same.
14946         (extend_scattering): Same.
14947         (psct_scattering_dim_for_loop_depth): Same.
14948         (pbb_number_of_iterations): Same.
14949         * graphite-poly.h
14950         (debug_iteration_domains): Same.
14951         * graphite-ppl.c
14952         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14953         (ppl_set_inhomogeneous_gmp): Same.
14954         (ppl_strip_loop): Same.
14955         (ppl_lexico_compare_linear_expressions): Same.
14956         (ppl_read_polyhedron_matrix): Same.
14957         (ppl_max_for_le_pointset): Same.
14958         * graphite-ppl.h
14959         (ppl_read_polyhedron_matrix): Same.
14960         (tree_int_to_gmp): Same.
14961         (gmp_cst_to_tree): Same.
14962         (ppl_set_inhomogeneous): Same.
14963         (ppl_set_inhomogeneous_tree): Same.
14964         (ppl_set_coef): Same.
14965         (ppl_set_coef_tree): Same.
14966         * graphite-sese-to-poly.c
14967         (build_pbb_scattering_polyhedrons): Same.
14968         (build_scop_scattering): Same.
14969         (scan_tree_for_params_right_scev): Same.
14970         (scan_tree_for_params): Same.
14971         (find_params_in_bb): Same.
14972         (find_scop_parameters): Same.
14973         (add_upper_bounds_from_estimated_nit): Same.
14974         (build_loop_iteration_domains): Same.
14975         (add_condition_to_domain): Same.
14976         (pdr_add_memory_accesses): Same.
14977
14978 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14979
14980         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14981         CLooG's value_* macros to their respective mpz_* counterparts.
14982         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14983         (graphite_create_new_loop_guard): Same.
14984         * graphite-interchange.c (build_linearized_memory_access): Same.
14985         (pdr_stride_in_loop): Same.
14986         (memory_strides_in_loop_1): Same.
14987         (1st_interchange_profitable_p): Same.
14988         * graphite-poly.c (extend_scattering): Same.
14989         (psct_scattering_dim_for_loop_depth): Same.
14990         (pbb_number_of_iterations): Same.
14991         (pbb_number_of_iterations_at_time): Same.
14992         * graphite-poly.h (new_1st_loop): Same.
14993         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14994         (oppose_constraint): Same.
14995         (insert_constraint_into_matrix): Same.
14996         (ppl_set_inhomogeneous_gmp): Same.
14997         (ppl_set_coef_gmp): Same.
14998         (ppl_strip_loop): Same.
14999         (ppl_lexico_compare_linear_expressions): Same.
15000         (ppl_max_for_le_pointset): Same.
15001         (ppl_min_for_le_pointset): Same.
15002         (ppl_build_realtion): Same.
15003         * graphite-ppl.h (gmp_cst_to_tree): Same.
15004         (ppl_set_inhomogeneous): Same.
15005         (ppl_set_inhomogeneous_tree): Same.
15006         (ppl_set_coef): Same.
15007         (ppl_set_coef_tree): Same.
15008         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
15009         (build_scop_scattering): Same.
15010         (add_value_to_dim): Same.
15011         (scan_tree_for_params_right_scev): Same.
15012         (scan_tree_for_params_int): Same.
15013         (scan_tree_for_params): Same.
15014         (find_params_in_bb): Same.
15015         (find_scop_parameters): Same.
15016         (add_upper_bounds_from_estimated_nit): Same.
15017         (build_loop_iteration_domains): Same.
15018         (create_linear_expr_from_tree): Same.
15019         (add_condition_to_domain): Same.
15020         (pdr_add_memory_accesses): Same.
15021
15022 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
15023             Jason Merrill  <jason@redhat.com>
15024
15025         * c-common.c (c_common_reswords): Add nullptr.
15026         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
15027         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
15028         (gen_type_die_with_usage): Likewise.
15029         * dbxout.c (dbxout_type): Likewise.
15030         * sdbout.c (plain_type_1): Likewise.
15031
15032 2010-05-06  Jason Merrill  <jason@redhat.com>
15033
15034         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
15035         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
15036         ret appropriately.
15037         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
15038
15039         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
15040         stripping WITH_SIZE_EXPR.
15041         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
15042         change.
15043
15044 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15045
15046         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
15047         list of obsolete configurations.
15048         Disabled check for obsolete configurations.
15049         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
15050         Removed support for previous versions.
15051         * config/mips/iris.h: Removed.
15052         * config/mips/iris5.h: Removed.
15053         * config/mips/iris6.h: Merged old iris.h contents.
15054         (TARGET_IRIX): Removed.
15055         (DRIVER_SELF_SPECS): Removed mabi=32.
15056         (IDENT_ASM_OP): Removed undef.
15057         (STARTFILE_SPEC): Removed mabi=32.
15058         (ENDFILE_SPEC): Likewise.
15059         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
15060         (MACHINE_TYPE): Update for IRIX 6.5.
15061         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
15062         TARGET_IRIX by TARGET_IRIX6.
15063         (mips_file_start): Likewise.
15064         (mips_output_external): Remove IRIX 5/6 O32 support.
15065         (mips_output_function_prologue): Likewise.
15066         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
15067         TARGET_IRIX6.
15068         (TARGET_CPU_CPP_BUILTINS): Likewise.
15069         (TARGET_IRIX): Removed.
15070         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
15071         (MULTILIB_DIRNAMES): Removed 32.
15072         (MULTILIB_OSDIRNAMES): Removed ../lib.
15073         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
15074         (Specific, mips-sgi-irix5): Document removal.
15075         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
15076         Remove references to older IRIX 6 releases and the O32 ABI.
15077
15078 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
15079
15080         PR bootstrap/43994
15081         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
15082         instead of DF_REF_REAL_REG.
15083
15084 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
15085
15086         PR target/43888
15087         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
15088         handling to still return true for x64 targets.
15089
15090 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
15091
15092         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
15093
15094 2010-05-06  Jan Hubicka  <jh@suse.cz>
15095
15096         PR tree-optimization/43791
15097         * ipa-inline.c (update_caller_keys): Remove bogus
15098         disregard_inline_limits check.
15099
15100 2010-05-06  Michael Matz  <matz@suse.de>
15101
15102         PR tree-optimization/43984
15103         * tree-ssa-pre.c (inserted_phi_names): Remove.
15104         (inserted_exprs): Change to bitmap.
15105         (create_expression_by_pieces): Set bits, don't append to vector.
15106         (insert_into_preds_of_block): Don't handle inserted_phi_names.
15107         (eliminate): Don't look at inserted_phi_names, remove deleted
15108         insns from inserted_exprs.
15109         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
15110         (init_pre, fini_pre): Allocate and free bitmaps.
15111         (execute_pre): Insert insns on edges before elimination.
15112
15113 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
15114
15115         * tree.c (initializer_zerop): Handle STRING_CST.
15116
15117 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15118
15119         PR 40989
15120         * doc/invoke.texi (Wimplicit): Document as C only.
15121         * opts.c (common_handle_option): Add argument kind.
15122         (handle_option): Rename as read_cmdline_option. Factor out code to...
15123         (handle_option): ... here. New.
15124         (handle_options): Rename as read_cmdline_options.
15125         (decode_options): Update call.
15126         (set_option): Use option index instead of option pointer. Classify
15127         diagnostics correctly.
15128         (enable_warning_as_error): Call handle_option.
15129         * opts.h (set_option): Update declaration.
15130         (handle_option): Declare.
15131         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
15132         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
15133         * c-opts.c (set_Wimplicit): Delete.
15134         (c_family_lang_mask): New static constant.
15135         (c_common_handle_option): Add argument kind. Use handle_option
15136         instead of set_Wimplicit.
15137         (c_common_post_options): warn_implicit and warn_implicit_int
15138         are disabled by default.
15139         * c-common.c (warn_implicit): Do not define here.
15140         * c-common.h (warn_implicit): Do not declare here.
15141         (c_common_handle_option): Update declaration.
15142         * lto-opts.c (lto_reissue_options): Update call to set_option.
15143
15144 2010-05-06  Richard Guenther  <rguenther@suse.de>
15145
15146         PR tree-optimization/43571
15147         * domwalk.c (walk_dominator_tree): Walk the dominator
15148         sons in more optimal order.
15149
15150 2010-05-06  Richard Guenther  <rguenther@suse.de>
15151
15152         PR tree-optimization/43934
15153         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
15154         (stmt_cost): Likewise.
15155         (extract_true_false_args_from_phi): New helper.
15156         (determine_max_movement): For PHI nodes verify we can hoist them
15157         and compute their cost.
15158         (determine_invariantness_stmt): Handle PHI nodes.
15159         (move_computations_stmt): Likewise.  Hoist PHI nodes in
15160         if-converted form using COND_EXPRs.
15161         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
15162         (tree_ssa_lim): Likewise.
15163         * tree-flow.h (tree_ssa_lim): Adjust prototype.
15164         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
15165
15166 2010-05-06  Richard Guenther  <rguenther@suse.de>
15167
15168         PR tree-optimization/43987
15169         * tree-ssa-structalias.c (could_have_pointers): For possibly
15170         address-taken variables force pointers to be recorded.
15171         (create_variable_info_for_1): Likewise.
15172         (push_fields_onto_fieldstack): Pass in wheter all fields
15173         must have pointers.
15174         (find_func_aliases): Query types instead of vars whether
15175         they contain pointers where appropriate.
15176
15177 2010-05-06  Jan Hubicka  <jh@suse.cz>
15178
15179         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
15180         (record_reference, mark_address, mark_load, mark_store): Record
15181         references.
15182         (record_references_in_initializer): Update call of record_references.
15183         (rebuild_cgraph_edges): Remove all references before rebuiding.
15184         * cgraph.c (cgraph_create_node): Clear ref list.
15185         (cgraph_remove_node): Remove references.
15186         (dump_cgraph_node): Dump references.
15187         (cgraph_clone_node): Clone references.
15188         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
15189         (struct cgraph_node, varpool_node): Add ref_lst.
15190         * ipa-ref.c: New file.
15191         * ipa-ref.h: New file.
15192         * ipa-ref-inline.h: New file.
15193         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
15194         (referenced_from_other_partition_p): New function.
15195         (lto_output_varpool_node): Take set arugment; call
15196         referenced_from_other_partition.
15197         (lto_output_ref): New.
15198         (add_references): New.
15199         (output_refs): New.
15200         (output_cgraph): Compute boundary based on references; output refs.
15201         (output_varpool): Accept cgraph_node_set argument.
15202         (input_ref): New.
15203         (input_refs): New.
15204         (input_cgraph): Call input_refs.
15205         * lto-section-in.c (lto_section_name): Add refs.
15206         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
15207         (ipa-ref.o): New file.
15208         * varpool.c (varpool_node): Clear ipa ref list.
15209         (varpool_remove_node): Remove references.
15210         (dump_varpool_node): Dump references.
15211         (varpool_assemble_decl): Only compile finalized ones.
15212         (varpool_extra_name_alias): Initialize ref list.
15213         * lto-streamer.c (lto-get_section_name): Add .refs section.
15214         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
15215         (referenced_from_other_partition_p): Declared.
15216
15217 2010-05-06  Ira Rosen  <irar@il.ibm.com>
15218
15219         PR tree-optimization/43901
15220         * tree-vect-stmts.c (vectorizable_call): Assert that vector
15221         type is not NULL if it's transformation phase, and return
15222         FALSE if it's analysis.
15223         (vectorizable_conversion, vectorizable_operation,
15224         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
15225
15226 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
15227
15228         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
15229         Delete.
15230         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
15231         New define.
15232         * config/mips/mips-protos.h
15233         (mips_small_register_classes_for_mode_p): Delete prototype.
15234
15235 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
15236
15237         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
15238         * config/arm/arm.c (multiple_operation_profitable_p,
15239         compute_offset_order): New static functions.
15240         (load_multiple_sequence, store_multiple_sequence): Use them.
15241         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
15242         memory offsets, not register numbers.
15243         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
15244
15245 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
15246
15247         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
15248         (get_pending_sizes, put_pending_size, put_pending_sizes):
15249         Update the uses of pending_sizes.
15250         * c-decl.c (store_parm_decls): Likewise.
15251         * c-tree.h (struct c_arg_info): Likewise.
15252         * tree.h: Update the prototype for get_pending_sizes and
15253         put_pending_sizes.
15254
15255 2010-05-05  Jason Merrill  <jason@redhat.com>
15256
15257         PR debug/43370
15258         * c-common.c (handle_aligned_attribute): Respect
15259         ATTR_FLAG_TYPE_IN_PLACE.
15260
15261         PR testsuite/43758
15262         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
15263         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
15264         (TARGET_INITIALIZER): Use it.
15265         * c-common.c (attribute_takes_identifier_p): Call it.
15266         * c-common.h: Update prototype.
15267         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
15268         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
15269
15270 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15271
15272         PR debug/43950
15273         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
15274         DW_ID_down_case for Fortran compilation units.
15275
15276 2010-05-05  Jan Hubicka  <jh@suse.cz>
15277
15278         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
15279         handle aliases.
15280
15281 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
15282
15283         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
15284         a variable-sized RESULT_DECL.
15285
15286 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
15287
15288         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
15289
15290 2010-05-05  Jason Merrill  <jason@redhat.com>
15291
15292         PR c++/43787
15293         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
15294         returns GS_OK.
15295         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
15296
15297 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
15298             Jakub Jelinek  <jakub@redhat.com>
15299
15300         PR debug/43478
15301         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
15302         (dead_debug_init, dead_debug_finish): New functions.
15303         (dead_debug_add, dead_debug_insert_before): Likewise.
15304         (df_note_bb_compute): Initialize a dead_debug object, add dead
15305         debug uses to it, insert debug bind insns before death insns,
15306         reset debug insns that refer to pending uses at the end.
15307         * rtl.h (make_debug_expr_from_rtl): New prototype.
15308         * varasm.c (make_debug_expr_from_rtl): New function.
15309
15310 2010-05-05  Jan Hubicka  <jh@suse.cz>
15311
15312         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
15313         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
15314         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
15315         lto_varpool_encoder_deref, lto_varpool_encoder_size,
15316         lto_varpool_encoder_encode_initializer_p,
15317         lto_set_varpool_encoder_encode_initializer): New functions.
15318         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
15319         call output_varpool.
15320         (input_varpool_node): Do not always set analyzed.
15321         (input_cgraph_1): Return vector of cgraph nodes.
15322         (input_varpool_1): Return vector of varpools.
15323         (input_cgraph): Free the vectors.
15324         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15325         output only initializers needed.
15326         (lto_output): Only call output_cgraph.
15327         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
15328         * lto-section-out.c (lto_new_out_decl_state): Initialize
15329         state->varpool_node_encoder.
15330         * lto-streamer.h (lto_varpool_encoder_d): New.
15331         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
15332         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
15333         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
15334         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
15335         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
15336         Declare.
15337         (output_varpool, input_varpool): Remove declarations.
15338
15339 2010-05-05  Jan Hubicka  <jh@suse.cz>
15340
15341         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
15342         with body can prevail.
15343
15344 2010-05-05  Jan Hubicka  <jh@suse.cz>
15345
15346         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
15347         size.
15348
15349 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15350
15351         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
15352
15353         * gengtype.h (erro_at_line): Constify pos argument.
15354
15355         * gengtype.c: Include hashtab.h.
15356         (enum gc_used): Document GC_MAYBE_POINTED_TO.
15357         (error_at_line): Constify pos argument.
15358         (do_typedef): Initialize p->opt field.
15359         (get_file_gtfilename): Fix comment typo.
15360         (struct walk_type_data): Constify line field.
15361         (get_output_file_for_structure): New function.
15362         (write_local_func_for_structure): Constify orig_s argument.
15363         Use get_output_file_for_structure.
15364         (write_func_for_structure): Use get_output_file_for_structure.
15365         (INDENT): New define.
15366         (dump_pair, dump_type, dump_type_list, dump_typekind)
15367         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
15368         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
15369         functions.
15370         (seen_types): New variable.
15371         (main): New variable do_dump.  Process "-d" command line option.
15372         Call dump_everything if dump requested.
15373
15374 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15375
15376         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15377         in a temporary instead of invoking the macro multiple times.
15378         (track_expr_p): Likewise.
15379
15380 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
15381
15382         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15383         per new semantics.
15384         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15385         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15386         conditions for printing notes.
15387         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15388         true, update documentation.
15389         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15390
15391 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15392
15393         PR c/43981
15394         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15395         on dimen.
15396
15397 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15398
15399         PR target/43799
15400         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15401         (*sse_prologue_save_insn1): Likewise.
15402         (SSE prologue save splitter): Likewise.
15403
15404 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15405
15406         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15407         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15408         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15409         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15410         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15411         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15412         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15413
15414 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15415
15416         * tree-sra.c (build_access_from_expr_1): The first parameter type
15417         changed to simple tree.
15418         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15419         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15420         renamed as well.
15421         (build_accesses_from_assign): Removed all parameters except for a
15422         simple gimple statement.  Now returns a simple bool.
15423         (scan_function): All non-analysis parts moved to separate functions
15424         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15425         parameters and updated both callers.
15426         (sra_modify_expr): Removed parameter data.
15427         (sra_modify_function_body): New function.
15428         (perform_intra_sra): Call sra_modify_function_body to modify the
15429         function body.
15430         (replace_removed_params_ssa_names): Parameter data changed into
15431         adjustments vector.
15432         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15433         changed the parameter dont_convert to convert with the opposite
15434         meaning.
15435         (sra_ipa_modify_assign): Parameter data changed into adjustments
15436         vector, return value changed to bool.
15437         (ipa_sra_modify_function_body): New function.
15438         (sra_ipa_reset_debug_stmts): Updated a comment.
15439         (modify_function): Use ipa_sra_modify_function_body to modify function
15440         body.
15441
15442 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15443
15444         PR middle-end/43671
15445         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15446         (canon_true_dependence): Likewise.
15447         (write_dependence_p): Likewise.
15448
15449 2010-05-04  Jan Hubicka  <jh@suse.cz>
15450
15451         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15452         * cgraphbuild.c: Include ipa-utils.h
15453         (record_reference_ctx): New struct.
15454         (record_reference): Simplify to work on initializers; not statements.
15455         (mark_address, mark_load, mark_store): New.
15456         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15457         walk PHI nodes too.
15458         (record_references_in_initializer): Update use of record_reference.
15459         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15460         walk PHI nodes too.
15461
15462 2010-05-04  Jan Hubicka  <jh@suse.cz>
15463
15464         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15465         node will be removed anyway.
15466         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15467         relink aliases of node into prevailing node.
15468         * varpool.c (varpool_remove_node): Remove aliases properly;
15469         when removing node, remove all its aliases too; remove DECL_INITIAL
15470         of removed node; ggc_free the varpool node.
15471
15472 2010-05-04  Richard Guenther  <rguenther@suse.de>
15473
15474         PR tree-optimization/43879
15475         * tree-ssa-structalias.c (alias_get_name): Use
15476         DECL_ASSEMBLER_NAME if available.
15477         (create_function_info_for): Return the varinfo node.
15478         (ipa_pta_execute): Associate same-body aliases and extra names
15479         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15480
15481 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15482
15483         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15484
15485 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15486
15487         PR bootstrap/43964
15488         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15489         only if HONOR_REG_ALLOC_ORDER is not defined.
15490
15491 2010-05-04  Richard Guenther  <rguenther@suse.de>
15492
15493         PR tree-optimization/43949
15494         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15495         TRUNC_MOD_EXPR.
15496
15497 2010-04-26  Jason Merrill  <jason@redhat.com>
15498
15499         * c.opt (-fstrict-enums): New.
15500         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15501
15502 2010-05-03  David Ung  <davidu@mips.com>
15503             James E. Wilson  <wilson@codesourcery.com>
15504
15505         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15506         emit the trap instruction before the divide for TUNE_74K.
15507
15508 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15509
15510         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15511         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15512         based on the above, for new target hook.
15513
15514         * hooks.c (hook_bool_mode_true): New generic hook.
15515         * hooks.h (hook_bool_mode_true): Add prototype.
15516
15517         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15518         target hook.
15519         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15520         target hook, set to hook_bool_mode_false.
15521         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15522         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15523         with targetm.small_register_classes_for_mode_p.
15524         (find_reusable_reload): Likewise.
15525         (combine_reloads): Likewise.
15526         * reload1.c (reload_as_needed): Likewise.
15527         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15528         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15529         dead_or_predicable): Likewise.
15530         * regmove.c (optimize_reg_copy_1): Likewise.
15531         * calls.c (prepare_call_address): Likewise.
15532         (precompute_register_parameters): Likewise.
15533
15534         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15535         hook definition.
15536         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15537         implementation of the hook that considers all register classes
15538         small except for SH64.
15539         (sh_override_options): Use the new hook.
15540         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15541         Add prototype.
15542
15543         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15544         hook definition.
15545         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15546         implementation of the hook that considers all register classes
15547         small for THUMB1.
15548         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15549         Add prototype.
15550
15551         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15552         hook definition.
15553         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15554         implementation of the hook that considers all register classes
15555         small for MIPS16.
15556         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15557         Add prototype.
15558
15559         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15560         hook definition.
15561         * config/m32c/m32c.h: Likewise.
15562         * config/pdp11/pdp11.h: Likewise.
15563         * config/avr/avr.h: Likewise.
15564         * config/xtensa/xtensa.h: Likewise.
15565         * config/m68hc11/m68hc11.h: Likewise.
15566         * config/mn10300/mn10300.h: Likewise.
15567         * config/mcore/mcore.h: Likewise.
15568         * config/h8300/h8300.h: Likewise.
15569         * config/bfin/bfin.h: Likewise.
15570
15571         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15572         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15573
15574 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15575
15576         * double-int.h (tree_to_double_int): Remove macro.
15577         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15578         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15579         (tree_to_double_int): New function.
15580         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15581         Move ...
15582         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15583
15584 2010-05-03  Richard Guenther  <rguenther@suse.de>
15585
15586         PR tree-optimization/43971
15587         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15588         constraints in the !flag_delete_null_pointer_checks case.
15589
15590 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15591
15592         PR debug/43972
15593         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15594         result mode matches original rtl mode.
15595
15596 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15597
15598         PR target/43888
15599         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15600
15601 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15602
15603         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15604         when processing flag options.
15605
15606 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15607
15608         * gcov-iov.c (main): Change format string placeholder
15609         from %#08x to 0x%08x.
15610         * genchecksum.c (dosum): Change format string placeholder
15611         from %#02x to 0x%02x.
15612
15613 2010-05-02  Richard Guenther  <rguenther@suse.de>
15614
15615         PR tree-optimization/43879
15616         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15617
15618 2010-05-02  Bruno Haible  <bruno@clisp.org>
15619
15620         * doc/extend.texi (Function Attributes): Fix a typo.
15621
15622 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15623
15624         Revert:
15625         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15626         placeholder from 0x%x to %#x.
15627         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15628         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15629         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15630         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15631         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15632         * config/i386/i386.c (ix86_target_string): Ditto.
15633         * config/i386/i386.c (output_pic_addr_const): Ditto.
15634         (print_operand): Ditto.
15635
15636 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15637
15638         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15639         placeholder from 0x%x to %#x.
15640         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15641         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15642         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15643         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15644         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15645         * optc-gen.awk: Ditto.
15646         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15647         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15648         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15649         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15650
15651 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15652
15653         * target.h (struct calls): Add function_value_regno_p field.
15654         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15655         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15656         * targhooks.c (default_function_value_regno_p): New function.
15657         * targhooks.h (default_function_value_regno_p): Declare function.
15658         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15659         * builtins.c. (apply_result_size): (Ditto.).
15660         * combine.c. (likely_spilled_retval_p): (Ditto.).
15661         * mode-switching.c. Include 'target.h'.
15662         (create_pre_exit): Use function_value_regno_p hook.
15663         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15664         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15665         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15666
15667         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15668         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15669         (ix86_function_value_regno_p): Declare as static, change argument
15670         type to const unsigned int.
15671         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15672
15673 2010-05-01  Richard Guenther  <rguenther@suse.de>
15674
15675         PR tree-optimization/43949
15676         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15677         types.
15678         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15679
15680 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15681
15682         * rtl.h (CONST_DOUBLE_P): Define.
15683         (rtx_to_double_int): Declare.
15684         * emit-rtl.c (rtx_to_double_int): New function.
15685         * dwarf2out.c (insert_double): New function.
15686         (loc_descriptor, add_const_value_attribute): Clean up, use
15687         rtx_to_double_int and insert_double functions.
15688
15689 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15690
15691         * doc/extend.texi (Inline): Add missing return keyword to examples.
15692         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15693         "command-line".
15694
15695 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15696
15697         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15698         the variable part of the offset as well.  Use highest_pow2_factor for
15699         all alignment checks.
15700
15701 2010-04-30  Richard Guenther  <rguenther@suse.de>
15702
15703         PR tree-optimization/43879
15704         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15705         can have pointers.
15706
15707 2010-04-30  Jan Hubicka  <jh@suse.cz>
15708
15709         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15710         varpool.
15711         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15712
15713 2010-04-30  Jan Hubicka  <jh@suse.cz>
15714
15715         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15716         New.
15717         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15718         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15719         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15720         cgraph_node_set_needs_ltrans_p): Remove.
15721
15722 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15723
15724         * sdbout.c: Include vec.h, do not include varray.h.
15725         (deferred_global_decls, sdbout_global_decl,
15726         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15727         * toplev.c: Do not include varray.h.
15728         (dump_memory_report): Do not dump VARRAY statistics.
15729         * gengtype.c (open_base_file): Ignore varray.h.
15730         * Makefile.in: Update for abovementioned changes.
15731         Remove all traces of varray.c and varray.h.
15732         * varray.c: Remove file.
15733         * varray.h: Remove file.
15734
15735 2010-04-30  Jan Hubicka  <jh@suse.cz>
15736
15737         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15738         references.
15739
15740 2010-04-30  Jan Hubicka  <jh@suse.cz>
15741
15742         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15743         needed.
15744
15745 2010-04-30  Richard Guenther  <rguenther@suse.de>
15746
15747         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15748         constraints for CONSTRUCTOR.
15749
15750 2010-04-30  Richard Guenther  <rguenther@suse.de>
15751
15752         PR lto/43946
15753         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15754         first after all lowering passes.
15755
15756 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15757
15758         * toplev.c: Include varray.h for statistics dumping.
15759         * tree.h: Do not declare varray_head_tag.
15760         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15761         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15762         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15763         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15764         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15765         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15766         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15767         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15768         include varray.h.
15769         * Makefile.in: Update for abovementioned changes.
15770
15771 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15772
15773         PR debug/43942
15774         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15775
15776 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15777
15778         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15779         Use this function to do machine-specific conversion.
15780         (picochip_legitimize_reload_address): Likewise.
15781         (picochip_legitimate_address_p): Check valid base register only if
15782         strict.
15783         (picochip_check_conditional_copy): Check for modw only if opnd is
15784         register.
15785         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15786         to call the function in c.
15787         * config/picochip/picochip-protos.h
15788         (picochip_legitimize_reload_address): Define.
15789         * config/picochip/picochip.md (supported_compare1): Define.
15790
15791 2010-04-30  Jan Hubicka  <jh@suse.cz>
15792
15793         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15794         (cgraph_global_info): Remove inlined.
15795         (LTO_cgraph_tag_names): Remove.
15796         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15797         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15798         simplify cgraph tags and document.
15799         (lto_output_node): Use only LTO_cgraph_unavail_node and
15800         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15801         for_functions_valid, global info, process and output flags.
15802         (input_overwrite_node): Initialize estimated stack size and
15803         estimated growth.  Do not read flags we no longer store.
15804         (input_node): Likewise do not read info no longer stored.
15805         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15806         flag.
15807
15808 2010-04-30  Richard Guenther  <rguenther@suse.de>
15809
15810         PR tree-optimization/43879
15811         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15812         handle non-zero initializers.
15813
15814 2010-04-30  Richard Guenther  <rguenther@suse.de>
15815
15816         * builtins.c (fold_builtin_1): Delete free (0).
15817
15818 2010-04-29  Jan Hubicka  <jh@suse.cz>
15819
15820         * gengtype.c (open_base_files): Add lto-streamer.h
15821         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15822         (pass_ipa_cp): GGC collect.
15823         * toplev. (compile_file): Do not output symbols.
15824         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15825         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15826         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15827         * lto-section-in.c: Include ggc.h
15828         (lto_new_in_decl_state): Alloc in GGC.
15829         (lto_delete_in_decl_state): Likewise.
15830         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15831         Collect.
15832
15833 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15834
15835         PR target/42895
15836         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15837         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15838         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15839         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15840         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15841         account only if HONOR_REG_ALLOC_ORDER is not defined.
15842         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15843         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15844
15845 2010-04-29  Jon Grant  <04@jguk.org>
15846
15847         * collect2.c (vflag): Change type from int to bool.
15848         (debug): Likewise.
15849         (helpflag): New global bool.
15850         (main): Set vflag and debug with boolean, not integer truth values.
15851         Accept new "--help" option and output usage text if found.
15852         * collect2.h (vflag): Update prototype.
15853         (debug): Likewise.
15854
15855 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15856
15857         PR bootstrap/43936
15858         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15859
15860 2010-04-29  Richard Guenther  <rguenther@suse.de>
15861
15862         PR bootstrap/43935
15863         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15864         with ATTRIBUTE_UNUSED.
15865
15866 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15867
15868         PR target/43921
15869         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15870         INSN_P with NONDEBUG_INSN_P.
15871         (distance_non_agu_define): Likewise.
15872         (distance_agu_use): Likewise.
15873
15874 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15875
15876         From Dominique d'Humieres  <dominiq@lps.ens.fr>
15877         PR bootstrap/43858
15878         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15879         test_set.
15880
15881 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15882
15883         * plugin.h (invoke_plugin_callbacks): New inline function.
15884         * plugin.c (flag_plugin_added): New global flag.
15885         (add_new_plugin): Initialize above flag.
15886         (invoke_plugin_callbacks): Rename to ...
15887         (invoke_plugin_callbacks_full): ... this.
15888
15889 2010-04-28  Jan Hubicka  <jh@suse.cz>
15890
15891         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15892         (lto_varpool_replace_node): New.
15893         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15894         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15895         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15896         * cgraph.h (varpool_node_ptr): New type.
15897         (varpool_node_ptr): New vector.
15898         (varpool_node_set_def): New structure.
15899         (varpool_node_set): New type.
15900         (varpool_node_set): New vector.
15901         (varpool_node_set_element_def): New structure.
15902         (varpool_node_set_element, const_varpool_node_set_element): New types.
15903         (varpool_node_set_iterator): New type.
15904         (varpool_node): Add prev pointers, add used_from_other_partition,
15905         in_other_partition.
15906         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15907         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15908         varpool_get_node, varpool_remove_node): Declare.
15909         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15910         varpool_node_set_size): New inlines.
15911         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15912         * tree-pass.h (varpool_node_set_def): Forward declare.
15913         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15914         (ipa_write_optimization_summaries): Update prototype.
15915         * ipa-cp.c (ipcp_write_summary): Update.
15916         * ipa-reference.c (ipa_reference_write_summary): Update.
15917         * lto-cgraph.c (lto_output_varpool_node): New static function.
15918         (output_varpool): New function.
15919         (input_varpool_node): New static function.
15920         (input_varpool_1): New function.
15921         (input_cgraph): Input varpool.
15922         * ipa-pure-const.c (pure_const_write_summary): Update.
15923         * lto-streamer-out.c (lto_output): Update, output varpool too.
15924         (write_global_stream): Kill WPA hack.
15925         (produce_asm_for_decls): Update.
15926         (output_alias_pair_p): Handle variables.
15927         (output_unreferenced_globals): Output only needed partition of varpool.
15928         * ipa-inline.c (inline_write_summary): Update.
15929         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15930         cgraph.
15931         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15932         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15933         varpool_node_set_new, varpool_node_set_add,
15934         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15935         debug_varpool_node_set): New functions.
15936         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15937         (execute_one_pass): Process new decls too.
15938         (ipa_write_summaries_2): Pass around vsets.
15939         (ipa_write_summaries_1): Likewise.
15940         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15941         to add.
15942         (ipa_write_optimization_summaries_1): Pass around vsets.
15943         (ipa_write_optimization_summaries): Likewise.
15944         * varpool.c (varpool_get_node): New.
15945         (varpool_node): Update doubly linked lists.
15946         (varpool_remove_node): New.
15947         (dump_varpool_node): More dumping.
15948         (varpool_enqueue_needed_node): Update doubly linked lists.
15949         (decide_is_variable_needed): Kill ltrans hack.
15950         (varpool_finalize_decl): Kill lto hack.
15951         (varpool_assemble_decl): Skip decls in other partitions.
15952         (varpool_assemble_pending_decls): Update doubly linkes lists.
15953         (varpool_empty_needed_queue): Likewise.
15954         (varpool_extra_name_alias): Likewise.
15955         * lto-streamer.c (lto_get_section_name): Add vars section.
15956         * lto-streamer.h (lto_section_type): Update.
15957         (output_varpool, input_varpool): Declare.
15958
15959 2010-04-28  Mike Stump  <mikestump@comcast.net>
15960
15961         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15962
15963 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15964
15965         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15966         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15967         (lto_input_ts_type_tree_pointers): Likewise.
15968         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15969         (lto_output_ts_type_tree_pointers): Likewise.
15970
15971 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15972
15973         Uniquization of constants at the Tree level
15974         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15975         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15976         bit to the end.
15977         (tree_output_constant_def): Declare.
15978         * gimplify.c (gimplify_init_constructor): When using block copy, first
15979         uniquize the constant constructor on the RHS.
15980         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15981         DECL_IN_CONSTANT_POOL flag.
15982         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15983         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15984         constant pool.
15985         (assemble_variable): Deal with symbols belonging to the tree constant
15986         pool.
15987         (get_constant_section): Add ALIGN parameter and simplify.
15988         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15989         (assemble_constant_contents): Use the expression of the VAR_DECL.
15990         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15991         (tree_output_constant_def): New global function.
15992         (mark_constant): Use the expression of the VAR_DECL.
15993         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15994         its expression.
15995         (output_object_block): Likewise and assemble the expression.
15996
15997 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15998
15999         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
16000         hash_tree, eq_tree): New tree hash table.
16001         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
16002         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
16003         lto_orig_address_remove): Reimplement.
16004
16005 2010-04-28  Xinliang David Li  <davidxl@google.com>
16006
16007         PR c/42643
16008         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
16009         (compute_uninit_opnds_pos): New function.
16010         (is_non_loop_exit_postdominating): New function.
16011         (compute_control_dep_chain): New function.
16012         (find_pdom): New function.
16013         (convert_control_dep_chain_into_preds): New function.
16014         (find_predicates): New function.
16015         (find_control_equiv_block): New function.
16016         (collect_phi_def_edges): New function.
16017         (find_def_preds): New function.
16018         (find_dom): New function.
16019         (dump_predicates): New function.
16020         (get_cmp_code): New function.
16021         (is_value_included_in): New function.
16022         (find_matching_predicate_in_rest_chains): New function.
16023         (use_pred_not_overlap_with_undef_path_pred): New function.
16024         (is_use_properly_guarded): New function.
16025         (normalize_cond_1): New function.
16026         (is_and_or_or): New function.
16027         (normalize_cond): New function.
16028         (is_gcond_subset_of): New function.
16029         (is_subset_of_any): New function.
16030         (is_or_set_subset_of): New function.
16031         (is_and_set_subset_of): New function.
16032         (is_norm_cond_subset_of): New function.
16033         (is_pred_expr_subset_of): New function.
16034         (is_pred_chain_subset_of): New function.
16035         (is_included_in): New function.
16036         (is_superset_of): New function.
16037         (find_uninit_use): New function.
16038         (warn_uninitialized_phi): New function.
16039         (compute_possibly_undefined_names): New function.
16040         (ssa_undefined_value_p): New function.
16041         (execute_late_warn_uninitialized): New function.
16042         * tree-ssa.c (ssa_undefined_value_p): Removed.
16043         (warn_uninit): Changed to extern.
16044         (warn_uninitialized_phi): Removed.
16045         (warn_uninitialized_vars): Changed to extern.
16046         (execute_late_warn_uninitialized): Removed
16047         * tree-flow.h: Add new prototypes.
16048         * timevar.def: Add new time variable.
16049         * Makefile.in: Add new build file.
16050
16051 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
16052
16053         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
16054         type if available.
16055
16056 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16057
16058         PR target/22224
16059         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
16060
16061 2010-04-28  Martin Jambor  <mjambor@suse.cz>
16062
16063         * cgraph.h (struct cgraph_node): New field indirect_calls.
16064         (struct cgraph_indirect_call_info): New type.
16065         (struct cgraph_edge): Removed field indirect_call. New fields
16066         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
16067         (cgraph_create_indirect_edge): Declare.
16068         (cgraph_make_edge_direct): Likewise.
16069         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
16070         * ipa-prop.h (struct ipa_param_call_note): Removed.
16071         (struct ipa_node_params): Removed field param_calls.
16072         (ipa_create_all_structures_for_iinln): Declare.
16073         * cgraph.c: Described indirect edges and uids in initial comment.
16074         (cgraph_add_edge_to_call_site_hash): New function.
16075         (cgraph_edge): Search also among the indirect edges, use
16076         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
16077         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
16078         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
16079         site hash.
16080         (initialize_inline_failed): Assign a reason to indirect edges.
16081         (cgraph_create_edge_1): New function.
16082         (cgraph_create_edge): Moved some functionality to
16083         cgraph_create_edge_1.
16084         (cgraph_create_indirect_edge): New function.
16085         (cgraph_edge_remove_callee): Add an assert checking for
16086         non-indirectness.
16087         (cgraph_edge_remove_caller): Special-case indirect edges.
16088         (cgraph_remove_edge): Likewise.
16089         (cgraph_set_edge_callee): New function.
16090         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
16091         (cgraph_make_edge_direct): New function.
16092         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
16093         the declaration of the call statement matches.
16094         (cgraph_node_remove_callees): Special-case indirect edges.
16095         (cgraph_clone_edge): Likewise.
16096         (cgraph_clone_node): Clone also the indirect edges.
16097         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
16098         indirect_call, dump count of indirect_calls edges.
16099         * ipa-prop.c (iinlining_processed_edges): New variable.
16100         (ipa_note_param_call): Create indirect edges instead of
16101         creating notes.  New parameter node.
16102         (ipa_analyze_call_uses): New parameter node, pass it on to
16103         ipa_note_param_call.
16104         (ipa_analyze_stmt_uses): Likewise.
16105         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
16106         (print_edge_addition_message): Work on edges rather than on notes.
16107         (update_call_notes_after_inlining): Likewise, renamed to
16108         update_indirect_edges_after_inlining.
16109         (ipa_create_all_structures_for_iinln): New function.
16110         (ipa_free_node_params_substructures): Do not free notes.
16111         (ipa_edge_duplication_hook): Propagate bits within
16112         iinlining_processed_edges bitmap.
16113         (ipa_node_duplication_hook): Do not duplicate notes.
16114         (free_all_ipa_structures_after_ipa_cp): Renamed to
16115         ipa_free_all_structures_after_ipa_cp.
16116         (free_all_ipa_structures_after_iinln): Renamed to
16117         ipa_free_all_structures_after_iinln.
16118         (ipa_write_param_call_note): Removed.
16119         (ipa_read_param_call_note): Removed.
16120         (ipa_write_indirect_edge_info): New function.
16121         (ipa_read_indirect_edge_info): Likewise.
16122         (ipa_write_node_info): Do not stream notes, do stream information
16123         in indirect edges.
16124         (ipa_read_node_info): Likewise.
16125         (lto_ipa_fixup_call_notes): Removed.
16126         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
16127         * ipa-inline.c (pass_ipa_inline): Likewise.
16128         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
16129         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
16130         * tree-inline.c (copy_bb): Removed an unnecessary double check for
16131         is_gimple_call.
16132         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
16133         edges.
16134         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
16135         (output_cgraph): Stream also indirect edges.
16136         (lto_output_edge): Added capability to stream indirect edges.
16137         (input_edge): Likewise.
16138         (input_cgraph_1): Likewise.
16139         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
16140         of indirect edges.
16141
16142 2010-04-28  Richard Guenther  <rguenther@suse.de>
16143
16144         PR tree-optimization/43879
16145         PR tree-optimization/43909
16146         * tree-ssa-structalias.c (struct variable_info): Add
16147         only_restrict_pointers flag.
16148         (new_var_info): Initialize it.  Increment stats.total_vars here.
16149         (create_function_info_for): Do not increment stats.total_vars here.
16150         (get_function_part_constraint): Fix build with C++.
16151         (insert_into_field_list): Remove.
16152         (push_fields_onto_fieldstack): Properly merge fields.
16153         (create_variable_info_for): Split and simplify.
16154         (create_variable_info_for_1): New piece.
16155         (intra_create_variable_infos): Properly make restrict constraints
16156         from parameters.
16157
16158 2010-04-28  Richard Guenther  <rguenther@suse.de>
16159
16160         PR c++/43880
16161         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
16162
16163 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16164             Jan Hubicka  <hubicka@ucw.cz>
16165
16166         * doc/invoke.texi (-Wsuggest-attribute=const,
16167         -Wsuggest-attribute=pure): Document.
16168         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
16169         (function_always_visible_to_compiler_p,
16170         suggest_attribute, warn_function_pure, warn_function_const):
16171         New functions.
16172         (check_call): Improve debug info.
16173         (analyze_function): Do not check availability.
16174         (add_new_function): Check availability.
16175         (propagate): Output warnings.
16176         (skip_function_for_local_pure_const): New function.
16177         (local_pure_const): Use it; output warnings.
16178         * common.opt (Wsuggest-attribute=const,
16179         Wsuggest-attribute=pure): New.
16180
16181 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
16182
16183         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
16184         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
16185         or DW_CFA_def_cfa_offset{,_sf}.
16186
16187 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16188
16189         * tree.h: Fix truncated long macros.
16190
16191 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
16192
16193         * collect2.c (TARGET_64BIT): Redefine to target's default.
16194         * tlink.c: Likewise.
16195         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
16196         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
16197         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
16198         for underscoring __USER_LABEL_PREFIX__.
16199         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
16200         (SUB_LINK_ENTRY32): New.
16201         (SUB_LINK_ENTRY64): New.
16202         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
16203         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
16204         (SUB_LINK_ENTRY64): New.
16205         (SUB_LINK_ENTRY): New.
16206         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
16207         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
16208         x64 target is choosen.
16209         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
16210         * configure: Regenerated.
16211         * configure.ac (leading-mingw64-underscores): Option added.
16212
16213 2010-04-27  Jan Hubicka  <jh@suse.cz>
16214
16215         * doc/invoke.texi (-fipa-profile): Document.
16216         * opts.c (decode_options): Enable ipa-profile at -O1.
16217         * timevar.def (TV_IPA_PROFILE): Define.
16218         * common.opt (fipa-profile): Add.
16219         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
16220         flag for clones.
16221         (cgraph_propagate_frequency): Handle only local ones.
16222         * tree-pass.h (pass_ipa_profile): Declare.
16223         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
16224         (pass_ipa_profile): Use TV_IPA_PROFILE.
16225         * ipa.c (ipa_profile): New function.
16226         (gate_ipa_profile): Likewise.
16227         (pass_ipa_profile): New global variable.
16228         * passes.c (pass_ipa_profile): New.
16229
16230 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
16231
16232         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
16233
16234 2010-04-27  Martin Jambor  <mjambor@suse.cz>
16235
16236         PR middle-end/43812
16237         * ipa.c (dissolve_same_comdat_group_list): New function.
16238         (function_and_variable_visibility): Call
16239         dissolve_same_comdat_group_list when comdat group contains external or
16240         newly local nodes.
16241         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
16242         lists are circular and that they contain only DECL_ONE_ONLY nodes.
16243
16244 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16245
16246         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
16247         (const_hash_1) <VECTOR_CST>: New case.
16248         (compare_constant) <VECTOR_CST>: Likewise.
16249         <ADDR_EXPR>: Deal with LABEL_REFs.
16250         (copy_constant) <VECTOR_CST>: New case.
16251
16252 2010-04-27  Jan Hubicka  <jh@suse.cz>
16253
16254         * cgraph.c (cgraph_propagate_frequency): New function.
16255         * cgraph.h (cgraph_propagate_frequency): Declare.
16256         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
16257         cgraph_propagate_frequency.
16258
16259 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
16260
16261         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
16262
16263 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
16264
16265         PR target/40657
16266         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
16267         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
16268         here to determine which regs to push and how much stack to reserve.
16269
16270 2010-04-27  Jie Zhang  <jie@codesourcery.com>
16271
16272         * doc/gimple.texi (gimple_statement_with_ops): Remove
16273         addresses_taken field.
16274         (gimple_statement_with_memory_ops): Likewise.
16275
16276 2010-04-27  Jan Hubicka  <jh@suse.cz>
16277
16278         * tree-inline.c (eni_inlining_weights): Remove.
16279         (estimate_num_insns): Special case more builtins.
16280
16281 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
16282
16283         PR c/32207
16284         * c-typeck.c (build_binary_op): Move forward check for comparison
16285         pointer with null pointer constant and adjust the diagnostic message.
16286
16287 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
16288
16289         PR lto/42776
16290         * configure.ac (gcc_cv_as_section_has_align): Set if installed
16291         binutils supports extended .section directive needed by LTO, or
16292         warn if older binutils found.
16293         (LTO_BINARY_READER): New AC_SUBST'd variable.
16294         (LTO_USE_LIBELF): Likewise.
16295         * gcc/config.gcc (lto_binary_reader): New target-specific configure
16296         variable.
16297         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
16298         (LTO_USE_LIBELF): Likewise.
16299         * configure: Regenerate.
16300
16301         * collect2.c (is_elf): Rename from this ...
16302         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
16303          object files in addition to ELF-formatted ones.
16304         (scan_prog_file): Caller updated.  Also allow for LTO info marker
16305         symbol to be prefixed or not by an extra underscore.
16306
16307         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
16308         * config/i386/winnt.c: Also #include lto-streamer.h
16309         (i386_pe_asm_named_section): Specify 1-byte section alignment for
16310         LTO named sections.
16311         (i386_pe_asm_output_aligned_decl_common): Add comment.
16312         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
16313
16314 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
16315
16316         PR target/43889
16317         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
16318         Add missing earlyclobber for second alternative.
16319
16320 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
16321
16322         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
16323         bits for artificial defs at the top of the block.
16324         * fwprop.c (single_def_use_enter_block): Don't call it.
16325
16326 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
16327
16328         PR 43715
16329         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
16330         instead of "$gcc_cv_objdump -T".
16331         Use "-undefined dynamic_lookup" on darwin.
16332         * gcc/configure: Regenerate.
16333
16334 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
16335
16336         PR c/43893
16337         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
16338
16339 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16340
16341         * c-parser.c (struct c_token): Move location field up.
16342         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
16343         (struct c_declspecs): Convert typespec_word, storage_class, and
16344         default_int_p into bitfields.
16345         (struct c_declarator): Move loc field up.
16346
16347 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16348
16349         * cfgloop.h (struct loop): Move can_be_parallel field up.
16350         * ipa-prop.h (struct ip_node_params): Move bitfields up.
16351         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
16352         down.
16353         (struct iv_cand): Convert pos field into a bitfield.
16354         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
16355         field up.
16356         (struct _stmt_vec_info): Shuffle fields for better packing.
16357
16358 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16359
16360         * varasm.c (IN_NAMED_SECTION): Remove guard.
16361         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
16362         (IN_NAMED_SECTION_P): ...this.
16363         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
16364         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16365
16366 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16367
16368         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
16369         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
16370         of shadowing it.  Fix comments.
16371
16372 2010-04-26  Jan Hubicka  <jh@suse.cz>
16373
16374         * cgraph.c (cgraph_create_node): Set node frequency to normal.
16375         (cgraph_clone_node): Copy function frequency.
16376         * cgraph.h (node_frequency): New enum
16377         (struct cgraph_node): Add.
16378         * final.c (rest_of_clean_state): Update.
16379         * lto-cgraph.c (lto_output_node): Output node frequency.
16380         (input_overwrite_node): Input node frequency.
16381         * tre-ssa-loop-ivopts (computation_cost): Update.
16382         * lto-streamer-out.c (output_function): Do not output function
16383         frequency.
16384         * predict.c (maybe_hot_frequency_p): Update and handle functions
16385         executed once.
16386         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16387         attribute lookup.
16388         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16389         (compute_function_frequency): Set noreturn functions to be executed
16390         once.
16391         (choose_function_section): Update.
16392         * lto-streamer-in.c (input_function): Do not input function frequency.
16393         * function.c (allocate_struct_function): Do not initialize function
16394         frequency.
16395         * function.h (function_frequency): Remove.
16396         (struct function): Remove function frequency.
16397         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16398         (try_update): Update.
16399         * tree-inline.c (initialize_cfun): Do not update function frequency.
16400         * passes.c (pass_init_dump_file): Update.
16401         * i386.c (ix86_compute_frame_layout): Update.
16402         (ix86_pad_returns): Update.
16403
16404 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16405
16406         PR tree-optimization/43833
16407         * tree-vrp.c (range_int_cst_p): New.
16408         (range_int_cst_singleton_p): New.
16409         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16410         when both operands are constants.  Use range_int_cst_p in
16411         BIT_IOR_EXPR case.
16412
16413 2010-04-26  Jan Hubicka  <jh@suse.cz>
16414
16415         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16416
16417 2010-04-26  Richard Guenther  <rguenther@suse.de>
16418
16419         PR lto/43080
16420         * gimple.c (gimple_decl_printable_name): Deal gracefully
16421         with a NULL DECL_NAME.
16422
16423 2010-04-26  Richard Guenther  <rguenther@suse.de>
16424
16425         PR lto/42425
16426         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16427         if emitting debug information and it is either a function
16428         or a namespace decl.
16429
16430 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16431
16432         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16433         determine if the statement is vectorizable, and a macro to access it.
16434         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16435         Skip statements that can't be vectorized. If the analysis fails,
16436         mark the statement as unvectorizable if vectorizing basic block.
16437         (vect_compute_data_refs_alignment): Likewise.
16438         (vect_verify_datarefs_alignment): Skip statements marked as
16439         unvectorizable. Add print.
16440         (vect_analyze_group_access): Skip statements that can't be
16441         vectorized. If the analysis fails, mark the statement as
16442         unvectorizable if vectorizing basic block.
16443         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16444         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16445         generated stmts for SLP.
16446         (new_stmt_vec_info): Initialize the new field.
16447         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16448         statements marked as unvectorizable.
16449
16450 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16451
16452         * c-common.c (flag_isoc1x): New.
16453         (flag_isoc99): Update comment.
16454         * c-common.h (flag_isoc1x): New.
16455         (flag_isoc99): Update comment.
16456         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16457         __<type>_DECIMAL_DIG__.
16458         * c-opts.c (set_std_c1x): New.
16459         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16460         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16461         * c.opt (-std=c1x, -std=gnu1x): New options.
16462         * doc/cpp.texi: Mention -std=c1x.
16463         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16464         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16465         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16466         * doc/standards.texi: Mention C1X.
16467         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16468         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16469         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16470         Define for C1X.
16471
16472 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16473
16474         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16475         placeholder from 0x%x to %#x.
16476         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16477         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16478         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16479         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16480         * config/i386/i386.c (ix86_target_string): Ditto.
16481         (output_pic_addr_const): Ditto.
16482         (print_operand): Ditto.
16483
16484 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16485
16486         * combine.c (find_split_point): Add third argument.  Use it
16487         to find nested multiply-accumulate instructions.  Adjust calls.
16488         (try_combine): Adjust call to find_split_point.
16489
16490 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16491
16492         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16493
16494 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16495
16496         PR tree-optimization/41442
16497         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16498         (fold_binary_loc): Call it.
16499
16500 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16501
16502         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16503         * opts.c (common_handle_option): Allow disabling it.
16504         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16505
16506 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16507
16508         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16509         between modes if both types are integral.
16510
16511 2010-04-23  Richard Guenther  <rguenther@suse.de>
16512
16513         PR tree-optimization/43572
16514         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16515
16516 2010-04-23  Richard Guenther  <rguenther@suse.de>
16517
16518         PR lto/43455
16519         * tree-inline.c (tree_can_inline_p): Also check compatibility
16520         of return types.
16521
16522 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16523
16524         PR tree-optimization/43846
16525         * tree-sra.c (struct access): New flag grp_assignment_read.
16526         (build_accesses_from_assign): Set grp_assignment_read.
16527         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16528         (enum mark_read_status): New type.
16529         (analyze_access_subtree): Propagate grp_assignment_read, create
16530         accesses also if both direct_read and root->grp_assignment_read.
16531
16532 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16533
16534         PR middle-end/43835
16535         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16536         function does not have type attributes.
16537
16538 2010-04-23  Richard Guenther  <rguenther@suse.de>
16539
16540         PR lto/42653
16541         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16542         of FUNCTION_DECLs.
16543
16544 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16545
16546         * sese.h (create_if_region_on_edge): Remove.
16547
16548         * sese.c (create_if_region_on_edge): Make static.
16549
16550         * tree-inline.c: Do not include ggc.h.
16551
16552         * expr.c: Do not include ggc.h.
16553
16554         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16555         dependencies.
16556
16557 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16558
16559         PR target/43744
16560         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16561         in the middle of insns for casesi_worker_2.
16562
16563 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16564
16565         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16566
16567 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16568
16569         PR tree-optimization/43842
16570         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16571         loop unrolling in update of exit phis. Fix comment.
16572         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16573         least two reduction statements in the loop before starting SLP
16574         analysis.
16575
16576 2010-04-22  Nick Clifton  <nickc@redhat.com>
16577
16578         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16579
16580 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16581
16582         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16583         to simplify a + ~a.
16584
16585 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16586
16587         * tree-parloops.c (loop_parallel_p): New argument
16588         parloop_obstack.  Pass it down.
16589         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16590         pass it down, free it.
16591
16592         * tree-loop-linear.c (linear_transform_loops): Pass down
16593         lambda_obstack.
16594
16595         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16596         of type struct obstack *.
16597
16598         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16599         scratch_obstack.  Initialize it, pass down, free it.
16600
16601         * lambda.h (lambda_loop_new): Remove.
16602         (lambda_matrix_new, lambda_matrix_inverse)
16603         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16604         argument of type struct obstack *.
16605
16606         * lambda-trans.c (lambda_trans_matrix_new): New argument
16607         lambda_obstack.  Pass it down, use obstack allocation for ret.
16608         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16609         it down.
16610
16611         * lambda-mat.c (lambda_matrix_get_column)
16612         (lambda_matrix_project_to_null): Remove.
16613         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16614         allocation for mat.
16615         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16616         lambda_obstack.
16617
16618         * lambda-code.c (lambda_loop_new): New function.
16619         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16620         (lambda_compute_auxillary_space, lambda_compute_target_space)
16621         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16622         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16623         (build_access_matrix): New argument lambda_obstack.  Use obstack
16624         allocation for am.
16625         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16626         argument lambda_obstack.  Pass it down.
16627
16628 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16629
16630         * optabs.h (expand_widening_mult): Declare.
16631
16632 2010-04-22  Richard Guenther  <rguenther@suse.de>
16633
16634         PR tree-optimization/43845
16635         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16636         lookup the CALL_EXPR function and arguments.
16637
16638 2010-04-22  Nick Clifton  <nickc@redhat.com>
16639
16640         * config/stormy16/stormy16.c
16641         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16642         * config/stormy16/stormy16.h: Tidy up formatting.
16643         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16644         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16645         (ineqbranchsi): Delete pattern.
16646         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16647         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16648         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16649         stormy16-lib2-ucmpsi2.c.
16650
16651 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16652
16653         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16654         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16655         extra set merge_set_noclobber, and use it to relax the final test
16656         slightly.
16657         * df.h (df_simulate_find_noclobber_defs): Declare.
16658         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16659         conditional defs.
16660         (df_simulate_find_noclobber_defs): New function.
16661
16662 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16663
16664         * config/i386/i386.md: Use {} around multi-line preparation statements.
16665
16666 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16667
16668         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16669         (process_init_element): New argument of type struct obstack *.
16670
16671         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16672         (set_init_index, set_init_label, set_nonincremental_init)
16673         (set_nonincremental_init_from_string, find_init_member)
16674         (output_init_element, output_pending_init_elements)
16675         (process_init_element): New argument braced_init_obstack.  Pass it
16676         down.
16677         (push_range_stack, add_pending_init): New argument
16678         braced_init_obstack.  Use obstack allocation.
16679
16680         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16681         braced_init_obstack.  Pass it down.
16682         (c_parser_braced_init): New variables ret, braced_init_obstack.
16683         Initialize obstack, pass it down and finally free it.
16684
16685 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16686
16687         PR middle-end/29274
16688         * tree-pass.h (pass_optimize_widening_mul): Declare.
16689         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16690         gate_optimize_widening_mul): New static functions.
16691         (pass_optimize_widening_mul): New.
16692         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16693         <case MULT_EXPR>: Remove support for widening multiplies.
16694         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16695         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16696         simplify_gen_unary rather than directly building extensions.
16697         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16698         WIDEN_MULT_EXPR.
16699         * expmed.c (expand_widening_mult): New function.
16700         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16701
16702 2010-04-21  Jan Hubicka  <jh@suse.cz>
16703
16704         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16705         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16706         * lto-wpa-fixup.c: Remove.
16707         * Makefile.in (lto-wpa-fixup.o): Remove.
16708         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16709         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16710         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16711
16712 2010-04-21  Jan Hubicka  <jh@suse.cz>
16713
16714         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16715         add write_optimization_summary, read_optimization_summary.
16716         (ipa_write_summaries_of_cgraph_node_set): Remove.
16717         (ipa_write_optimization_summaries): Declare.
16718         (ipa_read_optimization_summaries): Declare.
16719         * ipa-cp.c (pass_ipa_cp): Update.
16720         * ipa-reference.c (pass_ipa_reference): Update.
16721         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16722         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16723         Update.
16724         * ipa-inline.c (pass_ipa_inline): Update.
16725         * ipa.c (pass_ipa_whole_program): Update.
16726         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16727         * passes.c (ipa_write_summaries_1): Do not test wpa.
16728         (ipa_write_optimization_summaries_1): New.
16729         (ipa_write_optimization_summaries): New.
16730         (ipa_read_summaries): Do not test ltrans.
16731         (ipa_read_optimization_summaries_1): New.
16732         (ipa_read_optimization_summaries): New.
16733
16734 2010-04-21  Jan Hubicka  <jh@suse.cz>
16735
16736         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16737         for boundary nodes.
16738         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16739
16740 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16741
16742         PR debug/40040
16743         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16744         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16745
16746 2010-04-21  Jan Hubicka  <jh@suse.cz>
16747
16748         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16749
16750 2010-04-21  Jan Hubicka  <jh@suse.cz>
16751
16752         * varpool.c (decide_is_variable_needed): Variable is always needed
16753         during ltrans.
16754
16755 2010-04-21  Jan Hubicka  <jh@suse.cz>
16756
16757         * opts.c (decode_options): Enable pure-const pass for whopr.
16758
16759 2010-04-21  Jan Hubicka  <jh@suse.cz>
16760
16761         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16762         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16763         at WPA dumping.
16764         (cgraph_decide_inlining): Do not expect callee to be removed in all
16765         cases.
16766
16767 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16768
16769         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16770
16771 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16772
16773         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16774         amdfam10_decode attributes.
16775
16776 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16777
16778         PR middle-end/43570
16779         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16780         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16781         (lower_copyprivate_clauses): Use private var in outer
16782         context instead of original var.  Make sure the types
16783         are correct for VLAs.
16784
16785 2010-04-21  Richard Guenther  <rguenther@suse.de>
16786
16787         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16788         to non-pointer objects.
16789
16790 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16791
16792         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16793         last chain entry if it starts with the still current label.
16794         (add_location_or_const_value_attribute): Check that
16795         loc_list->first->next is NULL instead of comparing ->first with ->last.
16796         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16797         to add_var_loc_to_decl.
16798
16799         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16800         >= 4 add also address size and segment size fields into CIE header.
16801
16802         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16803         long as address size is the same as sizeof (void *) and
16804         segment size is 0.
16805         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16806         address size or segment size is unexpected, return DW_EH_PE_omit.
16807         (classify_object_over_fdes): If get_cie_encoding returned
16808         DW_EH_PE_omit, return -1.
16809         (init_object): If classify_object_over_fdes returned -1,
16810         pretend there were no FDEs at all.
16811
16812 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16813
16814         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16815         bswap{si,di}2 using SWI48 mode iterator.
16816         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16817         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16818         set modrm attribute of bswap insn to 0 and remove length attribute.
16819         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16820         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16821         set mode attribute to <MODE> and remove length attribute.
16822
16823 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16824
16825         PR rtl-optimization/43520
16826         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16827         zero available registers.
16828
16829 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16830
16831         * builtins.c (fold_builtin_cproj): Fold more cases.
16832
16833 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16834
16835         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16836         (fold_builtin_1): Fold builtin cproj.
16837         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16838         Use ATTR_CONST_NOTHROW_LIST.
16839
16840 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16841
16842         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16843         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16844         ffsi2_no_cmove for !TARGET_CMOVE.
16845         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16846         (ffssi2): Remove expander.
16847         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16848         mode iterator.
16849         (ctz<mode>2): Ditto from ctz{si,di}2.
16850         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16851         mode iterator.
16852         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16853         mode iterator.
16854
16855 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16856
16857         * dwarf2out.c (AT_linkage_name): Define.
16858         (clone_as_declaration): Handle DW_AT_linkage_name.
16859         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16860         of DW_AT_MIPS_linkage_name.
16861         (move_linkage_attr): Likewise.
16862         (dwarf2out_finish): Likewise.
16863
16864 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16865
16866         PR middle-end/41952
16867         * fold-const.c (fold_comparison): New folding rule.
16868
16869 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16870
16871         * double-int.h (double_int_setbit): Declare.
16872         * double-int.c (double_int_setbit): New function.
16873         * rtl.h (immed_double_int_const): Declare.
16874         * emit-rtl.c (immed_double_int_const): New function.
16875         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16876         and immed_double_int_const functions.
16877         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16878         expand_copysign_bit): (Ditto.).
16879         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16880         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16881         * dojump.c (prefer_and_bit_test): (Ditto.).
16882         * expr.c (convert_modes, reduce_to_bit_field_precision,
16883         const_vector_from_tree): (Ditto.).
16884         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16885
16886 2010-04-20  Jan Hubicka  <jh@suse.cz>
16887
16888         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16889         (dump_cgraph_node): Dump new flags.
16890         * cgraph.h (struct cgraph_node): Add flags
16891         reachable_from_other_partition and in_other_partition.
16892         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16893         other partition can not be removed.
16894         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16895         the other partition must be output; silence sanity checking on
16896         leaking functions bodies from other paritition.
16897         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16898         (lto_output_node): Output new flags; do not sanity check that inline
16899         clones are output; drop lto_forced_extern_inline_p code; do not mock
16900         visibility flags at partition boundaries.
16901         (add_node_to): New function.
16902         (output_cgraph): Use it to sort functions so masters appear before
16903         clones.
16904         (input_overwrite_node): Input new flags.
16905         * passes.c (ipa_write_summaries): Do not call
16906         lto_new_extern_inline_states.
16907         * lto-section-out.c (forced_extern_inline,
16908         lto_new_extern_inline_states lto_delete_extern_inline_states,
16909         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16910         * lto-streamer.h (lto_new_extern_inline_states,
16911         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16912         lto_forced_extern_inline_p): Kill.
16913
16914 2010-04-20  Richard Guenther  <rguenther@suse.de>
16915
16916         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16917         from vars that can have pointers.
16918         (process_constraint): Dump useless constraints.
16919
16920 2010-04-20  Richard Guenther  <rguenther@suse.de>
16921
16922         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16923         (dump_sa_points_to_info): Remove asserts.
16924         (init_base_vars): nothing_id isn't an escape point nor does it
16925         have pointers.
16926
16927 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16928
16929         * tree.h (TYPE_REF_IS_RVALUE): Define.
16930         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16931         should_move_die_to_comdat, prune_unused_types_walk): Handle
16932         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16933         (modified_type_die, gen_reference_type_die): Emit
16934         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16935         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16936
16937 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16938
16939         PR target/43635
16940         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16941         calls for -fpic -m31 if they have been sibcall optimized.
16942
16943 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16944
16945         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16946         ar.lc fixed and call-used.
16947
16948         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16949
16950 2010-04-19  Jan Hubicka  <jh@suse.cz>
16951
16952         * opts.c (decode_options): Disable whpr incompatible passes.
16953         * lto/lto.c (lto_1_to_1_map): Skip clones.
16954         (read_cgraph_and_symbols): Do not mark everything as needed.
16955         (do_whole_program_analysis): Do map only after optimizing;
16956         set proper cgraph_state; use passmanager.
16957
16958 2010-04-19  DJ Delorie  <dj@redhat.com>
16959
16960         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16961         POINTER_PLUS_EXPR and fix them.
16962
16963 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16964
16965         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16966         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16967         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16968         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16969         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16970         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16971         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16972         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16973         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16974         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16975         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16976
16977 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16978
16979         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16980         (check_cond_move_block): Likewise.
16981         (cond_move_process_if_block): Likewise.
16982         (noce_find_if_block): Improve formatting.
16983         (find_if_header): Pass 0 to memset and tweak conditions.
16984         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16985
16986 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16987
16988         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16989         for -gdwarf-4.
16990
16991         PR middle-end/43337
16992         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16993         with non-local decl doesn't need chain.
16994
16995 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16996
16997         * ira-color.c (allocno_reload_assign): Avoid accumulating
16998         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16999
17000 2010-04-19  Martin Jambor  <mjambor@suse.cz>
17001
17002         * gimple.h (create_tmp_reg): Declare.
17003         * gimplify.c (create_tmp_reg): New function.
17004         (gimplify_return_expr): Use create_tmp_reg.
17005         (gimplify_omp_atomic): Likewise.
17006         (gimple_regimplify_operands): Likewise.
17007         * tree-dfa.c (make_rename_temp): Likewise.
17008         * tree-predcom.c (predcom_tmp_var): Likewise.
17009         (reassociate_to_the_same_stmt): Likewise.
17010         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
17011         (get_replaced_param_substitute): Likewise.
17012         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
17013         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
17014         * tree-ssa-pre.c (get_representative_for): Likewise.
17015         (create_expression_by_pieces): Likewise.
17016         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
17017         (create_tailcall_accumulator): Likewise.
17018
17019 2010-04-19  Martin Jambor  <mjambor@suse.cz>
17020
17021         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
17022         new_stmt.
17023         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
17024
17025 2010-04-19  Richard Guenther  <rguenther@suse.de>
17026
17027         PR tree-optimization/43796
17028         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
17029         from SCEV in the lattice.
17030         (vrp_visit_phi_node): Dump change.
17031
17032 2010-04-19  Richard Guenther  <rguenther@suse.de>
17033
17034         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
17035         * configure: Re-generated.
17036
17037 2010-04-19  Richard Guenther  <rguenther@suse.de>
17038
17039         PR tree-optimization/43783
17040         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
17041         constant ARRAY_REF operands two and three if possible.
17042
17043 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
17044
17045         PR target/43766
17046         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
17047
17048 2010-04-19  Jie Zhang  <jie@codesourcery.com>
17049
17050         PR target/43662
17051         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
17052
17053 2010-04-19  Ira Rosen  <irar@il.ibm.com>
17054
17055         PR tree-optimization/37027
17056         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
17057         and macro to access it.
17058         (vectorizable_reduction): Add argument.
17059         (vect_get_slp_defs): Likewise.
17060         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
17061         statements for possible use in SLP.
17062         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
17063         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
17064         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
17065         add new argument.
17066         (vectorizable_reduction): Likewise.
17067         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
17068         vect_get_slp_defs.
17069         (vectorizable_type_demotion, vectorizable_type_promotion,
17070         vectorizable_store): Likewise.
17071         (vect_analyze_stmt): Update call to vectorizable_reduction.
17072         (vect_transform_stmt): Likewise.
17073         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
17074         (vect_build_slp_tree): Fix indentation. Check that there are no loads
17075         from different interleaving chains in same node.
17076         (vect_slp_rearrange_stmts): New function.
17077         (vect_supported_load_permutation_p): Allow load permutations for
17078         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
17079         inside SLP nodes if necessary.
17080         (vect_analyze_slp_instance): Handle reductions.
17081         (vect_analyze_slp): Try to build SLP instances originating from groups
17082         of reductions.
17083         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
17084         (vect_get_constant_vectors): Create initial vectors for reductions
17085         according to reduction code. Add new argument.
17086         (vect_get_slp_defs): Add new argument, pass it to
17087         vect_get_constant_vectors.
17088         (vect_schedule_slp_instance): Remove SLP tree root statements.
17089
17090 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
17091
17092         * tree.h (ENUM_IS_SCOPED): Define.
17093         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
17094         for ENUM_IS_SCOPED enums.
17095
17096 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17097
17098         * fold-const.c (fold_comparison): Use ssizetype.
17099         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
17100         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
17101         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
17102         * tree-object-size.c (compute_object_sizes): Use size_type_node.
17103
17104         * tree.h (initialize_sizetypes): Remove parameter.
17105         (build_common_tree_nodes): Remove second parameter.
17106         * stor-layout.c (initialize_sizetypes): Remove parameter.
17107         Always create an unsigned type.
17108         (set_sizetype): Assert that the passed type is unsigned and simplify.
17109         * tree.c (build_common_tree_nodes): Remove second parameter.
17110         Adjust call to initialize_sizetypes.
17111         * c-decl.c (c_init_decl_processing): Remove second argument in call to
17112         build_common_tree_nodes.
17113
17114 2010-04-18  Matthias Klose  <doko@ubuntu.com>
17115
17116         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
17117
17118 2010-04-18  Ira Rosen  <irar@il.ibm.com>
17119
17120         PR tree-optimization/43771
17121         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
17122         load permutation doesn't have gaps.
17123
17124 2010-04-18  Jan Hubicka  <jh@suse.cz>
17125
17126         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
17127         (sse_prologue_save_insn expander): Use new pattern.
17128         (sse_prologue_save_insn1): New pattern and splitter.
17129         (sse_prologue_save_insn): Update to deal also with 64bit aligned
17130         blocks.
17131         * i386.c (setup_incoming_varargs_64): Do not compute jump
17132         destination here.
17133         (ix86_gimplify_va_arg): Update alignment needed.
17134         (ix86_local_alignment): Do not align all local arrays to 128bit.
17135
17136 2010-04-17  Jan Hubicka  <jh@suse.cz>
17137
17138         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
17139
17140 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
17141
17142         * arm.md (negdi2): Remove redundant code to force values into a
17143         register.
17144
17145 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
17146
17147         * arm/bpabi.S: Add EABI alignment attributes to objects.
17148         * arm/bpabi-v6m.S: Likewise.
17149         * arm/crti.asm: Likewise.
17150         * arm/crtn.asm: Likewise.
17151         * arm/lib1funcs.asm: Likewise.
17152         * arm/libunwind.S: Likewise.
17153
17154 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
17155
17156         * arm-protos.h (tune_params): New structure.
17157         * arm.c (current_tune): New variable.
17158         (arm_constant_limit): Delete.
17159         (struct processors): Add pointer to the tune parameters.
17160         (arm_slowmul_tune): New tuning option.
17161         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
17162         (all_cores): Adjust to pick up the tuning model.
17163         (arm_constant_limit): New function.
17164         (arm_override_options): Select the appropriate tuning model.  Delete
17165         initialization of arm_const_limit.
17166         (arm_split_constant): Use the new constant-limit model.
17167         (arm_rtx_costs): Pick up the current tuning model.
17168         * arm.md (is_strongarm, is_xscale): Delete.
17169         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
17170         for Xscale variant architectures.
17171         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
17172
17173 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17174
17175         * config/arm/arm.c (arm_gen_constant): Remove unused variable
17176         can_shift.
17177         (arm_rtx_costs_1): Remove unused variable extra_cost.
17178         (arm_unwind_emit_set): Use variable offset.
17179         (thumb1_output_casesi): Remove unused variable flags.
17180
17181 2010-04-16  Jeff Law  <law@redhat.com>
17182
17183         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
17184         needing assignment rather than doing a two-phase assignment.  Remove
17185         unused variable 'm'.
17186
17187 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17188
17189         PR bootstrap/43767
17190         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
17191
17192 2010-04-16  Doug Kwan  <dougkwan@google.com>
17193
17194         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
17195         (next_operand_entry_id): New static variable.
17196         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
17197         (add_to_ops_vec): Assigned unique ID to operand entry.
17198         (struct oecount_s): New field ID.
17199         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
17200         (undistribute_ops_list): Assign unique IDs to oecounts.
17201         (init_reassoc): reset next_operand_entry_id.
17202
17203 2010-04-16  Doug Kwan  <dougkwan@google.com>
17204
17205         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
17206         missing left parenthesis.
17207
17208 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
17209
17210         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
17211         *btdi_rex64 using SWI48 mode iterator.
17212         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
17213         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
17214         *jcc_btdi_mask_rex64.
17215
17216 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
17217
17218         * double-int.h (tree_to_double_int): Convert to macro.
17219         * double-int.c (tree_to_double_int): Remove.
17220
17221 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17222
17223         PR debug/43762
17224         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
17225         with want_address 2 and in case a single element list might be
17226         possible, call it again with want_address 0.
17227
17228 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17229
17230         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
17231         case 'W' print operands for HI mode.
17232         * config/h8300/h8300.h (Y0, Y2) : New constraints.
17233         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
17234         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
17235         * config/h8300/predicate.md (bit_register_indirect_operand): New.
17236
17237         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
17238
17239         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
17240         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
17241         #xx:3 and #xx:4 mode.
17242
17243         * config/h8300/h8300.md (inverted load with HImode dest): Add
17244         support for H8300SX.
17245
17246         * config/h8300/predicate.md (bit_operand): Allow immediate values that
17247         satisfy 'U' constraint.
17248
17249 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17250
17251         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
17252         * configure: Regenerate.
17253         * config.in: Regenerate.
17254         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
17255         works.
17256
17257 2010-04-16  Richard Guenther  <rguenther@suse.de>
17258
17259         * tree.h (struct tree_decl_minimal): Move pt_uid ...
17260         (struct tree_decl_common): ... here.
17261         (DECL_PT_UID): Adjust.
17262         (SET_DECL_PT_UID): Likewise.
17263         (DECL_PT_UID_SET_P): Likewise.
17264
17265 2010-04-16  Richard Guenther  <rguenther@suse.de>
17266
17267         PR tree-optimization/43572
17268         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
17269         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
17270         * tree-flow.h (is_call_clobbered): Remove.
17271         * tree-flow-inline.h (is_call_clobbered): Likewise.
17272         * tree-dfa.c (dump_variable): Do not dump call clobber state.
17273         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
17274         (execute_return_slot_opt): Adjust.
17275         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
17276         check for call clobbered vars here.
17277         (find_tail_calls): Move tailcall verification to the
17278         proper place.
17279
17280 2010-04-16  Diego Novillo  <dnovillo@google.com>
17281
17282         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
17283
17284 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17285
17286         PR target/40603
17287         * config/arm/arm.md (cbranchqi4): New pattern.
17288         * config/arm/predicates.md (const0_operand,
17289         cbranchqi4_comparison_operator): New predicates.
17290
17291 2010-04-16  Richard Guenther  <rguenther@suse.de>
17292
17293         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
17294         (dump_gimple_stmt): Likewise.
17295
17296 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17297
17298         * recog.h (struct recog_data): New field is_operator.
17299         (struct insn_operand_data): New field is_operator.
17300         * recog.c (extract_insn): Set recog_data.is_operator.
17301         * genoutput.c (output_operand_data): Emit code to set the
17302         is_operator field.
17303         * reload.c (find_reloads): Use it rather than testing for an
17304         empty constraint string.
17305
17306         PR target/41514
17307         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
17308         If the previous insn is a cbranchsi4_insn with the same arguments,
17309         omit the compare instruction.
17310
17311         * config/arm/arm.md (addsi3_cbranch): If destination is a high
17312         register, inputs must be low registers and we need a low register
17313         scratch.  Handle alternative 2 like alternative 3.
17314
17315 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17316
17317         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
17318         don't call get_addr on both.  If one expression is a VALUE and
17319         the other a REG, check VALUE's locs if the REG isn't among them.
17320
17321 2010-04-16  Christian Bruel  <christian.bruel@st.com>
17322
17323         * config/sh/sh.h (sh_frame_pointer_required): New function.
17324         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
17325         (flag_omit_frame_pointer) Set.
17326         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
17327         (rounded_frame_size): Adjust size with outgoing_args_size.
17328         (sh_set_return_address): Must return from stack pointer.
17329         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
17330         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
17331         (ACCUMULATE_OUTGOING_ARGS): Define.
17332         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
17333         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
17334
17335 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17336
17337         PR target/43471
17338         * config/sh/sh.c (sh_legitimize_reload_address): Use
17339         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
17340         Remove a unneeded check for offset_base.
17341
17342 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17343
17344         * configure: Regenerated.
17345
17346 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17347
17348         * config/s390/s390.c (s390_call_save_register_used): Switch back
17349         to HARD_REGNO_NREGS.
17350
17351 2010-04-15  Richard Guenther  <rguenther@suse.de>
17352
17353         * alias.c (alias_set_subset_of): Handle alias-set zero
17354         child properly.
17355
17356 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
17357             Julian Brown  <julian@codesourcery.com>
17358
17359         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
17360         alternatives according to use of high and low regs.
17361         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
17362         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
17363         optimizing for size on Thumb-2.
17364
17365 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
17366
17367         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
17368
17369 2010-04-15  Richard Guenther  <rguenther@suse.de>
17370
17371         * tree-ssa-structalias.c (struct variable_info): Add
17372         is_fn_info flag.
17373         (new_var_info): Initialize it.
17374         (dump_constraints): Support printing last added constraints.
17375         (debug_constraints): Adjust.
17376         (dump_constraint_graph): Likewise.
17377         (make_heapvar_for): Check for NULL cfun.
17378         (get_function_part_constraint): New function.
17379         (get_fi_for_callee): Likewise.
17380         (find_func_aliases): Properly implement IPA PTA constraints.
17381         (process_ipa_clobber): New function.
17382         (find_func_clobbers): Likewise.
17383         (insert_into_field_list_sorted): Remove.
17384         (create_function_info_for): Properly allocate vars for IPA mode.
17385         Do not use insert_into_field_list_sorted.
17386         (create_variable_info_for): Properly generate constraints for
17387         global vars in IPA mode.
17388         (dump_solution_for_var): Always dump the solution.
17389         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17390         (find_what_var_points_to): Adjust.
17391         (pt_solution_set): Change.
17392         (pt_solution_ior_into): New function.
17393         (pt_solution_empty_p): Export.
17394         (pt_solution_includes_global): Adjust.
17395         (pt_solution_includes_1): Likewise.
17396         (pt_solutions_intersect_1): Likewise.
17397         (dump_sa_points_to_info): Check some invariants.
17398         (solve_constraints): Move constraint dumping ...
17399         (compute_points_to_sets): ... here.
17400         (ipa_pta_execute): ... and here.
17401         (compute_may_aliases): Do not re-compute points-to info
17402         locally if IPA info is available.
17403         (ipa_escaped_pt): New global var.
17404         (ipa_pta_execute): Properly implement IPA PTA.
17405         * tree-into-ssa.c (dump_decl_set): Support dumping
17406         decls not in referenced-vars.
17407         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17408         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17409         (dump_points_to_solution): Likewise.
17410         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17411         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17412         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17413         (copy_decl_to_var): Copy DECL_PT_UID.
17414         (copy_result_decl_to_var): Likewise.
17415         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17416         (copy_node_stat): Copy it.
17417         * tree.h (DECL_PT_UID): New macro.
17418         (SET_DECL_PT_UID): Likewise.
17419         (DECL_PT_UID_SET_P): Likewise.
17420         (struct tree_decl_minimal): Add pt_uid member.
17421         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17422         (pt_solution_empty_p): Declare.
17423         (pt_solution_set): Adjust.
17424         (ipa_escaped_pt): Declare.
17425         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17426         * gimple-pretty-print.c (pp_points_to_solution): New function.
17427         (dump_gimple_call): Dump call clobber/use information.
17428         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17429         * tree-pass.h (TDF_ALIAS): New dump option.
17430         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17431         * doc/invoke.texi (-fipa-pta): Update documentation.
17432
17433 2010-04-15  Richard Guenther  <rguenther@suse.de>
17434
17435         * Makefile.in (OBJS-common): Add gimple-fold.o.
17436         (gimple-fold.o): New rule.
17437         * tree.h (maybe_fold_offset_to_reference,
17438         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17439         prototypes ...
17440         * gimple.h: ... here.
17441         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17442         may_propagate_address_into_dereference): Move prototypes ...
17443         * gimple.h: ... here.
17444         * tree-ssa-ccp.c (get_symbol_constant_value,
17445         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17446         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17447         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17448         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17449         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17450         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17451         gimplify_and_update_call_from_tree): Move ...
17452         * gimple-fold.c: ... here.  New file.
17453         (ccp_fold_builtin): Rename to ...
17454         (gimple_fold_builtin): ... this.
17455         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17456
17457 2010-04-15  Richard Guenther  <rguenther@suse.de>
17458
17459         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17460         fit_double_type, force_fit_type_double, add_double_with_sign,
17461         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17462         lrotate_double, rrotate_double, div_and_round_double): Move ...
17463         * double-int.c: ... here.
17464         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17465         add_double, neg_double, mul_double_with_sign, mul_double,
17466         lshift_double, rshift_double, lrotate_double, rrotate_double,
17467         div_and_round_double): Move prototypes ...
17468         * double-int.h: ... here.
17469
17470 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17471
17472         PR target/43742
17473         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17474         matching constraints to ensure inputs match the output.
17475
17476 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17477
17478         PR target/43742
17479         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17480         in an input-only operand.
17481
17482 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17483
17484         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17485         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17486         (double_int_negative_p): Convert to static inline function.
17487         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17488         (double_int_negative_p): Remove.
17489         * tree.h (lshift_double, rshift_double):
17490         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17491         * fold-const.c (fold_convert_const_int_from_real,
17492         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17493         (lshift_double): Change type of arith argument to bool.
17494         (rshift_double): Change type of arith argument to bool. Correct
17495         comment.
17496         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17497
17498 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17499
17500         PR target/21803
17501         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17502         at the start and end of the then/else blocks, and omit them from the
17503         conversion.
17504         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17505         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17506         (flow_find_head_matching_sequence): New function.
17507         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17508         * basic-block.h (flow_find_cross_jump,
17509         flow_find_head_matching_sequence): Declare functions.
17510
17511 2010-04-14  Jason Merrill  <jason@redhat.com>
17512
17513         PR c++/36625
17514         * c-common.c (attribute_takes_identifier_p): New fn.
17515         * c-common.h: Declare it.
17516
17517 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17518
17519         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17520         splitter condition.
17521         (*udivmod<mode>4): Ditto.
17522
17523 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17524
17525         * config/i386/i386.md (maxmin_int): Rename code attribute from
17526         maxminiprefix and update all users.
17527         (maxmin_float): Ditto from maxminfprefix.
17528         (logic): Ditto from logicprefix.
17529         (absneg_mnemonic): Ditto from absnegprefix.
17530         * config/i386/mmx.md: Update all users of maxminiprefix,
17531         maxminfprefix and logicprefix for rename.
17532         * config/i386/sse.md: Ditto.
17533         * config/i386/sync.md (sync_<code><mode>): Update for
17534         logicprefix rename.
17535
17536 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17537
17538         PR 42966
17539         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17540         warnings converted to errors.
17541
17542 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17543
17544         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17545         used insn_type variable.
17546         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17547         to avoid set-but-not-used warning.
17548
17549 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17550
17551         * df-core.c (df_ref_debug): Change format string placeholder
17552         from 0x%x to %#x.
17553         * dwarf2asm.c (dw2_asm_output_data_raw,
17554         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17555         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17556         * dwarf2out.c (output_cfi, output_cfi_directive,
17557         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17558         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17559         Ditto.
17560         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17561         * print-rtl.c (print_rtx): Ditto.
17562
17563 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17564
17565         PR middle-end/42694
17566         * builtins.c (expand_builtin_pow_root): New function to expand pow
17567         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17568         series of sqrt and cbrt calls under -ffast-math.
17569         (expand_builtin_pow): Call it.
17570
17571 2010-04-14  Michael Matz  <matz@suse.de>
17572
17573         PR tree-optimization/42963
17574         * tree-cfg.c (touched_switch_bbs): New static variable.
17575         (group_case_labels_stmt): New function broken out from ...
17576         (group_case_labels): ... here, use the above.
17577         (start_recording_case_labels): Allocate touched_switch_bbs.
17578         (end_recording_case_labels): Deallocate it, call
17579         group_case_labels_stmt.
17580         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17581
17582 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17583
17584         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17585         from insn template.
17586
17587 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17588
17589         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17590
17591 2010-04-13  Jan Hubicka  <jh@suse.cz>
17592
17593         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17594         of optimized out static functions.
17595         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17596         cost computation.  Also sanity check for overflows.
17597         (update_caller_keys): Update cgraph_edge_badness call; properly
17598         update fibheap and sanity check that it is up to date.
17599         (add_new_edges_to_heap): Update cgraph_edge_badness.
17600         (cgraph_decide_inlining_of_small_function): Likewise;
17601         add sanity checking that badness in heap is up to date;
17602         improve dumping of reason; Update badness of calls to the
17603         offline copy of function currently inlined; dump badness
17604         of functions not inlined because of unit growth limits.
17605
17606 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17607
17608         PR middle-end/32628
17609         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17610         because of sign-extension change when converting to sizetype here...
17611         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17612
17613         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17614         the folding to constants.  Remove redundant final conversion.
17615         (fold_binary) <associate>: Do not associate if the re-association of
17616         constants alone overflows.
17617         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17618         to the end of the list.
17619         (multiple_of_p) <COND_EXPR>: New case.
17620
17621 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17622
17623         * opt-functions.awk (opt_sanitized_name): New.
17624         (opt_enum): New.
17625         * optc-gen.awk: Use it
17626         * opth-gen.awk: Use it.
17627
17628 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17629
17630         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17631         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17632         children.  Call replace_uses_with_default_def_ssa_name to handle
17633         SSA_NAES on lhs.
17634
17635 2010-04-13  Michael Matz  <matz@suse.de>
17636
17637         PR middle-end/43730
17638         * builtins.c (expand_builtin_interclass_mathfn): Also create
17639         a register if the predicate doesn't match.
17640
17641 2010-04-13  Diego Novillo  <dnovillo@google.com>
17642
17643         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17644         * c-pch.c: Include timevar.h.
17645         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17646         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17647         * ggc-common.c: Include timevar.h.
17648         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17649         * timevar.def (TV_PCH_SAVE): Define.
17650         (TV_PCH_CPP_SAVE): Define.
17651         (TV_PCH_PTR_REALLOC): Define.
17652         (TV_PCH_PTR_SORT): Define.
17653         (TV_PCH_RESTORE): Define.
17654         (TV_PCH_CPP_RESTORE): Define.
17655
17656 2010-04-13  Michael Matz  <matz@suse.de>
17657
17658         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17659         into MINUS_EXPRs.
17660         (can_reassociate_p): New function.
17661         (break_up_subtract_bb, reassociate_bb): Use it.
17662
17663 2010-04-13  Richard Guenther  <rguenther@suse.de>
17664
17665         PR bootstrap/43737
17666         * builtins.c (c_readstr): Fix assert.
17667
17668 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17669
17670         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17671         when generating cltd insn.
17672
17673         (*ashl<mode>3_1): Remove special handling for register operand 2.
17674         (*ashlsi3_1_zext): Ditto.
17675         (*ashlhi3_1): Ditto.
17676         (*ashlhi3_1_lea): Ditto.
17677         (*ashlqi3_1): Ditto.
17678         (*ashlqi3_1_lea): Ditto.
17679         (*<shiftrt_insn><mode>3_1): Ditto.
17680         (*<shiftrt_insn>si3_1_zext): Ditto.
17681         (*<shiftrt_insn>qi3_1_slp): Ditto.
17682         (*<rotate_insn><mode>3_1): Ditto.
17683         (*<rotate_insn>si3_1_zext): Ditto.
17684         (*<rotate_insn>qi3_1_slp): Ditto.
17685
17686 2010-04-13  Richard Guenther  <rguenther@suse.de>
17687
17688         * tree-ssa-structalias.c (callused_id): Remove.
17689         (call_stmt_vars): New.
17690         (get_call_vi): Likewise.
17691         (lookup_call_use_vi): Likewise.
17692         (lookup_call_clobber_vi): Likewise.
17693         (get_call_use_vi): Likewise.
17694         (get_call_clobber_vi): Likewise.
17695         (make_transitive_closure_constraints): Likewise.
17696         (handle_const_call): Adjust to do per-call call-used handling.
17697         (handle_pure_call): Likewise.
17698         (find_what_var_points_to): Remove general callused handling.
17699         (init_base_vars): Likewise.
17700         (init_alias_vars): Initialize call_stmt_vars.
17701         (compute_points_to_sets): Process call-used and call-clobbered
17702         vars for call statements.
17703         (delete_points_to_sets): Free call_stmt_vars.
17704
17705 2010-04-13  Richard Guenther  <rguenther@suse.de>
17706
17707         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17708         Only add RW dependence for dependence distance zero.
17709         Adjust maximal vectorization factor according to dependences.
17710         Move alignment handling ...
17711         (vect_find_same_alignment_drs): ... here.  New function.
17712         (vect_analyze_data_ref_dependences): Adjust.
17713         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17714         (vect_analyze_data_refs): Adjust minimal vectorization factor
17715         according to data references.
17716         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17717         dependences before determining the vectorization factor.
17718         Analyze alignment after determining the vectorization factor.
17719         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17720         dependences before alignment.
17721         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17722         Adjust prototype.
17723         (vect_analyze_data_refs): Likewise.
17724         (MAX_VECTORIZATION_FACTOR): New define.
17725
17726 2010-04-13  Duncan Sands  <baldrick@free.fr>
17727
17728         * except.h (lang_eh_type_covers): Remove.
17729         * except.c (lang_eh_type_covers): Likewise.
17730
17731 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17732             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17733
17734         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17735         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17736         UNITS_PER_LONG where it is ABI relevant.
17737         (s390_return_addr_rtx): Likewise.
17738         (s390_back_chain_rtx): Likewise.
17739         (s390_frame_area): Likewise.
17740         (s390_frame_info): Likewise.
17741         (s390_initial_elimination_offset): Likewise.
17742         (save_gprs): Likewise.
17743         (s390_emit_prologue): Likewise.
17744         (s390_emit_epilogue): Likewise.
17745         (s390_function_arg_advance): Likewise.
17746         (s390_function_arg): Likewise.
17747         (s390_va_start): Likewise.
17748         (s390_gimplify_va_arg): Likewise.
17749         (s390_function_profiler): Likewise.
17750         (s390_optimize_prologue): Likewise.
17751         (s390_rtx_costs): Likewise.
17752         (s390_secondary_reload): Likewise.
17753         (s390_promote_function_mode): Likewise.
17754         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17755         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17756         registers available.
17757         (s390_unwind_word_mode): New function.
17758         (s390_function_value): Split 64 bit values into register pair if
17759         used as return value.
17760         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17761         function call parameters.  Handle parallels.
17762         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17763         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17764         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17765         (s390_expand_setmem): Remove unused variable src_addr.
17766         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17767         deal with 64 bit registers.
17768         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17769         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17770         (UNITS_PER_LONG): New macro.
17771         * libjava/include/s390-signal.h: Define extended ucontext
17772         structure containing the upper halfs of the 64 bit registers.
17773
17774 2010-04-13  Simon Baldwin  <simonb@google.com>
17775
17776         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17777
17778 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17779
17780         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17781         rvalue on the RHS if the LHS is of a non-renamable type.
17782         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17783
17784 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17785
17786         * gcc.c (cc1_options): Handle -iplugindir before processing
17787         the cc1 spec. Only add -iplugindir once.
17788         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17789         found.
17790         * common.opt (iplugindir): Remove `Separate' property, initialize.
17791         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17792         option.
17793         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17794         (distclean): Remove plugin dir.
17795         * doc/invoke.texi: Document -iplugindir.
17796
17797 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17798
17799         * doc/plugins.texi (Loading Plugins): Document short
17800         -fplugin=foo option.
17801         (Plugin API): Mention default_plugin_dir_name function.
17802
17803         * gcc.c (find_file_spec_function): Add new declaration.
17804         (static_spec_func): Use it for "find-file".
17805         (find_file_spec_function): Add new function.
17806         (cc1_options): Add -iplugindir option if -fplugin* options found.
17807
17808         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17809
17810         * plugin.c (add_new_plugin): Updated comment, and handle short
17811         plugin name.
17812         (default_plugin_dir_name): Added new function.
17813
17814         * common.opt (iplugindir): New option to set the plugin directory.
17815
17816 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17817
17818         * config/i386/i386.md (any_rotate): New code iterator.
17819         (rotate_insn): New code attribute.
17820         (rotate): Ditto.
17821         (SWIM124): New mode iterator.
17822         (<rotate_insn>ti3): New expander.
17823         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17824         any_rotate code iterator.
17825         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17826         using any_rotate code iterator and SWIM124 mode iterator.
17827         (ix86_rotlti3): New insn_and_split pattern.
17828         (ix86_rotrti3): Ditto.
17829         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17830         ix86_rotl{di,ti}3 patterns.
17831         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17832         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17833         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17834         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17835         code iterator and SWI mode iterator.
17836         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17837         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17838         code iterator.
17839         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17840         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17841         (bswap rotatert splitter): Add splitter.
17842         (bswap splitter): Macroize splitter using any_rotate code iterator.
17843         Add insn predicate to split only for TARGET_USE_XCHGB or when
17844         optimizing function for size.
17845
17846 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17847
17848         * config/pa/pa.c (emit_move_sequence): Remove use of
17849         deleted variable flag_argument_noalias.
17850
17851 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17852
17853         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17854         configurations.
17855         Add to unsupported targets list.
17856         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17857         sparc*-sun-solaris2.[567]* from target lists.
17858         * configure: Regenerate.
17859         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17860         removal.
17861         Remove Solaris 7 patch references.
17862         (Specific, sparc-sun-solaris2.7): Removed.
17863         (sparc-sun-solaris2*): Update Solaris 7 example.
17864         (sparc64-*-solaris2*): Likewise.
17865
17866 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17867
17868         * config.build (alpha*-dec-osf4*): Remove.
17869         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17870         of obsolete configurations.
17871         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17872         support.
17873         * config/alpha/t-osf4: Renamed to ...
17874         * config/alpha/t-osf5: ... this.
17875         * config/alpha/osf.h: Renamed to ...
17876         * config/alpha/osf5.h: ... this.
17877         Merged old osf5.h contents.
17878         Update comments.
17879         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17880         (EXTRA_SPECS): Removed.
17881         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17882         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17883         Document that.
17884
17885 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17886
17887         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17888
17889 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17890
17891         PR/43702
17892         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17893         __thiscall convention.
17894
17895 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17896
17897         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17898         orig_base.
17899         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17900
17901 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17902
17903         * function.c (assign_parms_initialize_all): Add unused attribute
17904         to fntype.
17905
17906 2010-04-12  Richard Guenther  <rguenther@suse.de>
17907
17908         * gsstruct.def (GSS_CALL): New.
17909         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17910         * gimple.h: Include tree-ssa-alias.h.
17911         (struct gimple_statement_call): New.
17912         (union gimple_statement_struct_d): Add gimple_call member.
17913         (gimple_call_reset_alias_info): Declare.
17914         (gimple_call_use_set): New function.
17915         (gimple_call_clobber_set): Likewise.
17916         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17917         * gimple.c (gimple_call_reset_alias_info): New function.
17918         (gimple_build_call_1): Call it.
17919         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17920         * tree-inline.c (remap_gimple_stmt): Likewise.
17921         (expand_call_inline): Remove callused handling.
17922         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17923         * tree-dfa.c (dump_variable): Likewise.
17924         * tree-parloops.c (parallelize_loops): Likewise.
17925         * tree-ssa.c (init_tree_ssa): Likewise.
17926         (delete_tree_ssa): Likewise.
17927         * tree-flow-inline.h (is_call_used): Remove.
17928         * tree-flow.h (struct gimple_df): Remove callused member.
17929         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17930         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17931         (ref_maybe_used_by_call_p_1): Simplify.
17932         (call_may_clobber_ref_p_1): Likewise.
17933         * tree-ssa-structalias.c (compute_points_to_sets): Set
17934         the call stmt used and clobbered sets.
17935         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17936         (find_tail_calls): Verify the tail call.
17937
17938 2010-04-12  Richard Guenther  <rguenther@suse.de>
17939
17940         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17941         single-iteration always-inline inlining.
17942         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17943         (cgraph_decide_inlining): Do not handle always-inline specially.
17944         (try_inline): Remove always-inline cycle detection special case.
17945         Do not recurse on always-inlines.
17946         (cgraph_early_inlining): Do not iterate if not optimizing.
17947         (cgraph_gate_early_inlining): remove.
17948         (pass_early_inline): Run unconditionally.
17949         (gate_cgraph_decide_inlining): New function.
17950         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17951         not inlining or optimizing.
17952         (cgraph_decide_inlining_of_small_functions): Also consider
17953         always-inline functions.
17954         (cgraph_default_inline_p): Return true for nodes which should
17955         disregard inline limits.
17956         (estimate_function_body_sizes): Assume zero size and time for
17957         nodes which are marked as disregarding inline limits.
17958         (cgraph_decide_recursive_inlining): Do not perform recursive
17959         inlining on always-inline nodes.
17960
17961 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17962
17963         PR bootstrap/43699
17964         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17965         for exprs satisfying handled_component_p.
17966
17967 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17968
17969         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17970         non-constant aggregate elements.
17971
17972         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17973         is a real initialization.
17974
17975 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17976
17977         PR c/36774
17978         * c-decl.c (start_function): Move forward check for nested function.
17979
17980 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17981
17982         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17983         * config/sh/sh.c: Include reload.h.
17984         (sh_legitimize_reload_address): New.
17985         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17986         sh_legitimize_reload_address.
17987
17988 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17989
17990         * config/sh/sh.md (*movqi_pop): New insn pattern.
17991         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17992
17993 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17994
17995         * config/i386/i386.md (any_shiftrt): New code iterator.
17996         (shiftrt_insn): New code attribute.
17997         (shiftrt): Ditto.
17998         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17999         using any_shiftrt code iterator.
18000         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
18001         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
18002         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
18003         pattern from corresponding peephole2 patterns.
18004         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
18005         using any_shiftrt code iterator.
18006         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
18007         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
18008         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
18009         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
18010         *{ashr,lshr}<mode>3_cmp_zext.
18011         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
18012
18013 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
18014
18015         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
18016         scratch register.
18017         (*lshr<mode>3_cconly): Ditto.
18018
18019 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
18020
18021         * config/i386/i386.md (lshr<mode>3): Macroize expander from
18022         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
18023         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
18024         pattern from *lshr{di,ti}3_1 and corresponding splitters using
18025         DWI mode iterator.
18026         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
18027         from corresponding peephole2 patterns.
18028         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
18029         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
18030         and *lshrdi3_1_rex64 using SWI mode iterator.
18031         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
18032         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
18033         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
18034         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
18035         and *lshrdi3_cmp_rex64 using SWI mode iterator.
18036         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
18037         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
18038         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
18039         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
18040         SWI mode iterator.
18041
18042 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
18043
18044         * config/i386/i386.md (ashr<mode>3): Macroize expander from
18045         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
18046         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
18047         pattern from *ashr{di,ti}3_1 and corresponding splitters using
18048         DWI mode iterator.
18049         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
18050         from corresponding peephole2 patterns.
18051         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
18052         (ashrsi3_cvt): Rename from ashrsi3_31.
18053         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
18054         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
18055         and x86_64_shift_adj_3 using SWI48 mode iterator.
18056         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
18057         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
18058         and *ashrdi3_1_rex64 using SWI mode iterator.
18059         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
18060         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
18061         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
18062         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
18063         and *ashrdi3_cmp_rex64 using SWI mode iterator.
18064         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
18065         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
18066         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
18067         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
18068         SWI mode iterator.
18069         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
18070         * config/i386/i386.c (ix86_split_ashr): Update for renamed
18071         x86_shift<mode>_adj_3 expanders.
18072
18073 2010-04-10  Wei Guozhi  <carrot@google.com>
18074
18075         PR target/42601
18076         * config/arm/arm.c (arm_pic_static_addr): New function.
18077         (legitimize_pic_address): Call arm_pic_static_addr when it detects
18078         a static symbol.
18079         (arm_output_addr_const_extra): Output expression for new pattern.
18080         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
18081
18082 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
18083
18084         * ira-costs.c (record_reg_classes): Ignore alternatives that are
18085         not enabled.
18086
18087         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
18088         * web.c: Include "insn-config.h" and "recog.h".
18089         (union_match_dups): New function.
18090         (web_main): Call it.
18091         (union_defs): Don't try to recognize match_dups.
18092
18093         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
18094         if doing so would replace the entire pattern.
18095
18096 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
18097
18098         PR target/43707
18099         PR target/43709
18100         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
18101         and splitter pattern.  Change splitter operand 1 predicate to
18102         nonmemory_operand.
18103
18104 2010-04-09  Martin Jambor  <mjambor@suse.cz>
18105
18106         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
18107         lattices are addresses of CONST_DECLs with the same initial value.
18108         (ipcp_print_all_lattices): Print values of CONST_DECLs.
18109         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
18110
18111 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
18112             Bernd Schmidt  <bernds@codesourcery.com>
18113
18114         * loop-invariant.c (replace_uses): New static function.
18115         (move_invariant_reg): Use it to ensure we can replace the uses.
18116
18117 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
18118
18119         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
18120         function template.
18121         (picochip_override_options): Enable section anchors only above -O1.
18122         (picochip_reorg): Fixed a couple of build warnings.
18123
18124 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18125
18126         * configure.ac (plugin -rdynamic test): Log result.
18127         * configure: Regenerate.
18128         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
18129         (RDYNAMIC_SPEC): Define.
18130         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
18131
18132 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18133
18134         * configure.ac: Determine Sun ld version numbers.
18135         (comdat_group): Restrict GNU ld version checks to gld.
18136         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
18137         (enable_comdat): Support --enable-comdat.
18138         * configure: Regenerate.
18139         * doc/install.texi (Configuration): Document --enable-comdat.
18140
18141 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18142
18143         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
18144         * config/sol2-gld.h: ... here.
18145         * config.gcc (sparc*-*-solaris2*): Reflect this.
18146         (i[34567]86-*-solaris2*): Use it.
18147
18148 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
18149
18150         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
18151         setup_clocks_p.
18152         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
18153
18154 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18155
18156         PR 42965
18157         * diagnostic.c (diagnostic_initialize): Initialize
18158         some_warnings_are_errors.
18159         (diagnostic_finish): New.
18160         (diagnostic_action_after_output): Call it before exiting.
18161         (diagnostic_report_diagnostic): Do not print message here. Set
18162         some_warnings_are_errors.
18163         * diagnostic.h (diagnostic_context): Delete
18164         issue_warnings_are_errors_message. Add some_warnings_are_errors.
18165         (diagnostic_finish): Declare.
18166         * toplev.c (toplev_main): Call it before exit.
18167
18168 2010-04-09  Jason Merrill  <jason@redhat.com>
18169
18170         PR c++/42623
18171         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
18172         for incomplete type.
18173
18174         PR c++/41788
18175         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
18176         based on a warning flag.
18177
18178 2010-04-09  Richard Guenther  <rguenther@suse.de>
18179
18180         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
18181
18182 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
18183
18184         PR bootstrap/43684
18185         * varasm.c (default_assemble_visibility): Wrap vars that are
18186         set, but unused, by targets without GAS.
18187         * config/rs6000/rs6000.c (paired_emit_vector_compare):
18188         Remove set, but unused, vars.
18189         (rs6000_legitimize_tls_address): Likewise.
18190         (altivec_expand_dst_builtin): Likewise.
18191         * config/darwin.c (machopic_classify_symbol): Likewise.
18192         (machopic_indirection_name): Likewise.
18193
18194 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
18195
18196         * config/i386/i386.md (DWI): New mode iterator.
18197         (S): New mode attribute.
18198         (shift_operand): Ditto.
18199         (shift_immediate_operand): Ditto.
18200         (ashl_input_operand): Ditto.
18201         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
18202         using SDWIM mode iterator.
18203         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
18204         pattern from *ashl{di,ti}3_1 and corresponding splitters using
18205         DWI mode iterator.
18206         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
18207         from corresponding peephole2 patterns.
18208         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
18209         and x86_64_shift_adj_1 using SWI48 mode iterator.
18210         (x86_shift<mode>_adj_2): Ditto.
18211         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
18212         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
18213         using SWI48 mode iterator.
18214         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
18215         *ashldi3_cmp_rex64 using SWI mode iterator.
18216         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
18217         *ashldi3_cconly_rex64 using SWI mode iterator.
18218         * config/i386/i386.c (ix86_split_ashl): Update for renamed
18219         x86_shift<mode>_adj_{1,2}.
18220         (ix86_split_ashr): Ditto.
18221         (ix86_split_lshr): Ditto.
18222
18223 2010-04-09  Richard Guenther  <rguenther@suse.de>
18224
18225         * target.h (builtin_conversion): Pass in input and output types.
18226         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
18227         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
18228         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
18229         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
18230
18231         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
18232         Handle AVX modes.
18233         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
18234
18235 2010-04-09  Richard Guenther  <rguenther@suse.de>
18236
18237         PR target/43152
18238         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
18239
18240 2010-04-09  Richard Guenther  <rguenther@suse.de>
18241
18242         * tree-vectorizer.h (struct _stmt_vec_info): Document
18243         that vectype is the type of the LHS.
18244         (supportable_widening_operation, supportable_narrowing_operation):
18245         Get both input and output vector types as arguments.
18246         (vect_is_simple_use_1): Declare.
18247         (get_same_sized_vectype): Likewise.
18248         * tree-vect-loop.c (vect_determine_vectorization_factor):
18249         Set STMT_VINFO_VECTYPE to the vector type of the def.
18250         (vectorizable_reduction): Adjust.
18251         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
18252         Adjust.  Specify the output vector type.
18253         (vect_pattern_recog_1): Adjust.
18254         * tree-vect-stmts.c (get_same_sized_vectype): New function.
18255         (vectorizable_call): Adjust.
18256         (vectorizable_conversion): Likewise.
18257         (vectorizable_operation): Likewise.
18258         (vectorizable_type_demotion): Likewise.
18259         (vectorizable_type_promotion): Likewise.
18260         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
18261         the def.
18262         (vect_is_simple_use_1): New function.
18263         (supportable_widening_operation): Get both input and output
18264         vector types.
18265         (supportable_narrowing_operation): Likewise.
18266         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
18267
18268 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
18269
18270         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
18271         __thiscall and _thiscall as predefined macros.
18272         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
18273         thiscall attribute handling.
18274         (ix86_comp_type_attributes): Likewise.
18275         (ix86_function_regparm): Likewise.
18276         (ix86_return_pops_args): Likewise.
18277         (init_cumulative_args): Likewise.
18278         (find_drap_reg): Likewise.
18279         (ix86_static_chain): Likewise.
18280         (x86_this_parameter): Likewise.
18281         (x86_output_mi_thunk): Likewise.
18282         (ix86_attribute_table): Add description for thiscall attribute.
18283         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
18284         * doc/extend.texi: Add documentation for thiscall.
18285
18286 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18287
18288         PR c++/28584
18289         * c.opt (Wint-to-pointer-cast): Available in C++.
18290         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
18291
18292 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18293
18294         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
18295         * calls.c (expand_call): Pass the function type to aggregate_value_p.
18296         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
18297         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
18298         function type instead.  Reorder and simplify checks.
18299
18300         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
18301
18302 2010-04-08  Jing Yu  <jingyu@google.com>
18303             Zdenek Dvorak  <ook@ucw.cz>
18304
18305         PR tree-optimization/42720
18306         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
18307         loop unswitch conditions here from ...
18308         (tree_unswitch_single_loop): ... here.
18309
18310 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18311
18312         * tree-if-conv.c: Fix comments and simplify logic.
18313
18314 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18315
18316         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
18317         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
18318         (main_tree_if_conversion): Update call to tree_if_conversion.
18319
18320 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18321
18322         PR 42485
18323         * doc/invoke.texi (-b,-V): Delete.
18324         * doc/tm.texi: Do not mention -b.
18325         * gcc.c (display_help): Delete -b and -V.
18326         (process_command): Delete -b and -V.
18327         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
18328
18329 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
18330             Wolfgang Gellerich  <gellerich@de.ibm.com>
18331
18332         Implement target hook for loop unrolling
18333         * target.h (loop_unroll_adjust): Add a new target hook function.
18334         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
18335         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
18336         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
18337         (s390_loop_unroll_adjust): Implement the new target hook for s390.
18338         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
18339         target hook.
18340         (decide_unroll_stupid): Likewise.
18341
18342 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18343
18344         PR target/43643
18345         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
18346
18347 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18348
18349         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
18350         (Specific, *-*-solaris2*): Likewise.
18351         Don't prefer Sun as over GNU as.
18352
18353 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
18354
18355         * config/s390/s390.c (override_options): Adjust the z10 defaults
18356         for max-unroll-times, max-completely-peeled-insns
18357         and max-completely-peel-times.
18358
18359 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18360
18361         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
18362         instructions for z10.
18363         (s390_expand_setmem): Likewise.
18364         (s390_expand_cmpmem): Likewise.
18365
18366 2010-04-08  Richard Guenther  <rguenther@suse.de>
18367
18368         PR tree-optimization/43679
18369         * tree-ssa-pre.c (eliminate): Only propagate copies.
18370
18371 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18372
18373         PR bootstrap/43681
18374         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
18375         set but not used variable warning.
18376
18377 2010-04-08  Wei Guozhi  <carrot@google.com>
18378
18379         PR target/41653
18380         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18381         (arm_size_rtx_costs): Call the new function when optimized for size.
18382
18383 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18384
18385         PR debug/43670
18386         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18387         op0 is not a MEM, just return NULL instead of assertion
18388         failure.
18389         (discover_nonconstant_array_refs): Don't walk debug stmts.
18390
18391 2010-04-08  Doug Kwan  <dougkwan@google.com>
18392
18393         * configure.ac: Recognize gold and do not use its version number
18394         to test ld features.
18395         * configure: Regenerate.
18396
18397 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18398
18399         PR middle-end/40815
18400         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18401         (negate_value): Move code to push elements to broken_up_substracts ...
18402         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18403         negative pair to plus_negates.
18404         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18405
18406 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18407
18408         * doc/install.texi (Configuration): Move description of
18409         --enable-lto, --with-libelf*, --enable-gold from Java section to
18410         general section.
18411
18412         * doc/generic.texi (Working with declarations)
18413         (Function Properties, C and C++ Trees): Fix typos.
18414         * doc/sourcebuild.texi (Top Level): Likewise.
18415
18416 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18417
18418         PR c/18624
18419         * tree.h (DECL_READ_P): Define.
18420         (struct tree_decl_common): Add decl_read_flag.
18421         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18422         a set but not used warning.
18423         (merge_decls): Merge DECL_READ_P flag.
18424         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18425         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18426         * c-common.c (handle_used_attribute, handle_unused_attribute):
18427         Likewise.
18428         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18429         New prototypes.
18430         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18431         New functions.
18432         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18433         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18434         c_parser_binary_expression, c_parser_cast_expression,
18435         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18436         Call default_function_array_read_conversion instead of
18437         default_function_array_conversion where needed.
18438         (c_parser_unary_expression, c_parser_conditional_expression,
18439         c_parser_postfix_expression_after_primary, c_parser_initelt):
18440         Likewise.  Call mark_exp_read where needed.
18441         (c_parser_statement_after_labels, c_parser_asm_operands,
18442         c_parser_typeof_specifier, c_parser_sizeof_expression,
18443         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18444         where needed.
18445         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18446         New.
18447         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18448         (warn_unused_but_set_parameter): Default to warn_unused
18449         && extra_warnings.
18450         * doc/invoke.texi: Document -Wunused-but-set-variable and
18451         -Wunused-but-set-parameter.
18452
18453         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18454         used count variable.
18455         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18456         when operandN variables aren't used in the body of the expander
18457         or splitter.
18458         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18459         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18460         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18461         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18462         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18463         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18464         * tree.c (PROCESS_ARG): Likewise.
18465
18466 2010-04-07  Simon Baldwin  <simonb@google.com>
18467
18468         * diagnostic.h (diagnostic_override_option_index): New macro to
18469         set a diagnostic's option_index.
18470         * c-tree.h (c_cpp_error): Add warning reason argument.
18471         * opts.c (_warning_as_error_callback): New.
18472         (register_warning_as_error_callback): Store callback for
18473         warnings enabled via enable_warning_as_error.
18474         (enable_warning_as_error): Call callback, minor code tidy.
18475         * opts.h (register_warning_as_error_callback): Declare.
18476         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18477         response to -Werror=.
18478         (c_common_init_options): Register warning_as_error_callback in opts.c.
18479         * common.opt: Add -Wno-cpp option.
18480         * c-common.c (struct reason_option_codes_t): Map cpp warning
18481         reason codes to gcc option indexes.
18482         * (c_option_controlling_cpp_error): New function, lookup the gcc
18483         option index for a cpp warning reason code.
18484         * (c_cpp_error): Add warning reason argument, call
18485         c_option_controlling_cpp_error for diagnostic_override_option_index.
18486         * doc/invoke.texi: Document -Wno-cpp.
18487
18488 2010-04-07  Richard Guenther  <rguenther@suse.de>
18489
18490         * ipa-reference.c (mark_load): Use get_base_address.
18491         (mark_store): Likewise.
18492
18493         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18494         inserting GIMPLE_NOPs into the IL.
18495         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18496         Explicitly strip handled components and indirect references.
18497
18498         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18499         folding address expressions.
18500         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18501         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18502         operand_equal_p to compare decls.
18503         (ptr_deref_may_alias_decl_p): Likewise.
18504         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18505         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18506         Handle reversed comparison ops.
18507         * tree-sra.c (asm_visit_addr): Use get_base_address.
18508         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18509         * ipa-reference.c (mark_address): Use get_base_address.
18510
18511 2010-04-07  Richard Guenther  <rguenther@suse.de>
18512
18513         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18514         Propagate constants everywhere.
18515
18516 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18517
18518         PR debug/43516
18519         * tree.c (MAX_INT_CACHED_PREC): Define.
18520         (nonstandard_integer_type_cache): New array.
18521         (build_nonstandard_integer_type): Cache results for precision
18522         <= MAX_INT_CACHED_PREC.
18523
18524 2010-04-07  Richard Guenther  <rguenther@suse.de>
18525
18526         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18527         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18528         * common.opt: Likewise.
18529         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18530         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18531         (nonoverlapping_memrefs_p): Likewise.
18532         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18533         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18534         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18535         OPT_fargument_noalias_global for backward compatibility.
18536
18537 2010-04-07  Richard Guenther  <rguenther@suse.de>
18538
18539         PR tree-optimization/43270
18540         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18541         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18542         * tree-ssa-pre.c (phi_translate_1): Adjust.
18543         (fully_constant_expression): Split out vn_reference handling to ...
18544         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18545         Fold reads from constant strings.
18546         (vn_reference_lookup): Handle fully constant references.
18547         (vn_reference_lookup_pieces): Likewise.
18548         * Makefile.in (expmed.o-warn): Add -Wno-error.
18549
18550 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18551
18552         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18553
18554 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18555
18556         PR driver/41594
18557         * gcc.c: Add -static-libstdc++ to list of recognized options.
18558
18559 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18560
18561         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18562
18563 2010-04-07  Richard Guenther  <rguenther@suse.de>
18564
18565         PR middle-end/42617
18566         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18567         bases build simple mem attributes to retain points-to information.
18568
18569 2010-04-07  Richard Guenther  <rguenther@suse.de>
18570
18571         PR middle-end/42617
18572         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18573         preserve points-to related information.
18574
18575 2010-04-07  Richard Guenther  <rguenther@suse.de>
18576
18577         PR middle-end/42617
18578         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18579         discard plain indirect references.
18580         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18581         * tree.c (tree_nop_conversion): Likewise.
18582
18583 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18584
18585         PR debug/43628
18586         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18587
18588 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18589
18590         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18591         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18592
18593 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18594
18595         * tree-if-conv.c: Fix indentation and comments.
18596
18597 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18598
18599         * tree-if-conv.c: Sort static functions in topological order.
18600
18601 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18602
18603         * tree-if-conv.c: Fix indentation and comments.
18604
18605 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18606
18607         PR middle-end/43519
18608         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18609         lang_hooks.types.type_for_size instead of
18610         build_nonstandard_integer_type.
18611         When converting an unsigned type to signed, double its precision.
18612         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18613         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18614         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18615         use lb <= ub.
18616
18617 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18618
18619         PR middle-end/43519
18620         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18621         POINTER_PLUS_EXPR for pointer types.
18622
18623 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18624
18625         PR middle-end/43519
18626         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18627         * graphite-clast-to-gimple.c: Include langhooks.h.
18628         (max_signed_precision_type): New.
18629         (max_precision_type): Takes two types as arguments.
18630         (precision_for_value): New.
18631         (precision_for_interval): New.
18632         (gcc_type_for_interval): New.
18633         (gcc_type_for_value): New.
18634         (gcc_type_for_clast_term): New.
18635         (gcc_type_for_clast_red): New.
18636         (gcc_type_for_clast_bin): New.
18637         (gcc_type_for_clast_expr): Split up into several functions.
18638         (gcc_type_for_clast_eq): Rewritten.
18639         (compute_bounds_for_level): New.
18640         (compute_type_for_level_1): New.
18641         (compute_type_for_level): New.
18642         (gcc_type_for_cloog_iv): Removed.
18643         (gcc_type_for_iv_of_clast_loop): Rewritten.
18644         (graphite_create_new_loop): Compute the lower and upper bound types
18645         with gcc_type_for_clast_expr.
18646         (graphite_create_new_loop_guard): Same.
18647         (find_cloog_iv_in_expr): Removed.
18648         (compute_cloog_iv_types_1): Removed.
18649         (compute_cloog_iv_types): Removed.
18650         (gloog): Do not call compute_cloog_iv_types.
18651         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18652         GBB_CLOOG_IV_TYPES.
18653         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18654         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18655         (GBB_CLOOG_IV_TYPES): Removed.
18656
18657 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18658
18659         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18660         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18661         (detect_commutative_reduction): Same.
18662
18663 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18664
18665         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18666         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18667         argument.
18668         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18669         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18670         (rewrite_commutative_reductions_out_of_ssa): Same.
18671         * passes.c (execute_function_todo): Call verify_ssa for every pass
18672         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18673         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18674         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18675         with an extra argument.
18676         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18677         verify_ssa only when the extra argument is true.
18678         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18679         with an extra argument.
18680         (tree_transform_and_unroll_loop): Same.
18681
18682 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18683
18684         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18685         for all the passes of the LNO having LOOP_CLOSED_SSA.
18686         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18687         * tree-loop-distribution.c (pass_loop_distribution): Same.
18688         * tree-pass.h (TODO_verify_loops): Removed.
18689         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18690         (pass_lim): Same.
18691         (pass_tree_unswitch): Same.
18692         (pass_predcom): Same.
18693         (pass_vectorize): Same.
18694         (pass_linear_transform): Same.
18695         (pass_graphite_transforms): Same.
18696         (pass_iv_canon): Same.
18697         (pass_complete_unroll): Same.
18698         (pass_complete_unrolli): Same.
18699         (pass_parallelize_loops): Same.
18700         (pass_loop_prefetch): Same.
18701         (pass_iv_optimize): Same.
18702
18703 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18704
18705         PR middle-end/32824
18706         * passes.c (init_optimization_passes): Move pass_lim before
18707         pass_copy_prop and pass_dce_loop.
18708
18709 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18710
18711         PR target/43667
18712         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18713         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18714         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18715         MULTI_* defines for 4 argument vpermil2p* builtins.
18716
18717 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18718
18719         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18720         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18721         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18722         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18723         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18724         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18725         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18726         Use x86_maybe_negate_const_int to output insn mnemonic.
18727         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18728         check from instruction predicate.  Update comments.
18729         * config/i386/sync.md (sync_add<mode>): Use
18730         x86_maybe_negate_const_int to output insn mnemonic.
18731
18732 2010-04-06  Jan Hubicka  <jh@suse.cz>
18733
18734         PR tree-optimization/42906
18735         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18736         IGNORE_SELF argument.  Set visited_control_parents for fully
18737         processed BBs.
18738         (find_obviously_necessary_stmts): Update call of
18739         mark_control_dependent_edges_necessary.
18740         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18741
18742 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18743
18744         * config/i386/i386.md: Remove comment about 'e' and 'E'
18745         operand modifier.
18746
18747 2010-04-06  Richard Guenther  <rguenther@suse.de>
18748
18749         PR tree-optimization/43627
18750         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18751         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18752         not varying.
18753
18754 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18755
18756         * BASE-VER: Change to 4.6.0.
18757
18758         PR target/43638
18759         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18760         handling.
18761
18762 2010-04-06  Richard Guenther  <rguenther@suse.de>
18763
18764         PR middle-end/43661
18765         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18766
18767 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18768
18769         * doc/invoke.texi (Optimize Options): Document that LTO
18770         won't remove object access purely due to incompatible
18771         declarations.
18772
18773 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18774
18775         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18776         Initialize variable.
18777
18778 2010-04-03  Richard Guenther  <rguenther@suse.de>
18779
18780         PR middle-end/42509
18781         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18782         require a non-NULL MEM_OFFSET.
18783
18784 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18785
18786         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18787         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18788         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18789         config/alpha/predicates.md, config/arm/arm.md,
18790         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18791         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18792         config/darwin9.h, config/darwin.c, config/darwin.h,
18793         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18794         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18795         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18796         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18797         config/mips/mips.md, config/mn10300/mn10300.c,
18798         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18799         config/rs6000/aix.h, config/rs6000/dfp.md,
18800         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18801         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18802         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18803         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18804         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18805         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18806         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18807         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18808         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18809         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18810         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18811         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18812         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18813         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18814         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18815         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18816         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18817         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18818         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18819         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18820         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18821         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18822         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18823         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18824         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18825         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18826         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18827         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18828         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18829         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18830         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18831         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18832         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18833         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18834         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18835         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18836
18837 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18838
18839         PR other/43620
18840         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18841         * aclocal.m4: Regenerate.
18842
18843 2010-04-02  Richard Guenther  <rguenther@suse.de>
18844
18845         PR tree-optimization/43629
18846         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18847         if we have seen a constant value.
18848
18849 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18850
18851         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18852
18853 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18854
18855         PR target/43469
18856         * arm.c (legitimize_tls_address): Adjust call to
18857         gen_tls_load_dot_plus_four.
18858         (arm_note_pic_base): New function.
18859         (arm_cannot_copy_insn_p): Use it.
18860         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18861         constraint.
18862
18863 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18864
18865         PR bootstrap/43531
18866
18867         Revert:
18868         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18869
18870         * Makefile.in ($(out_object_file)): Depend on
18871         gt-$(basename $(notdir $(out_file))).h.
18872
18873 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
18874
18875         * config.gcc (lm32-*-rtems*): Add t-lm32.
18876
18877 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
18878
18879         * config.gcc: Add lm32-*-rtems*.
18880         * config/lm32/rtems.h: New file.
18881
18882 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18883
18884         PR target/42609
18885         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18886
18887 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18888
18889         * dwarf2out.c (output_compilation_unit_header): For
18890         -gdwarf-4 use version 4 instead of version 3.
18891         (output_line_info): For version 4 and above emit additional
18892         maximum ops per insn header field.
18893         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18894
18895         * dwarf2out.c (is_c_family, is_java): Remove.
18896         (lower_bound_default): New function.
18897         (add_bound_info, gen_descr_array_type_die): Use it.
18898
18899 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18900
18901         PR debug/43325
18902         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18903         re-declaration when it happens in a function.
18904
18905 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18906
18907         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18908         (cgraph_remove_function_insertion_hook): Same.
18909         (cgraph_call_function_insertion_hooks): Same.
18910
18911 2010-04-01  Richard Guenther  <rguenther@suse.de>
18912
18913         PR middle-end/43614
18914         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18915         and TREE_THIS_VOLATILE.
18916         (copy_ref_info): Likewise.
18917         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18918         * tree.c (build6_stat): Ignore side-effects of all but arg5
18919         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18920         TARGET_MEM_REF.
18921
18922 2010-04-01  Richard Guenther  <rguenther@suse.de>
18923
18924         PR tree-optimization/43607
18925         * ipa-type-escape.c (check_call): Do not access non-existing
18926         arguments.
18927
18928 2010-04-01  Richard Guenther  <rguenther@suse.de>
18929
18930         PR middle-end/43602
18931         Revert
18932         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
18933                     Jack Howarth  <howarth@bromo.med.uc.edu>
18934
18935         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18936         variables TLS.
18937
18938 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18939
18940         * doc/install.texi (Prerequisites): Document libelf usability on
18941         IRIX 5/6 and Solaris 2.
18942         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18943         Update GNU as, GNU ld requirements.
18944         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18945         Document Sun Studio compiler download.
18946         Update and simplify as, ld recommendations.
18947         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18948
18949 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18950
18951         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18952         with_tune_32 to pentium4.
18953
18954 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18955
18956         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18957
18958 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18959
18960         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18961         obsoletion, removal.
18962         Update IDO URL.
18963         Document GNU as requirement.
18964         Update configure requirements.
18965         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18966         Recomment IRIX 6.5.18+.
18967         Document IDF/IDL requirement.
18968         Document GNU as requirement.
18969         Document GNU ld bootstrap failure.
18970         Remove freeware.sgi.com reference.
18971
18972 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18973
18974         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18975         UNIX V4.0, V5.0 obsoletion, removal.
18976         Remove --with-gc=simple reference.
18977         Update VM requirements during bootstrap.
18978         Remove -oldas bootstrap description.
18979         Update binutils reference.
18980         Remove comparison failure note.
18981
18982 2010-03-31  Richard Guenther  <rguenther@suse.de>
18983             Zdenek Dvorak  <ook@ucw.cz>
18984             Sebastian Pop  <sebastian.pop@amd.com>
18985
18986         PR middle-end/43464
18987         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18988         with multiple arguments.
18989         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18990
18991 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18992
18993         * graphite-dependences.c (print_pddr): Call print_pdr with an
18994         extra argument.
18995         * graphite-poly.c (debug_pdr): Add an extra argument for the
18996         verbosity level.
18997         (print_pdr): Same.
18998         (print_pbb_domain): Same.
18999         (print_pbb): Same.
19000         (print_scop_context): Same.
19001         (print_scop): Same.
19002         (print_cloog): Same.
19003         (debug_pbb_domain): Same.
19004         (debug_pbb): Same.
19005         (print_pdrs): Same.
19006         (debug_pdrs): Same.
19007         (debug_scop_context): Same.
19008         (debug_scop): Same.
19009         (debug_cloog): Same.
19010         (print_scop_params): Same.
19011         (debug_scop_params): Same.
19012         (print_iteration_domain): Same.
19013         (print_iteration_domains): Same.
19014         (debug_iteration_domain): Same.
19015         (debug_iteration_domains): Same.
19016         (print_scattering_function): Same.
19017         (print_scattering_functions): Same.
19018         (debug_scattering_function): Same.
19019         (debug_scattering_functions): Same.
19020         * graphite-poly.h (debug_pdr): Update declaration.
19021         (print_pdr): Same.
19022         (print_pbb_domain): Same.
19023         (print_pbb): Same.
19024         (print_scop_context): Same.
19025         (print_scop): Same.
19026         (print_cloog): Same.
19027         (debug_pbb_domain): Same.
19028         (debug_pbb): Same.
19029         (print_pdrs): Same.
19030         (debug_pdrs): Same.
19031         (debug_scop_context): Same.
19032         (debug_scop): Same.
19033         (debug_cloog): Same.
19034         (print_scop_params): Same.
19035         (debug_scop_params): Same.
19036         (print_iteration_domain): Same.
19037         (print_iteration_domains): Same.
19038         (debug_iteration_domain): Same.
19039         (debug_iteration_domains): Same.
19040         (print_scattering_function): Same.
19041         (print_scattering_functions): Same.
19042         (debug_scattering_function): Same.
19043         (debug_scattering_functions): Same.
19044
19045 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
19046
19047         * graphite-poly.c (print_scattering_function_1): New.
19048         (print_scattering_function): Call it.
19049         (print_scop_params): Remove spaces at the end of lines.
19050         (print_cloog): New.
19051         (debug_cloog): New.
19052         * graphite-poly.h (print_cloog): Declared.
19053         (debug_cloog): Declared.
19054
19055 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
19056
19057         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
19058         in loop->header.
19059         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
19060         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
19061         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
19062         to switch between adding the IV bump in loop->latch or in loop->header.
19063
19064 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
19065
19066         * graphite-poly.c (print_scattering_function): Pretty print following
19067         the scoplib format.
19068         (print_pdr): Same.
19069         (print_pbb_domain): Same.
19070         (dump_gbb_cases): Same.
19071         (dump_gbb_conditions): Same.
19072         (print_pdrs): Same.
19073         (print_pbb): Same.
19074         (print_scop_params): Same.
19075         (print_scop_context): Same.
19076         (print_scop): Same.
19077         (print_pbb_body): New.
19078         (lst_indent_to): New.
19079         (print_lst): Start new lines with a #.
19080         * graphite-poly.h (pbb_bb): New.
19081         (pbb_index): Use pbb_bb.
19082         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
19083         disjuncts.
19084         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
19085
19086 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
19087
19088         * dwarf2out.c (size_of_die): For -gdwarf-4 use
19089         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
19090         and 0 instead of 1 for dw_val_class_flag.
19091         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
19092         dw_val_class_range_list, dw_val_class_loc_list,
19093         dw_val_class_lineptr and dw_val_class_macptr, use
19094         DW_FORM_flag_present for dw_val_class_flag and
19095         DW_FORM_exprloc for dw_val_class_loc.
19096         (output_die): For -gdwarf-4 print dw_val_class_loc
19097         size as uleb128 instead of 1 or 2 bytes and don't print
19098         anything for dw_val_class_flag.
19099
19100         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
19101         instead of cselib_lookup following by tweaking locs->setting_insn.
19102
19103         PR bootstrap/43596
19104         * cselib.c (cselib_process_insn): Clear cselib_current_insn
19105         even before returning from label, setjmp call or volatile asm
19106         handling.
19107
19108 2010-03-31  Richard Guenther  <rguenther@suse.de>
19109
19110         PR middle-end/43600
19111         * cgraphunit.c (cgraph_output_in_order): Do not allocate
19112         temporary data on stack.
19113
19114 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19115
19116         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
19117         (PUSHSECTION_ASM_OP): Remove.
19118         (POPSECTION_ASM_OP): Remove.
19119         (PUSHSECTION_FORMAT): Remove.
19120         * config/sol2.h (PUSHSECTION_FORMAT): Define.
19121         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
19122         * config/sol2.c (solaris_output_init_fini): Use it.
19123
19124 2010-03-31  Jie Zhang  <jie@codesourcery.com>
19125
19126         PR 43574
19127         * opt-functions.awk (var_type_struct): Use signed char type
19128         for simple variables.
19129
19130 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19131
19132         * config/sol2.c: Include output.h.
19133         (solaris_assemble_visibility): New function.
19134         * config/t-sol2 (sol2.o): Add output.h dependency.
19135         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
19136         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
19137         Redefine.
19138
19139 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
19140
19141         PR target/43580
19142         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
19143         V2SImode or XFmode on PRE_DEC.
19144
19145         PR debug/43557
19146         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
19147         BLKmode.
19148
19149 2010-03-31  Jie Zhang  <jie@codesourcery.com>
19150
19151         PR 43562
19152         * reload.h (caller_save_initialized_p): Declare.
19153         * toplev.c (backend_init_target): Don't call
19154         init_caller_save but set caller_save_initialized_p to false.
19155         * caller-save.c (caller_save_initialized_p): Define.
19156         (init_caller_save): Check caller_save_initialized_p.
19157         * ira.c (ira): Call init_caller_save if flag_caller_saves.
19158
19159 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19160
19161         PR target/39048
19162         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
19163         and soft-fp/t-softfp to tmake_file.
19164         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
19165         (LIBGCC2_TF_CEXT): Define.
19166         (TF_SIZE): Define.
19167
19168 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
19169
19170         PR debug/42977
19171         * cselib.c (n_useless_values): Document handling of debug locs.
19172         (n_useless_debug_values, n_debug_values): New variables.
19173         (new_elt_loc_list): Don't add to debug values, keep count.
19174         (promote_debug_loc): New.
19175         (cselib_reset_table): Zero new variables.
19176         (entry_and_rtx_equal_p): Promote debug locs.
19177         (discard_useless_locs): Increment n_useless_debug_values for
19178         debug values.
19179         (remove_useless_values): Adjust n_useless_values and n_debug_values
19180         with n_useless_debug_values.
19181         (add_mem_for_addr): Promote debug locs.
19182         (cselib_lookup_mem): Likewise.
19183         (cselib_lookup_addr): Renamed to...
19184         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
19185         (cselib_log_lookup): ... this.  Turn into...
19186         (cselib_lookup_addr): ... new wrapper.
19187         (cselib_lookup_from_insn): New.
19188         (cselib_invalidate_regno): Increment n_useless_debug_values for
19189         debug values.
19190         (cselib_invalidate_mem): Likewise.
19191         (cselib_process_insn): Take n_deleted and n_debug_values into
19192         account to guard remove_useless_value call.
19193         (cselib_finish): Zero n_useless_debug_values.
19194         * cselib.h (cselib_lookup_from_insn): Declare.
19195         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
19196         (sched_analyze_2): Likewise.
19197
19198 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
19199
19200         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
19201         functions.
19202         (adjust_mems): Replace narrowing SUBREG of expression containing
19203         just PLUS, MINUS, MULT and ASHIFT of registers and constants
19204         with operations in the narrower mode.
19205
19206         PR debug/43593
19207         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
19208         regs_invalidated_by_call instead all call_used_reg_set registers.
19209
19210 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
19211
19212         PR middle-end/43430
19213         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
19214         pointer comparisons with types_compatible_p.
19215         * tree-vect-stmts.c (vectorizable_call): Same.
19216         (vectorizable_condition): Same.
19217
19218 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19219
19220         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
19221         stack check if the mask would be zero.
19222
19223 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
19224             Jack Howarth  <howarth@bromo.med.uc.edu>
19225
19226         * tree-profile.c (tree_init_ic_make_global_vars): Make static
19227         variables TLS.
19228
19229 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
19230
19231         PR other/25232
19232         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
19233         and __unordtf2.
19234         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
19235         Include ___unordxf2 and ___unordtf2.
19236         * config/i386/libgcc-glibc.ver: Do not define inheritance from
19237         GCC_4.4.0 here.
19238
19239 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
19240
19241         * config/lm32/t-lm32: New file.
19242         * config.gcc: Use the above file when targetting lm32.
19243
19244 2010-03-28  Duncan Sands  <baldrick@free.fr>
19245
19246         * Makefile.in (PLUGIN_HEADERS): Add except.h.
19247
19248 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
19249
19250         PR middle-end/43431
19251         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
19252         Improve vectorization cost model diagnostic.
19253
19254 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
19255
19256         PR middle-end/43436
19257         * tree-vect-data-refs.c (vect_analyze_data_refs): When
19258         compute_data_dependences_for_loop returns false, early exit
19259         and output an extra diagnostic for the failed data reference
19260         analysis.
19261
19262 2010-03-29  Richard Guenther  <rguenther@suse.de>
19263
19264         PR tree-optimization/43560
19265         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
19266         (can_sm_ref_p): Treat stores to readonly locations as trapping.
19267
19268 2010-03-29  Jie Zhang  <jie@codesourcery.com>
19269
19270         PR 43564
19271         * toplev.c (process_options): Set optimization_default_node
19272         and optimization_current_node.
19273         * opts.c (decode_options): Don't set optimization_default_node
19274         and optimization_current_node.
19275
19276 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
19277
19278         * config/rtems.h: Abandon -qrtems_debug.
19279
19280 2010-03-28  Jan Hubicka  <jh@suse.cz>
19281
19282         PR tree-optimization/43505
19283         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
19284         map should not be copied.
19285
19286 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19287
19288         PR middle-end/41674
19289         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
19290         cdtors, set DECL_PRESERVE_P.
19291         * ipa.c (cgraph_externally_visible_p): Return true if declaration
19292         should be preseved.
19293
19294 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
19295
19296         PR tree-optimization/43528
19297         * stor-layout.c (place_field): Check that constant fits into
19298         unsigned HWI when skipping calculation of MS bitfield layout.
19299
19300 2010-03-27  Jan Hubicka  <jh@suse.cz>
19301
19302         PR middle-end/43391
19303         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
19304         notice_global_symbol work.
19305
19306 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
19307
19308         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
19309         instead of dwarf2out_decl.
19310         (struct var_loc_node): Remove section_label field.
19311         (dwarf2out_function_decl): New function.
19312         (dwarf2out_var_location): Don't set section_label field.
19313         (dwarf2out_begin_function): Don't empty decl_loc_table here.
19314
19315 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19316
19317         PR tree-optimization/43544
19318         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
19319         First argument for builtin vectorized function hook is now a
19320         tree to be able to distinguish between machine specific and
19321         standard builtins.
19322         * targhooks.c (default_builtin_vectorized_function): Ditto.
19323         * targhooks.h (default_builtin_vectorized_function): Ditto.
19324         * target.h (struct gcc_target): Ditto.
19325         * tree-vect-stmts.c (vectorizable_function): Ditto.
19326         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
19327         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
19328         Ditto.
19329
19330 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
19331
19332         PR c/43381
19333         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
19334         nested binding iff it is a FUNCTION_DECL.
19335         (store_parm_decls_newstyle): Pass nested=true to bind for
19336         FUNCTION_DECLs amongst parameters.
19337
19338 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19339
19340         * var-tracking.c (vt_expand_loc_callback): Don't run
19341         cselib_expand_value_rtx_cb in dummy mode if
19342         cselib_dummy_expand_value_rtx_cb returned false.
19343
19344         * var-tracking.c (emit_note_insn_var_location): For one part
19345         notes with offset 0, don't add EXPR_LIST around the location.
19346         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
19347         add_location_or_const_value_attribute): Adjust for that change.
19348
19349         PR debug/43540
19350         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
19351         into first operand and location into second.
19352         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
19353         dw_cfi_oprnd_loc for DW_CFA_expression.
19354         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
19355         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
19356         assume first argument is regnum and second argument is location.
19357
19358 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19359
19360         PR target/42113
19361         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
19362         of scratch register to DImode.  Split to DImode comparison operator.
19363         Use SImode subreg of scratch register in the multiplication.
19364         (*cmp_sadd_sidi): Ditto.
19365         (*cmp_ssub_si): Ditto.
19366         (*cmp_ssub_sidi): Ditto.
19367
19368 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19369
19370         PR target/43524
19371         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
19372         Remove invalid assert and wrong comment.
19373
19374 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19375
19376         PR debug/43516
19377         * flags.h (final_insns_dump_p): New extern.
19378         * final.c (final_insns_dump_p): New variable.
19379         (rest_of_clean_state): Set it before -fdump-final-insns=
19380         dumping, clear afterwards.
19381         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19382         MEM_ALIAS_SET on MEMs.
19383
19384 2010-03-26  David S. Miller  <davem@davemloft.net>
19385
19386         * configure.ac: Fix sparc GOTDATA_OP bug check.
19387         * configure: Rebuild.
19388
19389 2010-03-26  Alan Modra  <amodra@gmail.com>
19390
19391         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19392
19393 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19394
19395         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19396         TLS_SECTION_ASM_FLAG.
19397
19398 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19399
19400         PR bootstrap/43511
19401         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19402         Clear first_function_block_is_cold.
19403
19404         PR c/43385
19405         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19406         argument if the argument is truth_value_p.
19407
19408 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19409
19410         * config/rs6000/constraints.md: Update copyright year for my changes.
19411
19412         PR target/43484
19413         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19414         used in reg+reg addressing, swap registers.
19415
19416 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19417
19418         PR debug/43293
19419         * target.h (struct gcc_target): Add code_end hook.
19420         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19421         if not yet defined.
19422         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19423         * toplev.c (compile_file): Call targetm.asm_out.code_end
19424         hook before unwind info/debug info output.
19425         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19426         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19427         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19428         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19429         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19430         * config/i386/i386.c (ix86_file_end): Renamed to...
19431         (ix86_code_end): ... this.  Make static.  Don't call
19432         file_end_indicate_exec_stack.  Emit unwind info using
19433         final_start_function/final_end_function.
19434         (darwin_x86_file_end): Remove.
19435         (TARGET_ASM_CODE_END): Define.
19436         * config/i386/i386.h (TARGET_ASM_FILE_END,
19437         NEED_INDICATE_EXEC_STACK): Don't define.
19438         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19439         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19440         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19441         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19442
19443         PR target/43498
19444         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19445         at the beginning and final_end_function at the end.
19446         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19447
19448 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19449
19450         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19451         and Sun as TLS syntax.
19452         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19453         * configure: Regenerate.
19454         * config.in: Regenerate.
19455         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19456         (default_elf_asm_named_section): Use it.
19457         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19458         (i386_output_dwarf_dtprel): Likewise.
19459         (output_addr_const_extra): Likewise.
19460         (output_pic_addr_const): Lowercase @GOTTPOFF.
19461         (output_addr_const_extra): Likewise.
19462         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19463         (output_addr_const_extra): Likewise.
19464         (output_pic_addr_const): Lowercase @INDNTPOFF.
19465         (output_addr_const_extra): Likewise.
19466         (output_pic_addr_const): Lowercase @NTPOFF.
19467         (output_addr_const_extra): Likewise.
19468         (output_pic_addr_const): Lowercase @TPOFF.
19469         (output_addr_const_extra): Likewise.
19470         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19471         (*tls_global_dynamic_64): Likewise.
19472         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19473         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19474
19475         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19476         (ASM_OUTPUT_TLS_COMMON): Use it.
19477         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19478
19479         PR target/38118
19480         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19481         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19482         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19483         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19484         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19485         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19486
19487 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19488
19489         * config/i386/i386.c (override_options): Don't accept
19490         -mtls-dialect=sun any longer.
19491         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19492         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19493         (*tls_local_dynamic_base_32_sun): Likewise.
19494         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19495
19496 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19497
19498         PR debug/43508
19499         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19500         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19501
19502         PR debug/43479
19503         * ira.c (adjust_cleared_regs): New function.
19504         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19505
19506         PR debug/19192
19507         PR debug/43479
19508         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19509         from gimple_block.
19510         * expr.c (expand_expr_real): Restore previous
19511         curr_insn_source_location and curr_insn_block after
19512         expand_expr_real_1 call.
19513         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19514         instead of expand_expr_real_1.
19515
19516 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19517
19518         PR rtl-optimization/43413
19519         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19520         hard regs too.
19521
19522 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19523
19524         PR target/43348
19525         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19526         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19527
19528 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19529
19530         * config/i386/i386.c (ix86_target_string): Add -mfma.
19531         Fix a typo in comment.
19532
19533 2010-03-22  Mike Stump  <mikestump@comcast.net>
19534
19535         PR target/23071
19536         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19537         Don't overly align based upon packed packed fields.
19538
19539 2010-03-22  Jason Merrill  <jason@redhat.com>
19540
19541         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19542         Use () rather than [], and move before the element type.
19543
19544 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19545
19546         * doc/configfiles.texi (Configuration Files): Removed
19547         fixinc/Makefile*, intl/Makefile.*.
19548         * doc/makefile.texi: Fixed markup. Abstract from version
19549         control system used.
19550         (Makefile): Removed obsolete gcc/java/parse.y example.
19551         * doc/sourcebuild.texi: Likewise.
19552         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19553         libgomp, libssp.  Removed fastjar.
19554         (Miscellaneous Docs): Clarify location.
19555         Added COPYING3, COPYING3.LIB.
19556         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19557
19558 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19559
19560         PR target/38085
19561         * config/i386/i386.c (x86_function_profiler)
19562         [!NO_PROFILE_COUNTERS]: Fix typo.
19563         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19564         instead of callq.
19565
19566 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19567             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19568
19569         * doc/sourcebuild.texi (Test Directives): Split into six
19570         subsections, with most of the current text in new subsections
19571         Directives, Selectors, and Final Actions.
19572         (Directives): Split list of test directives into multiple
19573         subsubsections.
19574         (Selectors): Describe use and syntax of selectors.
19575         (Effective-Target Keywords): Describe all existing keywords.
19576         (Add Options): Describe features for dg-add-options.
19577         (Require Support): Describe variants of dg-require-support.
19578         (Final Actions): Describe commands to use in dg-final.
19579
19580 2010-03-22  Michael Matz  <matz@suse.de>
19581
19582         PR middle-end/43475
19583         * recog.c (validate_replace_rtx_group): Replace also in
19584         REG_EQUAL and REG_EQUIV notes.
19585
19586 2010-03-22  Richard Guenther  <rguenther@suse.de>
19587
19588         PR tree-optimization/43390
19589         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19590         sure vector extracts are type correct.
19591
19592 2010-03-22  Richard Guenther  <rguenther@suse.de>
19593
19594         PR middle-end/40106
19595         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19596         x * sqrt (x) even when optimizing for size if the target
19597         has native support for sqrt.
19598
19599 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19600
19601         * varasm.c (make_decl_rtl_for_debug): Also clear
19602         flag_mudflap for the duration of make_decl_rtl call.
19603
19604         PR debug/43443
19605         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19606         locs from preserved VALUEs.
19607
19608 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19609
19610         PR middle-end/42718
19611         * pa.md (movmemsi): Set align to one if zero.
19612         (movmemdi): Likewise.
19613
19614 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19615
19616         PR target/42321
19617         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19618         with their corresponding prologue pushes.
19619
19620 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19621
19622         PR target/43156
19623         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19624         at the begining or end.
19625         (spu_expand_epilogue): Likewise.
19626
19627 2010-03-20  Richard Guenther  <rguenther@suse.de>
19628
19629         PR rtl-optimization/43438
19630         * combine.c (make_extraction): Properly zero-/sign-extend an
19631         extraction of the low part of a CONST_INT.  Also handle
19632         CONST_DOUBLE.
19633
19634 2010-03-19  Mike Stump  <mikestump@comcast.net>
19635
19636         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19637         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19638         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19639
19640 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19641
19642         PR c/43211
19643         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19644         an error.
19645
19646 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19647
19648         PR rtl-optimization/42258
19649         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19650         use that may match DEF.
19651
19652         PR target/40697
19653         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19654         the cost of loading the constant rather than assuming
19655         COSTS_N_INSNS (1).
19656         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19657         outer code is AND, do the same tests as the andsi3 expander and
19658         return COSTS_N_INSNS (1) if and is cheap.
19659
19660         * optabs.c (avoid_expensive_constant): Fix formatting.
19661
19662 2010-03-19  Michael Matz  <matz@suse.de>
19663
19664         PR c++/43116
19665         * attribs.c (decl_attributes): When rebuilding a function pointer
19666         type use the same qualifiers as the original pointer type.
19667
19668 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19669
19670         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19671         and is_gimple_ip_invariant_address.
19672
19673 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19674
19675         Revert
19676         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19677
19678         * config/arm/arm.c (arm_override_options): Turn off
19679         flag_dwarf2_cfi_asm for AAPCS variants.
19680
19681 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19682
19683         PR target/43399
19684         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19685         Use PRE_MODIFY instead of PRE_DEC.
19686         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19687         (vfp_emit_fstmd): Likewise.
19688
19689 2010-03-19  Michael Matz  <matz@suse.de>
19690
19691         PR target/43305
19692         * builtins.c (expand_builtin_interclass_mathfn,
19693         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19694         if that fails.
19695
19696 2010-03-19  Richard Guenther  <rguenther@suse.de>
19697
19698         PR tree-optimization/43415
19699         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19700         (phi_translate_1): ... this.
19701         (phi_translate): Move all caching here.  Cache all NARY
19702         and REFERENCE translations.
19703
19704 2010-03-19  David S. Miller  <davem@davemloft.net>
19705
19706         With help from Eric Botcazou.
19707         * config/sparc/sparc.c: Include dwarf2out.h.
19708         (emit_pic_helper): Delete.
19709         (pic_helper_symbol_name): Delete.
19710         (pic_helper_emitted_p): Delete.
19711         (pic_helper_needed): New.
19712         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19713         (get_pc_thunk_name): New.
19714         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19715         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19716         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19717         (sparc_expand_prologue): Update load_pic_register call.
19718         (sparc_output_mi_thunk): Likewise.
19719         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19720         thunk if possible.  Output CFI information as needed.
19721
19722 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
19723             Jack Howarth  <howarth@bromo.med.uc.edu>
19724
19725         PR target/36399
19726         * config/i386/i386.h: Fix ABI on darwin x86-32.
19727
19728 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19729
19730         * tree.h: Declare make_decl_rtl_for_debug.
19731         * varasm.c (make_decl_rtl_for_debug): New.
19732         * dwarf2out.c (rtl_for_decl_location): Call it.
19733         * cfgexpand.c (expand_debug_expr): Call it.
19734
19735 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19736
19737         PR bootstrap/43399
19738         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19739         mem_mode.
19740
19741         PR bootstrap/43403
19742         * var-tracking.c (vt_init_cfa_base): Do nothing if
19743         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19744
19745 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19746
19747         PR debug/42873
19748         * var-tracking.c (canonicalize_vars_star): New.
19749         (dataflow_post_merge_adjust): Use it.
19750
19751 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19752
19753         PR debug/43058
19754         * var-tracking.c (non_suitable_const): New function.
19755         (add_uses): For DEBUG_INSNs with constants, don't record any
19756         value, instead just the constant value itself.
19757         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19758         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19759         (emit_notes_in_bb): Likewise.
19760         (emit_note_insn_var_location): For onepart variables if
19761         cur_loc is a VOIDmode constant, use DECL_MODE.
19762
19763 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19764
19765         PR middle-end/42450
19766         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19767         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19768         all non-clones.  Moved call redirection...
19769         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19770         (cgraph_materialize_all_clones): Dispose of all
19771         combined_args_to_skip bitmaps.
19772         (verify_cgraph_node): Do not check for edges pointing to wrong
19773         nodes in inline clones.
19774         * tree-inline.c (copy_bb): Call
19775         cgraph_redirect_edge_call_stmt_to_callee.
19776         * ipa.c (cgraph_remove_unreachable_nodes): Call
19777         cgraph_node_remove_callees even when there are used clones.
19778
19779 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19780
19781         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19782
19783 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19784
19785         PR target/43383
19786         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19787         for 32bit.
19788
19789 2010-03-18  Michael Matz  <matz@suse.de>
19790
19791         PR middle-end/43419
19792         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19793         into sqrt(x) if we need to preserve signed zeros.
19794
19795 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19796             Eric Botcazou  <ebotcazou@adacore.com>
19797
19798         PR rtl-optimization/43360
19799         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19800         note if we don't know its invariant status.
19801
19802 2010-03-18  Michael Matz  <matz@suse.de>
19803
19804         PR tree-optimization/43402
19805         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19806         PHI chains of ssa names registered for update.
19807
19808 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19809
19810         PR target/42427
19811         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19812         non-offsettable and pre_modify update addressing.
19813         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19814         and "2" alternatives "#".
19815         (*movdd_softfloat32): Make all alternatives "#";
19816         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19817         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19818         (*movdf_softfloat32): Make all alternatives "#";
19819         (movdi): Use the new DIFD mode iterator to create a common splitter
19820         for movdi, movdf and movdd patterns.
19821
19822 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19823
19824         * common.opt (dumpdir): Remove redundant tab.
19825
19826 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19827
19828         PR tree-optimization/43347
19829         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19830         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19831
19832 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19833
19834         PR rtl-optimization/42216
19835         * regrename.c (create_new_chain): New function, broken out from...
19836         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19837         appending a use to an empty chain.
19838         (build_def_use): Remove previous changes that convert OP_INOUT to
19839         OP_OUT operands; instead detect the case where an OP_INOUT operand
19840         uses a previously untracked register and create an empty chain for it.
19841
19842 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19843
19844         * doc/extend.texi (Function Attributes): Rewrite unfinished
19845         sentence in ms_abi documentation.
19846
19847 2010-03-17  Alan Modra  <amodra@gmail.com>
19848
19849         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19850         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19851         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19852         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19853
19854 2010-03-16  Richard Henderson  <rth@redhat.com>
19855
19856         PR middle-end/43365
19857         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19858         (lower_try_finally): Save and restore eh_seq around the expansion
19859         of the try-finally.
19860
19861 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19862
19863         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19864         statements before splitting block.
19865
19866 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19867
19868         * doc/sourcebuild.texi (Testsuites): Fix markup.
19869         Use pathnames relative to gcc/testsuite.
19870         (Test Directives): Move description of how timeout is determined.
19871         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19872         (C Tests): Correct gcc.misc-tests directory.
19873         Framework tests now live in gcc.test-framework.
19874
19875 2010-03-16  Richard Guenther  <rguenther@suse.de>
19876
19877         PR middle-end/43379
19878         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19879         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19880
19881 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19882             Alexandre Oliva  <aoliva@redhat.com>
19883
19884         PR tree-optimization/42917
19885         * lambda-code.c (remove_iv): Skip debug statements.
19886         (lambda_loopnest_to_gcc_loopnest): Likewise.
19887         (not_interesting_stmt): Debug statements are not interesting.
19888
19889 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19890
19891         PR debug/43051
19892         PR debug/43092
19893         * cselib.c (cselib_preserve_constants,
19894         cfa_base_preserved_val): New static variables.
19895         (preserve_only_constants): New function.
19896         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19897         clear its REG_VALUES.  If cselib_preserve_constants, don't
19898         empty the whole hash table, but preserve there VALUEs with constants,
19899         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19900         (cselib_preserve_cfa_base_value): New function.
19901         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19902         (cselib_init): Change argument to int bitfield.  Set
19903         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19904         is in it.
19905         (cselib_finish): Clear cselib_preserve_constants and
19906         cfa_base_preserved_val.
19907         * cselib.h (enum cselib_record_what): New enum.
19908         (cselib_init): Change argument to int.
19909         (cselib_preserve_cfa_base_value): New prototype.
19910         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19911         * dse.c (dse_step1): Likewise.
19912         * cfgcleanup.c (thread_jump): Likewise.
19913         * sched-deps.c (sched_analyze): Likewise.
19914         * gcse.c (local_cprop_pass): Likewise.
19915         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19916         If FN is non-NULL, call the callback always and whenever it returns
19917         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19918         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19919         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19920         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19921         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19922         * var-tracking.c: Include recog.h.
19923         (bb_stack_adjust_offset): Remove.
19924         (vt_stack_adjustments): Don't call it, instead just gather the
19925         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19926         (adjust_stack_reference): Remove.
19927         (compute_cfa_pointer): New function.
19928         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19929         (struct adjust_mem_data): New type.
19930         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19931         functions.
19932         (get_address_mode): New function.
19933         (replace_expr_with_values): Use it.
19934         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19935         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19936         (adjust_sets): Remove.
19937         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19938         Use get_address_mode.
19939         (get_adjusted_src): Remove.
19940         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19941         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19942         (add_with_sets): Don't call adjust_sets.
19943         (fp_setter, vt_init_cfa_base): New functions.
19944         (vt_initialize): Change return type to bool.  Move most of pool etc.
19945         initialization to the beginning of the function from end.  Pass
19946         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19947         If !frame_pointer_needed, call vt_stack_adjustment before mos
19948         vector is filled, call vt_init_cfa_base if argp/framep has been
19949         eliminated to sp.  If frame_pointer_needed and argp/framep has
19950         been eliminated to hard frame pointer, set
19951         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19952         encountering fp setter in the prologue.  For MO_ADJUST, call
19953         log_op_type before pusing the op into mos vector, not afterwards.
19954         Call adjust_insn before cselib_process_insn/add_with_sets,
19955         call cancel_changes (0) afterwards.
19956         (variable_tracking_main_1): Adjust for vt_initialize calling
19957         vt_stack_adjustments and returning whether it succeeded or not.
19958
19959 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19960
19961         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19962         debug statements.
19963
19964 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19965
19966         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19967         has been set.
19968         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19969         drap_reg has not been set.
19970
19971 2010-03-15  Michael Matz  <matz@suse.de>
19972
19973         PR middle-end/43300
19974         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19975         use it to expand block copies.
19976         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19977         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19978         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19979
19980 2010-03-15  Richard Guenther  <rguenther@suse.de>
19981
19982         PR tree-optimization/43367
19983         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19984         elimination check.
19985
19986 2010-03-15  Richard Guenther  <rguenther@suse.de>
19987
19988         PR tree-optimization/43317
19989         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19990
19991 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19992
19993         PR tree-optimization/43141
19994         * tree-sra.c (create_abstract_origin): New function.
19995         (modify_function): Call create_abstract_origin.
19996
19997 2010-03-15  Chris Demetriou  <cgd@google.com>
19998
19999         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
20000         wasn't copied.
20001
20002 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20003
20004         PR middle-end/43354
20005         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
20006         call insert_out_of_ssa_copy for default definitions.
20007
20008 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20009
20010         * graphite-clast-to-gimple.c (my_long_long): Defined.
20011         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
20012         * graphite-sese-to-poly.c (my_long_long): Defined.
20013         (scop_ivs_can_be_represented): Use it.
20014
20015 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20016
20017         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
20018         graphite-max-bbs-per-function, and loop-block-tile-size.
20019         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
20020         with "maximum".
20021         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
20022
20023 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20024
20025         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
20026         forward declaration.
20027         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
20028         (add_upper_bounds_from_estimated_nit): New.
20029         (build_loop_iteration_domains): Use it.
20030
20031 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20032
20033         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
20034
20035 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20036
20037         PR middle-end/43306
20038         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
20039         should be an INTEGER_CST.  Also handle CASE_CONVERT.
20040
20041 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20042
20043         * graphite.c (graphite_initialize): To bound the number of bbs per
20044         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
20045         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
20046         * doc/invoke.texi: Document it.
20047
20048 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20049
20050         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
20051         * graphite-sese-to-poly.h (build_poly_scop): Same.
20052
20053 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
20054
20055         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
20056         the number of parameters in the scop.  Use as an upper bound
20057         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
20058         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
20059         * doc/invoke.texi: Document it.
20060
20061 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
20062
20063         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
20064         * doc/c-tree.texi: Remove.
20065         * doc/generic.texi: Merge c-tree.texi here.
20066         * doc/gccint.texi (Trees): Remove menu entry.
20067         (c-tree.texi): Remove @include.
20068         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
20069         * doc/languages.texi (Reading RTL): Ditto.
20070
20071 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
20072
20073         PR target/42869
20074         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
20075
20076 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
20077
20078         PR middle-end/42431
20079         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
20080         code added to work around reload clobbering CONST insns.
20081
20082 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
20083
20084         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
20085         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
20086         (cselib_preserve_only_values): Remove retain argument, don't
20087         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
20088         * cselib.h (cselib_preserve_only_values): Remove retain argument.
20089         * var-tracking.c (micro_operation): Move insn field before union.
20090         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
20091         (struct variable_tracking_info_def): Remove n_mos field, change
20092         mos into a vector of micro_operations.
20093         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
20094         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
20095         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
20096         changing into a vector.
20097         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
20098         come before all other uops generated by add_stores.
20099         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
20100         argument removal.
20101         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
20102         a vector.  Run just one pass over the bbs instead of separate counting
20103         and computation phase.
20104         (vt_finalize): Free VTI (bb)->mos vector instead of array.
20105
20106         PR debug/43329
20107         * tree-inline.c (remap_decls): Put old_var rather than origin_var
20108         into *nonlocalized_list vector.
20109         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
20110         even if origin is non-NULL.
20111         (gen_variable_die): Likewise.
20112         (process_scope_var): Don't change origin.
20113         (gen_decl_die): Likewise.
20114         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
20115         before adding new edges instead of after it, fix moving over
20116         debug stmts.
20117
20118 2010-03-11  David S. Miller  <davem@davemloft.net>
20119
20120         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
20121         of four.
20122         * configure: Rebuild.
20123
20124 2010-03-11  Martin Jambor  <mjambor@suse.cz>
20125
20126         PR tree-optimization/43257
20127         * tree.c (assign_assembler_name_if_neeeded): New function.
20128         (free_lang_data_in_cgraph): Assembler name assignment moved to the
20129         above new function.
20130         * tree.h (assign_assembler_name_if_neeeded): Declare.
20131         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
20132         the function if needed.
20133
20134 2010-03-11  Chris Demetriou  <cgd@google.com>
20135
20136         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
20137         include/stdint-gcc.h, and include/stdint.h world-readable.
20138
20139 2010-03-11  Richard Guenther  <rguenther@suse.de>
20140
20141         PR tree-optimization/43255
20142         * tree-vrp.c (process_assert_insertions_for): Do not insert
20143         asserts for trivial conditions.
20144
20145 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20146
20147         PR tree-optimization/43280
20148         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
20149         generation.  Move calculation of size out of the if branch.
20150         (find_bswap): Modify compare number generation.
20151
20152 2010-03-11  Richard Guenther  <rguenther@suse.de>
20153
20154         PR lto/43200
20155         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
20156         (input_gimple_stmt): Fixup handled component types during
20157         operand read.  Also fix up decls in ADDR_EXPRs.
20158
20159 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
20160
20161         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
20162         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
20163
20164 2010-03-10  Jan Hubicka  <jh@suse.cz>
20165
20166         PR c/43288
20167         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
20168         * varasm.c (get_variable_section): Don't do that here...
20169         (make_decl_rtl): ... and here.
20170         (do_assemble_alias): Produce decl RTL.
20171         (assemble_alias): Likewise.
20172
20173 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
20174
20175         PR debug/43290
20176         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
20177         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
20178         of fde->vdrap_reg.
20179         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
20180         (based_loc_descr): Only express drap or vdrap regno based expressions
20181         using DW_OP_fbreg when not optimizing.
20182         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
20183         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
20184         REG_CFA_SET_VDRAP note.
20185
20186 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
20187
20188         PR tree-optimization/43236
20189         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
20190         error in calculation of base address in reverse iteration case.
20191         (generate_builtin): Take number of latch executions if the statement
20192         is in the latch.
20193
20194 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
20195
20196         PR middle-end/42859
20197         * tree-eh.c: Include pointer-set.h.
20198         (lower_eh_dispatch): Filter out duplicate case labels and
20199         remove the unneeded edge when the label is unused.  Return
20200         true when some edges are removed.
20201         (execute_lower_eh_dispatch): When any lowering resulted in
20202         removing an edge, also delete unreachable blocks.
20203
20204 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
20205
20206         PR bootstrap/43287
20207         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
20208         UNSPEC_MACHOPIC_OFFSET.
20209
20210 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
20211
20212         PR target/43294
20213         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
20214         (m68k_delegitimize_address): New function.
20215
20216 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
20217
20218         PR debug/43299
20219         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
20220
20221         PR debug/43299
20222         * var-tracking.c (adjust_sets): New function.
20223         (count_with_sets, add_with_sets): Use it.
20224         (get_adjusted_src): New inline function.
20225         (add_stores): Use it.
20226
20227         PR debug/43304
20228         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
20229         call cselib_dummy_expand_value_rtx_cb instead of
20230         cselib_expand_value_rtx_cb.
20231
20232         PR debug/43293
20233         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
20234         * config/i386/i386.c: Include debug.h and dwarf2out.h.
20235         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
20236         and .cfi_endproc around the pic thunks.
20237         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
20238         all queued unwind info register saves are saved before the call.
20239         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
20240         considered as sp-=4 for unwind info and the pop as sp+=4 which
20241         also clobbers dest, but doesn't actually restore it.
20242
20243         PR debug/43290
20244         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
20245         RTX_FRAME_RELATED_P.
20246
20247 2010-03-09  Jie Zhang  <jie@codesourcery.com>
20248
20249         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
20250         whitespaces in output template.
20251
20252 2010-03-09  Jie Zhang  <jie@codesourcery.com>
20253
20254         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
20255         out array boundary.
20256
20257 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20258
20259         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
20260         builtins.exp in a separate job.
20261
20262 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20263
20264         * graphite-sese-to-poly.c (add_param_constraints): Use
20265         lower_bound_in_type and upper_bound_in_type.
20266
20267 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20268
20269         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
20270         instead of unsigned_type_node.
20271
20272 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20273             Reza Yazdani  <reza.yazdani@amd.com>
20274
20275         PR middle-end/43065
20276         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
20277         on pointer type parameters.
20278
20279 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
20280
20281         PR middle-end/42644
20282         PR middle-end/42130
20283         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
20284         handle conversions from pointer to integers.
20285         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
20286         induction variable, to be able to work with code generated by CLooG.
20287         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
20288         (build_poly_scop): Bail out if we cannot codegen a loop.
20289
20290 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
20291
20292         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
20293         code generation with gloog_error.
20294
20295 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20296
20297         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
20298         Call fold_convert on all the returned values.
20299         (expand_scalar_variables_expr): Pass to
20300         expand_scalar_variables_ssa_name the type of the resulting expression.
20301
20302 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20303
20304         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
20305         ppl_min_for_le_pointset.
20306         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
20307         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
20308
20309 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20310
20311         * graphite-dependences.c (map_into_dep_poly): Removed.
20312         (dependence_polyhedron_1): Use combine_context_id_scat.
20313
20314 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20315
20316         * graphite-poly.h (struct poly_scattering): Add layout documentation.
20317         (struct poly_bb): Same.
20318         (combine_context_id_scat): New.
20319
20320 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20321
20322         PR middle-end/42326
20323         * sese.c (name_defined_in_loop_p): Return false for default
20324         definitions.
20325
20326 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20327
20328         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
20329         and clean up the logic.
20330
20331 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20332
20333         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
20334         early return.
20335
20336 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20337
20338         * var-tracking.c (remove_cselib_value_chains): Define only for
20339         ENABLE_CHECKING.
20340         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
20341         delete_slot_part, emit_notes_for_differences_1): Don't call
20342         remove_cselib_value_chains here.
20343         (set_slot_part, emit_notes_for_differences_2): Don't call
20344         add_cselib_value_chains here.
20345         (preserved_values): New vector.
20346         (preserve_value): New function.
20347         (add_uses, add_stores, vt_add_function_parameters): Use it
20348         instead of cselib_preserve_value.
20349         (changed_values_stack): New vector.
20350         (check_changed_vars_0): New function.
20351         (check_changed_vars_1, check_changed_vars_2): Use it.
20352         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
20353         changed_values_stack VALUEs.
20354         (vt_emit_notes): For all preserved_values call
20355         add_cselib_value_chains.  If ENABLE_CHECKING call
20356         remove_cselib_value_chains before verifying value_chains is empty.
20357         Initialize and free changed_values_stack.
20358         (vt_initialize): Initialize preserved_values.
20359         (vt_finalize): Free preserved_values.
20360
20361 2010-03-08  Richard Guenther  <rguenther@suse.de>
20362
20363         PR tree-optimization/43269
20364         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
20365         region detection.
20366
20367 2010-03-08  Martin Jambor  <mjambor@suse.cz>
20368
20369         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
20370         (ipa_is_param_called): Removed.
20371         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
20372         (ipa_print_node_params): Do not print the called flag.
20373         (ipa_write_node_info): Do not stream the called flag.
20374         (ipa_read_node_info): Likewise.
20375
20376 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
20377
20378         PR debug/43176
20379         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20380         * cselib.c (struct expand_value_data): Add dummy field.
20381         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20382         dummy to false.
20383         (cselib_dummy_expand_value_rtx_cb): New function.
20384         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20385         any rtl.
20386         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20387         * var-tracking.c: Include pointer-set.h.
20388         (variable): Change n_var_parts to char from int.  Add
20389         cur_loc_changed and in_changed_variables fields.
20390         (variable_canonicalize): Remove.
20391         (shared_var_p): New inline function.
20392         (unshare_variable): Maintain cur_loc_changed and
20393         in_changed_variables fields.  If var was in changed_variables,
20394         replace it there with new_var.  Just copy cur_loc instead of
20395         resetting it to something else.
20396         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20397         (dataflow_set_union): Don't call variable_canonicalize.
20398         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20399         of their DEBUG_EXPR_TREE_DECLs.
20400         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20401         and in_changed_variables and cur_loc_changed is false.
20402         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20403         and cur_loc_changed.  Don't update cur_loc here.
20404         (variable_merge_over_src): Don't call variable_canonicalize.
20405         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20406         removing loc that is equal to cur_loc, clear cur_loc,
20407         set cur_loc_changed and ensure variable_was_changed is called.
20408         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20409         compare pointers in cur_loc check, if it is equal to loc,
20410         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20411         (variable_different_p): Remove compare_current_location argument,
20412         don't compare cur_loc.
20413         (dataflow_set_different_1): Adjust variable_different_p caller.
20414         (variable_was_changed): If dv had some var in changed_variables
20415         already, reset in_changed_variables flag for it and propagate
20416         cur_loc_changed over to the new variable.  On empty var
20417         always set cur_loc_changed.  Set in_changed_variables on whatever
20418         var is added to changed_variables.
20419         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20420         Use shared_var_p.  When removing loc that is equal to cur_loc,
20421         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20422         end, don't set it to something else, just call variable_was_changed.
20423         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20424         loc being removed, clear cur_loc and set cur_loc_changed.
20425         Set cur_loc_changed if all locations have been removed.
20426         (struct expand_loc_callback_data): New type.
20427         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20428         allocated.  Always create SUBREGs if simplify_subreg failed.
20429         Prefer to use cur_loc, when that fails and still in
20430         changed_variables (and seen first time) recompute it.  Set
20431         cur_loc_changed of variables which had to change cur_loc and
20432         compute elcd->cur_loc_changed if any of the subexpressions used
20433         had to change cur_loc.
20434         (vt_expand_loc): Adjust to pass arguments in
20435         expand_loc_callback_data structure.
20436         (vt_expand_loc_dummy): New function.
20437         (emitted_notes): New variable.
20438         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20439         that weren't used for any other decl in current
20440         emit_notes_for_changes call call vt_expand_loc_dummy to update
20441         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20442         first loc_chain location if NULL before.  Always use just
20443         cur_loc instead of first loc_chain location.  When cur_loc_changed
20444         is false, when not --enable-checking=rtl just don't emit any note.
20445         When rtl checking, compute the note and assert it is the same
20446         as previous note.  Clear cur_loc_changed and in_changed_variables
20447         at the end before removing from changed_variables.
20448         (check_changed_vars_3): New function.
20449         (emit_notes_for_changes): Traverse changed_vars to call
20450         check_changed_vars_3 on each changed var.
20451         (emit_notes_for_differences_1): Clear cur_loc_changed and
20452         in_changed_variables.  Recompute cur_loc of new_var.
20453         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20454         (vt_emit_notes): Initialize and destroy emitted_notes.
20455
20456 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20457
20458         PR rtl-optimization/42220
20459         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20460         Use verify_reg_tracked to determine if we should use OP_OUT rather
20461         than OP_INOUT.
20462         (build_def_use): If we see an in-out operand for a register that we
20463         know nothing about, treat is an output if possible, fail the block if
20464         not.
20465
20466 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20467
20468         PR debug/42897
20469         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20470         permanently.
20471
20472 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20473
20474         PR debug/42897
20475         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20476         uses of relevant DEFs that are dead outside the loop too.
20477
20478 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20479
20480         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20481         Reverted:
20482         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20483         PR debug/41371
20484         * var-tracking.c (values_to_unmark): New variable.
20485         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20486         values_to_unmark vector.  Moved body to...
20487         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20488         instead queue it into values_to_unmark vector.
20489         (vt_find_locations): Free values_to_unmark vector.
20490
20491 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20492
20493         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20494         (site.exp): Export them when plugins are enabled.
20495
20496 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20497
20498         PR middle-end/42326
20499         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20500         that contain scevs.
20501         (chrec_fold_multiply): Same.
20502
20503 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20504
20505         PR c/43248
20506         * c-decl.c (build_compound_literal): Return early if init is
20507         an error_mark_node.
20508
20509 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20510
20511         PR tree-optimization/43164
20512         PR tree-optimization/43191
20513         * tree-sra.c (type_consists_of_records_p): Reject records with
20514         zero-size bit-fields at the end.
20515
20516 2010-03-04  Mike Stump  <mikestump@comcast.net>
20517
20518         * Makefile.in (TAGS): Remove *.y.
20519
20520 2010-03-04  Richard Guenther  <rguenther@suse.de>
20521
20522         PR tree-optimization/40761
20523         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20524         in reverse order.
20525         (my_rev_post_order_compute): New function.
20526         (init_pre): Call it.
20527
20528 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20529
20530         PR middle-end/43209
20531         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20532         decrease the cost of an IV candidate when the cost is infinite.
20533
20534 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20535
20536         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20537         Use '3DNow!' for the extension of that name, ensure normal space
20538         after the string.
20539         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20540
20541 2010-03-03  Jeff Law  <law@redhat.com>
20542
20543         * PR middle-end/32693
20544         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20545         than gen_rtx_SUBREG.
20546         (extract_bit_field_1): Likewise.
20547
20548 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20549
20550         * doc/sourcebuild.texi (Test directives): Document that arguments
20551         include-opts and exclude-opts are now optional for dg-skip-if,
20552         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20553
20554 2010-03-03  Jason Merrill  <jason@redhat.com>
20555
20556         PR c++/12909
20557         * cgraph.h (varpool_node): Add extra_name field.
20558         * varpool.c (varpool_extra_name_alias): New.
20559         (varpool_assemble_decl): Emit extra name aliases.
20560         (varpool_mark_needed_node): Look past an extra name alias.
20561         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20562         * lto-streamer-in.c (lto_input_tree): Read it.
20563         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20564
20565 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20566
20567         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20568         (sparc*-*-solaris2*): ...this.
20569
20570 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20571
20572         PR debug/43229
20573         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20574         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20575         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20576         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20577
20578         PR debug/43237
20579         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20580         fallthrough to default handling, just with want_address 0 instead of 2.
20581         For single element lists, add_AT_loc directly, otherwise create an
20582         artificial variable DIE and stick location list to it.
20583
20584         PR debug/43177
20585         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20586         (VAL_EXPR_HAS_REVERSE): Define.
20587         (reverse_op): New function.
20588         (add_stores): For reversible operations add an extra MO_VAL_USE.
20589
20590 2010-03-02  Jason Merrill  <jason@redhat.com>
20591
20592         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20593
20594 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20595
20596         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20597         (sparc64-*-linux*): Likewise.
20598         (sparc64-*-solaris2*): Include assembler files before linker ones.
20599         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20600         * config/sparc/gas.h: Delete.
20601         * config/sparc/sol2-64.h: Add copyright notice.
20602         * config/sparc/sol2-gas-bi.h: Likewise.
20603         * config/sparc/sol2-gld.h: Likewise.
20604         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20605         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20606         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20607         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20608         (sparc_elf_asm_named_section): Rename into...
20609         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20610
20611 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20612
20613         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20614
20615 2010-03-02  Jeff Law  <law@redhat.com>
20616
20617         PR middle-end/42431
20618         * reload1.c (rtx_p, substitute_stack): Declare.
20619         (substitute): Record addresses of changed rtxs.
20620         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20621         Restore the original rtx when complete.
20622         (reload): Free subsitute_stack when complete.
20623
20624 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20625
20626         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20627         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20628         new chapter.
20629         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20630         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20631         Torture Tests): Change from subsection to section.
20632
20633 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20634             Steven Bosscher  <steven@gcc.gnu.org>
20635
20636         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20637         instead of bb.
20638
20639 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20640
20641         PR middle-end/42640
20642         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20643         the assignment from the new induction variable to the assignment
20644         of the value from the original loop PHI function.
20645
20646 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20647             Daniel Jacobowitz  <dan@codesourcery.com>
20648
20649         * doc/sourcebuild.texi (Test directives): Clarify options to
20650         dg-skip-if.
20651
20652 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20653
20654         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20655         Disable cfi directives unless GCC and gas agree on using read-only
20656         .eh_frame sections for 64-bit.
20657         * configure: Regenerate.
20658
20659 2010-03-01  Richard Guenther  <rguenther@suse.de>
20660
20661         PR tree-optimization/43220
20662         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20663         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20664
20665 2010-03-01  Richard Guenther  <rguenther@suse.de>
20666             Martin Jambor  <mjambor@suse.cz>
20667
20668         PR middle-end/41250
20669         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20670         gimplified parameters.
20671
20672 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20673
20674         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20675
20676 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20677
20678         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20679
20680 2010-03-01  Richard Guenther  <rguenther@suse.de>
20681
20682         PR middle-end/43213
20683         * expr.c (expand_assignment): Use the alias-oracle to tell
20684         if the rhs aliases the result decl.
20685
20686 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20687
20688         PR pch/14940
20689         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20690         to sol_gt_pch_get_address.
20691         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20692         64-bit, SPARC and x86.
20693         (sol_gt_pch_get_address): New function.
20694
20695 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20696
20697         * toplev.h (inform_n, error_n): Declare.
20698         * diagnostic.c (inform_n, error_n): New function.
20699
20700 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20701
20702         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20703         has no rtl yet when processing local_decls, queue it and recheck
20704         if deferred stack allocation hasn't assigned it rtl.
20705
20706 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20707
20708         * config/sh/sh.c (unspec_bbr_uid): New.
20709         (gen_block_redirect): Use it instead of INSN_UID.
20710         (gen_far_branch): Likewise.
20711
20712 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20713
20714         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20715         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20716
20717 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20718
20719         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20720         (Warning Options): -Wno-conversion-null is valid for
20721         Objective-C++ as well.
20722         * doc/tm.texi (Named Address Spaces): Likewise.
20723         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20724         * doc/tree-ssa.texi (Tree SSA): Likewise.
20725
20726 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20727
20728         PR bootstrap/43202
20729         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20730         by default.  Don't set the default arch for
20731         i[34567]86-*-darwin*|x86_64-*-darwin*.
20732
20733 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20734
20735         PR bootstrap/43202
20736         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20737         default.  Set the default 32bit/64bit archs with $with_arch
20738         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20739
20740 2010-02-27  Richard Guenther  <rguenther@suse.de>
20741
20742         PR tree-optimization/43186
20743         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20744         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20745         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20746         unroller iterations.
20747
20748 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20749
20750         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20751         required and i[34567]86-*-* targets don't support 64bit ISA.
20752
20753 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20754
20755         PR ada/43096
20756         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20757         the same alias set.
20758
20759 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20760
20761         * config.gcc: Set the default arch at least to Prescott for
20762         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20763         if SSE math is enabled.
20764
20765 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20766
20767         * diagnostic.c (diagnostic_initialize): Update.
20768         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20769         informative notes.
20770         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20771         (diagnostic_inhibit_notes): New.
20772         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20773
20774 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20775
20776         PR c/20631
20777         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20778         * doc/standards.texi: Likewise.
20779         * doc/extend.texi: Likewise.
20780         * doc/trouble.texi: Likewise.
20781         * doc/cppopts.texi: Likewise.
20782         * doc/install.texi: Likewise.
20783         * c.opt (std=c90,std=gnu90): New options.
20784         * c-opts.c (c_common_handle_option): Handle them.
20785
20786 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20787
20788         PR c/24577
20789         * c-decl.c (undeclared_variable): Use an informative note.
20790
20791 2010-02-26  Richard Guenther  <rguenther@suse.de>
20792
20793         PR tree-optimization/43186
20794         * gimple.h (gimple_fold): Remove.
20795         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20796         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20797         Try harder for conditions.
20798
20799 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20800
20801         PR debug/43190
20802         * function.c (used_types_insert): Don't skip through named pointer
20803         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20804         and it is different from the main variant's type.
20805
20806 2010-02-26  Nick Clifton  <nickc@redhat.com>
20807
20808         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20809
20810 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20811
20812         * config.gcc: Support --with-fpmath=sse for x86.
20813
20814         * config/i386/ssemath.h: New.
20815
20816         * doc/install.texi (--with-fpmath=sse): Documented.
20817
20818 2010-02-26  Richard Guenther  <rguenther@suse.de>
20819
20820         PR tree-optimization/43188
20821         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20822         vector types of over-aligned element type.
20823
20824 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20825
20826         PR target/43175
20827         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20828         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20829
20830 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20831
20832         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20833
20834 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20835
20836         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20837         * var-tracking.c: Include diagnostic.h.
20838         (debug_dv): New function.
20839         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20840
20841         PR debug/43160
20842         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20843         (add_value_chain, add_value_chains, remove_value_chain,
20844         remove_value_chains): Handle DEBUG_EXPRs.
20845         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20846
20847         PR debug/43161
20848         * regcprop.c (struct queued_debug_insn_change): New type.
20849         (struct value_data_entry): Add debug_insn_changes field.
20850         (struct value_data): Add n_debug_insn_changes field.
20851         (debug_insn_changes_pool): New variable.
20852         (free_debug_insn_changes, apply_debug_insn_changes,
20853         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20854         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20855         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20856         fields.
20857         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20858         changes for them.
20859         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20860         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20861         changes, call cprop_find_used_regs via note_stores.
20862         (copyprop_hardreg_forward): When copying vd from predecessor
20863         which has any queued DEBUG_INSN changes, make sure the pointers are
20864         cleared.  At the end call df_analyze and then if there are any
20865         DEBUG_INSN changes queued at the end of some basic block for still
20866         live registers, apply them.
20867         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20868
20869 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20870
20871         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20872         (arm*-*-*): Ditto.
20873
20874 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20875
20876         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20877         targets.  Set the default with_cpu/with_arch from arch/cpu.
20878         Allow x86-64 and native for with_cpu/with_arch.
20879
20880 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20881
20882         * ebitmap.c: Change calls to verify_popcount with calls to
20883         sbitmap_verify_popcount.
20884         (ebitmap_clear_bit): Fixed map->cacheindex test and
20885         map>cache update when bit clearing results in an empty
20886         element.
20887
20888 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20889
20890         PR target/43154
20891         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20892         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20893         and support both V2DF and V2DI modes.
20894         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20895         support both V2DF and V2DI modes.
20896         (general): Delete trailing whitespace from a few patterns.
20897
20898         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20899         V2DF/V2DI interleave high/low builtins.
20900
20901         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20902         new VSX builtins.
20903
20904         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20905         interleave high/low functions.
20906
20907 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20908
20909         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20910         #pragma extern_prefix.
20911
20912 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20913
20914         PR debug/43166
20915         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20916         BLKmode, assert op0 is a MEM and just adjust its mode.
20917
20918         PR debug/43165
20919         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20920         if bitpos isn't multiple of mode's bitsize.
20921
20922 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20923
20924         * c.opt (-ftemplate-depth=): New.
20925         (-ftemplate-depth-): Deprecate.
20926         * optc-gen.awk: Handle -ftemplate-depth=.
20927         * opth-gen.awk: Likewise.
20928         * c-opts.c (c_common_handle_option): Likewise.
20929         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20930
20931 2010-02-24  Jason Merrill  <jason@redhat.com>
20932
20933         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20934
20935 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20936
20937         * cfg.c (alloc_aux_for_block): Remove inline.
20938         (alloc_aux_for_edge): Likewise.
20939
20940 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20941
20942         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20943
20944 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20945
20946         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20947         * config/i386/sol2-gas.h: New file.
20948         * config.gcc (i[34567]86-*-solaris2*): Use it.
20949
20950 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20951
20952         PR c/43128
20953         * c-typeck.c (ep_convert_and_check): New.
20954         (build_conditional_expr): Use it.
20955         (build_binary_op): Likewise.
20956
20957 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20958
20959         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20960
20961         PR debug/43150
20962         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20963         bounds even for -O+.
20964         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20965         expr needs to have DECL_NAME set.
20966
20967 2010-02-24  Nick Clifton  <nickc@redhat.com>
20968
20969         * config/mep/mep.c: Include gimple.h.
20970         (mep_function_uses_sp): Delete unused function.
20971         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20972         parameters.  Use unsigned integers to count args.  Return a
20973         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20974
20975 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20976
20977         PR target/43107
20978         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20979         greater or equal to nelt instead of 2 * nelt.
20980         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20981         with nelt - 1.
20982
20983 2010-02-23  Jason Merrill  <jason@redhat.com>
20984
20985         PR debug/42800
20986         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20987         in cfun->local_decls even if they have register types.
20988
20989         PR c++/42837
20990         * stor-layout.c (place_field): Don't warn about unnecessary
20991         DECL_PACKED if the type is packed.
20992
20993 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20994
20995         PR target/43139
20996         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20997         GOTOFF relocs, even when the base reg isn't pic pointer.
20998
20999 2010-02-23  Michael Matz  <matz@suse.de>
21000
21001         PR debug/43077
21002         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
21003         (expand_gimple_basic_block): Generate and use debug temps if there
21004         are debug uses left after the last real use of TERed ssa names.
21005         Unlink debug immediate uses when they are expanded.
21006
21007 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21008
21009         PR 43123
21010         * config/i386/i386.c (override_options): Reorganise to provide
21011         better error messages.
21012
21013 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21014
21015         PR middle-end/43083
21016         * graphite-scop-detection.c (create_single_exit_edge): Move
21017         the call to find_single_exit_edge to....
21018         (create_sese_edges): ...here.  Don't handle multiple edges
21019         exiting the function.
21020         (build_graphite_scops): Don't handle multiple edges
21021         exiting the function.
21022
21023 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21024
21025         PR middle-end/43097
21026         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
21027         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
21028
21029 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21030
21031         PR middle-end/43026
21032         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
21033
21034 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21035
21036         PR c++/43126
21037         * c-typeck.c (convert_arguments): Print declaration location.
21038         * c-common.c (validate_nargs): Rename as
21039         builtin_function_validate_nargs.
21040         (check_builtin_function_arguments): Update.
21041
21042 2010-02-22  Richard Guenther  <rguenther@suse.de>
21043
21044         PR lto/43045
21045         * tree-inline.c (declare_return_variable): Use the type of
21046         the call stmt lhs if available.
21047
21048 2010-02-22  Duncan Sands  <baldrick@free.fr>
21049
21050         * passes.c (register_pass): Always consider all pass lists when
21051         ref_pass_instance_number is zero.
21052
21053 2010-02-22  Richard Guenther  <rguenther@suse.de>
21054
21055         PR tree-optimization/42749
21056         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
21057         parameter.  Do arithmetic in the original type.
21058         (update_accumulator_with_ops): Likewise.
21059         (adjust_accumulator_values): Adjust.
21060
21061 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21062
21063         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
21064         (QI to BLKmode splitter): New splitter.
21065
21066 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
21067
21068         * config/i386/i386.c (initial_ix86_tune_features): Turn on
21069         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
21070
21071 2010-02-22  Richard Guenther  <rguenther@suse.de>
21072
21073         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
21074
21075 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
21076
21077         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
21078         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
21079         ($(T)crti.o, $(T)crtn.o): Remove rules.
21080
21081 2010-02-21  Tobias Burnus  <burnus@net-b.de>
21082
21083         PR fortran/35259
21084         * doc/invoke.texi (-fassociative-math): Document that this
21085         option is automatically enabled for Fortran.
21086
21087 2010-02-20  David S. Miller  <davem@davemloft.net>
21088
21089         * configure.ac: Test if linker and assembler properly support
21090         GOTDATA_OP relocations.
21091         * configure: Rebuild.
21092         * config.in: Likewise.
21093         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
21094         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
21095         (movsi_high_pic): Likewise.
21096         (movdi_lo_sum_pic): Likewise.
21097         (movdi_high_pic): Likewise.
21098         (movsi_pic_gotdata_op): New pattern.
21099         (movdi_pic_gotdata_op): Likewise.
21100         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
21101         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
21102
21103 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
21104
21105         PR target/43067
21106         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
21107         attribute to ssemul.
21108         (xop_mulv2div2di3_high): Ditto.
21109
21110 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21111
21112         PR c++/35669
21113         * c.opt (Wconversion-null): New option.
21114         * doc/invoke.texi (Wconversion-null): Document.
21115
21116 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21117
21118         * common.opt (Wlarger-than-): Add Undocumented.
21119
21120 2010-02-19  Mike Stump  <mikestump@comcast.net>
21121
21122         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
21123
21124 2010-02-19  Jason Merrill  <jason@redhat.com>
21125
21126         PR target/40332
21127         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
21128         * configure: Likewise.
21129
21130 2010-02-20  Alan Modra  <amodra@gmail.com>
21131
21132         PR middle-end/42344
21133         * cgraph.h (cgraph_make_decl_local): Declare.
21134         * cgraph.c (cgraph_make_decl_local): New function.
21135         (cgraph_make_node_local): Use it.
21136         * cgraphunit.c (cgraph_function_versioning): Likewise.
21137         * ipa.c (function_and_variable_visibility): Likewise.
21138
21139 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
21140
21141         PR bootstrap/43121
21142         * except.c (sjlj_emit_function_enter): Don't call
21143         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
21144         directly.
21145         * rtl.h (add_reg_br_prob_note): Remove prototype.
21146
21147 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21148
21149         PR 41779
21150         * c-common.c (conversion_warning): Remove widening conversions
21151         before checking the conversion of integers to reals.
21152
21153 2010-02-19  Mike Stump  <mikestump@comcast.net>
21154
21155         PR middle-end/43125
21156         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
21157
21158         PR objc/43061
21159         * cgraphunit.c (process_function_and_variable_attributes): Check
21160         DECL_PRESERVE_P instead of looking up attribute "used".
21161         * ipa-pure-const.c (check_decl): Likewise.
21162         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
21163         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
21164         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
21165         instead of attribute "used".
21166         * config/sol2-c.c (solaris_pragma_init): Likewise.
21167         (solaris_pragma_fini): Likewise.
21168
21169 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
21170
21171         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
21172         Use XCNEW instead of xcalloc.
21173         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
21174         XNEW instead of xmalloc.
21175         (get_fields): Use XNEWVEC instead of xmalloc.
21176
21177         PR debug/43084
21178         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
21179         populate vars array.
21180         (create_new_general_access): For debug stmts just reset value.
21181         (get_stmt_accesses): For accesses within debug stmts just record them
21182         using add_access_to_acc_sites instead of preventing the peeling or
21183         counting them as accesses.
21184
21185         PR middle-end/42233
21186         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
21187
21188 2010-02-19  Richard Guenther  <rguenther@suse.de>
21189
21190         PR tree-optimization/42916
21191         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
21192         instructions.
21193
21194 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
21195
21196         * configure.ac: Replace all uses of changequote in macro arguments
21197         with proper quoting.
21198
21199 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
21200
21201         PR middle-end/42233
21202         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
21203
21204 2010-02-19  Richard Guenther  <rguenther@suse.de>
21205
21206         PR tree-optimization/42944
21207         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
21208         test for aliasing with errno.
21209
21210 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
21211
21212         PR middle-end/42233
21213         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
21214         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
21215         * dojump.c: Include output.h.
21216         (inv): New inline function.
21217         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
21218         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
21219         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
21220         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
21221         argument, pass it down to other calls.
21222         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
21223         add REG_BR_PROB note to the conditional jump.
21224         * cfgexpand.c (add_reg_br_prob_note): Removed.
21225         (expand_gimple_cond): Don't call it, add the probability
21226         as last argument to jumpif_1/jumpifnot_1.
21227         * Makefile.in (dojump.o): Depend on output.h.
21228         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
21229         callers.
21230         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
21231         * stmt.c (do_jump_if_equal): Likewise.
21232         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
21233         * loop-unswitch.c (compare_and_jump_seq): Likewise.
21234         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
21235         Likewise.
21236         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
21237         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
21238         jumpifnot_1 callers.
21239         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
21240         callers.
21241         (store_expr): Adjust jumpifnot caller.
21242         (store_constructor): Adjust jumpif caller.
21243
21244         PR middle-end/42233
21245         * gimplify.c (gimple_boolify): For __builtin_expect call
21246         gimple_boolify also on its first argument.
21247
21248 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
21249
21250         * configure.ac (gnu-unique-object): Wrap regexps using [] in
21251         changequote block.
21252         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
21253         * configure: Regenerated.
21254
21255 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21256
21257         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
21258         lang_hooks.types_compatible_p instead of comptypes.
21259
21260 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21261
21262         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
21263         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
21264         if __prefer_thumb__ is defined.
21265
21266 2010-02-18  Martin Jambor  <mjambor@suse.cz>
21267
21268         PR tree-optimization/43066
21269         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
21270         array with zero-sized element type.
21271
21272 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
21273
21274         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
21275         rtx, allocate struct var_loc_node here and return it to the
21276         caller, and only if it is actually needed.
21277         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
21278         move it earlier and return immediately if it returns NULL.
21279
21280 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
21281
21282         * config/sparc/gas.h: New file.  Restore
21283         TARGET_ASM_NAMED_SECTION to its ELF default.
21284         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
21285         check !HAVE_GNU_AS.
21286         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21287         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
21288         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
21289         after sparc/sysv4.h.
21290
21291 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
21292
21293         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
21294
21295 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
21296
21297         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
21298         patterns from predicated pattern.
21299
21300 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
21301
21302         PR target/43103
21303         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
21304         for insn mnemonic suffix.
21305
21306 2010-02-17  Richard Guenther  <rguenther@suse.de>
21307
21308         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
21309         to loop PHI nodes.
21310
21311 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
21312
21313         PR debug/42918
21314         * caller-save.c (save_call_clobbered_regs): If BB ends with
21315         a DEBUG_INSN, move any notes in between last real insn and the last
21316         DEBUG_INSN after the last DEBUG_INSN.
21317
21318 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
21319
21320         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
21321         Fix return type.  Fix argument type.  Explain meaning of return value.
21322
21323 2010-02-16  Richard Guenther  <rguenther@suse.de>
21324
21325         PR tree-optimization/41043
21326         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
21327         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
21328         statements ...
21329         (vrp_visit_phi_node): ... but only for loop PHI nodes.
21330
21331 2010-02-16  Ira Rosen  <irar@il.ibm.com>
21332
21333         PR tree-optimization/43074
21334         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
21335         * tree-vect-loop.c (vect_analyze_loop_operations): Add
21336         vectorizable cycles in hybrid SLP check.
21337         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
21338
21339 2010-02-16  Richard Guenther  <rguenther@suse.de>
21340
21341         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
21342         (true_dependence): If memrefs_conflict_p computes must-alias
21343         trust it.  Move TBAA check after offset-based disambiguation.
21344         (canon_true_dependence): Likewise.
21345
21346 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
21347
21348         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
21349         * doc/invoke.texi: Document it.
21350         * var-tracking.c: Include toplev.h and params.h.
21351         (vt_find_locations): Return bool indicating success.  Compute
21352         hash sizes unconditionally.  Check new parameter, report.
21353         (variable_tracking_main_1): Check vt_find_locations results and
21354         retry.  Renamed from...
21355         (variable_tracking_main): ... this.  New wrapper to preserve
21356         flag_var_tracking_assignments.
21357         * Makefile.in (var-tracking.o): Adjust dependencies.
21358
21359 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
21360             Jakub Jelinek  <jakub@redhat.com>
21361
21362         PR target/42854
21363         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
21364         if weak_import attribute is present.
21365         * config/darwin.c (machopic_select_section): Likewise.
21366
21367 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
21368
21369         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
21370         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
21371         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
21372         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
21373
21374         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
21375         types.
21376
21377         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21378         Fix argument types.
21379
21380         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21381         Rewrite text to refer to the names.
21382
21383 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21384
21385         * config/i386/i386-builtin-types.def
21386         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21387         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21388         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21389         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21390         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21391         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21392         IX86_BUILTIN_VPERMIL2PS256.
21393         (MULTI_ARG_4_DF2_DI_I): Defined.
21394         (MULTI_ARG_4_DF2_DI_I1): Defined.
21395         (MULTI_ARG_4_SF2_SI_I): Defined.
21396         (MULTI_ARG_4_SF2_SI_I1): Defined.
21397         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21398         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21399         __builtin_ia32_vpermil2ps256.
21400         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21401         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21402         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21403         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21404         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21405         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21406         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21407         CODE_FOR_xop_vpermil2v8sf3.
21408         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21409         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21410         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21411         (_mm256_permute2_pd): New.
21412         (_mm_permute2_ps): New.
21413         (_mm256_permute2_ps): New.
21414
21415 2010-02-15  Nick Clifton  <nickc@redhat.com>
21416
21417         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21418         boolean parameters.  Use emit_jump_insn when emitting a pop
21419         instruction containing a return insn.
21420         (push): Use 'true' rather than '1' as second parameter to F.
21421         (h8300_expand_prologue): Likewise.
21422         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21423         (h8300_expand_epilogue): Likewise.
21424
21425 2010-02-15  Richard Guenther  <rguenther@suse.de>
21426
21427         PR middle-end/43068
21428         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21429         if that is zero.
21430
21431 2010-02-15  Nick Clifton  <nickc@redhat.com>
21432
21433         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21434         delta.
21435
21436 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21437
21438         * intl.c (fake_ngettext): New function.
21439         * intl.h (fake_ngettext): Declare.
21440         (ngettext): Define macro.
21441         * collect2.c (notice_translated): New function.
21442         (main): Use notice_translated and ngettext.
21443         * collect2.h (notice_translated): Declare.
21444
21445 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21446
21447         * reorg.c (delete_computation): Comment fixes.
21448         * caller-save.c (setup_save_areas): Idem.
21449         * sel-sched-dump.c (dump_lv_set): Idem.
21450         * rtl.def: Idem.
21451
21452 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21453
21454         * config/s390/s390.c (s390_sched_init): New function.
21455         (TARGET_SCHED_INIT): Target hook defined.
21456
21457 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21458             Jack Howarth  <howarth@bromo.med.uc.edu>
21459             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
21460
21461         PR target/42982
21462         Partial revert of unintended change in fix for PR41605.
21463         * config/darwin.h: Fix typo.
21464         * config/darwin9.h: Same.
21465
21466 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21467
21468         * c-pch.c (pch_init): Clear v.
21469
21470 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21471
21472         PR middle-end/42930
21473         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21474         graphite_can_represent_init for MULT_EXPR.
21475
21476 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21477
21478         PR middle-end/42914
21479         PR middle-end/42530
21480         * graphite-sese-to-poly.c (remove_phi): New.
21481         (translate_scalar_reduction_to_array): Call remove_phi.
21482
21483 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21484
21485         PR middle-end/42771
21486         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21487         * graphite-clast-to-gimple.h (gloog): Update declaration.
21488         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21489         * graphite-poly.h (struct poly_bb): Add missing comments.
21490         (struct scop): Add poly_scop_p field.
21491         (POLY_SCOP_P): New.
21492         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21493         * graphite.c (graphite_transform_loops): Build the polyhedral
21494         representation for each scop before code generation.
21495         * sese.c (rename_variables_in_operand): Removed.
21496         (rename_variables_in_expr): Return the renamed expression.
21497         (rename_sese_parameters): New.
21498         * sese.h (rename_sese_parameters): Declared.
21499
21500 2010-02-11  Richard Guenther  <rguenther@suse.de>
21501
21502         PR tree-optimization/42998
21503         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21504         POINTER_PLUS_EXPR properly.
21505
21506 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21507             Changpeng Fang  <changpeng.fang@amd.com>
21508
21509         PR middle-end/40886
21510         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21511         the cost of an IV candidate when the IV is used in a test against zero.
21512
21513         * gcc.dg/tree-ssa/ivopts-3.c: New.
21514
21515 2010-02-11  Richard Guenther  <rguenther@suse.de>
21516
21517         PR lto/41664
21518         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21519         pointer-vs-decl case by swapping refs.  Handle some cases
21520         of pointer-vs-decl disambiguations more conservatively.
21521         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21522         to false after expanding.
21523
21524 2010-02-11  Richard Guenther  <rguenther@suse.de>
21525
21526         PR driver/43021
21527         * gcc.c (process_command): Handle LTO file@offset case more
21528         appropriately.
21529
21530 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21531
21532         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21533         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21534         of DEBUG_INSNs.
21535         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21536
21537         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21538         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21539         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21540         Optimize eq/ne comparisons when both arguments are known to be
21541         zero-extended.
21542         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21543         Don't mask operands unnecessarily if they are known to be already
21544         zero-extended.
21545
21546 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21547
21548         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21549         instead of loop.
21550
21551 2010-02-10  Richard Guenther  <rguenther@suse.de>
21552
21553         PR tree-optimization/43017
21554         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21555         for wrapping signed arithmetic.
21556
21557 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21558
21559         PR debug/43010
21560         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21561         if no debug info should be emitted for it.
21562
21563 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21564
21565         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21566         note when flag_exceptions is set.
21567
21568 2010-02-10  Duncan Sands  <baldrick@free.fr>
21569
21570         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21571
21572 2010-02-10  Richard Guenther  <rguenther@suse.de>
21573
21574         PR c/43007
21575         * tree.c (get_unwidened): Handle constants.
21576         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21577
21578 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21579
21580         PR lto/42985
21581         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21582         check for variable argument counts independently.
21583
21584 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21585
21586         PR target/42841
21587         * config/sh/sh.c (find_barrier): Increase length for non delayed
21588         conditional branches.
21589
21590 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21591
21592         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21593
21594 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21595
21596         * builtins.c (set_builtin_user_assembler_name): Also handle
21597         ffs if int is smaller than word.
21598
21599 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21600
21601         PR middle-end/42973
21602         * ira-conflicts.c (get_dup): Remove.
21603         (process_reg_shuffles): Add new parameter.  Use it as an
21604         additional guard for copy generation.
21605         (add_insn_allocno_copies): Rewrite.
21606
21607 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21608
21609         * common.opt (fsched2-use-traces): Preserved for backward
21610         compatibility.
21611         * doc/invoke.texi: Remove the documentation about option
21612         -fsched2-use-traces.
21613         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21614         flag_sched2_use_traces.
21615         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21616         the backward compatibility flag section.
21617
21618 2010-02-09  Richard Guenther  <rguenther@suse.de>
21619
21620         PR tree-optimization/43008
21621         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21622         make HEAP variables initialized from global memory if they
21623         are not known builtin functions.
21624         (find_func_aliases): Adjust.
21625
21626 2010-02-09  Richard Guenther  <rguenther@suse.de>
21627
21628         PR tree-optimization/43000
21629         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21630         arithmetic manually.
21631
21632 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21633
21634         PR tree-optimization/42931
21635         * tree-loop-linear.c (try_interchange_loops): Don't call
21636         double_int_mul if estimated_loop_iterations failed.
21637
21638 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21639
21640         PR middle-end/42898
21641         * tree-sra.c (build_accesses_from_assign): Do not mark in
21642         should_scalarize_away_bitmap if stmt has volatile ops.
21643         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21644         has volatile ops.
21645
21646 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21647
21648         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21649
21650 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21651
21652         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21653         before the pattern.
21654
21655 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21656
21657         PR middle-end/42946
21658         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21659
21660 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21661
21662         PR middle-end/42988
21663         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21664         to unknown_dependence.
21665         (graphite_legal_transform_dr): Handle the unknown_dependence.
21666         (graphite_carried_dependence_level_k): Same.
21667
21668 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21669
21670         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21671
21672 2010-02-07  Richard Guenther  <rguenther@suse.de>
21673
21674         PR middle-end/42991
21675         * expr.c (get_inner_reference): Always initialize *pbitsize.
21676
21677 2010-02-07  Richard Guenther  <rguenther@suse.de>
21678
21679         PR middle-end/42956
21680         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21681         new ARRAY_REFs on variable size element or minimal index arrays.
21682         Complete.
21683         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21684         gimple_fold_indirect_ref.
21685
21686 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21687
21688         PR target/42957
21689         * arm.c (arm_override_options): Just return if the user has specified
21690         an invalid fpu name.
21691
21692 2010-02-03  Jason Merrill  <jason@redhat.com>
21693
21694         PR c++/42870
21695         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21696         i386_pe_maybe_record_exported_symbol.
21697
21698 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21699
21700         PR target/42924
21701         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21702         (pa_delegitimize_address): New function.
21703
21704 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21705
21706         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21707         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21708
21709 2010-02-05  Richard Guenther  <rguenther@suse.de>
21710
21711         PR lto/42762
21712         * lto-streamer-in.c (get_resolution): Deal with references
21713         to undefined functions.
21714
21715 2010-02-05  Richard Guenther  <rguenther@suse.de>
21716
21717         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21718         (fold_const_aggregate_ref): Likewise.
21719         (ccp_fold_stmt): Substitute loads.
21720         (maybe_fold_reference): Verify types before substituting.
21721         Unshare properly.
21722         (fold_gimple_assign): Unshare properly.
21723         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21724
21725 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21726
21727         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21728         for rs6000_gen_cell_microcode.
21729
21730 2010-02-04  Richard Guenther  <rguenther@suse.de>
21731
21732         PR rtl-optimization/42952
21733         * dse.c (const_or_frame_p): Remove MEM handling.
21734
21735 2010-02-04  Nick Clifton  <nickc@redhat.com>
21736
21737         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21738         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21739         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21740         (mn10300_asm_output_mi_thunk): New function.
21741         (mn10300_can_output_mu_thunk): New function.
21742         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21743         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21744         (FUNCTION_ARG): Delete incorrect comment.
21745
21746 2010-02-03  Jason Merrill  <jason@redhat.com>
21747
21748         PR c++/40138
21749         * fold-const.c (operand_equal_p): Handle erroneous types.
21750
21751 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21752
21753         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21754
21755 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21756
21757         PR rtl-optimization/42941
21758         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21759         of xmalloc.
21760
21761 2010-02-03  Jason Merrill  <jason@redhat.com>
21762
21763         PR c++/35652
21764         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21765
21766 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21767
21768         PR debug/42896
21769         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21770         (cselib_reset_table): Renamed from...
21771         (cselib_reset_table_with_next_value): ... this.
21772         (cselib_get_next_uid): Renamed from...
21773         (cselib_get_next_unknown_value): ... this.
21774         * cselib.c (next_uid): Renamed from...
21775         (next_unknown_value): ... this.
21776         (cselib_clear_table): Adjust.
21777         (cselib_reset_table): Adjust.  Renamed from...
21778         (cselib_reset_table_with_next_value): ... this.
21779         (cselib_get_next_uid): Adjust.  Renamed from...
21780         (cselib_get_next_unknown_value): ... this.
21781         (get_value_hash): Use hash.
21782         (cselib_hash_rtx): Likewise.
21783         (new_cselib_val): Adjust.  Set and dump uid.
21784         (cselib_lookup_mem): Pass next_uid as hash.
21785         (cselib_subst_to_values): Likewise.
21786         (cselib_log_lookup): Dump uid.
21787         (cselib_lookup): Pass next_uid as hash.  Adjust.
21788         (cselib_process_insn): Adjust.
21789         (cselib_init): Initialize next_uid.
21790         (cselib_finish): Adjust.
21791         (dump_cselib_table): Likewise.
21792         * dse.c (canon_address): Dump value uid.
21793         * print-rtl.c (print_rtx): Print value uid.
21794         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21795         (dvuid): New type.
21796         (dv_uid): New function, sort of renamed from...
21797         (dv_htab_hash): ... this, reimplemented in terms of it and...
21798         (dv_uid2hash): ... this.  New.
21799         (variable_htab_eq): Drop excess assertions.
21800         (tie_break_pointers): Removed.
21801         (canon_value_cmp): Compare uids.
21802         (variable_post_merge_New_vals): Print uids.
21803         (vt_add_function_parameters): Adjust.
21804         (vt_initialize): Reset table.  Adjust.
21805
21806 2010-02-03  Richard Guenther  <rguenther@suse.de>
21807
21808         PR tree-optimization/42944
21809         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21810         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21811         malloc and calloc clobbering errno.
21812
21813 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21814
21815         * doc/invoke.texi: Fix name of sched1 dump.
21816
21817         * opts.c (decode_options): Set flag_tree_switch_conversion
21818         only conditionally on optimize >= 2.
21819
21820         * gcse.c: Assorted comment fixes in pass description.
21821
21822 2010-02-03  Anthony Green  <green@moxielogic.com>
21823
21824         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21825         nop padding in order to maintain alignment of storage location of
21826         target function address.
21827         (moxie_trampoline_init): Store target function address at newly
21828         aligned location.
21829         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21830         to 32.
21831         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21832
21833 2010-02-03  Richard Guenther  <rguenther@suse.de>
21834
21835         PR middle-end/42927
21836         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21837
21838 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21839
21840         * config.gcc: Reenable check for obsolete targets.
21841         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21842         mips-sgi-irix6.[0-4]*.
21843
21844 2010-02-02  Nick Clifton  <nickc@redhat.com>
21845
21846         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21847         constant size of 4 as being the same as 0.
21848         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21849         can take values in the range 0..4.
21850
21851 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21852
21853         PR java/41991
21854         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21855         as _darwin10_Unwind_FindEnclosingFunction().
21856         * libgcc-libsystem.ver: New.
21857
21858 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21859
21860         PR target/41399
21861         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21862         implicitly set registers.
21863
21864 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21865
21866         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21867         (arm_override_options): Allow automatic selection of the thread
21868         pointer register if thumb2.
21869         (legitimize_pic_address): Improve code sequences for Thumb2.
21870         (arm_call_tls_get_addr): Likewise.
21871         (legitimize_tls_address): Likewise.
21872         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21873         (pic_load_addr_32bit): ... this.  New named pattern.
21874         * thumb2.md (pic_load_addr_thumb2): Delete.
21875         (pic_load_dot_plus_four): Delete.
21876         (tls_load_dot_plus_four): New named pattern.
21877
21878 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21879
21880         PR libgomp/29986
21881         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21882         Document fix for TLS bug.
21883
21884 2010-01-31  Richard Guenther  <rguenther@suse.de>
21885
21886         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21887         conservatively correct.
21888
21889 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21890
21891         PR target/42850
21892         Revert:
21893         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21894
21895         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21896
21897 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21898
21899         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21900
21901 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21902
21903         * config.gcc: Adjust order of makefile fragments for mingw targets.
21904
21905 2010-01-31  Richard Guenther  <rguenther@suse.de>
21906
21907         PR middle-end/42898
21908         * gimplify.c (gimplify_init_constructor): For volatile LHS
21909         initialize a temporary.
21910
21911 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21912
21913         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21914         --with-headers
21915         * configure: Regenerate.
21916
21917 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21918
21919         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21920         the same alias set and their sizes different constantness.
21921         (aliasing_component_refs_p): Revert 2009-10-24 change.
21922
21923 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21924
21925         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21926         unused.
21927
21928 2010-01-29  Richard Guenther  <rguenther@suse.de>
21929
21930         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21931         Assert we successfully updated the call.
21932
21933 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21934
21935         PR rtl-optimization/42889
21936         * df.h (df_set_bb_dirty_nonlr): New prototype.
21937         * df-core.c (df_set_bb_dirty_nonlr): New function.
21938         * df-scan.c (df_insn_rescan): Call it instead of
21939         df_set_bb_dirty for DEBUG_INSNs.
21940
21941 2010-01-29  Richard Guenther  <rguenther@suse.de>
21942
21943         PR middle-end/37448
21944         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21945         quadratic behavior in most cases.
21946
21947 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21948
21949         PR target/42891
21950         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21951         in the call to gen_x86_movsicc_0_m1.
21952
21953 2010-01-28  Richard Guenther  <rguenther@suse.de>
21954
21955         PR tree-optimization/42871
21956         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21957
21958 2010-01-28  Richard Guenther  <rguenther@suse.de>
21959
21960         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21961         into call arguments.
21962
21963 2010-01-28  Richard Guenther  <rguenther@suse.de>
21964
21965         PR middle-end/42883
21966         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21967         the forwarder if the destination is an EH landing pad.
21968
21969 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21970
21971         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21972         block list passed to gimple_duplicate_sese_tail.
21973         (parallelize_loops): Avoid parallelization when the function
21974         has_nonlocal_label.
21975         Avoid parallelization when the preheader is IRREDUCIBLE.
21976         Try to optimize when estimated_loop_iterations_int is unresolved.
21977         Add the loop's location to the dump file.
21978         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21979         (gimple_duplicate_sese_tail): Remove the check for the latch.
21980         Redirect nexits to the exit block.
21981         Remove handling of the incoming edges to the latch.
21982         Redirect the backedge from the copied latch to the exit bb.
21983
21984 2010-01-28  Michael Matz  <matz@suse.de>
21985
21986         PR target/42881
21987         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21988         Wrap force_reg into a sequence, emit it before user.
21989
21990 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21991
21992         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21993         (arm_rev): New.
21994         (arm_legacy_rev): Likewise.
21995         (thumb_legacy_rev): Likewise.
21996
21997 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21998
21999         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
22000         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
22001         on MEM's address failed, try avoid_constant_pool_reference and
22002         recurse if it returned something different.
22003         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
22004         address, try avoid_constant_pool_reference and recurse if it
22005         returned something different.
22006         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
22007         address and avoid_constant_pool_reference returned something
22008         different, don't set have_address.
22009
22010 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
22011
22012         PR debug/42861
22013         * var-tracking.c (val_store): Add modified argument, obey it.
22014         Adjust callers.
22015         (count_uses): Move down logging of main.
22016         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
22017         don't need resolution.
22018         (emit_notes_in_bb): Likewise.
22019
22020 2010-01-27  Richard Guenther  <rguenther@suse.de>
22021
22022         PR middle-end/42878
22023         * tree-inline.c (remap_decl): Delay remapping of SSA name
22024         default definitions until we need them.
22025
22026 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
22027
22028         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
22029         (rs6000_delegitimize_address): New function.
22030
22031         * config/s390/s390.c (s390_delegitimize_address): Call
22032         delegitimize_mem_from_attrs.
22033
22034         PR middle-end/42874
22035         * tree-inline.c (cannot_copy_type_1): Removed.
22036         (copy_forbidden): Don't forbid copying of functions containing
22037         records/unions with variable length fields.
22038
22039 2010-01-27  Christian Bruel  <christian.bruel@st.com>
22040
22041         Revert:
22042         PR target/42841
22043         * config/sh/sh.c (find_barrier): Increase length for non delayed
22044         conditional branches.
22045
22046 2010-01-27  Matthias Klose  <doko@ubuntu.com>
22047
22048         * configure.ac (gnu-unique-object): Fix ldd version check.
22049         * configure: Regenerate.
22050
22051 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22052
22053         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
22054         HAVE_GNU_AS value.
22055         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
22056         Test for HAVE_GNU_AS value.
22057
22058 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22059
22060         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
22061         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
22062         INT64_TYPE): Define.
22063         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
22064         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
22065         INT_LEAST64_TYPE): Define.
22066         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
22067         UINT_LEAST64_TYPE): Define.
22068         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
22069         INT_FAST64_TYPE): Define.
22070         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
22071         UINT_FAST64_TYPE): Define.
22072         (INTMAX_TYPE, UINTMAX_TYPE): Define.
22073         (INTPTR_TYPE, UINTPTR_TYPE): Define.
22074         (SIG_ATOMIC_TYPE): Define.
22075
22076 2010-01-26  Richard Guenther  <rguenther@suse.de>
22077
22078         * df-scan.c (df_scan_set_bb_info): Remove assert.
22079         (df_insn_rescan_debug_internal): Merge asserts.
22080         (df_install_ref): Likewise.
22081         (df_mark_reg): Use bitmap_set_range.
22082         (df_hard_reg_used_p): Remove assert.
22083         (df_hard_reg_used_count): Likewise.
22084
22085 2010-01-26  Richard Guenther  <rguenther@suse.de>
22086
22087         PR rtl-optimization/42685
22088         * web.c (web_main): Ignore DEBUG_INSNs.
22089
22090 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
22091
22092         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
22093
22094         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
22095         Fix types of fndecl and arglist parameters.
22096
22097 2010-01-26  Richard Guenther  <rguenther@suse.de>
22098
22099         PR middle-end/42806
22100         * tree-eh.c (unsplit_eh): Skip debug insns.
22101
22102 2010-01-26  Richard Guenther  <rguenther@suse.de>
22103
22104         PR tree-optimization/42250
22105         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
22106
22107 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
22108
22109         PR fortran/42866
22110         * omp-low.c (expand_omp_sections): Only use single_pred if
22111         l2_bb is single_pred_p.
22112
22113 2010-01-25  Christian Bruel  <christian.bruel@st.com>
22114
22115         PR target/42841
22116         * config/sh/sh.c (find_barrier): Increase length for non delayed
22117         conditional branches.
22118         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
22119
22120 2010-01-24  David S. Miller  <davem@davemloft.net>
22121
22122         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
22123         define if not using GAS.
22124         * config/sparc/sparc.c (sparc_elf_asm_named_section):
22125         Likewise.  Delete SECTION_MERGE code, which is only applicable
22126         when using GAS.
22127
22128 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
22129
22130         PR c++/42748
22131         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
22132         mangling of va_list in system headers.
22133
22134 2010-01-23  Toon Moene  <toon@moene.org>
22135
22136         * tree-predcom.c (combine_chains): Return NULL, not false.
22137
22138 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
22139
22140         * tree-loop-distribution.c (distribute_loop): Fix declaration and
22141         initialization of variable res to agree with return type.
22142
22143 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
22144
22145         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
22146         * tree-sra.c: Add include of expr.h.
22147
22148 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
22149
22150         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
22151         insert the debug stmt on the single non-EH edge from the stmt.
22152
22153 2010-01-22  Richard Henderson  <rth@redhat.com>
22154
22155         PR tree-opt/42833
22156         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
22157         the RHS until after generate_subtree_copies has insertted its
22158         code before the current statement.
22159
22160 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
22161
22162         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
22163
22164         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
22165
22166 2010-01-21  Martin Jambor  <mjambor@suse.cz>
22167
22168         PR tree-optimization/42585
22169         * tree-sra.c (struct access): New field grp_total_scalarization.
22170         (dump_access): Dump the new field.
22171         (should_scalarize_away_bitmap): New variable.
22172         (cannot_scalarize_away_bitmap): Likewise.
22173         (sra_initialize): Allocate new bitmaps.
22174         (sra_deinitialize): Free new bitmaps.
22175         (create_access_1): New function.
22176         (create_access): Parts moved to create_access_1.
22177         (type_consists_of_records_p): New function.
22178         (completely_scalarize_record): Likewise.
22179         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
22180         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
22181         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
22182         access.
22183         (analyze_all_variable_accesses): Completely scalarize small eligible
22184         records.
22185
22186 2010-01-21  Martin Jambor  <mjambor@suse.cz>
22187
22188         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
22189
22190 2010-01-21  Andrew Haley  <aph@redhat.com>
22191
22192         * gcc.c (process_command): Move lang_specific_driver before
22193         setting cc_libexec_prefix.
22194
22195 2010-01-21  Richard Guenther  <rguenther@suse.de>
22196
22197         PR middle-end/19988
22198         * fold-const.c (negate_expr_p): Pretend only negative
22199         real constants are easily negatable.
22200
22201 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
22202             Jason Merrill  <jason@redhat.com>
22203
22204         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
22205         (TYPE_TRANSPARENT_AGGR): this, for union and record.
22206         * calls.c (initialize argument_information): Handle it.
22207         * c-common.c (handle_transparent_union_attribute): Use new name.
22208         * c-decl.c (finish_struct): Ditto.
22209         * c-typeck.c (type_lists_compatible_p): Ditto.
22210         (convert_for_assignment): Use new name and also handle record.
22211         * function.c (aggregate_value_p): Handle it.
22212         (pass_by_reference): Ditto.
22213         (assign_parm_data_types): Ditto.
22214         * print-tree.c (print_node): Ditto.
22215         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
22216         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
22217         * tree.c (first_field): New fn.
22218
22219 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
22220
22221         PR target/42818
22222         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
22223         even when linking statically, for now.
22224
22225 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
22226
22227         PR debug/42715
22228         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
22229         without a cselib val.
22230         (count_uses): Accept MO_VAL_SET with no val on stores.
22231         (add_stores): Likewise.
22232
22233 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22234
22235         * var-tracking.c (check_value_val): Add a compile time assertion.
22236         (dv_is_decl_p): Simplify.
22237         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
22238         gcc_assert if ENABLE_CHECKING.
22239
22240 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
22241
22242         PR debug/42782
22243         * var-tracking.c: Include tree-flow.h.
22244         (mem_dies_at_call): New.
22245         (dataflow_set_preserve_mem_locs): Use it.
22246         (dataflow_set_remove_mem_locs): Likewise.
22247         (dump_var): Renamed from dump_variable.  Adjust all callers.
22248         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
22249         * Makefile.in (var-tracking.o): Adjust deps.
22250
22251 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
22252
22253         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
22254
22255 2010-01-20  Richard Guenther  <rguenther@suse.de>
22256
22257         PR tree-optimization/42717
22258         * tree-ssa-dce.c (get_live_post_dom): Remove.
22259         (forward_edge_to_pdom): Take an arbitrary edge to copy
22260         degenerate PHI args from.
22261         (remove_dead_stmt): Use the first post-dominator even if it
22262         does not contain live statements as redirection destination.
22263
22264 2010-01-20  Richard Guenther  <rguenther@suse.de>
22265
22266         * tree-inline.c (estimate_num_insns): Handle EH builtins.
22267
22268 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22269
22270         * sel-sched.c (create_speculation_check): Remove set but not used
22271         variable twin.
22272         (try_transformation_cache): Remove set but not used variable ds.
22273         (calculate_privileged_insns): Remove set but not used variables
22274         cur_insn and min_spec_insn.
22275         (find_best_expr): Remove set but not used variable avail_n.
22276         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
22277         variable e.
22278         * cgraphunit.c (assemble_thunk): Remove set but not used variable
22279         false_label.
22280         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
22281         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
22282         new_scop_exit_edge.
22283
22284 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
22285
22286         PR bootstrap/42786
22287         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
22288         cpu types.  Add support for *-sse3 cpu types.
22289         (x86_64-*-*): Ditto.
22290
22291 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22292
22293         PR middle-end/42803
22294         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
22295         argument, call initializer_constant_valid_p_1 instead of
22296         initializer_constant_valid_p, pass CACHE to it, return NULL
22297         immediately if first call returns NULL.
22298         (initializer_constant_valid_p_1): New function.
22299         (initializer_constant_valid_p): Use it.
22300
22301 2010-01-20  Thomas Quinot  <quinot@adacore.com>
22302
22303         * tree.def (PLACEHOLDER_EXPR): Fix comment.
22304
22305 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22306
22307         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
22308         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
22309         (loc_list_from_tree): Don't handle unsigned division.  Handle
22310         signed modulo using DW_OP_{over,over,div,mul,minus}.
22311         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
22312         modulo instead of signed.
22313
22314 2010-01-20  DJ Delorie  <dj@redhat.com>
22315
22316         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
22317         (Fpa): Pass it
22318         (h8300_emit_stack_adjustment): Propogate it.
22319         (push): Pass it.
22320         (h8300_expand_prologue): Likewise.
22321         (h8300_expand_epilogue): Likewise.
22322
22323 2010-01-19  Michael Matz  <matz@suse.de>
22324
22325         PR tree-optimization/41783
22326         * tree-data-ref.c (toplevel): Include flags.h.
22327         (dump_data_dependence_relation):  Also dump the inputs if the
22328         result will be unknown.
22329         (split_constant_offset_1): Look through some conversions.
22330         * tree-predcom.c (determine_roots_comp): Restart a new chain if
22331         the offset from last element is too large.
22332         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
22333         (reassociate_to_the_same_stmt): Handle vector registers.
22334         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
22335         (e.g. conversions).
22336         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
22337         wide_prolog_niters argument, emit widening instructions.
22338         (vect_do_peeling_for_alignment): Adjust caller, use widened
22339         variant of the iteration cound.
22340         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
22341
22342 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22343
22344         PR target/38697
22345         * config/arm/neon-testgen.m (emit_automatics): New parameter
22346         features. Adjust for Fixed_return_reg feature.
22347         (test_intrinsic): Call emit_automatics with new feature.
22348         * config/arm/neon.ml: Update copyright years.
22349         (features): New Fixed_return_reg feature.
22350         (ops): Update feature for Vget_low.
22351
22352 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
22353
22354         PR tree-optimization/42719
22355         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
22356         stmt uses.
22357
22358         PR debug/42728
22359         * fwprop.c (all_uses_available_at): Return false if def_set dest
22360         is a REG that is used in def_insn.
22361
22362 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
22363
22364         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
22365
22366         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
22367         Add argument names.
22368
22369         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
22370
22371         * target.h (struct gcc_target) <secondary_reload>: Change type
22372         of last argument to secondary_reload_info *.
22373
22374 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
22375
22376         PR target/42774
22377         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22378         memory references with unaligned offsets.  Remove CQImode handling.
22379         (unaligned_memory_operand): Return 1 for memory references with
22380         unaligned offsets.  Remove CQImode handling.
22381
22382 2010-01-18  Richard Guenther  <rguenther@suse.de>
22383
22384         PR middle-end/39954
22385         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22386         builtin calls.
22387
22388 2010-01-18  Richard Guenther  <rguenther@suse.de>
22389
22390         PR tree-optimization/42781
22391         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22392         restrict processing only if the original variable was artificial.
22393
22394 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22395
22396         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22397         find number of popped argument bytes.
22398
22399         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22400         Fix the text that describes the return value for invalid insns.
22401
22402         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22403
22404         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22405         Clarify what 'cost of the -dependence' is.  Fix quoting.
22406
22407         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22408         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22409
22410 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22411
22412         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22413         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22414
22415 2010-01-17  Richard Guenther  <rguenther@suse.de>
22416
22417         PR middle-end/42248
22418         * function.c (split_complex_args): Take a VEC to modify.
22419         (assign_parms_augmented_arg_list): Build a VEC instead of
22420         a chain of PARM_DECLs.
22421         (assign_parms_unsplit_complex): Take a VEC of arguments.
22422         Do not fixup unmodified parms.
22423         (assign_parms): Deal with the VEC.
22424         (gimplify_parameters): Likewise.
22425
22426 2010-01-17  Richard Guenther  <rguenther@suse.de>
22427
22428         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22429         node existence check.
22430         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22431         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22432         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22433         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22434         (gimple_execute_on_growing_pred): Likewise.
22435
22436 2010-01-17  Richard Guenther  <rguenther@suse.de>
22437
22438         PR tree-optimization/42773
22439         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22440         (compute_antic_aux): Likewise.
22441         (compute_partial_antic_aux): Likewise.
22442
22443 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22444
22445         PR debug/42767
22446         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22447         and US_TRUNCATE.
22448
22449 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22450
22451         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22452         appearance.
22453
22454         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22455         Fix markup for strict argument.
22456
22457         (TARGET_SCHED_REORDER2): Fix argument types.
22458
22459         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22460         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22461
22462         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22463         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22464
22465         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22466         Add argument name.
22467
22468         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22469         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22470         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22471         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22472         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22473
22474         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22475
22476         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22477
22478         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22479         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22480
22481         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22482
22483         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22484         Use prototype.
22485
22486         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22487
22488         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22489         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22490
22491         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22492
22493         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22494
22495         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22496         referring to it.  Fix language.
22497
22498         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22499
22500         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22501
22502         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22503
22504         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22505
22506         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22507         '@var{stream}.  Remove stray 'and'.
22508
22509         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22510
22511         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22512
22513         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22514
22515         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22516         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22517
22518         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22519         Fix description of return value.
22520         Rename argument "sz" to "len."
22521
22522         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22523         Clarify meaning of 'true' return value.
22524
22525         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22526
22527         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22528         rep_mode versus mode_rep.
22529
22530         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22531
22532         (TARGET_BUILTIN_DECL): Fix name.
22533
22534         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22535
22536         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22537
22538         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22539
22540         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22541
22542         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22543
22544         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22545         Clarify language.
22546
22547         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22548         Rename argument tm_fn to md_fn.
22549
22550         (TARGET_OPTION_PRINT): Fix argument list.
22551
22552 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22553
22554         PR target/42664
22555         * config/i386/i386.c (ix86_fixup_binary_operands):
22556         Revert FMA4 fixup of operands.
22557
22558 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22559
22560         PR gcc/42525
22561         * Makefile.in (write_entries_to_file, install-plugin):
22562         Use \012 instead of \n with tr.
22563
22564 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22565
22566         * configure.ac (HAVE_AS_REF): New C macro.
22567         * configure: Regenerate.
22568         * config.in: Likewise.
22569         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22570         if HAVE_AS_REF.
22571         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22572         if HAVE_AS_REF.
22573
22574 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22575
22576         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22577
22578         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22579
22580         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22581
22582         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22583
22584         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22585
22586         (TARGET_BINDS_LOCAL_P): Fix argument type.
22587
22588         (TARGET_ASM_FILE_END): Use prototype.
22589
22590         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22591
22592         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22593
22594         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22595
22596         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22597
22598         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22599         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22600
22601         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22602         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22603
22604         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22605         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22606         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22607         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22608
22609         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22610
22611         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22612
22613         (TARGET_INIT_BUILTINS): Use prototype.
22614
22615         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22616         Put 'const char *' in braces.  Fix parameter types.
22617         (TARGET_INVALID_CONVERSION): Fix parameter types.
22618         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22619         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22620
22621         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22622         Fix argument type.
22623
22624         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22625
22626         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22627
22628 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22629
22630         * doc/tm.texi (TARGET_HELP): Fix return type.
22631
22632         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22633         in braces.  Fix argument types.
22634
22635         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22636
22637         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22638
22639         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22640
22641         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22642         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22643
22644         (TARGET_MANGLE_TYPE): Fix argument types.
22645
22646         (TARGET_IRA_COVER_CLASSES): Use prototype.
22647
22648         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22649
22650         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22651
22652         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22653
22654         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22655
22656         (TARGET_CALLEE_COPIES): Fix argument types.
22657
22658         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22659
22660         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22661
22662         (TARGET_FUNCTION_VALUE): Fix argument types.
22663
22664         (TARGET_RETURN_IN_MSB): Fix argument type.
22665
22666         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22667
22668         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22669
22670         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22671
22672         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22673         agree with return type.
22674
22675         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22676
22677 2010-01-15  Jing Yu  <jingyu@google.com>
22678
22679         PR rtl-optimization/42691
22680         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22681         a pseudo to a constant and are merged, and adjust comments.
22682
22683 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22684
22685         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22686
22687 2010-01-15  Richard Guenther  <rguenther@suse.de>
22688
22689         PR middle-end/42739
22690         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22691         labels of computed or non-local gotos to the destination.
22692         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22693         landing pad label is the first label.
22694
22695 2010-01-15  Richard Guenther  <rguenther@suse.de>
22696
22697         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22698
22699 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22700
22701         PR target/42747
22702         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22703         to allow generation of the xssqrtdp instruction on power7.
22704         (sqrtdf2_fpr): Ditto.
22705
22706 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22707
22708         PR middle-end/42674
22709         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22710         functions with noreturn attribute.
22711
22712         PR c++/42608
22713         * varasm.c (declare_weak): Add weak attribute to decl if it
22714         doesn't have one already.
22715         (assemble_external): Only add decls to weak_decls if they also
22716         have weak attribute.
22717
22718 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22719
22720         * var-tracking.c (var_reg_delete): Don't delete the association
22721         between REGs and values or one-part variables if the register
22722         isn't clobbered.
22723
22724 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22725
22726         PR debug/42657
22727         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22728         because its first operand is a non-localized variable.
22729
22730 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22731
22732         PR tree-optimization/42706
22733         * tree-sra.c (encountered_recursive_call): New variable.
22734         (encountered_unchangable_recursive_call): Likewise.
22735         (sra_initialize): Initialize both new variables.
22736         (callsite_has_enough_arguments_p): New function.
22737         (scan_function): Call decl and flags check only for IPA-SRA, check
22738         whether there is a recursive call and whether it has enough arguments.
22739         (all_callers_have_enough_arguments_p): New function.
22740         (convert_callers): Look for recursive calls only when
22741         encountered_recursive_call is set.
22742         (ipa_early_sra): Bail out either if
22743         !all_callers_have_enough_arguments_p or
22744         encountered_unchangable_recursive_call.
22745
22746 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22747
22748         * sel-sched.c: Add 2010 to copyright years.
22749         * sel-sched-ir.c: Likewise.
22750         * sel-sched-ir.h: Likewise.
22751
22752 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22753
22754         PR tree-optimization/42714
22755         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22756         constructors specially.
22757
22758 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22759
22760         * config/i386/drivers-i386.c (detect_caches_intel):
22761         Add l2sizekb parameter and fill in.
22762         (host_detect_local_cpu): Add l2sizekb, fill in.
22763         Add Atom small cache heuristic.
22764
22765 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22766
22767         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22768         Add level3 parameter and fill in.
22769         (detect_caches_intel): Handle level3 cache.
22770
22771 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22772
22773         * config/i386/drivers-i386.c (host_detect_local_cpu):
22774         Fix core duo detection.
22775
22776 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22777
22778         * config/i386/drivers-i386.c (host_detect_local_cpu):
22779         Fix Atom detection.
22780
22781 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22782
22783         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22784         (rs6000_variable_issue_1): this.  Use...
22785         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22786
22787 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22788
22789         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22790         sel_restore_notes.  Update all callers.  Call reemit_notes
22791         for all insns.
22792
22793 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22794
22795         PR rtl-optimization/42246
22796         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22797         loops.
22798
22799 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22800
22801         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22802         all successors is the same as number of successors in current region.
22803
22804 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22805
22806         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22807         to rename is not separable.  Otherwise check that its LHS is not NULL.
22808
22809 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22810
22811         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22812
22813 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22814
22815         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22816         available registers when failed to discover LHS register class.
22817         Fix indentation.  Update comment.
22818
22819 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22820             Alexander Monakov  <amonakov@ispras.ru>
22821
22822         PR rtl-optimization/42389
22823         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22824         to can_issue_more.
22825         (advance_state_on_fence): Likewise.
22826         (sel_target_adjust_priority): Print debug output only when
22827         sched_verbose >= 4, not 2.
22828         (get_expr_cost): Do not issue all unique insns on the next cycle.
22829         (fill_insns): Initialize can_issue_more from the value saved
22830         with the fence.
22831         * sel-sched-ir.c (flist_add): New parameter issue_more.
22832         Init FENCE_ISSUE_MORE with it.
22833         (merge_fences): Likewise.
22834         (init_fences): Update call to flist_add.
22835         (add_to_fences, add_clean_fence_to_fences)
22836         (add_dirty_fence_to_fences): Likewise.
22837         (move_fence_to_fences): Update call to merge_fences.
22838         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22839         sched groups.
22840         * sel-sched-ir.h (struct _fence): New field issue_more.
22841         (FENCE_ISSUE_MORE): New accessor macro.
22842
22843 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22844
22845         PR rtl-optimization/42388
22846         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22847         that have no predecessors nor successors.  Do not call move_bb_info
22848         for empty blocks outside of current region.
22849
22850 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22851
22852         PR rtl-optimization/42294
22853         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22854         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22855         originators' originators.
22856
22857 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22858
22859         PR rtl-optimization/39453
22860         PR rtl-optimization/42246
22861         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22862         for pipelining_p.
22863         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22864
22865 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22866             Alexander Monakov  <amonakov@ispras.ru>
22867
22868         PR middle-end/42245
22869         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22870         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22871         argument.  Update all callers.
22872         (tidy_control_flow): ... and here.  Recompute topological order
22873         of basic blocks in region if necessary.
22874         (sel_redirect_edge_and_branch): Change return type.  Return true
22875         if topological order might have been invalidated.
22876         (purge_empty_blocks): Export and move from...
22877         * sel-sched.c (purge_empty_blocks): ... here.
22878         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22879         (maybe_tidy_empty_bb): Delete prototype.
22880         (purge_empty_blocks): Declare.
22881
22882 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22883
22884         PR rtl-optimization/42249
22885         * sel-sched.c (try_replace_dest_reg): When chosen register
22886         and original register is the same, do not bail out early, but
22887         still check all original insns for validity of replacing destination
22888         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22889         in this case.
22890
22891 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22892
22893         PR c/42721
22894         Port from no-undefined-overflow branch:
22895         2009-03-09  Richard Guenther  <rguenther@suse.de>
22896
22897         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22898
22899 2010-01-14  Richard Guenther  <rguenther@suse.de>
22900
22901         PR lto/42665
22902         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22903
22904 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22905
22906         PR tree-optimization/42709
22907         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22908         as scalar type in creation of constant vector operand.
22909
22910 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22911
22912         PR testsuite/42414
22913         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22914         (check-parallel-%): Match `testsuite' directory component only
22915         at the end.
22916
22917 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22918
22919         PR translation/39521
22920         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22921         strings with _().
22922
22923 2010-01-13  Richard Guenther  <rguenther@suse.de>
22924
22925         PR tree-optimization/42730
22926         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22927         offset zero.
22928
22929 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22930
22931         PR target/pr42542
22932         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22933         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22934         them signed.
22935
22936 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22937
22938         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22939         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22940         ___umulsi3_highpart.
22941
22942         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22943         rather than schedule_insns if the pass is enabled.
22944
22945 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22946
22947         PR tree-optimization/42704
22948         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22949         SSA_NAMEs.
22950
22951 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22952
22953         PR tree-optimization/42703
22954         * tree-sra.c (analyze_access_subtree): Check that we can build a
22955         reference to the original data within the aggregate.
22956
22957 2010-01-13  Richard Guenther  <rguenther@suse.de>
22958
22959         PR tree-optimization/42705
22960         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22961
22962 2010-01-13  Richard Guenther  <rguenther@suse.de>
22963
22964         PR middle-end/42716
22965         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22966
22967 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22968
22969         PR debug/41371
22970         * var-tracking.c (values_to_unmark): New variable.
22971         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22972         values_to_unmark vector.  Moved body to...
22973         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22974         instead queue it into values_to_unmark vector.
22975         (vt_find_locations): Free values_to_unmark vector.
22976
22977 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22978
22979         * config/s390/s390.c (override_options): Set
22980         default of max-pending-list-length to 256
22981
22982 2010-01-13  Richard Guenther  <rguenther@suse.de>
22983
22984         PR lto/42678
22985         * tree-pass.h (PROP_gimple_lcx): New.
22986         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22987         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22988         before the final cleanup_eh.
22989         (dump_properties): Dump PROP_gimple_lcx.
22990         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22991         (tree_lower_complex_O0): Remove.
22992         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22993         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22994         tree_lower_complex, schedule TODO_update_ssa.
22995         * lto-streamer-out.c (output_function): Stream the functions
22996         properties.
22997         * lto-streamer-in.c (input_function): Likewise.
22998         (lto_read_body): Do not override them here.
22999
23000 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
23001
23002         PR c/42708
23003         * c-typeck.c (build_c_cast): Fold value cast to union type before
23004         wrapping it in a CONSTRUCTOR.
23005
23006 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
23007
23008         PR rtl-optimization/42699
23009         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
23010         involved.
23011
23012 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23013
23014         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
23015         SUBTARGET_WARN_UNUSED_SPEC): Move ...
23016         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
23017         SUBTARGET_WARN_UNUSED_SPEC): ... here
23018         * config/mips/iris5.h (LIBGCC_SPEC): Define.
23019
23020 2010-01-12  Julian Brown  <julian@codesourcery.com>
23021
23022         * config/arm/neon-schedgen.ml (Utils): Don't try to
23023         open missing module.
23024         (find_with_result): New.
23025
23026 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
23027
23028         PR debug/42662
23029         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
23030         sharing when canonicalizing ({lt,ge}u (plus a b) b).
23031
23032         PR tree-optimization/42645
23033         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
23034         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
23035         decl_map, set processing_debug_stmt to -1 and return name without
23036         any remapping.
23037
23038 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
23039
23040         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
23041         binutils version, and reword target configuration description.
23042
23043 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
23044
23045         * config/avr/avr.h (LINKER_NAME): Remove.
23046
23047 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
23048
23049         PR target/42416
23050         * config/rs6000/rs6000.c (rs6000_override_options): On targets
23051         that support VSX, warn for -mno-altivec if vsx is not disabled,
23052         and disable vsx.
23053
23054 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
23055             Shujing Zhao  <pearly.zhao@oracle.com>
23056
23057         PR translation/42469
23058         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
23059         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
23060         character between option name and help text.
23061         * c.opt (imultilib): Likewise.
23062
23063 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
23064
23065         * lto-streamer-out.c (output_unreferenced_globals): Output static
23066         variables.
23067
23068 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
23069
23070         PR rtl-optimization/42621
23071         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
23072         optimizing for size.
23073         (duplicate_computed_gotos): Remove now-redundant check.
23074
23075 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
23076
23077         PR target/37454
23078         * configure.ac: Save and restore LDFLAGS and LIBS
23079         * configure: Regenerate.
23080
23081 2010-01-10  Richard Guenther  <rguenther@suse.de>
23082
23083         PR middle-end/42667
23084         * builtins.c (fold_builtin_strlen): Add type argument and
23085         convert the resulting length to it.
23086         (fold_builtin_1): Adjust.
23087
23088 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
23089
23090         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
23091         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
23092         1 insn.
23093         (num_insns_constant_wide): Adjust for that change.
23094
23095 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23096
23097         PR debug/42631
23098         * web.c (union_defs): Add used argument, to combine uses of
23099         uninitialized regs.
23100         (entry_register): Adjust type and tests of used argument.
23101         (web_main): Widen used for new use.  Pass it to union_defs.
23102         * df.h (union_defs): Adjust prototype.
23103
23104 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23105
23106         PR debug/42630
23107         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
23108         uses in new incoming argument.  Free body.
23109         (reset_debug_uses_in_loop): New.
23110         (analyze_insn_to_expand_var): Call the latter if the former found
23111         anything.  Fix whitespace.  Reject invalid dest overlaps before
23112         going through all insns in the loop.
23113
23114 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23115
23116         PR debug/42629
23117         * haifa-sched.c (dying_use_p): Debug insns don't count.
23118
23119 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23120
23121         PR middle-end/42363
23122         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
23123         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
23124         (verify_gimple_call): Reject LHS in noreturn calls.
23125
23126 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23127
23128         PR debug/42604
23129         PR debug/42395
23130         * tree-vect-loop-manip.c (adjust_info): New type.
23131         (adjust_vec): New pointer to vector.
23132         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
23133         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
23134         (slpeel_update_phis_for_duplicate_loop): Use them.
23135         (slpeel_update_phi_nodes_for_guard1): Likewise.
23136         (slpeel_update_phi_nodes_for_guard2): Likewise.
23137         (slpeel_tree_peel_loop_to_edge): Likewise.
23138         (vect_update_ivs_after_vectorizer): Likewise.
23139
23140 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23141
23142         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
23143         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
23144
23145 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
23146
23147         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
23148         bogus uninitialized warning.
23149
23150 2010-01-09  Richard Guenther  <rguenther@suse.de>
23151
23152         PR middle-end/42512
23153         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
23154         the evolution is compatible with the initial condition.
23155
23156 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
23157
23158         * gcc.c (process_command): Update copyright notice dates.
23159         * gcov.c (print_version): Likewise.
23160         * gcov-dump.c (print_version): Likewise.
23161         * mips-tfile.c (main): Likewise.
23162         * mips-tdump.c (main): Likewise.
23163
23164 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
23165
23166         PR target/41885
23167         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
23168         (rotlhi3): Delete.
23169         (rotlhi3_8): Delete.
23170         (rotlsi3): Delete.
23171         (rotlsi3_8): Delete.
23172         (rotlsi3_16): Delete.
23173         (rotlsi3_24): Delete.
23174         (rotl<mode>3): New.
23175         (*rotw<mode>3): New.
23176         (*rotb<mode>3): New.
23177         * config/avr/avr.c (avr_rotate_bytes): New function.
23178         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
23179
23180 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
23181
23182         PR target/37454
23183         * configure.ac: Modify -rdynamic check.
23184         * configure: Regenerate.
23185
23186 2010-01-08  DJ Delorie  <dj@redhat.com>
23187
23188         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
23189         register popping order.
23190
23191 2010-01-08  Richard Guenther  <rguenther@suse.de>
23192
23193         PR lto/42528
23194         * c.opt (fsigned-char): Also let LTO handle this option.
23195         (funsigned-char): Likewise.
23196
23197 2010-01-07  Richard Guenther  <rguenther@suse.de>
23198
23199         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
23200         (gimple_op): Likewise.
23201         (gimple_op_ptr): Likewise.
23202         (gimple_assign_set_lhs): Remove gcc_assert.
23203         (gimple_assign_set_rhs1): Likewise.
23204         (gimple_assign_set_rhs2): Likewise.
23205         (gimple_call_set_lhs): Likewise.
23206         (gimple_call_set_fn): Likewise.
23207         (gimple_call_set_fndecl): Likewise.
23208         (gimple_call_fndecl): Likewise.
23209         (gimple_call_return_type): Likewise.
23210         (gimple_call_set_chain): Likewise.
23211         (gimple_call_num_args): Likewise.
23212         (gimple_call_set_arg): Likewise.
23213         (gimple_cond_set_code): Likewise.
23214         (gimple_cond_set_lhs): Likewise.
23215         (gimple_cond_set_rhs): Likewise.
23216         (gimple_cond_set_true_label): Likewise.
23217         (gimple_cond_set_false_label): Likewise.
23218         (gimple_label_set_label): Likewise.
23219         (gimple_goto_set_dest): Likewise.
23220         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
23221         (gimple_debug_bind_get_value): Likewise.
23222         (gimple_debug_bind_get_value_ptr): Likewise.
23223         (gimple_debug_bind_set_var): Likewise.
23224         (gimple_debug_bind_set_value): Likewise.
23225         (gimple_debug_bind_reset_value): Likewise.
23226         (gimple_debug_bind_has_value_p): Likewise.
23227         (gimple_return_retval_ptr): Remove gcc_assert.
23228         (gimple_return_retval): Likewise.
23229         (gimple_return_set_retval): Likewise.
23230         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
23231         (safe_referenced_var_iterator): Remove.
23232         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
23233         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
23234         (fill_referenced_var_vec): Remove.
23235         (first_readonly_imm_use): Remove redundant gcc_assert.
23236         (phi_arg_index_from_use): Combine gcc_asserts.
23237         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
23238         (first_imm_use_stmt): Remove redundant gcc_assert.
23239         * tree-cfg.c (verify_gimple_call): Verify function and chain
23240         operands.  Verify arguments.
23241         (verify_types_in_gimple_stmt): Verify condition code and labels.
23242
23243 2010-01-07  Richard Guenther  <rguenther@suse.de>
23244
23245         PR tree-optimization/42641
23246         * sese.c (rename_map_elt_info): Use the SSA name version, do
23247         not hash pointers.
23248
23249 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
23250
23251         PR tree-optimization/42625
23252         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
23253         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
23254
23255 2010-01-07  Duncan Sands  <baldrick@free.fr>
23256
23257         * Makefile.in (PLUGIN_HEADERS): Add version.h.
23258
23259 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
23260
23261         PR target/42511
23262         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
23263         note itself is not function_invariant_p.
23264
23265 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
23266
23267         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
23268         Do not add the DF_NOTE problem.
23269         * store-motion.c (execute_rtl_store_motion): Likewise.
23270
23271 2010-01-07  Martin Jambor  <mjambor@suse.cz>
23272
23273         PR tree-optimization/42157
23274         * tree-sra.c (compare_access_positions): Stabilize sort if both
23275         accesses have integer types, return zero immediately if they are the
23276         same.
23277
23278 2010-01-06  Richard Henderson  <rth@redhat.com>
23279
23280         PR middle-end/41883
23281         * haifa-sched.c (add_to_note_list): Merge into ...
23282         (concat_note_lists): ... here, and ...
23283         (unlink_other_notes, rm_other_notes): Merge into...
23284         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
23285         NOTE_INSN_EPILOGUE_BEG.
23286
23287 2010-01-06  Richard Guenther  <rguenther@suse.de>
23288
23289         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
23290         not inline regular functions into always-inline functions.
23291
23292 2010-01-06  Nick Clifton  <nickc@redhat.com>
23293
23294         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
23295         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
23296         used together.
23297         (OVERRIDE_OPTIONS): Delete.
23298         (OPTIMIZATION_OPTIONS): Define.
23299         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
23300         * config/rx/rx.c (rx_handle_option): Issue an error message if
23301         -mcpu=rx200 and -fpu are used together.
23302         (rx_set_optimization_options): New function.  Issue an error
23303         message if an optimization attribute attempts to reset the FPU/
23304         math optimization pairing.
23305         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
23306         * config/rx/rx.opt: Set the default to 32-bit doubles.
23307         * config/rx/t-rx: Add multilibs for -nofpu option.
23308         * doc/invoke.texi: Update documentation of RX options.
23309
23310 2010-01-06  Richard Guenther  <rguenther@suse.de>
23311
23312         * tree-ssa-pre.c (name_to_id): New global.
23313         (alloc_expression_id): Simplify SSA name handling.
23314         (lookup_expression_id): Likewise.
23315         (init_pre): Zero name_to_id.
23316         (fini_pre): Free it.
23317
23318 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
23319
23320         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
23321
23322 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
23323
23324         PR target/42542
23325         * config/i386/sse.md (smaxv2di3): New.
23326         (umaxv2di3): Likewise.
23327         (sminv2di3): Likewise.
23328         (uminv2di3): Likewise.
23329
23330 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23331
23332         PR target/42564
23333         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
23334         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
23335         (legitimize_tls_address): Likewise.
23336         (sparc_tls_referenced_p): Likewise.
23337         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
23338         and adjust calls to legitimize_pic_address.
23339         (legitimate_constant_p) Use sparc_tls_referenced_p.
23340         (legitimate_pic_operand_p): Likewise.
23341         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
23342         (sparc_tls_symbol_ref_1): Delete.
23343         (sparc_tls_referenced_p): Make static, recognize specific patterns.
23344         (legitimize_tls_address): Make static, handle CONST patterns.
23345         (legitimize_pic_address): Make static, remove unused parameter and
23346         adjust recursive calls.
23347         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
23348         and adjust call to legitimize_pic_address.
23349         (sparc_output_mi_thunk): Likewise.
23350
23351 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
23352             H.J. Lu  <hongjiu.lu@intel.com>
23353
23354         PR target/42542
23355         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
23356         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
23357         operands to make them signed.
23358
23359         Revert:
23360         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23361
23362         PR target/42542
23363         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23364         GTU to GT for V4SI and V2DI.
23365
23366         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23367         (umin<mode>3): Removed.
23368         (uminv8hi3): New.
23369         (uminv4si3): Likewise.
23370
23371 2010-01-05  Martin Jambor  <mjambor@suse.cz>
23372
23373         PR tree-optimization/42462
23374         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
23375         current_function_decl to helper functions and macros.
23376
23377 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23378
23379         PR bootstrap/41771
23380         * flags.h: Don't include real.h.
23381         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23382         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23383         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23384         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23385         * dominance.c: Update copyright.
23386         * gimple.c (walk_gimple_op): Remove inline.
23387         * tree-ssa-reassoc.c: Include real.h.
23388         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23389         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23390
23391 2010-01-05  Nick Clifton  <nickc@redhat.com>
23392
23393         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23394         register to push into the stack frame when the accumulator has to
23395         be saved during interrupts.
23396
23397 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23398
23399         * doc/invoke.texi: Remove the documentation about option
23400         -Wunreachable-code.
23401         * common.opt (Wunreachable-code):  Preserved for backward
23402         compatibility.
23403         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23404         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23405         the backward compatibility flag section.
23406
23407 2010-01-05  Richard Guenther  <rguenther@suse.de>
23408
23409         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23410
23411 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23412
23413         PR other/42611
23414         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23415
23416         PR tree-optimization/42508
23417         * tree-sra.c (convert_callers): Check for recursive call
23418         by comparing cgraph nodes instead of decls.
23419         (modify_function): Call ipa_modify_formal_parameters also
23420         on all same_body aliases.
23421
23422         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23423         cgraph nodes when checking for same_body aliases.
23424
23425 2010-01-05  Richard Guenther  <rguenther@suse.de>
23426
23427         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23428         allocation and lookup.
23429         (get_or_alloc_expr_for_constant): Likewise.
23430         (phi_translate): Sink allocation.
23431
23432 2010-01-04  Richard Guenther  <rguenther@suse.de>
23433
23434         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23435         a new entry only if needed.
23436         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23437         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23438         hashtable lookup.
23439         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23440         the result array.
23441         (phi_translate): Handle CONSTANTs early.
23442
23443 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23444
23445         PR tree-optimization/42398
23446         * tree-sra.c (struct access): Removed flag grp_different_types.
23447         (dump_access): Do not dump the removed flag.
23448         (sort_and_splice_var_accesses): Do not set the removed flag.
23449         (sra_modify_expr): Check for type compatibility directly.
23450
23451 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23452
23453         PR tree-optimization/42366
23454         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23455         edges with variable number of parameters.
23456         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23457         flag instead of asserting it.
23458         (ipa_read_node_info): Read uses_analysis_done flag.
23459
23460 2010-01-04  Richard Guenther  <rguenther@suse.de>
23461
23462         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23463         iterative_hash_* as intended.
23464         (vn_reference_compute_hash): Likewise.  Simplify hashing
23465         SSA names.
23466         (vn_reference_lookup_2): Likewise.
23467         (vn_nary_op_compute_hash): Likewise.
23468         (vn_phi_compute_hash): Likewise.
23469         (expressions_equal_p): Remove strange code.
23470         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23471         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23472         (bitmap_insert_into_set_1): Take value-id as parameter.
23473         (add_to_value): Pass it.
23474         (bitmap_insert_into_set): Likewise.
23475         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23476
23477 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23478
23479         PR driver/42442
23480         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23481         (do_self_spec): For switches with SWITCH_IGNORE set set also
23482         SWITCH_IGNORE_PERMANENTLY.
23483         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23484         of SWITCH_IGNORE.
23485
23486 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23487
23488         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23489         tree of an unreferenced global var.
23490
23491 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23492
23493         PR target/42542
23494         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23495         GTU to GT for V4SI and V2DI.
23496
23497         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23498         (umin<mode>3): Removed.
23499         (uminv8hi3): New.
23500         (uminv4si3): Likewise.
23501
23502 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23503
23504         PR lto/42581
23505         * collect2.c (main): Turn on trace in collect2 if -v is passed
23506         to gcc with LTO.
23507
23508 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23509
23510         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23511         description of expression operand.
23512
23513 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23514
23515         * configure.ac: Add install-html to target_list for Make-hooks.
23516         * configure: Regenerate.
23517         * fortran/Make-lang.in (F95_HTMLFILES): New.
23518         (fortran.html): Use it.
23519         (fortran.install-html): New.
23520         * Makefile.in (install-html): Add lang.install-html.
23521         * java/Make-lang.in (JAVA_HTMLFILES): New.
23522         (java.html): Use it.
23523         (java.install-html): New.
23524         * objc/Make-lang.in (objc.install-html): New.
23525         * objcp/Make-lang.in (obj-c++.install-html): New.
23526         * cp/Make-lang.in (c++.install-html): New.
23527         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23528         * lto/Make-lang.in (lto.install-html): New.
23529
23530 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23531
23532         PR lto/42520
23533         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23534
23535 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23536
23537         PR rtl-optimization/41862
23538         * store-motion.c (store_killed_in_insn, compute_store_table,
23539         remove_reachable_equiv_notes, replace_store_insn,
23540         build_store_vectors): Ignore all DEBUG_INSNs.
23541
23542 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23543
23544         PR lto/41564
23545         * common.opt: Add dumpdir.
23546
23547         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23548         isn't specified.
23549         (option_map): Add --dumpdir.
23550
23551         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23552
23553         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23554
23555         * opts.c (decode_options): Try dump_dir_name first if
23556         dump_base_name isn't an absolute path.
23557         (common_handle_option): Handle OPT_dumpdir.
23558
23559         * toplev.c (dump_dir_name): New.
23560         (print_switch_values): Also ignore -dumpdir.
23561
23562         * toplev.h (dump_dir_name): New.
23563
23564 2010-01-03  Richard Guenther  <rguenther@suse.de>
23565
23566         PR tree-optimization/42589
23567         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23568         double-word expansion of bswap32.
23569
23570 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23571
23572         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23573         with BLOCK_FOR_INSN.
23574         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23575         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23576         noce_process_if_block): Likewise.
23577         * gcse.c (compute_local_properties, insert_expr_in_table,
23578         insert_set_in_table, canon_list_insert, find_avail_set,
23579         pre_insert_copy_insn): Likewise.
23580
23581         * basic-block.h (BLOCK_NUM): Move from here...
23582         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23583
23584 2010-01-03  Richard Guenther  <rguenther@suse.de>
23585
23586         PR tree-optimization/42438
23587         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23588         contains_may_not_return_call flag.
23589         (BB_MAY_NOTRETURN): New.
23590         (valid_in_sets): Trapping nary operations are not valid
23591         in blocks that may not return.
23592         (insert_into_preds_of_block): Remove check for trapping expressions.
23593         (compute_avail): Compute also BB_MAY_NOTRETURN.
23594
23595 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23596
23597         * doc/invoke.texi: Add 2010 to copyright years.
23598
23599 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23600
23601         * config/sparc/sparc.c: Fix formatting nits.
23602
23603 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23604             Alexander Monakov  <amonakov@ispras.ru>
23605
23606         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23607
23608 2010-01-02  Richard Guenther  <rguenther@suse.de>
23609
23610         PR middle-end/42577
23611         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23612         (simplify_switch_using_ranges): Mark to be removed edges
23613         as non-executable.
23614
23615 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23616
23617         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23618
23619         * collect2.c (scan_libraries): Add missing argument in call to
23620         scan_prog_file.
23621
23622 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23623
23624         PR target/42448
23625         * config/alpha/predicates.md (aligned_memory_operand): Return false
23626         for CQImode.
23627         (unaligned_memory_operand): Return true for CQImode.
23628         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23629         doesn not cross aligned SImode word boundary.
23630
23631 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23632
23633         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23634         Remove.
23635         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23636         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23637
23638 2010-01-02  Richard Guenther  <rguenther@suse.de>
23639
23640         PR lto/41597
23641         * toplev.c (compile_file): Emit LTO marker properly.  Change
23642         it to __gnu_lto_v1.
23643         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23644
23645 2010-01-01  Richard Guenther  <rguenther@suse.de>
23646
23647         PR debug/42455
23648         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23649
23650 2010-01-01  Richard Guenther  <rguenther@suse.de>
23651
23652         PR c/42570
23653         * c-decl.c (grokdeclarator): For zero-size arrays force
23654         structural equality checks as layout_type does.
23655
23656 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23657
23658         * builtins.c: Update copyright to 2010.
23659
23660 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23661
23662         PR lto/42531
23663         * lto-streamer-out.c (produce_asm): Revert the last change.
23664         (copy_function): Likewise.
23665
23666         * lto-streamer.c (lto_get_section_name): Skip any leading
23667         asterisk in name.
23668
23669 2010-01-01  Richard Guenther  <rguenther@suse.de>
23670
23671         PR middle-end/42559
23672         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23673         for LABEL_DECLs.
23674
23675 \f
23676 Copyright (C) 2010 Free Software Foundation, Inc.
23677
23678 Copying and distribution of this file, with or without modification,
23679 are permitted in any medium without royalty provided the copyright
23680 notice and this notice are preserved.