OSDN Git Service

07c5dd790bd69c4ed1a65434b0f21813bfc0ab18
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-10  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/44050
4         * tree-inline.c (tree_function_versioning): Clone the ipa-pta
5         flag.
6
7 2010-05-10  Wei Guozhi  <carrot@google.com>
8
9         PR target/42879
10         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
11
12 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
13
14         PR c/10676
15         * c-typeck.c (lookup_field): Take a type directly.  Update
16         recursive calls.
17         (build_component_ref): Update call to lookup_field.
18         (set_init_label): Use lookup_field to find initialized field.
19         Handle returned list of fields like a sequence of designators.
20
21 2010-05-09  Richard Guenther  <rguenther@suse.de>
22
23         PR middle-end/44024
24         * fold-const.c (tree_single_nonzero_warnv_p): Properly
25         handle &FUNCTION_DECL.
26
27 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28
29         PR c/4784
30         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31         structures and unions recursively.
32         (detect_field_duplicates): Move duplicate detection with a hash to
33         detect_field_duplicates_hash.  Always use a hash if anonymous
34         structures or unions are present.
35         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
36         give errors.
37
38 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
39
40         PR target/44046
41         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
42         detect Atom, Core 2 and Core i7.
43
44 2010-05-09  Richard Guenther  <rguenther@suse.de>
45
46         * gcc.c (store_arg): Handle temporary file deletion for
47         joined arguments.
48
49 2010-05-09  Richard Guenther  <rguenther@suse.de>
50
51         PR middle-end/44043
52         * ipa-inline.c (estimate_function_body_sizes): Return after
53         disregarding inline limits.
54
55 2010-05-09  Richard Guenther  <rguenther@suse.de>
56
57         * gcc.c (store_arg): Revert last change.
58
59 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
60
61         PR middle-end/28685
62         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
63         (optimize_ops_list): Call it.
64
65 2010-05-08  Richard Guenther  <rguenther@suse.de>
66
67         PR tree-optimization/44030
68         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
69         NECESSARY flag if we propagate from a inserted expression.
70
71 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
72
73         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
74         domain types as equal if they are both PLACEHOLDER_EXPRs.
75
76 2010-05-08  Richard Guenther  <rguenther@suse.de>
77
78         * lto-wrapper.c (run_gcc): Remove linker output from
79         command line for LTRANS invocation.
80
81 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
82
83         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
84         lto-macho as lto_binary_reader.
85         * target.h (struct gcc_target): New hooks lto_start and lto_end.
86         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
87         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
88         in lto_start and lto_end calls.
89         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
90         magic numbers.
91         (scan_prog_file): Update is_elf_or_coff call.
92         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
93
94         * collect2.c (main): Fix enum comparison.
95
96         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
97         Add prototypes.
98         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
99         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
100         and TARGET_ASM_LTO_END.
101         * darwin.c: Include obstack.h and lto-streamer.h.
102         (lto_section_names_offset, lto_section_names_obstack,
103         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
104         global variables.
105         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
106         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
107         to a temporary file.
108         (darwin_asm_lto_end): New function.  Restore asm_out_file.
109         (darwin_asm_named_section): For LTO sections, replace the name with
110         the offset of the section name in a string table, and build this
111         table.
112         (darwin_file_start): Initialize global vars for LTO support.
113         (darwin_file_end): If output to asm_out_file was redirected, append it
114         to the proper asm_out_file here.  Add the section names section.
115
116 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
117
118         * c-pragma.c (pending_weak_d, pending_weak): New.
119         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
120         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
121         handle_pragma_weak): Update the uses of pending_weaks.
122
123 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
124
125         PR documentation/44016
126         * doc/standards.texi (Standards): Link to unversioned
127         cxx0x_status.html page.
128
129 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
130
131         PR target/43708
132         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
133         in addition to TREE_USED, to avoid "set but unused" warnings.
134
135 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
136
137         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
138         (is_loop_prefetching_profitable): Do not insert prefetches
139         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
140         times the prefetch ahead distance.
141
142 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
143
144         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
145         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
146         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
147         the unroll_factor.
148
149 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
150
151         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
152         a diagnostic info when the insn-to-mem ratio is too small.
153
154 2010-05-07  Richard Guenther <rguenther@suse.de>
155
156         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
157         the linker plugin.
158         (store_arg): Queue temp_filename for deletion instead of
159         the whole argument.
160
161 2010-05-07  Richard Guenther  <rguenther@suse.de>
162
163         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
164         (run_gcc): Handle LTRANS phase invocation.
165         * collect2.c (maybe_run_lto_and_relink): Do not set
166         WPA_SAVE_LTRANS.
167
168 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
169
170         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
171         this is also meaningful on PARM_DECLs and RESULT_DECLs.
172
173 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
174
175         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
176
177 2010-05-07  Richard Guenther  <rguenther@suse.de>
178
179         PR tree-optimization/44020
180         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
181         code when PRE is not yet initialized.
182
183 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
184
185         * config/mips/dbxmdebug.h: Remove.
186         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
187
188 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
189
190         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
191         with null pointer and also warn about ordered comparison of zero with
192         pointer if -Wextra.
193
194 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
195
196         * graphite-blocking.c
197         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
198         * graphite-clast-to-gimple.c
199         (clast_to_gcc_expression): Same.
200         (precision_for_value): Same.
201         (precision_for_interval): Same.
202         (gcc_type_for_interval): Same.
203         (graphite_create_new_guard): Same.
204         (compute_bounds_for_level): Same.
205         (graphite_create_new_loop_guard): Same.
206         * graphite-interchange.c
207         (build_linearized_memory_access): Same.
208         (pdr_stride_in_loop): Same.
209         (memory_strides_in_loop_1): Same.
210         (memory_strides_in_loop): Same.
211         (extend_scattering): Same.
212         (psct_scattering_dim_for_loop_depth): Same.
213         (pbb_number_of_iterations): Same.
214         * graphite-poly.h
215         (debug_iteration_domains): Same.
216         * graphite-ppl.c
217         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
218         (ppl_set_inhomogeneous_gmp): Same.
219         (ppl_strip_loop): Same.
220         (ppl_lexico_compare_linear_expressions): Same.
221         (ppl_read_polyhedron_matrix): Same.
222         (ppl_max_for_le_pointset): Same.
223         * graphite-ppl.h
224         (ppl_read_polyhedron_matrix): Same.
225         (tree_int_to_gmp): Same.
226         (gmp_cst_to_tree): Same.
227         (ppl_set_inhomogeneous): Same.
228         (ppl_set_inhomogeneous_tree): Same.
229         (ppl_set_coef): Same.
230         (ppl_set_coef_tree): Same.
231         * graphite-sese-to-poly.c
232         (build_pbb_scattering_polyhedrons): Same.
233         (build_scop_scattering): Same.
234         (scan_tree_for_params_right_scev): Same.
235         (scan_tree_for_params): Same.
236         (find_params_in_bb): Same.
237         (find_scop_parameters): Same.
238         (add_upper_bounds_from_estimated_nit): Same.
239         (build_loop_iteration_domains): Same.
240         (add_condition_to_domain): Same.
241         (pdr_add_memory_accesses): Same.
242
243 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
244
245         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
246         CLooG's value_* macros to their respective mpz_* counterparts.
247         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
248         (graphite_create_new_loop_guard): Same.
249         * graphite-interchange.c (build_linearized_memory_access): Same.
250         (pdr_stride_in_loop): Same.
251         (memory_strides_in_loop_1): Same.
252         (1st_interchange_profitable_p): Same.
253         * graphite-poly.c (extend_scattering): Same.
254         (psct_scattering_dim_for_loop_depth): Same.
255         (pbb_number_of_iterations): Same.
256         (pbb_number_of_iterations_at_time): Same.
257         * graphite-poly.h (new_1st_loop): Same.
258         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
259         (oppose_constraint): Same.
260         (insert_constraint_into_matrix): Same.
261         (ppl_set_inhomogeneous_gmp): Same.
262         (ppl_set_coef_gmp): Same.
263         (ppl_strip_loop): Same.
264         (ppl_lexico_compare_linear_expressions): Same.
265         (ppl_max_for_le_pointset): Same.
266         (ppl_min_for_le_pointset): Same.
267         (ppl_build_realtion): Same.
268         * graphite-ppl.h (gmp_cst_to_tree): Same.
269         (ppl_set_inhomogeneous): Same.
270         (ppl_set_inhomogeneous_tree): Same.
271         (ppl_set_coef): Same.
272         (ppl_set_coef_tree): Same.
273         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
274         (build_scop_scattering): Same.
275         (add_value_to_dim): Same.
276         (scan_tree_for_params_right_scev): Same.
277         (scan_tree_for_params_int): Same.
278         (scan_tree_for_params): Same.
279         (find_params_in_bb): Same.
280         (find_scop_parameters): Same.
281         (add_upper_bounds_from_estimated_nit): Same.
282         (build_loop_iteration_domains): Same.
283         (create_linear_expr_from_tree): Same.
284         (add_condition_to_domain): Same.
285         (pdr_add_memory_accesses): Same.
286
287 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
288             Jason Merrill  <jason@redhat.com>
289
290         * c-common.c (c_common_reswords): Add nullptr.
291         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
292         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
293         (gen_type_die_with_usage): Likewise.
294         * dbxout.c (dbxout_type): Likewise.
295         * sdbout.c (plain_type_1): Likewise.
296
297 2010-05-06  Jason Merrill  <jason@redhat.com>
298
299         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
300         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
301         ret appropriately.
302         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
303
304         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
305         stripping WITH_SIZE_EXPR.
306         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
307         change.
308
309 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
310
311         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
312         list of obsolete configurations.
313         Disabled check for obsolete configurations.
314         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
315         Removed support for previous versions.
316         * config/mips/iris.h: Removed.
317         * config/mips/iris5.h: Removed.
318         * config/mips/iris6.h: Merged old iris.h contents.
319         (TARGET_IRIX): Removed.
320         (DRIVER_SELF_SPECS): Removed mabi=32.
321         (IDENT_ASM_OP): Removed undef.
322         (STARTFILE_SPEC): Removed mabi=32.
323         (ENDFILE_SPEC): Likewise.
324         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
325         (MACHINE_TYPE): Update for IRIX 6.5.
326         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
327         TARGET_IRIX by TARGET_IRIX6.
328         (mips_file_start): Likewise.
329         (mips_output_external): Remove IRIX 5/6 O32 support.
330         (mips_output_function_prologue): Likewise.
331         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
332         TARGET_IRIX6.
333         (TARGET_CPU_CPP_BUILTINS): Likewise.
334         (TARGET_IRIX): Removed.
335         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
336         (MULTILIB_DIRNAMES): Removed 32.
337         (MULTILIB_OSDIRNAMES): Removed ../lib.
338         * doc/install.texi (Prerequisites): Don't reference IRIX before
339         6.5.
340         (Specific, mips-sgi-irix5): Document removal.
341         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
342         removal.
343         Remove references to older IRIX 6 releases and the O32 ABI.
344
345 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
346
347         * gcc.dg/Wunused-var-8.c: Move to...
348         * c-c++-common/Wunused-var-6.c: ... here.  New test.
349
350         PR bootstrap/43994
351         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
352         instead of DF_REF_REAL_REG.
353
354 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
355
356         PR target/43888
357         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
358         handling to still return true for x64 targets.
359
360 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
361
362         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
363
364 2010-05-06  Jan Hubicka  <jh@suse.cz>
365
366         PR tree-optimization/43791
367         * ipa-inline.c (update_caller_keys): Remove bogus
368         disregard_inline_limits check.
369
370 2010-05-06  Michael Matz  <matz@suse.de>
371
372         PR tree-optimization/43984
373         * tree-ssa-pre.c (inserted_phi_names): Remove.
374         (inserted_exprs): Change to bitmap.
375         (create_expression_by_pieces): Set bits, don't append to vector.
376         (insert_into_preds_of_block): Don't handle inserted_phi_names.
377         (eliminate): Don't look at inserted_phi_names, remove deleted
378         insns from inserted_exprs.
379         (remove_dead_inserted_code): Adjust to use bitmaps instead of
380         vectors.
381         (init_pre, fini_pre): Allocate and free bitmaps.
382         (execute_pre): Insert insns on edges before elimination.
383
384 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
385
386         * tree.c (initializer_zerop): Handle STRING_CST.
387
388 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
389
390         PR 40989
391         * doc/invoke.texi (Wimplicit): Document as C only.
392         * opts.c (common_handle_option): Add argument kind.
393         (handle_option): Rename as read_cmdline_option. Factor out code to...
394         (handle_option): ... here. New.
395         (handle_options): Rename as read_cmdline_options.
396         (decode_options): Update call.
397         (set_option): Use option index instead of option pointer. Classify
398         diagnostics correctly.
399         (enable_warning_as_error): Call handle_option.
400         * opts.h (set_option): Update declaration.
401         (handle_option): Declare.
402         * langhooks.h (struct lang_hooks): Add argument kind to
403         handle_option.
404         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
405         * c-opts.c (set_Wimplicit): Delete.
406         (c_family_lang_mask): New static constant.
407         (c_common_handle_option): Add argument kind. Use handle_option
408         instead of set_Wimplicit.
409         (c_common_post_options): warn_implicit and warn_implicit_int
410         are disabled by default.
411         * c-common.c (warn_implicit): Do not define here.
412         * c-common.h (warn_implicit): Do not declare here.
413         (c_common_handle_option): Update declaration.
414         * lto-opts.c (lto_reissue_options): Update call to set_option.
415
416 2010-05-06  Richard Guenther  <rguenther@suse.de>
417
418         PR tree-optimization/43571
419         * domwalk.c (walk_dominator_tree): Walk the dominator
420         sons in more optimal order.
421
422 2010-05-06  Richard Guenther  <rguenther@suse.de>
423
424         PR tree-optimization/43934
425         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
426         (stmt_cost): Likewise.
427         (extract_true_false_args_from_phi): New helper.
428         (determine_max_movement): For PHI nodes verify we can hoist them
429         and compute their cost.
430         (determine_invariantness_stmt): Handle PHI nodes.
431         (move_computations_stmt): Likewise.  Hoist PHI nodes in
432         if-converted form using COND_EXPRs.
433         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
434         nodes.
435         (tree_ssa_lim): Likewise.
436         * tree-flow.h (tree_ssa_lim): Adjust prototype.
437         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
438
439 2010-05-06  Richard Guenther  <rguenther@suse.de>
440
441         PR tree-optimization/43987
442         * tree-ssa-structalias.c (could_have_pointers): For possibly
443         address-taken variables force pointers to be recorded.
444         (create_variable_info_for_1): Likewise.
445         (push_fields_onto_fieldstack): Pass in wheter all fields
446         must have pointers.
447         (find_func_aliases): Query types instead of vars whether
448         they contain pointers where appropriate.
449
450 2010-05-06  Jan Hubicka  <jh@suse.cz>
451
452         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
453         (record_reference, mark_address, mark_load, mark_store): Record
454         references.
455         (record_references_in_initializer): Update call of record_references.
456         (rebuild_cgraph_edges): Remove all references before rebuiding.
457         * cgraph.c (cgraph_create_node): Clear ref list.
458         (cgraph_remove_node): Remove references.
459         (dump_cgraph_node): Dump references.
460         (cgraph_clone_node): Clone references.
461         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
462         (struct cgraph_node, varpool_node): Add ref_lst.
463         * ipa-ref.c: New file.
464         * ipa-ref.h: New file.
465         * ipa-ref-inline.h: New file.
466         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
467         (referenced_from_other_partition_p): New function.
468         (lto_output_varpool_node): Take set arugment; call
469         referenced_from_other_partition.
470         (lto_output_ref): New.
471         (add_references): New.
472         (output_refs): New.
473         (output_cgraph): Compute boundary based on references;
474         output refs.
475         (output_varpool): Accept cgraph_node_set argument.
476         (input_ref): New.
477         (input_refs): New.
478         (input_cgraph): Call input_refs.
479         * lto-section-in.c (lto_section_name): Add refs.
480         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
481         (ipa-ref.o): New file.
482         * varpool.c (varpool_node): Clear ipa ref list.
483         (varpool_remove_node): Remove references.
484         (dump_varpool_node): Dump references.
485         (varpool_assemble_decl): Only compile finalized ones.
486         (varpool_extra_name_alias): Initialize ref list.
487         * lto-streamer.c (lto-get_section_name): Add .refs section.
488         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
489         (referenced_from_other_partition_p): Declared.
490
491 2010-05-06  Ira Rosen  <irar@il.ibm.com>
492
493         PR tree-optimization/43901
494         * tree-vect-stmts.c (vectorizable_call): Assert that vector
495         type is not NULL if it's transformation phase, and return
496         FALSE if it's analysis.
497         (vectorizable_conversion, vectorizable_operation, 
498         vectorizable_type_demotion, vectorizable_type_promotion):
499         Likewise.
500
501 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
502
503         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
504         Delete.
505         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
506         New define.
507         * config/mips/mips-protos.h
508         (mips_small_register_classes_for_mode_p): Delete prototype.
509
510 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
511
512         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
513         * config/arm/arm.c (multiple_operation_profitable_p,
514         compute_offset_order): New static functions.
515         (load_multiple_sequence, store_multiple_sequence): Use them.
516         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
517         memory offsets, not register numbers.
518         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
519
520 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
521
522         * stor-layout.c (pending_sizes): Change the type to
523         VEC(tree,gc) *.
524         (get_pending_sizes, put_pending_size, put_pending_sizes):
525         Update the uses of pending_sizes.
526         * c-decl.c (store_parm_decls): Likewise.
527         * c-tree.h (struct c_arg_info): Likewise.
528         * tree.h: Update the prototype for get_pending_sizes and
529         put_pending_sizes.
530
531 2010-05-05  Jason Merrill  <jason@redhat.com>
532
533         PR debug/43370
534         * c-common.c (handle_aligned_attribute): Respect
535         ATTR_FLAG_TYPE_IN_PLACE.
536
537         PR testsuite/43758
538         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
539         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
540         (TARGET_INITIALIZER): Use it.
541         * c-common.c (attribute_takes_identifier_p): Call it.
542         * c-common.h: Update prototype.
543         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
544         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
545
546 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
547
548         PR debug/43950
549         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
550         DW_ID_down_case for Fortran compilation units.
551
552 2010-05-05  Jan Hubicka  <jh@suse.cz>
553
554         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
555         handle aliases.
556
557 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
558
559         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
560         a variable-sized RESULT_DECL.
561
562 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
563
564         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
565
566 2010-05-05  Jason Merrill  <jason@redhat.com>
567
568         PR c++/43787
569         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
570         returns GS_OK.
571         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
572
573 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
574             Jakub Jelinek  <jakub@redhat.com>
575
576         PR debug/43478
577         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
578         (dead_debug_init, dead_debug_finish): New functions.
579         (dead_debug_add, dead_debug_insert_before): Likewise.
580         (df_note_bb_compute): Initialize a dead_debug object, add dead
581         debug uses to it, insert debug bind insns before death insns,
582         reset debug insns that refer to pending uses at the end.
583         * rtl.h (make_debug_expr_from_rtl): New prototype.
584         * varasm.c (make_debug_expr_from_rtl): New function.
585
586 2010-05-05  Jan Hubicka  <jh@suse.cz>
587
588         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
589         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
590         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
591         lto_varpool_encoder_encode_initializer_p,
592         lto_set_varpool_encoder_encode_initializer): New functions.
593         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
594         call output_varpool.
595         (input_varpool_node): Do not always set analyzed.
596         (input_cgraph_1): Return vector of cgraph nodes.
597         (input_varpool_1): Return vector of varpools.
598         (input_cgraph): Free the vectors.
599         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
600         output only initializers needed.
601         (lto_output): Only call output_cgraph.
602         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
603         * lto-section-out.c (lto_new_out_decl_state): Initialize
604         state->varpool_node_encoder.
605         * lto-streamer.h (lto_varpool_encoder_d): New.
606         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
607         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
608         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
609         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
610         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
611         Declare.
612         (output_varpool, input_varpool): Remove declarations.
613
614 2010-05-05  Jan Hubicka  <jh@suse.cz>
615
616         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
617         with body can prevail.
618
619 2010-05-05  Jan Hubicka  <jh@suse.cz>
620
621         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
622         size.
623
624 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
625
626         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
627         dependencies.
628
629         * gengtype.h (erro_at_line): Constify pos argument.
630
631         * gengtype.c: Include hashtab.h.
632         (enum gc_used): Document GC_MAYBE_POINTED_TO.
633         (error_at_line): Constify pos argument.
634         (do_typedef): Initialize p->opt field.
635         (get_file_gtfilename): Fix comment typo.
636         (struct walk_type_data): Constify line field.
637         (get_output_file_for_structure): New function.
638         (write_local_func_for_structure): Constify orig_s argument.
639         Use get_output_file_for_structure.
640         (write_func_for_structure): Use get_output_file_for_structure.
641         (INDENT): New define.
642         (dump_pair, dump_type, dump_type_list, dump_typekind)
643         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
644         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
645         functions.
646         (seen_types): New variable.
647         (main): New variable do_dump.  Process "-d" command line option.
648         Call dump_everything if dump requested.
649
650 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
651
652         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
653         in a temporary instead of invoking the macro multiple times.
654         (track_expr_p): Likewise.
655
656 2010-05-04  Neil Vachharajani <nvachhar@google.com>
657
658         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
659         per new semantics.
660         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
661         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
662         conditions for printing notes.
663         * common.opt (-Wcoverage-mismatch): Allow negative, default to
664         true, update documentation.
665         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
666
667 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
668
669         PR c/43981
670         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
671         on dimen.
672
673 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
674
675         PR target/43799
676         * config/i386/i386.md (sse_prologue_save): Add clobber CC
677         register.
678         (*sse_prologue_save_insn1): Likewise.
679         (SSE prologue save splitter): Likewise.
680
681 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
682
683         * tree.c (free_lang_data_in_one_sizepos): New inline function.
684         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
685         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
686         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
687         all decls.  Call it on DECL_FIELD_OFFSET of fields.
688         (find_decls_types_r): Follow DECL_VALUE_EXPR.
689         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
690
691 2010-05-04  Martin Jambor  <mjambor@suse.cz>
692
693         * tree-sra.c (build_access_from_expr_1): The first parameter type
694         changed to simple tree.
695         (build_access_from_expr): Likewise, gsi parameter was eliminated.
696         (scan_assign_result): Renamed to assignment_mod_result, enum elements
697         renamed as well.
698         (build_accesses_from_assign): Removed all parameters except for a
699         simple gimple statement.  Now returns a simple bool.
700         (scan_function): All non-analysis parts moved to separate functions
701         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
702         parameters and updated both callers.
703         (sra_modify_expr): Removed parameter data.
704         (sra_modify_function_body): New function.
705         (perform_intra_sra): Call sra_modify_function_body to modify the
706         function body.
707         (replace_removed_params_ssa_names): Parameter data changed into
708         adjustments vector.
709         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
710         changed the parameter dont_convert to convert with the opposite
711         meaning.
712         (sra_ipa_modify_assign): Parameter data changed into adjustments
713         vector, return value changed to bool.
714         (ipa_sra_modify_function_body): New function.
715         (sra_ipa_reset_debug_stmts): Updated a comment.
716         (modify_function): Use ipa_sra_modify_function_body to modify function
717         body.
718
719 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
720
721         PR middle-end/43671
722         * alias.c (true_dependence): Handle the same VALUE in x and mem.
723         (canon_true_dependence): Likewise.
724         (write_dependence_p): Likewise.
725
726 2010-05-04  Jan Hubicka  <jh@suse.cz>
727
728         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
729         * cgraphbuild.c: Include ipa-utils.h
730         (record_reference_ctx): New struct.
731         (record_reference): Simplify to work on initializers; not statements.
732         (mark_address, mark_load, mark_store): New.
733         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
734         walk PHI nodes too.
735         (record_references_in_initializer): Update use of record_reference.
736         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
737         walk PHI nodes too.
738
739 2010-05-04  Jan Hubicka  <jh@suse.cz>
740
741         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
742         node will be removed anyway.
743         (lto_varpool_replace_node): Allow also unanalyzed nodes;
744         relink aliases of node into prevailing node.
745         * varpool.c (varpool_remove_node): Remove aliases properly;
746         when removing node, remove all its aliases too; remove DECL_INITIAL
747         of removed node; ggc_free the varpool node.
748
749 2010-05-04  Richard Guenther  <rguenther@suse.de>
750
751         PR tree-optimization/43879
752         * tree-ssa-structalias.c (alias_get_name): Use
753         DECL_ASSEMBLER_NAME if available.
754         (create_function_info_for): Return the varinfo node.
755         (ipa_pta_execute): Associate same-body aliases and extra names
756         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
757
758 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
759
760         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
761         static.
762
763 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
764
765         PR bootstrap/43964
766         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
767         only if HONOR_REG_ALLOC_ORDER is not defined.
768
769 2010-05-04  Richard Guenther  <rguenther@suse.de>
770
771         PR tree-optimization/43949
772         * tree-vrp.c (extract_range_from_binary_expr): Only handle
773         TRUNC_MOD_EXPR.
774
775 2010-04-26  Jason Merrill  <jason@redhat.com>
776
777         * c.opt (-fstrict-enums): New.
778         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
779
780 2010-05-03  David Ung <davidu@mips.com>
781             James E. Wilson  <wilson@codesourcery.com>
782
783         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
784         emit the trap instruction before the divide for TUNE_74K.
785
786 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
787
788         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
789         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
790         based on the above, for new target hook.
791
792         * hooks.c (hook_bool_mode_true): New generic hook.
793         * hooks.h (hook_bool_mode_true): Add prototype.
794
795         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
796         target hook.
797         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
798         target hook, set to hook_bool_mode_false.
799         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
800         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
801         with targetm.small_register_classes_for_mode_p.
802         (find_reusable_reload): Likewise.
803         (combine_reloads): Likewise.
804         * reload1.c (reload_as_needed): Likewise.
805         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
806         * ifcvt.c (noce_process_if_block, check_cond_move_block,
807         dead_or_predicable): Likewise.
808         * regmove.c (optimize_reg_copy_1): Likewise.
809         * calls.c (prepare_call_address): Likewise.
810         (precompute_register_parameters): Likewise.
811
812         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
813         hook definition.
814         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
815         implementation of the hook that considers all register classes
816         small except for SH64.
817         (sh_override_options): Use the new hook.
818         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
819         Add prototype.
820
821         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
822         hook definition.
823         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
824         implementation of the hook that considers all register classes
825         small for THUMB1.
826         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
827         Add prototype.
828
829         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
830         hook definition.
831         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
832         implementation of the hook that considers all register classes
833         small for MIPS16.
834         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
835         Add prototype.
836
837         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
838         hook definition.
839         * config/m32c/m32c.h: Likewise.
840         * config/pdp11/pdp11.h: Likewise.
841         * config/avr/avr.h: Likewise.
842         * config/xtensa/xtensa.h: Likewise.
843         * config/m68hc11/m68hc11.h: Likewise.
844         * config/mn10300/mn10300.h: Likewise.
845         * config/mcore/mcore.h: Likewise.
846         * config/h8300/h8300.h: Likewise.
847         * config/bfin/bfin.h: Likewise.
848
849         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
850         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
851
852 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
853
854         * double-int.h (tree_to_double_int): Remove macro.
855         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
856         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
857         (tree_to_double_int): New function.
858         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
859         Move ...
860         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
861
862 2010-05-03  Richard Guenther  <rguenther@suse.de>
863
864         PR tree-optimization/43971
865         * tree-ssa-structalias.c (get_constraint_for_1): Fix
866         constraints in the !flag_delete_null_pointer_checks case.
867
868 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
869
870         PR debug/43972
871         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
872         result mode matches original rtl mode.
873
874 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
875
876         PR target/43888
877         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
878
879 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
880
881         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
882         when processing flag options.
883
884 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
885
886         * gcov-iov.c (main): Change format string placeholder
887         from %#08x to 0x%08x.
888         * genchecksum.c (dosum): Change format string placeholder
889         from %#02x to 0x%02x.
890
891 2010-05-02  Richard Guenther  <rguenther@suse.de>
892
893         PR tree-optimization/43879
894         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
895
896 2010-05-02  Bruno Haible  <bruno@clisp.org>
897
898         * doc/extend.texi (Function Attributes): Fix a typo.
899
900 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
901
902         Revert:
903         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
904         placeholder from 0x%x to %#x.
905         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
906         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
907         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
908         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
909         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
910         * config/i386/i386.c (ix86_target_string): Ditto.
911         * config/i386/i386.c (output_pic_addr_const): Ditto.
912         (print_operand): Ditto.
913
914 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
915
916         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
917         placeholder from 0x%x to %#x.
918         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
919         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
920         (ASM_OUTPUT_DEBUG_DATA): Ditto.
921         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
922         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
923         * optc-gen.awk: Ditto.
924         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
925         (HOST_WIDE_INT_PRINT_HEX): Ditto.
926         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
927         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
928
929 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
930
931         * target.h (struct calls): Add function_value_regno_p field.
932         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
933         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
934         * targhooks.c (default_function_value_regno_p): New function.
935         * targhooks.h (default_function_value_regno_p): Declare function.
936         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
937         * builtins.c. (apply_result_size): (Ditto.).
938         * combine.c. (likely_spilled_retval_p): (Ditto.).
939         * mode-switching.c. Include 'target.h'.
940         (create_pre_exit): Use function_value_regno_p hook.
941         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
942         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
943         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
944
945         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
946         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
947         (ix86_function_value_regno_p): Declare as static, change argument
948         type to const unsigned int.
949         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
950
951 2010-05-01  Richard Guenther  <rguenther@suse.de>
952
953         PR tree-optimization/43949
954         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
955         types.
956         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
957
958 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
959
960         * rtl.h (CONST_DOUBLE_P): Define.
961         (rtx_to_double_int): Declare.
962         * emit-rtl.c (rtx_to_double_int): New function.
963         * dwarf2out.c (insert_double): New function.
964         (loc_descriptor, add_const_value_attribute): Clean up, use
965         rtx_to_double_int and insert_double functions.
966
967 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
968
969         * doc/extend.texi (Inline): Add missing return keyword to examples.
970         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
971         "command-line".
972
973 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
974
975         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
976         the variable part of the offset as well.  Use highest_pow2_factor for
977         all alignment checks.
978
979 2010-04-30  Richard Guenther  <rguenther@suse.de>
980
981         PR tree-optimization/43879
982         * tree-ssa-structalias.c (type_could_have_pointers): Functions
983         can have pointers.
984
985 2010-04-30  Jan Hubicka  <jh@suse.cz>
986
987         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
988         varpool.
989         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
990
991 2010-04-30  Jan Hubicka  <jh@suse.cz>
992
993         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
994         New.
995         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
996         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
997         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
998         cgraph_node_set_needs_ltrans_p): Remove.
999
1000 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1001
1002         * sdbout.c: Include vec.h, do not include varray.h.
1003         (deferred_global_decls, sdbout_global_decl,
1004         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
1005         * toplev.c: Do not include varray.h.
1006         (dump_memory_report): Do not dump VARRAY statistics.
1007         * gengtype.c (open_base_file): Ignore varray.h.
1008         * Makefile.in: Update for abovementioned changes.
1009         Remove all traces of varray.c and varray.h.
1010         * varray.c: Remove file.
1011         * varray.h: Remove file.
1012
1013 2010-04-30  Jan Hubicka  <jh@suse.cz>
1014
1015         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
1016         references.
1017
1018 2010-04-30  Jan Hubicka  <jh@suse.cz>
1019
1020         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
1021         needed.
1022
1023 2010-04-30  Richard Guenther  <rguenther@suse.de>
1024
1025         * tree-ssa-structalias.c (get_constraint_for_1): Generate
1026         constraints for CONSTRUCTOR.
1027
1028 2010-04-30  Richard Guenther  <rguenther@suse.de>
1029
1030         PR lto/43946
1031         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
1032         first after all lowering passes.
1033
1034 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1035
1036         * toplev.c: Include varray.h for statistics dumping.
1037         * tree.h: Do not declare varray_head_tag.
1038         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
1039         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
1040         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
1041         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
1042         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
1043         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
1044         c-common.c, c-common.h, reg-stack.c, basic-block.h,
1045         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
1046         include varray.h.
1047         * Makefile.in: Update for abovementioned changes.
1048
1049 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
1050
1051         PR debug/43942
1052         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
1053
1054 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1055
1056         * config/picochip/picochip.c (picochip_legitimize_address): Define.
1057         Use this function to do machine-specific conversion.
1058         (picochip_legitimize_reload_address): Likewise.
1059         (picochip_legitimate_address_p): Check valid base register only if
1060         strict.
1061         (picochip_check_conditional_copy): Check for modw only if opnd is
1062         register.
1063         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
1064         to call the function in c.
1065         * config/picochip/picochip-protos.h
1066         (picochip_legitimize_reload_address): Define.
1067         * config/picochip/picochip.md (supported_compare1): Define.
1068
1069 2010-04-30  Jan Hubicka  <jh@suse.cz>
1070
1071         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
1072         (cgraph_global_info): Remove inlined.
1073         (LTO_cgraph_tag_names): Remove.
1074         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
1075         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
1076         simplify cgraph tags and document.
1077         (lto_output_node): Use only LTO_cgraph_unavail_node and
1078         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
1079         for_functions_valid, global info, process and output flags.
1080         (input_overwrite_node): Initialize estimated stack size and
1081         estimated growth.  Do not read flags we no longer store.
1082         (input_node): Likewise do not read info no longer stored.
1083         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
1084         flag.
1085
1086 2010-04-30  Richard Guenther  <rguenther@suse.de>
1087
1088         PR tree-optimization/43879
1089         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1090         handle non-zero initializers.
1091
1092 2010-04-30  Richard Guenther  <rguenther@suse.de>
1093
1094         * builtins.c (fold_builtin_1): Delete free (0).
1095
1096 2010-04-29  Jan Hubicka  <jh@suse.cz>
1097
1098         * gengtype.c (open_base_files): Add lto-streamer.h
1099         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
1100         (pass_ipa_cp): GGC collect.
1101         * toplev. (compile_file): Do not output symbols.
1102         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
1103         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
1104         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
1105         * lto-section-in.c: Include ggc.h
1106         (lto_new_in_decl_state): Alloc in GGC.
1107         (lto_delete_in_decl_state): Likewise.
1108         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
1109         Collect.
1110
1111 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1112
1113         PR target/42895
1114         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
1115         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
1116         (HONOR_REG_ALLOC_ORDER): Describe new macro.
1117         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
1118         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
1119         account only if HONOR_REG_ALLOC_ORDER is not defined.
1120         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
1121         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
1122
1123 2010-04-29  Jon Grant  <04@jguk.org>
1124
1125         * collect2.c (vflag): Change type from int to bool.
1126         (debug): Likewise.
1127         (helpflag): New global bool.
1128         (main): Set vflag and debug with boolean, not integer truth values.
1129         Accept new "--help" option and output usage text if found.
1130         * collect2.h (vflag): Update prototype.
1131         (debug): Likewise.
1132
1133 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1134
1135         PR bootstrap/43936
1136         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
1137
1138 2010-04-29  Richard Guenther  <rguenther@suse.de>
1139
1140         PR bootstrap/43935
1141         * plugin.h (invoke_plugin_callbacks): Annotate arguments
1142         with ATTRIBUTE_UNUSED.
1143
1144 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1145
1146         PR target/43921
1147         * config/i386/i386.c (get_some_local_dynamic_name): Replace
1148         INSN_P with NONDEBUG_INSN_P.
1149         (distance_non_agu_define): Likewise.
1150         (distance_agu_use): Likewise.
1151
1152 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1153
1154         From Dominique d'Humieres <dominiq@lps.ens.fr>
1155         PR bootstrap/43858
1156         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
1157         test_set.
1158
1159 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1160
1161         * plugin.h (invoke_plugin_callbacks): New inline function.
1162         * plugin.c (flag_plugin_added): New global flag.
1163         (add_new_plugin): Initialize above flag.
1164         (invoke_plugin_callbacks): Rename to ...
1165         (invoke_plugin_callbacks_full): ... this.
1166
1167 2010-04-28  Jan Hubicka  <jh@suse.cz>
1168
1169         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
1170         (lto_varpool_replace_node): New.
1171         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1172         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1173         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1174         * cgraph.h (varpool_node_ptr): New type.
1175         (varpool_node_ptr): New vector.
1176         (varpool_node_set_def): New structure.
1177         (varpool_node_set): New type.
1178         (varpool_node_set): New vector.
1179         (varpool_node_set_element_def): New structure.
1180         (varpool_node_set_element, const_varpool_node_set_element): New types.
1181         (varpool_node_set_iterator): New type.
1182         (varpool_node): Add prev pointers, add used_from_other_partition,
1183         in_other_partition.
1184         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1185         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1186         varpool_get_node, varpool_remove_node): Declare.
1187         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1188         varpool_node_set_size): New inlines.
1189         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1190         * tree-pass.h (varpool_node_set_def): Forward declare.
1191         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1192         (ipa_write_optimization_summaries): Update prototype.
1193         * ipa-cp.c (ipcp_write_summary): Update.
1194         * ipa-reference.c (ipa_reference_write_summary): Update.
1195         * lto-cgraph.c (lto_output_varpool_node): New static function.
1196         (output_varpool): New function.
1197         (input_varpool_node): New static function.
1198         (input_varpool_1): New function.
1199         (input_cgraph): Input varpool.
1200         * ipa-pure-const.c (pure_const_write_summary): Update.
1201         * lto-streamer-out.c (lto_output): Update, output varpool too.
1202         (write_global_stream): Kill WPA hack.
1203         (produce_asm_for_decls): Update.
1204         (output_alias_pair_p): Handle variables.
1205         (output_unreferenced_globals): Output only needed partition of varpool.
1206         * ipa-inline.c (inline_write_summary): Update.
1207         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1208         cgraph.
1209         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1210         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1211         varpool_node_set_new, varpool_node_set_add,
1212         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1213         debug_varpool_node_set): New functions.
1214         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1215         (execute_one_pass): Process new decls too.
1216         (ipa_write_summaries_2): Pass around vsets.
1217         (ipa_write_summaries_1): Likewise.
1218         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1219         to add.
1220         (ipa_write_optimization_summaries_1): Pass around vsets.
1221         (ipa_write_optimization_summaries): Likewise.
1222         * varpool.c (varpool_get_node): New.
1223         (varpool_node): Update doubly linked lists.
1224         (varpool_remove_node): New.
1225         (dump_varpool_node): More dumping.
1226         (varpool_enqueue_needed_node): Update doubly linked lists.
1227         (decide_is_variable_needed): Kill ltrans hack.
1228         (varpool_finalize_decl): Kill lto hack.
1229         (varpool_assemble_decl): Skip decls in other partitions.
1230         (varpool_assemble_pending_decls): Update doubly linkes lists.
1231         (varpool_empty_needed_queue): Likewise.
1232         (varpool_extra_name_alias): Likewise.
1233         * lto-streamer.c (lto_get_section_name): Add vars section.
1234         * lto-streamer.h (lto_section_type): Update.
1235         (output_varpool, input_varpool): Declare.
1236
1237 2010-04-28  Mike Stump  <mikestump@comcast.net>
1238
1239         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1240
1241 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1242
1243         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1244         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1245         (lto_input_ts_type_tree_pointers): Likewise.
1246         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1247         (lto_output_ts_type_tree_pointers): Likewise.
1248
1249 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1250
1251         Uniquization of constants at the Tree level
1252         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1253         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1254         bit to the end.
1255         (tree_output_constant_def): Declare.
1256         * gimplify.c (gimplify_init_constructor): When using block copy, first
1257         uniquize the constant constructor on the RHS.
1258         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1259         DECL_IN_CONSTANT_POOL flag.
1260         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1261         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1262         constant pool.
1263         (assemble_variable): Deal with symbols belonging to the tree constant
1264         pool.
1265         (get_constant_section): Add ALIGN parameter and simplify.
1266         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1267         (assemble_constant_contents): Use the expression of the VAR_DECL.
1268         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1269         (tree_output_constant_def): New global function.
1270         (mark_constant): Use the expression of the VAR_DECL.
1271         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1272         its expression.
1273         (output_object_block): Likewise and assemble the expression.
1274
1275 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1276
1277         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1278         hash_tree, eq_tree): New tree hash table.
1279         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1280         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1281         lto_orig_address_remove): Reimplement.
1282
1283 2010-04-28  Xinliang David Li  <davidxl@google.com>
1284
1285         PR c/42643
1286         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1287         (compute_uninit_opnds_pos): New function.
1288         (is_non_loop_exit_postdominating): New function.
1289         (compute_control_dep_chain): New function.
1290         (find_pdom): New function.
1291         (convert_control_dep_chain_into_preds): New function.
1292         (find_predicates): New function.
1293         (find_control_equiv_block): New function.
1294         (collect_phi_def_edges): New function.
1295         (find_def_preds): New function.
1296         (find_dom): New function.
1297         (dump_predicates): New function.
1298         (get_cmp_code): New function.
1299         (is_value_included_in): New function.
1300         (find_matching_predicate_in_rest_chains): New function.
1301         (use_pred_not_overlap_with_undef_path_pred): New function.
1302         (is_use_properly_guarded): New function.
1303         (normalize_cond_1): New function.
1304         (is_and_or_or): New function.
1305         (normalize_cond): New function.
1306         (is_gcond_subset_of): New function.
1307         (is_subset_of_any): New function.
1308         (is_or_set_subset_of): New function.
1309         (is_and_set_subset_of): New function.
1310         (is_norm_cond_subset_of): New function.
1311         (is_pred_expr_subset_of): New function.
1312         (is_pred_chain_subset_of): New function.
1313         (is_included_in): New function.
1314         (is_superset_of): New function.
1315         (find_uninit_use): New function.
1316         (warn_uninitialized_phi): New function.
1317         (compute_possibly_undefined_names): New function.
1318         (ssa_undefined_value_p): New function.
1319         (execute_late_warn_uninitialized): New function.
1320         * tree-ssa.c (ssa_undefined_value_p): Removed.
1321         (warn_uninit): Changed to extern.
1322         (warn_uninitialized_phi): Removed.
1323         (warn_uninitialized_vars): Changed to extern.
1324         (execute_late_warn_uninitialized): Removed
1325         * tree-flow.h: Add new prototypes.
1326         * timevar.def: Add new time variable.
1327         * Makefile.in: Add new build file.
1328
1329 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1330
1331         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1332         type if available.
1333
1334 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1335
1336         PR target/22224
1337         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1338
1339 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1340
1341         * cgraph.h (struct cgraph_node): New field indirect_calls.
1342         (struct cgraph_indirect_call_info): New type.
1343         (struct cgraph_edge): Removed field indirect_call. New fields
1344         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1345         (cgraph_create_indirect_edge): Declare.
1346         (cgraph_make_edge_direct): Likewise.
1347         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1348         * ipa-prop.h (struct ipa_param_call_note): Removed.
1349         (struct ipa_node_params): Removed field param_calls.
1350         (ipa_create_all_structures_for_iinln): Declare.
1351         * cgraph.c: Described indirect edges and uids in initial comment.
1352         (cgraph_add_edge_to_call_site_hash): New function.
1353         (cgraph_edge): Search also among the indirect edges, use
1354         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1355         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1356         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1357         site hash.
1358         (initialize_inline_failed): Assign a reason to indirect edges.
1359         (cgraph_create_edge_1): New function.
1360         (cgraph_create_edge): Moved some functionality to
1361         cgraph_create_edge_1.
1362         (cgraph_create_indirect_edge): New function.
1363         (cgraph_edge_remove_callee): Add an assert checking for
1364         non-indirectness.
1365         (cgraph_edge_remove_caller): Special-case indirect edges.
1366         (cgraph_remove_edge): Likewise.
1367         (cgraph_set_edge_callee): New function.
1368         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1369         (cgraph_make_edge_direct): New function.
1370         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1371         the declaration of the call statement matches.
1372         (cgraph_node_remove_callees): Special-case indirect edges.
1373         (cgraph_clone_edge): Likewise.
1374         (cgraph_clone_node): Clone also the indirect edges.
1375         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1376         indirect_call, dump count of indirect_calls edges.
1377         * ipa-prop.c (iinlining_processed_edges): New variable.
1378         (ipa_note_param_call): Create indirect edges instead of
1379         creating notes.  New parameter node.
1380         (ipa_analyze_call_uses): New parameter node, pass it on to
1381         ipa_note_param_call.
1382         (ipa_analyze_stmt_uses): Likewise.
1383         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1384         (print_edge_addition_message): Work on edges rather than on notes.
1385         (update_call_notes_after_inlining): Likewise, renamed to
1386         update_indirect_edges_after_inlining.
1387         (ipa_create_all_structures_for_iinln): New function.
1388         (ipa_free_node_params_substructures): Do not free notes.
1389         (ipa_edge_duplication_hook): Propagate bits within
1390         iinlining_processed_edges bitmap.
1391         (ipa_node_duplication_hook): Do not duplicate notes.
1392         (free_all_ipa_structures_after_ipa_cp): Renamed to
1393         ipa_free_all_structures_after_ipa_cp.
1394         (free_all_ipa_structures_after_iinln): Renamed to
1395         ipa_free_all_structures_after_iinln.g
1396         (ipa_write_param_call_note): Removed.
1397         (ipa_read_param_call_note): Removed.
1398         (ipa_write_indirect_edge_info): New function.
1399         (ipa_read_indirect_edge_info): Likewise.
1400         (ipa_write_node_info): Do not stream notes, do stream information
1401         in indirect edges.
1402         (ipa_read_node_info): Likewise.
1403         (lto_ipa_fixup_call_notes): Removed.
1404         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1405         * ipa-inline.c (pass_ipa_inline): Likewise.
1406         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1407         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1408         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1409         is_gimple_call.
1410         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1411         edges.
1412         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1413         (output_cgraph): Stream also indirect edges.
1414         (lto_output_edge): Added capability to stream indirect edges.
1415         (input_edge): Likewise.
1416         (input_cgraph_1): Likewise.
1417         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1418         of indirect edges.
1419
1420 2010-04-28  Richard Guenther  <rguenther@suse.de>
1421
1422         PR tree-optimization/43879
1423         PR tree-optimization/43909
1424         * tree-ssa-structalias.c (struct variable_info): Add
1425         only_restrict_pointers flag.
1426         (new_var_info): Initialize it.  Increment stats.total_vars here.
1427         (create_function_info_for): Do not increment stats.total_vars
1428         here.
1429         (get_function_part_constraint): Fix build with C++.
1430         (insert_into_field_list): Remove.
1431         (push_fields_onto_fieldstack): Properly merge fields.
1432         (create_variable_info_for): Split and simplify.
1433         (create_variable_info_for_1): New piece.
1434         (intra_create_variable_infos): Properly make restrict constraints
1435         from parameters.
1436
1437 2010-04-28  Richard Guenther  <rguenther@suse.de>
1438
1439         PR c++/43880
1440         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1441
1442 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1443             Jan Hubicka <hubicka@ucw.cz>
1444
1445         * doc/invoke.texi (-Wsuggest-attribute=const,
1446         -Wsuggest-attribute=pure): Document.
1447         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1448         (function_always_visible_to_compiler_p,
1449         suggest_attribute, warn_function_pure, warn_function_const):
1450         New functions.
1451         (check_call): Improve debug info.
1452         (analyze_function): Do not check availability.
1453         (add_new_function): Check availability.
1454         (propagate): Output warnings.
1455         (skip_function_for_local_pure_const): New function.
1456         (local_pure_const): Use it; output warnings.
1457         * common.opt (Wsuggest-attribute=const,
1458         Wsuggest-attribute=pure): New.
1459
1460 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1461
1462         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1463         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1464         or DW_CFA_def_cfa_offset{,_sf}.
1465
1466 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1467
1468         * tree.h: Fix truncated long macros.
1469
1470 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1471
1472         * collect2.c (TARGET_64BIT): Redefine to target's default.
1473         * tlink.c: Likewise.
1474         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1475         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1476         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1477         for underscoring __USER_LABEL_PREFIX__.
1478         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1479         (SUB_LINK_ENTRY32): New.
1480         (SUB_LINK_ENTRY64): New.
1481         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1482         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1483         (SUB_LINK_ENTRY64): New.
1484         (SUB_LINK_ENTRY): New.
1485         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1486         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1487         x64 target is choosen.
1488         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1489         * configure: Regenerated.
1490         * configure.ac (leading-mingw64-underscores): Option added.
1491
1492 2010-04-27  Jan Hubicka  <jh@suse.cz>
1493
1494         * doc/invoke.texi (-fipa-profile): Document.
1495         * opts.c (decode_options): Enable ipa-profile at -O1.
1496         * timevar.def (TV_IPA_PROFILE): Define.
1497         * common.opt (fipa-profile): Add.
1498         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1499         flag for clones.
1500         (cgraph_propagate_frequency): Handle only local ones.
1501         * tree-pass.h (pass_ipa_profile): Declare.
1502         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1503         (pass_ipa_profile): Use TV_IPA_PROFILE.
1504         * ipa.c (ipa_profile): New function.
1505         (gate_ipa_profile): Likewise.
1506         (pass_ipa_profile): New global variable.
1507         * passes.c (pass_ipa_profile): New.
1508
1509 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1510
1511         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1512
1513 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1514
1515         PR middle-end/43812
1516         * ipa.c (dissolve_same_comdat_group_list): New function.
1517         (function_and_variable_visibility): Call
1518         dissolve_same_comdat_group_list when comdat group contains external or
1519         newly local nodes.
1520         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1521         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1522
1523 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1524
1525         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1526         (const_hash_1) <VECTOR_CST>: New case.
1527         (compare_constant) <VECTOR_CST>: Likewise.
1528         <ADDR_EXPR>: Deal with LABEL_REFs.
1529         (copy_constant) <VECTOR_CST>: New case.
1530
1531 2010-04-27  Jan Hubicka  <jh@suse.cz>
1532
1533         * cgraph.c (cgraph_propagate_frequency): New function.
1534         * cgraph.h (cgraph_propagate_frequency): Declare.
1535         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1536         cgraph_propagate_frequency.
1537
1538 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1539
1540         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1541
1542 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1543
1544         PR target/40657
1545         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1546         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1547         here to determine which regs to push and how much stack to reserve.
1548
1549 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1550
1551         * doc/gimple.texi (gimple_statement_with_ops): Remove
1552         addresses_taken field.
1553         (gimple_statement_with_memory_ops): Likewise.
1554
1555 2010-04-27  Jan Hubicka  <jh@suse.cz>
1556
1557         * tree-inline.c (eni_inlining_weights): Remove.
1558         (estimate_num_insns): Special case more builtins.
1559
1560 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1561
1562         PR c/32207
1563         * c-typeck.c (build_binary_op): Move forward check for comparison
1564         pointer with null pointer constant and adjust the diagnostic message.
1565
1566 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1567
1568         PR lto/42776
1569         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1570         binutils supports extended .section directive needed by LTO, or
1571         warn if older binutils found.
1572         (LTO_BINARY_READER): New AC_SUBST'd variable.
1573         (LTO_USE_LIBELF): Likewise.
1574         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1575         variable.
1576         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1577         (LTO_USE_LIBELF): Likewise.
1578         * configure: Regenerate.
1579
1580         * collect2.c (is_elf): Rename from this ...
1581         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1582          object files in addition to ELF-formatted ones.
1583         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1584         symbol to be prefixed or not by an extra underscore.
1585
1586         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1587         * config/i386/winnt.c: Also #include lto-streamer.h
1588         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1589         LTO named sections.
1590         (i386_pe_asm_output_aligned_decl_common): Add comment.
1591         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1592
1593 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1594
1595         PR target/43889
1596         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1597         Add missing earlyclobber for second alternative.
1598
1599 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1600
1601         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1602         bits for artificial defs at the top of the block.
1603         * fwprop.c (single_def_use_enter_block): Don't call it.
1604
1605 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1606
1607         PR 43715
1608         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1609         instead of "$gcc_cv_objdump -T".
1610         Use "-undefined dynamic_lookup" on darwin.
1611         * gcc/configure: Regenerate.
1612
1613 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1614
1615         PR c/43893
1616         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1617
1618 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1619
1620         * c-parser.c (struct c_token): Move location field up.
1621         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1622         (struct c_declspecs): Convert typespec_word, storage_class, and
1623         default_int_p into bitfields.
1624         (struct c_declarator): Move loc field up.
1625
1626 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1627
1628         * cfgloop.h (struct loop): Move can_be_parallel field up.
1629         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1630         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1631         down.
1632         (struct iv_cand): Convert pos field into a bitfield.
1633         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1634         field up.
1635         (struct _stmt_vec_info): Shuffle fields for better packing.
1636
1637 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1638
1639         * varasm.c (IN_NAMED_SECTION): Remove guard.
1640         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1641         (IN_NAMED_SECTION_P): ...this.
1642         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1643         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1644
1645 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1646
1647         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1648         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1649         of shadowing it.  Fix comments.
1650
1651 2010-04-26  Jan Hubicka  <jh@suse.cz>
1652
1653         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1654         (cgraph_clone_node): Copy function frequency.
1655         * cgraph.h (node_frequency): New enum
1656         (struct cgraph_node): Add.
1657         * final.c (rest_of_clean_state): Update.
1658         * lto-cgraph.c (lto_output_node): Output node frequency.
1659         (input_overwrite_node): Input node frequency.
1660         * tre-ssa-loop-ivopts (computation_cost): Update.
1661         * lto-streamer-out.c (output_function): Do not output function
1662         frequency.
1663         * predict.c (maybe_hot_frequency_p): Update and handle functions
1664         executed once.
1665         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1666         attribute lookup.
1667         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1668         (compute_function_frequency): Set noreturn functions to be executed
1669         once.
1670         (choose_function_section): Update.
1671         * lto-streamer-in.c (input_function): Do not input function frequency.
1672         * function.c (allocate_struct_function): Do not initialize function
1673         frequency.
1674         * function.h (function_frequency): Remove.
1675         (struct function): Remove function frequency.
1676         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1677         (try_update): Update.
1678         * tree-inline.c (initialize_cfun): Do not update function frequency.
1679         * passes.c (pass_init_dump_file): Update.
1680         * i386.c (ix86_compute_frame_layout): Update.
1681         (ix86_pad_returns): Update.
1682
1683 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1684
1685         PR tree-optimization/43833
1686         * tree-vrp.c (range_int_cst_p): New.
1687         (range_int_cst_singleton_p): New.
1688         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1689         when both operands are constants.  Use range_int_cst_p in
1690         BIT_IOR_EXPR case.
1691
1692 2010-04-26  Jan Hubicka  <jh@suse.cz>
1693
1694         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1695
1696 2010-04-26  Richard Guenther  <rguenther@suse.de>
1697
1698         PR lto/43080
1699         * gimple.c (gimple_decl_printable_name): Deal gracefully
1700         with a NULL DECL_NAME.
1701
1702 2010-04-26  Richard Guenther  <rguenther@suse.de>
1703
1704         PR lto/42425
1705         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1706         if emitting debug information and it is either a function
1707         or a namespace decl.
1708
1709 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1710
1711         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1712         determine if the statement is vectorizable, and a macro to access it.
1713         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1714         Skip statements that can't be vectorized. If the analysis fails,
1715         mark the statement as unvectorizable if vectorizing basic block.
1716         (vect_compute_data_refs_alignment): Likewise.
1717         (vect_verify_datarefs_alignment): Skip statements marked as
1718         unvectorizable. Add print.
1719         (vect_analyze_group_access): Skip statements that can't be
1720         vectorized. If the analysis fails, mark the statement as
1721         unvectorizable if vectorizing basic block.
1722         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1723         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1724         generated stmts for SLP.
1725         (new_stmt_vec_info): Initialize the new field.
1726         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1727         statements marked as unvectorizable.
1728
1729 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1730
1731         * c-common.c (flag_isoc1x): New.
1732         (flag_isoc99): Update comment.
1733         * c-common.h (flag_isoc1x): New.
1734         (flag_isoc99): Update comment.
1735         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1736         __<type>_DECIMAL_DIG__.
1737         * c-opts.c (set_std_c1x): New.
1738         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1739         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1740         * c.opt (-std=c1x, -std=gnu1x): New options.
1741         * doc/cpp.texi: Mention -std=c1x.
1742         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1743         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1744         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1745         * doc/standards.texi: Mention C1X.
1746         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1747         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1748         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1749         Define for C1X.
1750
1751 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1752
1753         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1754         placeholder from 0x%x to %#x.
1755         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1756         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1757         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1758         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1759         * config/i386/i386.c (ix86_target_string): Ditto.
1760         (output_pic_addr_const): Ditto.
1761         (print_operand): Ditto.
1762
1763 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1764
1765         * combine.c (find_split_point): Add third argument.  Use it
1766         to find nested multiply-accumulate instructions.  Adjust calls.
1767         (try_combine): Adjust call to find_split_point.
1768
1769 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1770
1771         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1772
1773 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1774
1775         PR tree-optimization/41442
1776         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1777         (fold_binary_loc): Call it.
1778
1779 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1780
1781         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1782         * opts.c (common_handle_option): Allow disabling it.
1783         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1784
1785 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1786
1787         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1788         between modes if both types are integral.
1789
1790 2010-04-23  Richard Guenther  <rguenther@suse.de>
1791
1792         PR tree-optimization/43572
1793         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1794
1795 2010-04-23  Richard Guenther  <rguenther@suse.de>
1796
1797         PR lto/43455
1798         * tree-inline.c (tree_can_inline_p): Also check compatibility
1799         of return types.
1800
1801 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1802
1803         PR tree-optimization/43846
1804         * tree-sra.c (struct access): New flag grp_assignment_read.
1805         (build_accesses_from_assign): Set grp_assignment_read.
1806         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1807         (enum mark_read_status): New type.
1808         (analyze_access_subtree): Propagate grp_assignment_read, create
1809         accesses also if both direct_read and root->grp_assignment_read.
1810
1811 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1812
1813         PR middle-end/43835
1814         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1815         function does not have type attributes.
1816
1817 2010-04-23  Richard Guenther  <rguenther@suse.de>
1818
1819         PR lto/42653
1820         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1821         of FUNCTION_DECLs.
1822
1823 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1824
1825         * sese.h (create_if_region_on_edge): Remove.
1826
1827         * sese.c (create_if_region_on_edge): Make static.
1828
1829         * tree-inline.c: Do not include ggc.h.
1830
1831         * expr.c: Do not include ggc.h.
1832
1833         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1834         dependencies.
1835
1836 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1837
1838         PR target/43744
1839         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1840         in the middle of insns for casesi_worker_2.
1841
1842 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1843
1844         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1845
1846 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1847
1848         PR tree-optimization/43842
1849         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1850         loop unrolling in update of exit phis. Fix comment.
1851         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1852         least two reduction statements in the loop before starting SLP
1853         analysis.
1854
1855 2010-04-22  Nick Clifton  <nickc@redhat.com>
1856
1857         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1858
1859 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1860
1861         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1862         to simplify a + ~a.
1863
1864 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1865
1866         * tree-parloops.c (loop_parallel_p): New argument
1867         parloop_obstack.  Pass it down.
1868         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1869         pass it down, free it.
1870
1871         * tree-loop-linear.c (linear_transform_loops): Pass down
1872         lambda_obstack.
1873
1874         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1875         of type struct obstack *.
1876
1877         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1878         scratch_obstack.  Initialize it, pass down, free it.
1879
1880         * lambda.h (lambda_loop_new): Remove.
1881         (lambda_matrix_new, lambda_matrix_inverse)
1882         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1883         argument of type struct obstack *.
1884
1885         * lambda-trans.c (lambda_trans_matrix_new): New argument
1886         lambda_obstack.  Pass it down, use obstack allocation for ret.
1887         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1888         it down.
1889
1890         * lambda-mat.c (lambda_matrix_get_column)
1891         (lambda_matrix_project_to_null): Remove.
1892         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1893         allocation for mat.
1894         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1895         lambda_obstack.
1896
1897         * lambda-code.c (lambda_loop_new): New function.
1898         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1899         (lambda_compute_auxillary_space, lambda_compute_target_space)
1900         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1901         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1902         (build_access_matrix): New argument lambda_obstack.  Use obstack
1903         allocation for am.
1904         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1905         argument lambda_obstack.  Pass it down.
1906
1907 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1908
1909         * optabs.h (expand_widening_mult): Declare.
1910
1911 2010-04-22  Richard Guenther  <rguenther@suse.de>
1912
1913         PR tree-optimization/43845
1914         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1915         lookup the CALL_EXPR function and arguments.
1916
1917 2010-04-22  Nick Clifton  <nickc@redhat.com>
1918
1919         * config/stormy16/stormy16.c
1920         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1921         * config/stormy16/stormy16.h: Tidy up formatting.
1922         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1923         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1924         (ineqbranchsi): Delete pattern.
1925         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1926         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1927         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1928         stormy16-lib2-ucmpsi2.c.
1929
1930 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1931
1932         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1933         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1934         extra set merge_set_noclobber, and use it to relax the final test
1935         slightly.
1936         * df.h (df_simulate_find_noclobber_defs): Declare.
1937         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1938         conditional defs.
1939         (df_simulate_find_noclobber_defs): New function.
1940
1941 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1942
1943         * config/i386/i386.md: Use {} around multi-line preparation statements.
1944
1945 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1946
1947         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1948         (process_init_element): New argument of type struct obstack *.
1949
1950         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1951         (set_init_index, set_init_label, set_nonincremental_init)
1952         (set_nonincremental_init_from_string, find_init_member)
1953         (output_init_element, output_pending_init_elements)
1954         (process_init_element): New argument braced_init_obstack.  Pass it
1955         down.
1956         (push_range_stack, add_pending_init): New argument
1957         braced_init_obstack.  Use obstack allocation.
1958
1959         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1960         braced_init_obstack.  Pass it down.
1961         (c_parser_braced_init): New variables ret, braced_init_obstack.
1962         Initialize obstack, pass it down and finally free it.
1963
1964 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1965
1966         PR middle-end/29274
1967         * tree-pass.h (pass_optimize_widening_mul): Declare.
1968         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1969         gate_optimize_widening_mul): New static functions.
1970         (pass_optimize_widening_mul): New.
1971         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1972         <case MULT_EXPR>: Remove support for widening multiplies.
1973         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1974         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1975         simplify_gen_unary rather than directly building extensions.
1976         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1977         WIDEN_MULT_EXPR.
1978         * expmed.c (expand_widening_mult): New function.
1979         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1980
1981 2010-04-21  Jan Hubicka  <jh@suse.cz>
1982
1983         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1984         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1985         * lto-wpa-fixup.c: Remove.
1986         * Makefile.in (lto-wpa-fixup.o): Remove.
1987         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1988         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1989         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1990
1991 2010-04-21  Jan Hubicka  <jh@suse.cz>
1992
1993         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1994         add write_optimization_summary, read_optimization_summary.
1995         (ipa_write_summaries_of_cgraph_node_set): Remove.
1996         (ipa_write_optimization_summaries): Declare.
1997         (ipa_read_optimization_summaries): Declare.
1998         * ipa-cp.c (pass_ipa_cp): Update.
1999         * ipa-reference.c (pass_ipa_reference): Update.
2000         * ipa-pure-const.c (pass_ipa_pure_const): Update.
2001         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
2002         Update.
2003         * ipa-inline.c (pass_ipa_inline): Update.
2004         * ipa.c (pass_ipa_whole_program): Update.
2005         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
2006         * passes.c (ipa_write_summaries_1): Do not test wpa.
2007         (ipa_write_optimization_summaries_1): New.
2008         (ipa_write_optimization_summaries): New.
2009         (ipa_read_summaries): Do not test ltrans.
2010         (ipa_read_optimization_summaries_1): New.
2011         (ipa_read_optimization_summaries): New.
2012
2013 2010-04-21  Jan Hubicka  <jh@suse.cz>
2014
2015         * lto-cgraph.c (lto_output_node): Do not output comdat groups
2016         for boundary nodes.
2017         (output_cgraph): Do not arrange comdat groups for boundary nodes.
2018
2019 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2020
2021         PR debug/40040
2022         * dwarf2out.c (add_name_and_src_coords_attributes): Add
2023         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
2024
2025 2010-04-21  Jan Hubicka  <jh@suse.cz>
2026
2027         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
2028
2029 2010-04-21  Jan Hubicka  <jh@suse.cz>
2030
2031         * varpool.c (decide_is_variable_needed): Variable is always needed
2032         during ltrans.
2033
2034 2010-04-21  Jan Hubicka  <jh@suse.cz>
2035
2036         * opts.c (decode_options): Enable pure-const pass for whopr.
2037
2038 2010-04-21  Jan Hubicka  <jh@suse.cz>
2039
2040         * cgraph.c (dump_cgraph_node): Dump also assembler name.
2041         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
2042         at WPA dumping.
2043         (cgraph_decide_inlining): Do not expect callee to be removed in all
2044         cases.
2045
2046 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
2047
2048         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
2049
2050 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2051
2052         * config/i386/i386.md (x86_shrd): Add athlon_decode and
2053         amdfam10_decode attributes.
2054
2055 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2056
2057         PR middle-end/43570
2058         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
2059         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
2060         (lower_copyprivate_clauses): Use private var in outer
2061         context instead of original var.  Make sure the types
2062         are correct for VLAs.
2063
2064 2010-04-21  Richard Guenther  <rguenther@suse.de>
2065
2066         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
2067         to non-pointer objects.
2068
2069 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2070
2071         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
2072         last chain entry if it starts with the still current label.
2073         (add_location_or_const_value_attribute): Check that
2074         loc_list->first->next is NULL instead of comparing ->first with ->last.
2075         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
2076         to add_var_loc_to_decl.
2077
2078         * dwarf2out.c (output_call_frame_info): For dw_cie_version
2079         >= 4 add also address size and segment size fields into CIE header.
2080
2081         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
2082         long as address size is the same as sizeof (void *) and
2083         segment size is 0.
2084         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
2085         address size or segment size is unexpected, return DW_EH_PE_omit.
2086         (classify_object_over_fdes): If get_cie_encoding returned
2087         DW_EH_PE_omit, return -1.
2088         (init_object): If classify_object_over_fdes returned -1,
2089         pretend there were no FDEs at all.
2090
2091 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2092
2093         * config/i386/i386.md (bswap<mode>2): Macroize expander from
2094         bswap{si,di}2 using SWI48 mode iterator.
2095         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
2096         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
2097         set modrm attribute of bswap insn to 0 and remove length attribute.
2098         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
2099         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
2100         set mode attribute to <MODE> and remove length attribute.
2101
2102 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
2103
2104         PR rtl-optimization/43520
2105         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
2106         zero available registers.
2107
2108 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2109
2110         * builtins.c (fold_builtin_cproj): Fold more cases.
2111
2112 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2113
2114         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
2115         (fold_builtin_1): Fold builtin cproj.
2116         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
2117         Use ATTR_CONST_NOTHROW_LIST.
2118
2119 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
2120
2121         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
2122         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
2123         ffsi2_no_cmove for !TARGET_CMOVE.
2124         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
2125         (ffssi2): Remove expander.
2126         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
2127         mode iterator.
2128         (ctz<mode>2): Ditto from ctz{si,di}2.
2129         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
2130         mode iterator.
2131         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
2132         mode iterator.
2133
2134 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2135
2136         * dwarf2out.c (AT_linkage_name): Define.
2137         (clone_as_declaration): Handle DW_AT_linkage_name.
2138         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
2139         of DW_AT_MIPS_linkage_name.
2140         (move_linkage_attr): Likewise.
2141         (dwarf2out_finish): Likewise.
2142
2143 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
2144
2145         PR middle-end/41952
2146         * fold-const.c (fold_comparison): New folding rule.
2147
2148 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
2149
2150         * double-int.h (double_int_setbit): Declare.
2151         * double-int.c (double_int_setbit): New function.
2152         * rtl.h (immed_double_int_const): Declare.
2153         * emit-rtl.c (immed_double_int_const): New function.
2154         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
2155         and immed_double_int_const functions.
2156         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
2157         expand_copysign_bit):  (Ditto.).
2158         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
2159         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2160         * dojump.c (prefer_and_bit_test): (Ditto.).
2161         * expr.c (convert_modes, reduce_to_bit_field_precision,
2162         const_vector_from_tree): (Ditto.).
2163         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2164
2165 2010-04-20  Jan Hubicka  <jh@suse.cz>
2166
2167         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2168         (dump_cgraph_node): Dump new flags.
2169         * cgraph.h (struct cgraph_node): Add flags
2170         reachable_from_other_partition and in_other_partition.
2171         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2172         other partition can not be removed.
2173         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2174         the other partition must be output; silence sanity checking on
2175         leaking functions bodies from other paritition.
2176         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2177         (lto_output_node): Output new flags; do not sanity check that inline
2178         clones are output; drop lto_forced_extern_inline_p code; do not mock
2179         visibility flags at partition boundaries.
2180         (add_node_to): New function.
2181         (output_cgraph): Use it to sort functions so masters appear before
2182         clones.
2183         (input_overwrite_node): Input new flags.
2184         * passes.c (ipa_write_summaries): Do not call
2185         lto_new_extern_inline_states.
2186         * lto-section-out.c (forced_extern_inline,
2187         lto_new_extern_inline_states lto_delete_extern_inline_states,
2188         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2189         * lto-streamer.h (lto_new_extern_inline_states,
2190         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2191         lto_forced_extern_inline_p): Kill.
2192
2193 2010-04-20  Richard Guenther  <rguenther@suse.de>
2194
2195         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2196         from vars that can have pointers.
2197         (process_constraint): Dump useless constraints.
2198
2199 2010-04-20  Richard Guenther  <rguenther@suse.de>
2200
2201         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2202         (dump_sa_points_to_info): Remove asserts.
2203         (init_base_vars): nothing_id isn't an escape point nor does it
2204         have pointers.
2205
2206 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2207
2208         * tree.h (TYPE_REF_IS_RVALUE): Define.
2209         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2210         should_move_die_to_comdat, prune_unused_types_walk): Handle
2211         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2212         (modified_type_die, gen_reference_type_die): Emit
2213         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2214         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2215
2216 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2217
2218         PR target/43635
2219         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2220         calls for -fpic -m31 if they have been sibcall optimized.
2221
2222 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2223
2224         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2225         ar.lc fixed and call-used.
2226
2227         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2228
2229 2010-04-19  Jan Hubicka  <jh@suse.cz>
2230
2231         * opts.c (decode_options): Disable whpr incompatible passes.
2232         * lto/lto.c (lto_1_to_1_map): Skip clones.
2233         (read_cgraph_and_symbols): Do not mark everything as needed.
2234         (do_whole_program_analysis): Do map only after optimizing;
2235         set proper cgraph_state; use passmanager.
2236
2237 2010-04-19  DJ Delorie  <dj@redhat.com>
2238
2239         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2240         POINTER_PLUS_EXPR and fix them.
2241
2242 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2243
2244         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2245         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2246         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2247         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2248         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2249         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2250         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2251         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2252         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2253         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2254         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2255
2256 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2257
2258         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2259         (check_cond_move_block): Likewise.
2260         (cond_move_process_if_block): Likewise.
2261         (noce_find_if_block): Improve formatting.
2262         (find_if_header): Pass 0 to memset and tweak conditions.
2263         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2264
2265 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2266
2267         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2268         for -gdwarf-4.
2269
2270         PR middle-end/43337
2271         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2272         with non-local decl doesn't need chain.
2273
2274 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2275
2276         * ira-color.c (allocno_reload_assign): Avoid accumulating
2277         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2278
2279 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2280
2281         * gimple.h (create_tmp_reg): Declare.
2282         * gimplify.c (create_tmp_reg): New function.
2283         (gimplify_return_expr): Use create_tmp_reg.
2284         (gimplify_omp_atomic): Likewise.
2285         (gimple_regimplify_operands): Likewise.
2286         * tree-dfa.c (make_rename_temp): Likewise.
2287         * tree-predcom.c (predcom_tmp_var): Likewise.
2288         (reassociate_to_the_same_stmt): Likewise.
2289         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2290         (get_replaced_param_substitute): Likewise.
2291         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2292         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2293         * tree-ssa-pre.c (get_representative_for): Likewise.
2294         (create_expression_by_pieces): Likewise.
2295         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2296         (create_tailcall_accumulator): Likewise.
2297
2298 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2299
2300         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2301         new_stmt.
2302         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2303
2304 2010-04-19  Richard Guenther  <rguenther@suse.de>
2305
2306         PR tree-optimization/43796
2307         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2308         from SCEV in the lattice.
2309         (vrp_visit_phi_node): Dump change.
2310
2311 2010-04-19  Richard Guenther  <rguenther@suse.de>
2312
2313         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2314         * configure: Re-generated.
2315
2316 2010-04-19  Richard Guenther  <rguenther@suse.de>
2317
2318         PR tree-optimization/43783
2319         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2320         constant ARRAY_REF operands two and three if possible.
2321
2322 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2323
2324         PR target/43766
2325         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2326
2327 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2328
2329         PR target/43662
2330         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2331
2332 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2333
2334         PR tree-optimization/37027
2335         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2336         and macro to access it.
2337         (vectorizable_reduction): Add argument.
2338         (vect_get_slp_defs): Likewise.
2339         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2340         statements for possible use in SLP.
2341         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2342         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2343         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2344         add new argument.
2345         (vectorizable_reduction): Likewise.
2346         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2347         vect_get_slp_defs.
2348         (vectorizable_type_demotion, vectorizable_type_promotion,
2349         vectorizable_store): Likewise.
2350         (vect_analyze_stmt): Update call to vectorizable_reduction.
2351         (vect_transform_stmt): Likewise.
2352         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2353         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2354         from different interleaving chains in same node.
2355         (vect_slp_rearrange_stmts): New function.
2356         (vect_supported_load_permutation_p): Allow load permutations for
2357         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2358         inside SLP nodes if necessary.
2359         (vect_analyze_slp_instance): Handle reductions.
2360         (vect_analyze_slp): Try to build SLP instances originating from groups
2361         of reductions.
2362         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2363         (vect_get_constant_vectors): Create initial vectors for reductions
2364         according to reduction code. Add new argument.
2365         (vect_get_slp_defs): Add new argument, pass it to
2366         vect_get_constant_vectors.
2367         (vect_schedule_slp_instance): Remove SLP tree root statements.
2368
2369 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2370
2371         * tree.h (ENUM_IS_SCOPED): Define.
2372         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2373         for ENUM_IS_SCOPED enums.
2374
2375 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2376
2377         * fold-const.c (fold_comparison): Use ssizetype.
2378         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2379         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2380         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2381         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2382
2383         * tree.h (initialize_sizetypes): Remove parameter.
2384         (build_common_tree_nodes): Remove second parameter.
2385         * stor-layout.c (initialize_sizetypes): Remove parameter.
2386         Always create an unsigned type.
2387         (set_sizetype): Assert that the passed type is unsigned and simplify.
2388         * tree.c (build_common_tree_nodes): Remove second parameter.
2389         Adjust call to initialize_sizetypes.
2390         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2391         build_common_tree_nodes.
2392
2393 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2394
2395         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2396
2397 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2398
2399         PR tree-optimization/43771
2400         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2401         load permutation doesn't have gaps.
2402
2403 2010-04-18  Jan Hubicka  <jh@suse.cz>
2404
2405         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2406         (sse_prologue_save_insn expander): Use new pattern.
2407         (sse_prologue_save_insn1): New pattern and splitter.
2408         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2409         blocks.
2410         * i386.c (setup_incoming_varargs_64): Do not compute jump
2411         destination here.
2412         (ix86_gimplify_va_arg): Update alignment needed.
2413         (ix86_local_alignment): Do not align all local arrays to 128bit.
2414
2415 2010-04-17  Jan Hubicka  <jh@suse.cz>
2416
2417         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2418
2419 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2420
2421         * arm.md (negdi2): Remove redundant code to force values into a
2422         register.
2423
2424 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2425
2426         * arm/bpabi.S: Add EABI alignment attributes to objects.
2427         * arm/bpabi-v6m.S: Likewise.
2428         * arm/crti.asm: Likewise.
2429         * arm/crtn.asm: Likewise.
2430         * arm/lib1funcs.asm: Likewise.
2431         * arm/libunwind.S: Likewise.
2432
2433 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2434
2435         * arm-protos.h (tune_params): New structure.
2436         * arm.c (current_tune): New variable.
2437         (arm_constant_limit): Delete.
2438         (struct processors): Add pointer to the tune parameters.
2439         (arm_slowmul_tune): New tuning option.
2440         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2441         (all_cores): Adjust to pick up the tuning model.
2442         (arm_constant_limit): New function.
2443         (arm_override_options): Select the appropriate tuning model.  Delete
2444         initialization of arm_const_limit.
2445         (arm_split_constant): Use the new constant-limit model.
2446         (arm_rtx_costs): Pick up the current tuning model.
2447         * arm.md (is_strongarm, is_xscale): Delete.
2448         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2449         for Xscale variant architectures.
2450         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2451
2452 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2453
2454         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2455         can_shift.
2456         (arm_rtx_costs_1): Remove unused variable extra_cost.
2457         (arm_unwind_emit_set): Use variable offset.
2458         (thumb1_output_casesi): Remove unused variable flags.
2459
2460 2010-04-16  Jeff Law  <law@redhat.com>
2461
2462         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2463         needing assignment rather than doing a two-phase assignment.  Remove
2464         unused variable 'm'.
2465
2466 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2467
2468         PR bootstrap/43767
2469         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2470
2471 2010-04-16  Doug Kwan  <dougkwan@google.com>
2472
2473         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2474         (next_operand_entry_id): New static variable.
2475         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2476         (add_to_ops_vec): Assigned unique ID to operand entry.
2477         (struct oecount_s): New field ID.
2478         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2479         (undistribute_ops_list): Assign unique IDs to oecounts.
2480         (init_reassoc): reset next_operand_entry_id.
2481
2482 2010-04-16  Doug Kwan  <dougkwan@google.com>
2483
2484         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2485         missing left parenthesis.
2486
2487 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2488
2489         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2490         *btdi_rex64 using SWI48 mode iterator.
2491         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2492         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2493         *jcc_btdi_mask_rex64.
2494
2495 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2496
2497         * double-int.h (tree_to_double_int): Convert to macro.
2498         * double-int.c (tree_to_double_int): Remove.
2499
2500 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2501
2502         PR debug/43762
2503         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2504         with want_address 2 and in case a single element list might be
2505         possible, call it again with want_address 0.
2506
2507 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2508
2509         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2510         case 'W' print operands for HI mode.
2511         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2512         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2513         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2514         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2515
2516         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2517
2518         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2519         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2520         #xx:3 and #xx:4 mode.
2521
2522         * config/h8300/h8300.md (inverted load with HImode dest): Add
2523         support for H8300SX.
2524
2525         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2526         satisfy 'U' constraint.
2527
2528 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2529
2530         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2531         * configure: Regenerate.
2532         * config.in: Regenerate.
2533         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2534         works.
2535
2536 2010-04-16  Richard Guenther  <rguenther@suse.de>
2537
2538         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2539         (struct tree_decl_common): ... here.
2540         (DECL_PT_UID): Adjust.
2541         (SET_DECL_PT_UID): Likewise.
2542         (DECL_PT_UID_SET_P): Likewise.
2543
2544 2010-04-16  Richard Guenther  <rguenther@suse.de>
2545
2546         PR tree-optimization/43572
2547         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2548         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2549         * tree-flow.h (is_call_clobbered): Remove.
2550         * tree-flow-inline.h (is_call_clobbered): Likewise.
2551         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2552         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2553         (execute_return_slot_opt): Adjust.
2554         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2555         check for call clobbered vars here.
2556         (find_tail_calls): Move tailcall verification to the
2557         proper place.
2558
2559 2010-04-16  Diego Novillo  <dnovillo@google.com>
2560
2561         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2562
2563 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2564
2565         PR target/40603
2566         * config/arm/arm.md (cbranchqi4): New pattern.
2567         * config/arm/predicates.md (const0_operand,
2568         cbranchqi4_comparison_operator): New predicates.
2569
2570 2010-04-16  Richard Guenther  <rguenther@suse.de>
2571
2572         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2573         (dump_gimple_stmt): Likewise.
2574
2575 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2576
2577         * recog.h (struct recog_data): New field is_operator.
2578         (struct insn_operand_data): New field is_operator.
2579         * recog.c (extract_insn): Set recog_data.is_operator.
2580         * genoutput.c (output_operand_data): Emit code to set the
2581         is_operator field.
2582         * reload.c (find_reloads): Use it rather than testing for an
2583         empty constraint string.
2584
2585         PR target/41514
2586         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2587         If the previous insn is a cbranchsi4_insn with the same arguments,
2588         omit the compare instruction.
2589
2590         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2591         register, inputs must be low registers and we need a low register
2592         scratch.  Handle alternative 2 like alternative 3.
2593
2594 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2595
2596         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2597         don't call get_addr on both.  If one expression is a VALUE and
2598         the other a REG, check VALUE's locs if the REG isn't among them.
2599
2600 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2601
2602         * config/sh/sh.h (sh_frame_pointer_required): New function.
2603         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2604         (flag_omit_frame_pointer) Set.
2605         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2606         (rounded_frame_size): Adjust size with outgoing_args_size.
2607         (sh_set_return_address): Must return from stack pointer.
2608         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2609         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2610         (ACCUMULATE_OUTGOING_ARGS): Define.
2611         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2612         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2613
2614 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2615
2616         PR target/43471
2617         * config/sh/sh.c (sh_legitimize_reload_address): Use
2618         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2619         Remove a unneeded check for offset_base.
2620
2621 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2622
2623         * configure: Regenerated.
2624
2625 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2626
2627         * config/s390/s390.c (s390_call_save_register_used): Switch back
2628         to HARD_REGNO_NREGS.
2629
2630 2010-04-15  Richard Guenther  <rguenther@suse.de>
2631
2632         * alias.c (alias_set_subset_of): Handle alias-set zero
2633         child properly.
2634
2635 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2636             Julian Brown  <julian@codesourcery.com>
2637
2638         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2639         alternatives according to use of high and low regs.
2640         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2641         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2642         optimizing for size on Thumb-2.
2643
2644 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2645
2646         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2647
2648 2010-04-15  Richard Guenther  <rguenther@suse.de>
2649
2650         * tree-ssa-structalias.c (struct variable_info): Add
2651         is_fn_info flag.
2652         (new_var_info): Initialize it.
2653         (dump_constraints): Support printing last added constraints.
2654         (debug_constraints): Adjust.
2655         (dump_constraint_graph): Likewise.
2656         (make_heapvar_for): Check for NULL cfun.
2657         (get_function_part_constraint): New function.
2658         (get_fi_for_callee): Likewise.
2659         (find_func_aliases): Properly implement IPA PTA constraints.
2660         (process_ipa_clobber): New function.
2661         (find_func_clobbers): Likewise.
2662         (insert_into_field_list_sorted): Remove.
2663         (create_function_info_for): Properly allocate vars for IPA mode.
2664         Do not use insert_into_field_list_sorted.
2665         (create_variable_info_for): Properly generate constraints for
2666         global vars in IPA mode.
2667         (dump_solution_for_var): Always dump the solution.
2668         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2669         (find_what_var_points_to): Adjust.
2670         (pt_solution_set): Change.
2671         (pt_solution_ior_into): New function.
2672         (pt_solution_empty_p): Export.
2673         (pt_solution_includes_global): Adjust.
2674         (pt_solution_includes_1): Likewise.
2675         (pt_solutions_intersect_1): Likewise.
2676         (dump_sa_points_to_info): Check some invariants.
2677         (solve_constraints): Move constraint dumping ...
2678         (compute_points_to_sets): ... here.
2679         (ipa_pta_execute): ... and here.
2680         (compute_may_aliases): Do not re-compute points-to info
2681         locally if IPA info is available.
2682         (ipa_escaped_pt): New global var.
2683         (ipa_pta_execute): Properly implement IPA PTA.
2684         * tree-into-ssa.c (dump_decl_set): Support dumping
2685         decls not in referenced-vars.
2686         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2687         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2688         (dump_points_to_solution): Likewise.
2689         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2690         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2691         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2692         (copy_decl_to_var): Copy DECL_PT_UID.
2693         (copy_result_decl_to_var): Likewise.
2694         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2695         (copy_node_stat): Copy it.
2696         * tree.h (DECL_PT_UID): New macro.
2697         (SET_DECL_PT_UID): Likewise.
2698         (DECL_PT_UID_SET_P): Likewise.
2699         (struct tree_decl_minimal): Add pt_uid member.
2700         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2701         (pt_solution_empty_p): Declare.
2702         (pt_solution_set): Adjust.
2703         (ipa_escaped_pt): Declare.
2704         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2705         * gimple-pretty-print.c (pp_points_to_solution): New function.
2706         (dump_gimple_call): Dump call clobber/use information.
2707         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2708         * tree-pass.h (TDF_ALIAS): New dump option.
2709         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2710         * doc/invoke.texi (-fipa-pta): Update documentation.
2711
2712 2010-04-15  Richard Guenther  <rguenther@suse.de>
2713
2714         * Makefile.in (OBJS-common): Add gimple-fold.o.
2715         (gimple-fold.o): New rule.
2716         * tree.h (maybe_fold_offset_to_reference,
2717         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2718         prototypes ...
2719         * gimple.h: ... here.
2720         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2721         may_propagate_address_into_dereference): Move prototypes ...
2722         * gimple.h: ... here.
2723         * tree-ssa-ccp.c (get_symbol_constant_value,
2724         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2725         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2726         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2727         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2728         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2729         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2730         gimplify_and_update_call_from_tree): Move ...
2731         * gimple-fold.c: ... here.  New file.
2732         (ccp_fold_builtin): Rename to ...
2733         (gimple_fold_builtin): ... this.
2734         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2735
2736 2010-04-15  Richard Guenther  <rguenther@suse.de>
2737
2738         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2739         fit_double_type, force_fit_type_double, add_double_with_sign,
2740         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2741         lrotate_double, rrotate_double, div_and_round_double): Move ...
2742         * double-int.c: ... here.
2743         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2744         add_double, neg_double, mul_double_with_sign, mul_double,
2745         lshift_double, rshift_double, lrotate_double, rrotate_double,
2746         div_and_round_double): Move prototypes ...
2747         * double-int.h: ... here.
2748
2749 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2750
2751         PR target/43742
2752         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2753         matching constraints to ensure inputs match the output.
2754
2755 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2756
2757         PR target/43742
2758         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2759         in an input-only operand.
2760
2761 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2762
2763         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2764         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2765         (double_int_negative_p): Convert to static inline function.
2766         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2767         (double_int_negative_p): Remove.
2768         * tree.h (lshift_double, rshift_double):
2769         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2770         * fold-const.c (fold_convert_const_int_from_real,
2771         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2772         (lshift_double): Change type of arith argument to bool.
2773         (rshift_double): Change type of arith argument to bool. Correct
2774         comment.
2775         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2776
2777 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2778
2779         PR target/21803
2780         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2781         at the start and end of the then/else blocks, and omit them from the
2782         conversion.
2783         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2784         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2785         (flow_find_head_matching_sequence): New function.
2786         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2787         * basic-block.h (flow_find_cross_jump,
2788         flow_find_head_matching_sequence): Declare functions.
2789
2790 2010-04-14  Jason Merrill  <jason@redhat.com>
2791
2792         PR c++/36625
2793         * c-common.c (attribute_takes_identifier_p): New fn.
2794         * c-common.h: Declare it.
2795
2796 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2797
2798         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2799         splitter condition.
2800         (*udivmod<mode>4): Ditto.
2801
2802 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2803
2804         * config/i386/i386.md (maxmin_int): Rename code attribute from
2805         maxminiprefix and update all users.
2806         (maxmin_float): Ditto from maxminfprefix.
2807         (logic): Ditto from logicprefix.
2808         (absneg_mnemonic): Ditto from absnegprefix.
2809         * config/i386/mmx.md: Update all users of maxminiprefix,
2810         maxminfprefix and logicprefix for rename.
2811         * config/i386/sse.md: Ditto.
2812         * config/i386/sync.md (sync_<code><mode>): Update for
2813         logicprefix rename.
2814
2815 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2816
2817         PR 42966
2818         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2819         warnings converted to errors.
2820
2821 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2822
2823         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2824         used insn_type variable.
2825         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2826         to avoid set-but-not-used warning.
2827
2828 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2829
2830         * df-core.c (df_ref_debug): Change format string placeholder
2831         from 0x%x to %#x.
2832         * dwarf2asm.c (dw2_asm_output_data_raw,
2833         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2834         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2835         * dwarf2out.c (output_cfi, output_cfi_directive,
2836         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2837         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2838         Ditto.
2839         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2840         * print-rtl.c (print_rtx): Ditto.
2841
2842 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2843
2844         PR middle-end/42694
2845         * builtins.c (expand_builtin_pow_root): New function to expand pow
2846         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2847         series of sqrt and cbrt calls under -ffast-math.
2848         (expand_builtin_pow): Call it.
2849
2850 2010-04-14  Michael Matz  <matz@suse.de>
2851
2852         PR tree-optimization/42963
2853         * tree-cfg.c (touched_switch_bbs): New static variable.
2854         (group_case_labels_stmt): New function broken out from ...
2855         (group_case_labels): ... here, use the above.
2856         (start_recording_case_labels): Allocate touched_switch_bbs.
2857         (end_recording_case_labels): Deallocate it, call
2858         group_case_labels_stmt.
2859         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2860
2861 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2862
2863         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2864         from insn template.
2865
2866 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2867
2868         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2869
2870 2010-04-13  Jan Hubicka  <jh@suse.cz>
2871
2872         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2873         of optimized out static functions.
2874         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2875         cost computation.  Also sanity check for overflows.
2876         (update_caller_keys): Update cgraph_edge_badness call; properly
2877         update fibheap and sanity check that it is up to date.
2878         (add_new_edges_to_heap): Update cgraph_edge_badness.
2879         (cgraph_decide_inlining_of_small_function): Likewise;
2880         add sanity checking that badness in heap is up to date;
2881         improve dumping of reason; Update badness of calls to the
2882         offline copy of function currently inlined; dump badness
2883         of functions not inlined because of unit growth limits.
2884
2885 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2886
2887         PR middle-end/32628
2888         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2889         because of sign-extension change when converting to sizetype here...
2890         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2891
2892         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2893         the folding to constants.  Remove redundant final conversion.
2894         (fold_binary) <associate>: Do not associate if the re-association of
2895         constants alone overflows.
2896         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2897         to the end of the list.
2898         (multiple_of_p) <COND_EXPR>: New case.
2899
2900 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2901
2902         * opt-functions.awk (opt_sanitized_name): New.
2903         (opt_enum): New.
2904         * optc-gen.awk: Use it
2905         * opth-gen.awk: Use it.
2906
2907 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2908
2909         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2910         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2911         children.  Call replace_uses_with_default_def_ssa_name to handle
2912         SSA_NAES on lhs.
2913
2914 2010-04-13  Michael Matz  <matz@suse.de>
2915
2916         PR middle-end/43730
2917         * builtins.c (expand_builtin_interclass_mathfn): Also create
2918         a register if the predicate doesn't match.
2919
2920 2010-04-13  Diego Novillo  <dnovillo@google.com>
2921
2922         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2923         * c-pch.c: Include timevar.h.
2924         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2925         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2926         * ggc-common.c: Include timevar.h.
2927         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2928         * timevar.def (TV_PCH_SAVE): Define.
2929         (TV_PCH_CPP_SAVE): Define.
2930         (TV_PCH_PTR_REALLOC): Define.
2931         (TV_PCH_PTR_SORT): Define.
2932         (TV_PCH_RESTORE): Define.
2933         (TV_PCH_CPP_RESTORE): Define.
2934
2935 2010-04-13  Michael Matz  <matz@suse.de>
2936
2937         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2938         into MINUS_EXPRs.
2939         (can_reassociate_p): New function.
2940         (break_up_subtract_bb, reassociate_bb): Use it.
2941
2942 2010-04-13  Richard Guenther  <rguenther@suse.de>
2943
2944         PR bootstrap/43737
2945         * builtins.c (c_readstr): Fix assert.
2946
2947 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2948
2949         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2950         when generating cltd insn.
2951
2952         (*ashl<mode>3_1): Remove special handling for register operand 2.
2953         (*ashlsi3_1_zext): Ditto.
2954         (*ashlhi3_1): Ditto.
2955         (*ashlhi3_1_lea): Ditto.
2956         (*ashlqi3_1): Ditto.
2957         (*ashlqi3_1_lea): Ditto.
2958         (*<shiftrt_insn><mode>3_1): Ditto.
2959         (*<shiftrt_insn>si3_1_zext): Ditto.
2960         (*<shiftrt_insn>qi3_1_slp): Ditto.
2961         (*<rotate_insn><mode>3_1): Ditto.
2962         (*<rotate_insn>si3_1_zext): Ditto.
2963         (*<rotate_insn>qi3_1_slp): Ditto.
2964
2965 2010-04-13  Richard Guenther  <rguenther@suse.de>
2966
2967         * tree-ssa-structalias.c (callused_id): Remove.
2968         (call_stmt_vars): New.
2969         (get_call_vi): Likewise.
2970         (lookup_call_use_vi): Likewise.
2971         (lookup_call_clobber_vi): Likewise.
2972         (get_call_use_vi): Likewise.
2973         (get_call_clobber_vi): Likewise.
2974         (make_transitive_closure_constraints): Likewise.
2975         (handle_const_call): Adjust to do per-call call-used handling.
2976         (handle_pure_call): Likewise.
2977         (find_what_var_points_to): Remove general callused handling.
2978         (init_base_vars): Likewise.
2979         (init_alias_vars): Initialize call_stmt_vars.
2980         (compute_points_to_sets): Process call-used and call-clobbered
2981         vars for call statements.
2982         (delete_points_to_sets): Free call_stmt_vars.
2983
2984 2010-04-13  Richard Guenther  <rguenther@suse.de>
2985
2986         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2987         Only add RW dependence for dependence distance zero.
2988         Adjust maximal vectorization factor according to dependences.
2989         Move alignment handling ...
2990         (vect_find_same_alignment_drs): ... here.  New function.
2991         (vect_analyze_data_ref_dependences): Adjust.
2992         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2993         (vect_analyze_data_refs): Adjust minimal vectorization factor
2994         according to data references.
2995         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2996         dependences before determining the vectorization factor.
2997         Analyze alignment after determining the vectorization factor.
2998         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2999         dependences before alignment.
3000         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
3001         Adjust prototype.
3002         (vect_analyze_data_refs): Likewise.
3003         (MAX_VECTORIZATION_FACTOR): New define.
3004
3005 2010-04-13  Duncan Sands  <baldrick@free.fr>
3006
3007         * except.h (lang_eh_type_covers): Remove.
3008         * except.c (lang_eh_type_covers): Likewise.
3009
3010 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3011             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3012
3013         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
3014         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
3015         UNITS_PER_LONG where it is ABI relevant.
3016         (s390_return_addr_rtx): Likewise.
3017         (s390_back_chain_rtx): Likewise.
3018         (s390_frame_area): Likewise.
3019         (s390_frame_info): Likewise.
3020         (s390_initial_elimination_offset): Likewise.
3021         (save_gprs): Likewise.
3022         (s390_emit_prologue): Likewise.
3023         (s390_emit_epilogue): Likewise.
3024         (s390_function_arg_advance): Likewise.
3025         (s390_function_arg): Likewise.
3026         (s390_va_start): Likewise.
3027         (s390_gimplify_va_arg): Likewise.
3028         (s390_function_profiler): Likewise.
3029         (s390_optimize_prologue): Likewise.
3030         (s390_rtx_costs): Likewise.
3031         (s390_secondary_reload): Likewise.
3032         (s390_promote_function_mode): Likewise.
3033         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
3034         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
3035         registers available.
3036         (s390_unwind_word_mode): New function.
3037         (s390_function_value): Split 64 bit values into register pair if
3038         used as return value.
3039         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
3040         function call parameters.  Handle parallels.
3041         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
3042         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
3043         (DWARF_CIE_DATA_ALIGNMENT): New macro.
3044         (s390_expand_setmem): Remove unused variable src_addr.
3045         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3046         deal with 64 bit registers.
3047         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
3048         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
3049         (UNITS_PER_LONG): New macro.
3050         * libjava/include/s390-signal.h: Define extended ucontext
3051         structure containing the upper halfs of the 64 bit registers.
3052
3053 2010-04-13  Simon Baldwin  <simonb@google.com>
3054
3055         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
3056
3057 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3058
3059         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
3060         rvalue on the RHS if the LHS is of a non-renamable type.
3061         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
3062
3063 2010-04-13  Matthias Klose  <doko@ubuntu.com>
3064
3065         * gcc.c (cc1_options): Handle -iplugindir before processing
3066         the cc1 spec. Only add -iplugindir once.
3067         (cpp_unique_options): Add -iplugindir option if -fplugin* options
3068         found.
3069         * common.opt (iplugindir): Remove `Separate' property, initialize.
3070         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
3071         option.
3072         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
3073         (distclean): Remove plugin dir.
3074         * doc/invoke.texi: Document -iplugindir.
3075
3076 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
3077
3078         * doc/plugins.texi (Loading Plugins): Document short
3079         -fplugin=foo option.
3080         (Plugin API): Mention default_plugin_dir_name function.
3081
3082         * gcc.c (find_file_spec_function): Add new declaration.
3083         (static_spec_func): Use it for "find-file".
3084         (find_file_spec_function): Add new function.
3085         (cc1_options): Add -iplugindir option if -fplugin* options found.
3086
3087         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
3088
3089         * plugin.c (add_new_plugin): Updated comment, and handle short
3090         plugin name.
3091         (default_plugin_dir_name): Added new function.
3092
3093         * common.opt (iplugindir): New option to set the plugin directory.
3094
3095 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
3096
3097         * config/i386/i386.md (any_rotate): New code iterator.
3098         (rotate_insn): New code attribute.
3099         (rotate): Ditto.
3100         (SWIM124): New mode iterator.
3101         (<rotate_insn>ti3): New expander.
3102         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
3103         any_rotate code iterator.
3104         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
3105         using any_rotate code iterator and SWIM124 mode iterator.
3106         (ix86_rotlti3): New insn_and_split pattern.
3107         (ix86_rotrti3): Ditto.
3108         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
3109         ix86_rotl{di,ti}3 patterns.
3110         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
3111         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
3112         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
3113         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
3114         code iterator and SWI mode iterator.
3115         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
3116         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
3117         code iterator.
3118         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
3119         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
3120         (bswap rotatert splitter): Add splitter.
3121         (bswap splitter): Macroize splitter using any_rotate code iterator.
3122         Add insn predicate to split only for TARGET_USE_XCHGB or when
3123         optimizing function for size.
3124
3125 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3126
3127         * config/pa/pa.c (emit_move_sequence): Remove use of
3128         deleted variable flag_argument_noalias.
3129
3130 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3131
3132         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
3133         configurations.
3134         Add to unsupported targets list.
3135         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
3136         sparc*-sun-solaris2.[567]* from target lists.
3137         * configure: Regenerate.
3138         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
3139         removal.
3140         Remove Solaris 7 patch references.
3141         (Specific, sparc-sun-solaris2.7): Removed.
3142         (sparc-sun-solaris2*): Update Solaris 7 example.
3143         (sparc64-*-solaris2*): Likewise.
3144
3145 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3146
3147         * config.build (alpha*-dec-osf4*): Remove.
3148         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
3149         of obsolete configurations.
3150         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
3151         support.
3152         * config/alpha/t-osf4: Renamed to ...
3153         * config/alpha/t-osf5: ... this.
3154         * config/alpha/osf.h: Renamed to ...
3155         * config/alpha/osf5.h: ... this.
3156         Merged old osf5.h contents.
3157         Update comments.
3158         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
3159         (EXTRA_SPECS): Removed.
3160         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
3161         reflect removal of Tru64 UNIX V4.0/V5.0 support.
3162         Document that.
3163
3164 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3165
3166         * doc/contrib.texi (Contributors, Rainer Orth): Update.
3167
3168 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
3169
3170         PR/43702
3171         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
3172         __thiscall convention.
3173
3174 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3175
3176         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
3177         orig_base.
3178         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
3179
3180 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3181
3182         * function.c (assign_parms_initialize_all): Add unused attribute
3183         to fntype.
3184
3185 2010-04-12  Richard Guenther  <rguenther@suse.de>
3186
3187         * gsstruct.def (GSS_CALL): New.
3188         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3189         * gimple.h: Include tree-ssa-alias.h.
3190         (struct gimple_statement_call): New.
3191         (union gimple_statement_struct_d): Add gimple_call member.
3192         (gimple_call_reset_alias_info): Declare.
3193         (gimple_call_use_set): New function.
3194         (gimple_call_clobber_set): Likewise.
3195         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3196         * gimple.c (gimple_call_reset_alias_info): New function.
3197         (gimple_build_call_1): Call it.
3198         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3199         * tree-inline.c (remap_gimple_stmt): Likewise.
3200         (expand_call_inline): Remove callused handling.
3201         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3202         * tree-dfa.c (dump_variable): Likewise.
3203         * tree-parloops.c (parallelize_loops): Likewise.
3204         * tree-ssa.c (init_tree_ssa): Likewise.
3205         (delete_tree_ssa): Likewise.
3206         * tree-flow-inline.h (is_call_used): Remove.
3207         * tree-flow.h (struct gimple_df): Remove callused member.
3208         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3209         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3210         (ref_maybe_used_by_call_p_1): Simplify.
3211         (call_may_clobber_ref_p_1): Likewise.
3212         * tree-ssa-structalias.c (compute_points_to_sets): Set
3213         the call stmt used and clobbered sets.
3214         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3215         (find_tail_calls): Verify the tail call.
3216
3217 2010-04-12  Richard Guenther  <rguenther@suse.de>
3218
3219         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3220         single-iteration always-inline inlining.
3221         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3222         (cgraph_decide_inlining): Do not handle always-inline specially.
3223         (try_inline): Remove always-inline cycle detection special case.
3224         Do not recurse on always-inlines.
3225         (cgraph_early_inlining): Do not iterate if not optimizing.
3226         (cgraph_gate_early_inlining): remove.
3227         (pass_early_inline): Run unconditionally.
3228         (gate_cgraph_decide_inlining): New function.
3229         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3230         not inlining or optimizing.
3231         (cgraph_decide_inlining_of_small_functions): Also consider
3232         always-inline functions.
3233         (cgraph_default_inline_p): Return true for nodes which should
3234         disregard inline limits.
3235         (estimate_function_body_sizes): Assume zero size and time for
3236         nodes which are marked as disregarding inline limits.
3237         (cgraph_decide_recursive_inlining): Do not perform recursive
3238         inlining on always-inline nodes.
3239
3240 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3241
3242         PR bootstrap/43699
3243         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3244         for exprs satisfying handled_component_p.
3245
3246 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3247
3248         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3249         non-constant aggregate elements.
3250
3251         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3252         is a real initialization.
3253
3254 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3255
3256         PR c/36774
3257         * c-decl.c (start_function): Move forward check for nested function.
3258
3259 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3260
3261         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3262         * config/sh/sh.c: Include reload.h.
3263         (sh_legitimize_reload_address): New.
3264         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3265         sh_legitimize_reload_address.
3266
3267 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3268
3269         * config/sh/sh.md (*movqi_pop): New insn pattern.
3270         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3271
3272 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         * config/i386/i386.md (any_shiftrt): New code iterator.
3275         (shiftrt_insn): New code attribute.
3276         (shiftrt): Ditto.
3277         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3278         using any_shiftrt code iterator.
3279         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3280         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3281         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3282         pattern from corresponding peephole2 patterns.
3283         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3284         using any_shiftrt code iterator.
3285         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3286         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3287         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3288         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3289         *{ashr,lshr}<mode>3_cmp_zext.
3290         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3291
3292 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3293
3294         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3295         scratch register.
3296         (*lshr<mode>3_cconly): Ditto.
3297
3298 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3299
3300         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3301         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3302         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3303         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3304         DWI mode iterator.
3305         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3306         from corresponding peephole2 patterns.
3307         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3308         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3309         and *lshrdi3_1_rex64 using SWI mode iterator.
3310         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3311         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3312         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3313         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3314         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3315         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3316         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3317         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3318         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3319         SWI mode iterator.
3320
3321 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3322
3323         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3324         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3325         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3326         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3327         DWI mode iterator.
3328         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3329         from corresponding peephole2 patterns.
3330         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3331         (ashrsi3_cvt): Rename from ashrsi3_31.
3332         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3333         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3334         and x86_64_shift_adj_3 using SWI48 mode iterator.
3335         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3336         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3337         and *ashrdi3_1_rex64 using SWI mode iterator.
3338         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3339         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3340         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3341         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3342         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3343         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3344         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3345         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3346         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3347         SWI mode iterator.
3348         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3349         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3350         x86_shift<mode>_adj_3 expanders.
3351
3352 2010-04-10  Wei Guozhi  <carrot@google.com>
3353
3354         PR target/42601
3355         * config/arm/arm.c (arm_pic_static_addr): New function.
3356         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3357         a static symbol.
3358         (arm_output_addr_const_extra): Output expression for new pattern.
3359         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3360
3361 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3362
3363         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3364         not enabled.
3365
3366         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3367         * web.c: Include "insn-config.h" and "recog.h".
3368         (union_match_dups): New function.
3369         (web_main): Call it.
3370         (union_defs): Don't try to recognize match_dups.
3371
3372         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3373         if doing so would replace the entire pattern.
3374
3375 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3376
3377         PR target/43707
3378         PR target/43709
3379         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3380         and splitter pattern.  Change splitter operand 1 predicate to
3381         nonmemory_operand.
3382
3383 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3384
3385         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3386         lattices are addresses of CONST_DECLs with the same initial value.
3387         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3388         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3389
3390 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3391             Bernd Schmidt  <bernds@codesourcery.com>
3392
3393         * loop-invariant.c (replace_uses): New static function.
3394         (move_invariant_reg): Use it to ensure we can replace the uses.
3395
3396 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3397
3398         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3399         function template.
3400         (picochip_override_options): Enable section anchors only above -O1.
3401         (picochip_reorg): Fixed a couple of build warnings.
3402
3403 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3404
3405         * configure.ac (plugin -rdynamic test): Log result.
3406         * configure: Regenerate.
3407         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3408         (RDYNAMIC_SPEC): Define.
3409         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3410
3411 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3412
3413         * configure.ac: Determine Sun ld version numbers.
3414         (comdat_group): Restrict GNU ld version checks to gld.
3415         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3416         (enable_comdat): Support --enable-comdat.
3417         * configure: Regenerate.
3418         * doc/install.texi (Configuration): Document --enable-comdat.
3419
3420 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3421
3422         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3423         * config/sol2-gld.h: ... here.
3424         * config.gcc (sparc*-*-solaris2*): Reflect this.
3425         (i[34567]86-*-solaris2*): Use it.
3426
3427 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3428
3429         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3430         setup_clocks_p.
3431         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3432
3433 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3434
3435         PR 42965
3436         * diagnostic.c (diagnostic_initialize): Initialize
3437         some_warnings_are_errors.
3438         (diagnostic_finish): New.
3439         (diagnostic_action_after_output): Call it before exiting.
3440         (diagnostic_report_diagnostic): Do not print message here. Set
3441         some_warnings_are_errors.
3442         * diagnostic.h (diagnostic_context): Delete
3443         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3444         (diagnostic_finish): Declare.
3445         * toplev.c (toplev_main): Call it before exit.
3446
3447 2010-04-09  Jason Merrill  <jason@redhat.com>
3448
3449         PR c++/42623
3450         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3451         for incomplete type.
3452
3453         PR c++/41788
3454         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3455         based on a warning flag.
3456
3457 2010-04-09  Richard Guenther  <rguenther@suse.de>
3458
3459         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3460
3461 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3462
3463         PR bootstrap/43684
3464         * varasm.c (default_assemble_visibility): Wrap vars that are
3465         set, but unused, by targets without GAS.
3466         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3467         Remove set, but unused, vars.
3468         (rs6000_legitimize_tls_address): Likewise.
3469         (altivec_expand_dst_builtin): Likewise.
3470         * config/darwin.c (machopic_classify_symbol): Likewise.
3471         (machopic_indirection_name): Likewise.
3472
3473 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3474
3475         * config/i386/i386.md (DWI): New mode iterator.
3476         (S): New mode attribute.
3477         (shift_operand): Ditto.
3478         (shift_immediate_operand): Ditto.
3479         (ashl_input_operand): Ditto.
3480         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3481         using SDWIM mode iterator.
3482         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3483         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3484         DWI mode iterator.
3485         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3486         from corresponding peephole2 patterns.
3487         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3488         and x86_64_shift_adj_1 using SWI48 mode iterator.
3489         (x86_shift<mode>_adj_2): Ditto.
3490         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3491         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3492         using SWI48 mode iterator.
3493         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3494         *ashldi3_cmp_rex64 using SWI mode iterator.
3495         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3496         *ashldi3_cconly_rex64 using SWI mode iterator.
3497         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3498         x86_shift<mode>_adj_{1,2}.
3499         (ix86_split_ashr): Ditto.
3500         (ix86_split_lshr): Ditto.
3501
3502 2010-04-09  Richard Guenther  <rguenther@suse.de>
3503
3504         * target.h (builtin_conversion): Pass in input and output types.
3505         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3506         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3507         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3508         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3509
3510         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3511         Handle AVX modes.
3512         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3513
3514 2010-04-09  Richard Guenther  <rguenther@suse.de>
3515
3516         PR target/43152
3517         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3518
3519 2010-04-09  Richard Guenther  <rguenther@suse.de>
3520
3521         * tree-vectorizer.h (struct _stmt_vec_info): Document
3522         that vectype is the type of the LHS.
3523         (supportable_widening_operation, supportable_narrowing_operation):
3524         Get both input and output vector types as arguments.
3525         (vect_is_simple_use_1): Declare.
3526         (get_same_sized_vectype): Likewise.
3527         * tree-vect-loop.c (vect_determine_vectorization_factor):
3528         Set STMT_VINFO_VECTYPE to the vector type of the def.
3529         (vectorizable_reduction): Adjust.
3530         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3531         Adjust.  Specify the output vector type.
3532         (vect_pattern_recog_1): Adjust.
3533         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3534         (vectorizable_call): Adjust.
3535         (vectorizable_conversion): Likewise.
3536         (vectorizable_operation): Likewise.
3537         (vectorizable_type_demotion): Likewise.
3538         (vectorizable_type_promotion): Likewise.
3539         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3540         the def.
3541         (vect_is_simple_use_1): New function.
3542         (supportable_widening_operation): Get both input and output
3543         vector types.
3544         (supportable_narrowing_operation): Likewise.
3545         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3546
3547 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3548
3549         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3550         __thiscall and _thiscall as predefined macros.
3551         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3552         thiscall attribute handling.
3553         (ix86_comp_type_attributes): Likewise.
3554         (ix86_function_regparm): Likewise.
3555         (ix86_return_pops_args): Likewise.
3556         (init_cumulative_args): Likewise.
3557         (find_drap_reg): Likewise.
3558         (ix86_static_chain): Likewise.
3559         (x86_this_parameter): Likewise.
3560         (x86_output_mi_thunk): Likewise.
3561         (ix86_attribute_table): Add description for thiscall attribute.
3562         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3563         * doc/extend.texi: Add documentation for thiscall.
3564
3565 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3566
3567         PR c++/28584
3568         * c.opt (Wint-to-pointer-cast): Available in C++.
3569         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3570
3571 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3572
3573         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3574         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3575         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3576         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3577         function type instead.  Reorder and simplify checks.
3578
3579         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3580
3581 2010-04-08  Jing Yu  <jingyu@google.com>
3582             Zdenek Dvorak  <ook@ucw.cz>
3583
3584         PR tree-optimization/42720
3585         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3586         loop unswitch conditions here from ...
3587         (tree_unswitch_single_loop): ... here.
3588
3589 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3590
3591         * tree-if-conv.c: Fix comments and simplify logic.
3592
3593 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3594
3595         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3596         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3597         (main_tree_if_conversion): Update call to tree_if_conversion.
3598
3599 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3600
3601         PR 42485
3602         * doc/invoke.texi (-b,-V): Delete.
3603         * doc/tm.texi: Do not mention -b.
3604         * gcc.c (display_help): Delete -b and -V.
3605         (process_command): Delete -b and -V.
3606         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3607
3608 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3609             Wolfgang Gellerich  <gellerich@de.ibm.com>
3610
3611         Implement target hook for loop unrolling
3612         * target.h (loop_unroll_adjust): Add a new target hook function.
3613         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3614         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3615         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3616         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3617         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3618         target hook.
3619         (decide_unroll_stupid): Likewise.
3620
3621 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3622
3623         PR target/43643
3624         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3625
3626 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3627
3628         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3629         (Specific, *-*-solaris2*): Likewise.
3630         Don't prefer Sun as over GNU as.
3631
3632 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3633
3634         * config/s390/s390.c (override_options): Adjust the z10
3635           defaults for max-unroll-times, max-completely-peeled-insns
3636           and max-completely-peel-times.
3637
3638 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3639
3640         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3641         instructions for z10.
3642         (s390_expand_setmem): Likewise.
3643         (s390_expand_cmpmem): Likewise.
3644
3645 2010-04-08  Richard Guenther  <rguenther@suse.de>
3646
3647         PR tree-optimization/43679
3648         * tree-ssa-pre.c (eliminate): Only propagate copies.
3649
3650 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3651
3652         PR bootstrap/43681
3653         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3654         set but not used variable warning.
3655
3656 2010-04-08  Wei Guozhi  <carrot@google.com>
3657
3658         PR target/41653
3659         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3660         (arm_size_rtx_costs): Call the new function when optimized for size.
3661
3662 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3663
3664         PR debug/43670
3665         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3666         op0 is not a MEM, just return NULL instead of assertion
3667         failure.
3668         (discover_nonconstant_array_refs): Don't walk debug stmts.
3669
3670 2010-04-08  Doug Kwan  <dougkwan@google.com>
3671
3672         * configure.ac: Recognize gold and do not use its version number
3673         to test ld features.
3674         * configure: Regenerate.
3675
3676 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3677
3678         PR middle-end/40815
3679         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3680         (negate_value): Move code to push elements to broken_up_substracts ...
3681         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3682         negative pair to plus_negates.
3683         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3684
3685 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3686
3687         * doc/install.texi (Configuration): Move description of
3688         --enable-lto, --with-libelf*, --enable-gold from Java section to
3689         general section.
3690
3691         * doc/generic.texi (Working with declarations)
3692         (Function Properties, C and C++ Trees): Fix typos.
3693         * doc/sourcebuild.texi (Top Level): Likewise.
3694
3695 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3696
3697         PR c/18624
3698         * tree.h (DECL_READ_P): Define.
3699         (struct tree_decl_common): Add decl_read_flag.
3700         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3701         a set but not used warning.
3702         (merge_decls): Merge DECL_READ_P flag.
3703         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3704         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3705         * c-common.c (handle_used_attribute, handle_unused_attribute):
3706         Likewise.
3707         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3708         New prototypes.
3709         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3710         New functions.
3711         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3712         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3713         c_parser_binary_expression, c_parser_cast_expression,
3714         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3715         Call default_function_array_read_conversion instead of
3716         default_function_array_conversion where needed.
3717         (c_parser_unary_expression, c_parser_conditional_expression,
3718         c_parser_postfix_expression_after_primary, c_parser_initelt):
3719         Likewise.  Call mark_exp_read where needed.
3720         (c_parser_statement_after_labels, c_parser_asm_operands,
3721         c_parser_typeof_specifier, c_parser_sizeof_expression,
3722         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3723         where needed.
3724         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3725         New.
3726         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3727         (warn_unused_but_set_parameter): Default to warn_unused
3728         && extra_warnings.
3729         * doc/invoke.texi: Document -Wunused-but-set-variable and
3730         -Wunused-but-set-parameter.
3731
3732         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3733         used count variable.
3734         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3735         when operandN variables aren't used in the body of the expander
3736         or splitter.
3737         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3738         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3739         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3740         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3741         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3742         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3743         * tree.c (PROCESS_ARG): Likewise.
3744
3745 2010-04-07  Simon Baldwin  <simonb@google.com>
3746
3747         * diagnostic.h (diagnostic_override_option_index): New macro to
3748         set a diagnostic's option_index.
3749         * c-tree.h (c_cpp_error): Add warning reason argument.
3750         * opts.c (_warning_as_error_callback): New.
3751         (register_warning_as_error_callback): Store callback for
3752         warnings enabled via enable_warning_as_error.
3753         (enable_warning_as_error): Call callback, minor code tidy.
3754         * opts.h (register_warning_as_error_callback): Declare.
3755         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3756         response to -Werror=.
3757         (c_common_init_options): Register warning_as_error_callback in opts.c.
3758         * common.opt: Add -Wno-cpp option.
3759         * c-common.c (struct reason_option_codes_t): Map cpp warning
3760         reason codes to gcc option indexes.
3761         * (c_option_controlling_cpp_error): New function, lookup the gcc
3762         option index for a cpp warning reason code.
3763         * (c_cpp_error): Add warning reason argument, call
3764         c_option_controlling_cpp_error for diagnostic_override_option_index.
3765         * doc/invoke.texi: Document -Wno-cpp.
3766
3767 2010-04-07  Richard Guenther  <rguenther@suse.de>
3768
3769         * ipa-reference.c (mark_load): Use get_base_address.
3770         (mark_store): Likewise.
3771
3772         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3773         inserting GIMPLE_NOPs into the IL.
3774         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3775         Explicitly strip handled components and indirect references.
3776
3777         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3778         folding address expressions.
3779         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3780         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3781         operand_equal_p to compare decls.
3782         (ptr_deref_may_alias_decl_p): Likewise.
3783         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3784         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3785         Handle reversed comparison ops.
3786         * tree-sra.c (asm_visit_addr): Use get_base_address.
3787         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3788         * ipa-reference.c (mark_address): Use get_base_address.
3789
3790 2010-04-07  Richard Guenther  <rguenther@suse.de>
3791
3792         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3793         Propagate constants everywhere.
3794
3795 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3796
3797         PR debug/43516
3798         * tree.c (MAX_INT_CACHED_PREC): Define.
3799         (nonstandard_integer_type_cache): New array.
3800         (build_nonstandard_integer_type): Cache results for precision
3801         <= MAX_INT_CACHED_PREC.
3802
3803 2010-04-07  Richard Guenther  <rguenther@suse.de>
3804
3805         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3806         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3807         * common.opt: Likewise.
3808         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3809         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3810         (nonoverlapping_memrefs_p): Likewise.
3811         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3812         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3813         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3814         OPT_fargument_noalias_global for backward compatibility.
3815
3816 2010-04-07  Richard Guenther  <rguenther@suse.de>
3817
3818         PR tree-optimization/43270
3819         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3820         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3821         * tree-ssa-pre.c (phi_translate_1): Adjust.
3822         (fully_constant_expression): Split out vn_reference handling to ...
3823         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3824         Fold reads from constant strings.
3825         (vn_reference_lookup): Handle fully constant references.
3826         (vn_reference_lookup_pieces): Likewise.
3827         * Makefile.in (expmed.o-warn): Add -Wno-error.
3828
3829 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3830
3831         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3832
3833 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3834
3835         PR driver/41594
3836         * gcc.c: Add -static-libstdc++ to list of recognized options.
3837
3838 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3839
3840         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3841
3842 2010-04-07  Richard Guenther  <rguenther@suse.de>
3843
3844         PR middle-end/42617
3845         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3846         bases build simple mem attributes to retain points-to information.
3847
3848 2010-04-07  Richard Guenther  <rguenther@suse.de>
3849
3850         PR middle-end/42617
3851         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3852         preserve points-to related information.
3853
3854 2010-04-07  Richard Guenther  <rguenther@suse.de>
3855
3856         PR middle-end/42617
3857         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3858         discard plain indirect references.
3859         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3860         * tree.c (tree_nop_conversion): Likewise.
3861
3862 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3863
3864         PR debug/43628
3865         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3866
3867 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3868
3869         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3870         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3871
3872 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3873
3874         * tree-if-conv.c: Fix indentation and comments.
3875
3876 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3877
3878         * tree-if-conv.c: Sort static functions in topological order.
3879
3880 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3881
3882         * tree-if-conv.c: Fix indentation and comments.
3883
3884 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3885
3886         PR middle-end/43519
3887         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3888         lang_hooks.types.type_for_size instead of
3889         build_nonstandard_integer_type.
3890         When converting an unsigned type to signed, double its precision.
3891         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3892         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3893         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3894         use lb <= ub.
3895
3896 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3897
3898         PR middle-end/43519
3899         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3900         POINTER_PLUS_EXPR for pointer types.
3901
3902 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3903
3904         PR middle-end/43519
3905         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3906         * graphite-clast-to-gimple.c: Include langhooks.h.
3907         (max_signed_precision_type): New.
3908         (max_precision_type): Takes two types as arguments.
3909         (precision_for_value): New.
3910         (precision_for_interval): New.
3911         (gcc_type_for_interval): New.
3912         (gcc_type_for_value): New.
3913         (gcc_type_for_clast_term): New.
3914         (gcc_type_for_clast_red): New.
3915         (gcc_type_for_clast_bin): New.
3916         (gcc_type_for_clast_expr): Split up into several functions.
3917         (gcc_type_for_clast_eq): Rewritten.
3918         (compute_bounds_for_level): New.
3919         (compute_type_for_level_1): New.
3920         (compute_type_for_level): New.
3921         (gcc_type_for_cloog_iv): Removed.
3922         (gcc_type_for_iv_of_clast_loop): Rewritten.
3923         (graphite_create_new_loop): Compute the lower and upper bound types
3924         with gcc_type_for_clast_expr.
3925         (graphite_create_new_loop_guard): Same.
3926         (find_cloog_iv_in_expr): Removed.
3927         (compute_cloog_iv_types_1): Removed.
3928         (compute_cloog_iv_types): Removed.
3929         (gloog): Do not call compute_cloog_iv_types.
3930         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3931         GBB_CLOOG_IV_TYPES.
3932         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3933         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3934         (GBB_CLOOG_IV_TYPES): Removed.
3935
3936 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3937
3938         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3939         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3940         (detect_commutative_reduction): Same.
3941
3942 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3943
3944         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3945         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3946         argument.
3947         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3948         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3949         (rewrite_commutative_reductions_out_of_ssa): Same.
3950         * passes.c (execute_function_todo): Call verify_ssa for every pass
3951         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3952         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3953         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3954         with an extra argument.
3955         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3956         verify_ssa only when the extra argument is true.
3957         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3958         with an extra argument.
3959         (tree_transform_and_unroll_loop): Same.
3960
3961 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3962
3963         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3964         for all the passes of the LNO having LOOP_CLOSED_SSA.
3965         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3966         * tree-loop-distribution.c (pass_loop_distribution): Same.
3967         * tree-pass.h (TODO_verify_loops): Removed.
3968         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3969         (pass_lim): Same.
3970         (pass_tree_unswitch): Same.
3971         (pass_predcom): Same.
3972         (pass_vectorize): Same.
3973         (pass_linear_transform): Same.
3974         (pass_graphite_transforms): Same.
3975         (pass_iv_canon): Same.
3976         (pass_complete_unroll): Same.
3977         (pass_complete_unrolli): Same.
3978         (pass_parallelize_loops): Same.
3979         (pass_loop_prefetch): Same.
3980         (pass_iv_optimize): Same.
3981
3982 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3983
3984         PR middle-end/32824
3985         * passes.c (init_optimization_passes): Move pass_lim before
3986         pass_copy_prop and pass_dce_loop.
3987
3988 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3989
3990         PR target/43667
3991         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3992         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3993         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3994         MULTI_* defines for 4 argument vpermil2p* builtins.
3995
3996 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3997
3998         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3999         * config/i386/i386.c (x86_maybe_negate_const_int): New.
4000         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
4001         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
4002         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
4003         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
4004         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
4005         Use x86_maybe_negate_const_int to output insn mnemonic.
4006         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
4007         check from instruction predicate.  Update comments.
4008         * config/i386/sync.md (sync_add<mode>): Use
4009         x86_maybe_negate_const_int to output insn mnemonic.
4010
4011 2010-04-06  Jan Hubicka  <jh@suse.cz>
4012
4013         PR tree-optimization/42906
4014         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
4015         IGNORE_SELF argument.  Set visited_control_parents for fully
4016         processed BBs.
4017         (find_obviously_necessary_stmts): Update call of
4018         mark_control_dependent_edges_necessary.
4019         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
4020
4021 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
4022
4023         * config/i386/i386.md: Remove comment about 'e' and 'E'
4024         operand modifier.
4025
4026 2010-04-06  Richard Guenther  <rguenther@suse.de>
4027
4028         PR tree-optimization/43627
4029         * tree-vrp.c (extract_range_from_unary_expr): Widenings
4030         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
4031         not varying.
4032
4033 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
4034
4035         * BASE-VER: Change to 4.6.0.
4036
4037         PR target/43638
4038         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
4039         handling.
4040
4041 2010-04-06  Richard Guenther  <rguenther@suse.de>
4042
4043         PR middle-end/43661
4044         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
4045
4046 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4047
4048         * doc/invoke.texi (Optimize Options): Document that LTO
4049         won't remove object access purely due to incompatible
4050         declarations.
4051
4052 2010-04-04  Matthias Klose  <doko@ubuntu.com>
4053
4054         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
4055         Initialize variable.
4056
4057 2010-04-03  Richard Guenther  <rguenther@suse.de>
4058
4059         PR middle-end/42509
4060         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
4061         require a non-NULL MEM_OFFSET.
4062
4063 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
4064
4065         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
4066         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
4067         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
4068         config/alpha/predicates.md, config/arm/arm.md,
4069         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
4070         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
4071         config/darwin9.h, config/darwin.c, config/darwin.h,
4072         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
4073         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
4074         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
4075         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
4076         config/mips/mips.md, config/mn10300/mn10300.c,
4077         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
4078         config/rs6000/aix.h, config/rs6000/dfp.md,
4079         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
4080         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
4081         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
4082         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
4083         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
4084         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
4085         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
4086         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
4087         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
4088         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
4089         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
4090         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
4091         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
4092         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
4093         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
4094         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
4095         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
4096         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
4097         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
4098         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
4099         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
4100         opt-functions.awk, opth-gen.awk, params.def, passes.c,
4101         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
4102         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
4103         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
4104         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
4105         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
4106         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
4107         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
4108         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
4109         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
4110         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
4111         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
4112         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
4113         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
4114         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
4115
4116 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4117
4118         PR other/43620
4119         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
4120         * aclocal.m4: Regenerate.
4121
4122 2010-04-02  Richard Guenther  <rguenther@suse.de>
4123
4124         PR tree-optimization/43629
4125         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
4126         if we have seen a constant value.
4127
4128 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
4129
4130         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
4131
4132 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
4133
4134         PR target/43469
4135         * arm.c (legitimize_tls_address): Adjust call to
4136         gen_tls_load_dot_plus_four.
4137         (arm_note_pic_base): New function.
4138         (arm_cannot_copy_insn_p): Use it.
4139         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
4140         constraint.
4141
4142 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4143
4144         PR bootstrap/43531
4145
4146         Revert:
4147         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4148
4149         * Makefile.in ($(out_object_file)): Depend on
4150         gt-$(basename $(notdir $(out_file))).h.
4151
4152 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
4153
4154         * config.gcc (lm32-*-rtems*): Add t-lm32.
4155
4156 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
4157
4158         * config.gcc: Add lm32-*-rtems*.
4159         * config/lm32/rtems.h: New file.
4160
4161 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
4162
4163         PR target/42609
4164         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
4165
4166 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
4167
4168         * dwarf2out.c (output_compilation_unit_header): For
4169         -gdwarf-4 use version 4 instead of version 3.
4170         (output_line_info): For version 4 and above emit additional
4171         maximum ops per insn header field.
4172         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
4173
4174         * dwarf2out.c (is_c_family, is_java): Remove.
4175         (lower_bound_default): New function.
4176         (add_bound_info, gen_descr_array_type_die): Use it.
4177
4178 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
4179
4180         PR debug/43325
4181         * dwarf2out.c (gen_variable_die): Allow debug info for variable
4182         re-declaration when it happens in a function.
4183
4184 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
4185
4186         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
4187         (cgraph_remove_function_insertion_hook): Same.
4188         (cgraph_call_function_insertion_hooks): Same.
4189
4190 2010-04-01  Richard Guenther  <rguenther@suse.de>
4191
4192         PR middle-end/43614
4193         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
4194         and TREE_THIS_VOLATILE.
4195         (copy_ref_info): Likewise.
4196         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
4197         * tree.c (build6_stat): Ignore side-effects of all but arg5
4198         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
4199         TARGET_MEM_REF.
4200
4201 2010-04-01  Richard Guenther  <rguenther@suse.de>
4202
4203         PR tree-optimization/43607
4204         * ipa-type-escape.c (check_call): Do not access non-existing
4205         arguments.
4206
4207 2010-04-01  Richard Guenther  <rguenther@suse.de>
4208
4209         PR middle-end/43602
4210         Revert
4211         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4212                     Jack Howarth <howarth@bromo.med.uc.edu>
4213
4214         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4215         variables TLS.
4216
4217 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4218
4219         * doc/install.texi (Prerequisites): Document libelf usability on
4220         IRIX 5/6 and Solaris 2.
4221         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
4222         Update GNU as, GNU ld requirements.
4223         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
4224         Document Sun Studio compiler download.
4225         Update and simplify as, ld recommendations.
4226         (Specific, *-*-solaris2.7): Note obsoletion, removal.
4227
4228 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4229
4230         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
4231         with_tune_32 to pentium4.
4232
4233 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
4234
4235         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
4236
4237 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4238
4239         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
4240         obsoletion, removal.
4241         Update IDO URL.
4242         Document GNU as requirement.
4243         Update configure requirements.
4244         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
4245         Recomment IRIX 6.5.18+.
4246         Document IDF/IDL requirement.
4247         Document GNU as requirement.
4248         Document GNU ld bootstrap failure.
4249         Remove freeware.sgi.com reference.
4250
4251 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4252
4253         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
4254         UNIX V4.0, V5.0 obsoletion, removal.
4255         Remove --with-gc=simple reference.
4256         Update VM requirements during bootstrap.
4257         Remove -oldas bootstrap description.
4258         Update binutils reference.
4259         Remove comparison failure note.
4260
4261 2010-03-31  Richard Guenther  <rguenther@suse.de>
4262             Zdenek Dvorak  <ook@ucw.cz>
4263             Sebastian Pop  <sebastian.pop@amd.com>
4264
4265         PR middle-end/43464
4266         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
4267         with multiple arguments.
4268         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
4269
4270 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4271
4272         * graphite-dependences.c (print_pddr): Call print_pdr with an
4273         extra argument.
4274         * graphite-poly.c (debug_pdr): Add an extra argument for the
4275         verbosity level.
4276         (print_pdr): Same.
4277         (print_pbb_domain): Same.
4278         (print_pbb): Same.
4279         (print_scop_context): Same.
4280         (print_scop): Same.
4281         (print_cloog): Same.
4282         (debug_pbb_domain): Same.
4283         (debug_pbb): Same.
4284         (print_pdrs): Same.
4285         (debug_pdrs): Same.
4286         (debug_scop_context): Same.
4287         (debug_scop): Same.
4288         (debug_cloog): Same.
4289         (print_scop_params): Same.
4290         (debug_scop_params): Same.
4291         (print_iteration_domain): Same.
4292         (print_iteration_domains): Same.
4293         (debug_iteration_domain): Same.
4294         (debug_iteration_domains): Same.
4295         (print_scattering_function): Same.
4296         (print_scattering_functions): Same.
4297         (debug_scattering_function): Same.
4298         (debug_scattering_functions): Same.
4299         * graphite-poly.h (debug_pdr): Update declaration.
4300         (print_pdr): Same.
4301         (print_pbb_domain): Same.
4302         (print_pbb): Same.
4303         (print_scop_context): Same.
4304         (print_scop): Same.
4305         (print_cloog): Same.
4306         (debug_pbb_domain): Same.
4307         (debug_pbb): Same.
4308         (print_pdrs): Same.
4309         (debug_pdrs): Same.
4310         (debug_scop_context): Same.
4311         (debug_scop): Same.
4312         (debug_cloog): Same.
4313         (print_scop_params): Same.
4314         (debug_scop_params): Same.
4315         (print_iteration_domain): Same.
4316         (print_iteration_domains): Same.
4317         (debug_iteration_domain): Same.
4318         (debug_iteration_domains): Same.
4319         (print_scattering_function): Same.
4320         (print_scattering_functions): Same.
4321         (debug_scattering_function): Same.
4322         (debug_scattering_functions): Same.
4323
4324 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4325
4326         * graphite-poly.c (print_scattering_function_1): New.
4327         (print_scattering_function): Call it.
4328         (print_scop_params): Remove spaces at the end of lines.
4329         (print_cloog): New.
4330         (debug_cloog): New.
4331         * graphite-poly.h (print_cloog): Declared.
4332         (debug_cloog): Declared.
4333
4334 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4335
4336         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
4337         in loop->header.
4338         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
4339         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
4340         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
4341         to switch between adding the IV bump in loop->latch or in loop->header.
4342
4343 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4344
4345         * graphite-poly.c (print_scattering_function): Pretty print following
4346         the scoplib format.
4347         (print_pdr): Same.
4348         (print_pbb_domain): Same.
4349         (dump_gbb_cases): Same.
4350         (dump_gbb_conditions): Same.
4351         (print_pdrs): Same.
4352         (print_pbb): Same.
4353         (print_scop_params): Same.
4354         (print_scop_context): Same.
4355         (print_scop): Same.
4356         (print_pbb_body): New.
4357         (lst_indent_to): New.
4358         (print_lst): Start new lines with a #.
4359         * graphite-poly.h (pbb_bb): New.
4360         (pbb_index): Use pbb_bb.
4361         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
4362         disjuncts.
4363         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
4364
4365 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4366
4367         * dwarf2out.c (size_of_die): For -gdwarf-4 use
4368         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
4369         and 0 instead of 1 for dw_val_class_flag.
4370         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
4371         dw_val_class_range_list, dw_val_class_loc_list,
4372         dw_val_class_lineptr and dw_val_class_macptr, use
4373         DW_FORM_flag_present for dw_val_class_flag and
4374         DW_FORM_exprloc for dw_val_class_loc.
4375         (output_die): For -gdwarf-4 print dw_val_class_loc
4376         size as uleb128 instead of 1 or 2 bytes and don't print
4377         anything for dw_val_class_flag.
4378
4379         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
4380         instead of cselib_lookup following by tweaking locs->setting_insn.
4381
4382         PR bootstrap/43596
4383         * cselib.c (cselib_process_insn): Clear cselib_current_insn
4384         even before returning from label, setjmp call or volatile asm
4385         handling.
4386
4387 2010-03-31  Richard Guenther  <rguenther@suse.de>
4388
4389         PR middle-end/43600
4390         * cgraphunit.c (cgraph_output_in_order): Do not allocate
4391         temporary data on stack.
4392
4393 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4394
4395         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
4396         (PUSHSECTION_ASM_OP): Remove.
4397         (POPSECTION_ASM_OP): Remove.
4398         (PUSHSECTION_FORMAT): Remove.
4399         * config/sol2.h (PUSHSECTION_FORMAT): Define.
4400         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
4401         * config/sol2.c (solaris_output_init_fini): Use it.
4402
4403 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4404
4405         PR 43574
4406         * opt-functions.awk (var_type_struct): Use signed char type
4407         for simple variables.
4408
4409 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4410
4411         * config/sol2.c: Include output.h.
4412         (solaris_assemble_visibility): New function.
4413         * config/t-sol2 (sol2.o): Add output.h dependency.
4414         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
4415         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
4416         Redefine.
4417
4418 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4419
4420         PR target/43580
4421         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
4422         V2SImode or XFmode on PRE_DEC.
4423
4424         PR debug/43557
4425         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
4426         BLKmode.
4427
4428 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4429
4430         PR 43562
4431         * reload.h (caller_save_initialized_p): Declare.
4432         * toplev.c (backend_init_target): Don't call
4433         init_caller_save but set caller_save_initialized_p to false.
4434         * caller-save.c (caller_save_initialized_p): Define.
4435         (init_caller_save): Check caller_save_initialized_p.
4436         * ira.c (ira): Call init_caller_save if flag_caller_saves.
4437
4438 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4439
4440         PR target/39048
4441         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
4442         and soft-fp/t-softfp to tmake_file.
4443         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
4444         (LIBGCC2_TF_CEXT): Define.
4445         (TF_SIZE): Define.
4446
4447 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
4448
4449         PR debug/42977
4450         * cselib.c (n_useless_values): Document handling of debug locs.
4451         (n_useless_debug_values, n_debug_values): New variables.
4452         (new_elt_loc_list): Don't add to debug values, keep count.
4453         (promote_debug_loc): New.
4454         (cselib_reset_table): Zero new variables.
4455         (entry_and_rtx_equal_p): Promote debug locs.
4456         (discard_useless_locs): Increment n_useless_debug_values for
4457         debug values.
4458         (remove_useless_values): Adjust n_useless_values and n_debug_values
4459         with n_useless_debug_values.
4460         (add_mem_for_addr): Promote debug locs.
4461         (cselib_lookup_mem): Likewise.
4462         (cselib_lookup_addr): Renamed to...
4463         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
4464         (cselib_log_lookup): ... this.  Turn into...
4465         (cselib_lookup_addr): ... new wrapper.
4466         (cselib_lookup_from_insn): New.
4467         (cselib_invalidate_regno): Increment n_useless_debug_values for
4468         debug values.
4469         (cselib_invalidate_mem): Likewise.
4470         (cselib_process_insn): Take n_deleted and n_debug_values into
4471         account to guard remove_useless_value call.
4472         (cselib_finish): Zero n_useless_debug_values.
4473         * cselib.h (cselib_lookup_from_insn): Declare.
4474         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
4475         (sched_analyze_2): Likewise.
4476
4477 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
4478
4479         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
4480         functions.
4481         (adjust_mems): Replace narrowing SUBREG of expression containing
4482         just PLUS, MINUS, MULT and ASHIFT of registers and constants
4483         with operations in the narrower mode.
4484
4485         PR debug/43593
4486         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
4487         regs_invalidated_by_call instead all call_used_reg_set registers.
4488
4489 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4490
4491         PR middle-end/43430
4492         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
4493         pointer comparisons with types_compatible_p.
4494         * tree-vect-stmts.c (vectorizable_call): Same.
4495         (vectorizable_condition): Same.
4496
4497 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4498
4499         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
4500         stack check if the mask would be zero.
4501
4502 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4503             Jack Howarth <howarth@bromo.med.uc.edu>
4504
4505         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4506         variables TLS.
4507
4508 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
4509
4510         PR other/25232
4511         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
4512         and __unordtf2.
4513         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
4514         Include ___unordxf2 and ___unordtf2.
4515         * config/i386/libgcc-glibc.ver: Do not define inheritance from
4516         GCC_4.4.0 here.
4517
4518 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
4519
4520         * config/lm32/t-lm32: New file.
4521         * config.gcc: Use the above file when targetting lm32.
4522
4523 2010-03-28  Duncan Sands  <baldrick@free.fr>
4524
4525         * Makefile.in (PLUGIN_HEADERS): Add except.h.
4526
4527 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4528
4529         PR middle-end/43431
4530         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
4531         Improve vectorization cost model diagnostic.
4532
4533 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4534
4535         PR middle-end/43436
4536         * tree-vect-data-refs.c (vect_analyze_data_refs): When
4537         compute_data_dependences_for_loop returns false, early exit
4538         and output an extra diagnostic for the failed data reference
4539         analysis.
4540
4541 2010-03-29  Richard Guenther  <rguenther@suse.de>
4542
4543         PR tree-optimization/43560
4544         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
4545         (can_sm_ref_p): Treat stores to readonly locations as trapping.
4546
4547 2010-03-29  Jie Zhang  <jie@codesourcery.com>
4548
4549         PR 43564
4550         * toplev.c (process_options): Set optimization_default_node
4551         and optimization_current_node.
4552         * opts.c (decode_options): Don't set optimization_default_node
4553         and optimization_current_node.
4554
4555 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
4556
4557         * config/rtems.h: Abandon -qrtems_debug.
4558
4559 2010-03-28  Jan Hubicka  <jh@suse.cz>
4560
4561         PR tree-optimization/43505
4562         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
4563         map should not be copied.
4564
4565 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4566
4567         PR middle-end/41674
4568         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
4569         cdtors, set DECL_PRESERVE_P.
4570         * ipa.c (cgraph_externally_visible_p): Return true if declaration
4571         should be preseved.
4572
4573 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
4574
4575         PR tree-optimization/43528
4576         * stor-layout.c (place_field): Check that constant fits into
4577         unsigned HWI when skipping calculation of MS bitfield layout.
4578
4579 2010-03-27  Jan Hubicka  <jh@suse.cz>
4580
4581         PR middle-end/43391
4582         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
4583         notice_global_symbol work.
4584
4585 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
4586
4587         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
4588         instead of dwarf2out_decl.
4589         (struct var_loc_node): Remove section_label field.
4590         (dwarf2out_function_decl): New function.
4591         (dwarf2out_var_location): Don't set section_label field.
4592         (dwarf2out_begin_function): Don't empty decl_loc_table here.
4593
4594 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4595
4596         PR tree-optimization/43544
4597         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4598         First argument for builtin vectorized function hook is now a
4599         tree to be able to distinguish between machine specific and
4600         standard builtins.
4601         * targhooks.c (default_builtin_vectorized_function): Ditto.
4602         * targhooks.h (default_builtin_vectorized_function): Ditto.
4603         * target.h (struct gcc_target): Ditto.
4604         * tree-vect-stmts.c (vectorizable_function): Ditto.
4605         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
4606         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4607         Ditto.
4608
4609 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
4610
4611         PR c/43381
4612         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
4613         nested binding iff it is a FUNCTION_DECL.
4614         (store_parm_decls_newstyle): Pass nested=true to bind for
4615         FUNCTION_DECLs amongst parameters.
4616
4617 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4618
4619         * var-tracking.c (vt_expand_loc_callback): Don't run
4620         cselib_expand_value_rtx_cb in dummy mode if
4621         cselib_dummy_expand_value_rtx_cb returned false.
4622
4623         * var-tracking.c (emit_note_insn_var_location): For one part
4624         notes with offset 0, don't add EXPR_LIST around the location.
4625         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
4626         add_location_or_const_value_attribute): Adjust for that change.
4627
4628         PR debug/43540
4629         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
4630         into first operand and location into second.
4631         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
4632         dw_cfi_oprnd_loc for DW_CFA_expression.
4633         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
4634         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
4635         assume first argument is regnum and second argument is location.
4636
4637 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4638
4639         PR target/42113
4640         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
4641         of scratch register to DImode.  Split to DImode comparison operator.
4642         Use SImode subreg of scratch register in the multiplication.
4643         (*cmp_sadd_sidi): Ditto.
4644         (*cmp_ssub_si): Ditto.
4645         (*cmp_ssub_sidi): Ditto.
4646
4647 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4648
4649         PR target/43524
4650         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
4651         Remove invalid assert and wrong comment.
4652
4653 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4654
4655         PR debug/43516
4656         * flags.h (final_insns_dump_p): New extern.
4657         * final.c (final_insns_dump_p): New variable.
4658         (rest_of_clean_state): Set it before -fdump-final-insns=
4659         dumping, clear afterwards.
4660         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
4661         MEM_ALIAS_SET on MEMs.
4662
4663 2010-03-26  David S. Miller  <davem@davemloft.net>
4664
4665         * configure.ac: Fix sparc GOTDATA_OP bug check.
4666         * configure: Rebuild.
4667
4668 2010-03-26  Alan Modra  <amodra@gmail.com>
4669
4670         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
4671
4672 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4673
4674         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
4675         TLS_SECTION_ASM_FLAG.
4676
4677 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
4678
4679         PR bootstrap/43511
4680         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
4681         Clear first_function_block_is_cold.
4682
4683         PR c/43385
4684         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
4685         argument if the argument is truth_value_p.
4686
4687 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4688
4689         * config/rs6000/constraints.md: Update copyright year for my changes.
4690
4691         PR target/43484
4692         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
4693         used in reg+reg addressing, swap registers.
4694
4695 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4696
4697         PR debug/43293
4698         * target.h (struct gcc_target): Add code_end hook.
4699         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
4700         if not yet defined.
4701         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
4702         * toplev.c (compile_file): Call targetm.asm_out.code_end
4703         hook before unwind info/debug info output.
4704         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
4705         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
4706         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4707         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
4708         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4709         * config/i386/i386.c (ix86_file_end): Renamed to...
4710         (ix86_code_end): ... this.  Make static.  Don't call
4711         file_end_indicate_exec_stack.  Emit unwind info using
4712         final_start_function/final_end_function.
4713         (darwin_x86_file_end): Remove.
4714         (TARGET_ASM_CODE_END): Define.
4715         * config/i386/i386.h (TARGET_ASM_FILE_END,
4716         NEED_INDICATE_EXEC_STACK): Don't define.
4717         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
4718         (TARGET_ASM_FILE_END): Define to darwin_file_end.
4719         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
4720         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
4721
4722         PR target/43498
4723         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
4724         at the beginning and final_end_function at the end.
4725         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4726
4727 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4728
4729         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
4730         and Sun as TLS syntax.
4731         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
4732         * configure: Regenerate.
4733         * config.in: Regenerate.
4734         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
4735         (default_elf_asm_named_section): Use it.
4736         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
4737         (i386_output_dwarf_dtprel): Likewise.
4738         (output_addr_const_extra): Likewise.
4739         (output_pic_addr_const): Lowercase @GOTTPOFF.
4740         (output_addr_const_extra): Likewise.
4741         (output_pic_addr_const): Lowercase @GOTNTPOFF.
4742         (output_addr_const_extra): Likewise.
4743         (output_pic_addr_const): Lowercase @INDNTPOFF.
4744         (output_addr_const_extra): Likewise.
4745         (output_pic_addr_const): Lowercase @NTPOFF.
4746         (output_addr_const_extra): Likewise.
4747         (output_pic_addr_const): Lowercase @TPOFF.
4748         (output_addr_const_extra): Likewise.
4749         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
4750         (*tls_global_dynamic_64): Likewise.
4751         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
4752         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
4753
4754         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
4755         (ASM_OUTPUT_TLS_COMMON): Use it.
4756         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
4757
4758         PR target/38118
4759         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
4760         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4761         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
4762         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
4763         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4764         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
4765
4766 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4767
4768         * config/i386/i386.c (override_options): Don't accept
4769         -mtls-dialect=sun any longer.
4770         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
4771         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
4772         (*tls_local_dynamic_base_32_sun): Likewise.
4773         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4774
4775 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4776
4777         PR debug/43508
4778         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4779         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4780
4781         PR debug/43479
4782         * ira.c (adjust_cleared_regs): New function.
4783         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4784
4785         PR debug/19192
4786         PR debug/43479
4787         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4788         from gimple_block.
4789         * expr.c (expand_expr_real): Restore previous
4790         curr_insn_source_location and curr_insn_block after
4791         expand_expr_real_1 call.
4792         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4793         instead of expand_expr_real_1.
4794
4795 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4796
4797         PR rtl-optimization/43413
4798         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4799         hard regs too.
4800
4801 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4802
4803         PR target/43348
4804         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4805         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4806
4807 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4808
4809         * config/i386/i386.c (ix86_target_string): Add -mfma.
4810         Fix a typo in comment.
4811
4812 2010-03-22  Mike Stump  <mikestump@comcast.net>
4813
4814         PR target/23071
4815         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4816         Don't overly align based upon packed packed fields.
4817
4818 2010-03-22  Jason Merrill  <jason@redhat.com>
4819
4820         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4821         Use () rather than [], and move before the element type.
4822
4823 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4824
4825         * doc/configfiles.texi (Configuration Files): Removed
4826         fixinc/Makefile*, intl/Makefile.*.
4827         * doc/makefile.texi: Fixed markup. Abstract from version
4828         control system used.
4829         (Makefile): Removed obsolete gcc/java/parse.y example.
4830         * doc/sourcebuild.texi: Likewise.
4831         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4832         libgomp, libssp.  Removed fastjar.
4833         (Miscellaneous Docs): Clarify location.
4834         Added COPYING3, COPYING3.LIB.
4835         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4836
4837 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4838
4839         PR target/38085
4840         * config/i386/i386.c (x86_function_profiler)
4841         [!NO_PROFILE_COUNTERS]: Fix typo.
4842         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4843         instead of callq.
4844
4845 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4846             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4847
4848         * doc/sourcebuild.texi (Test Directives): Split into six
4849         subsections, with most of the current text in new subsections
4850         Directives, Selectors, and Final Actions.
4851         (Directives): Split list of test directives into multiple
4852         subsubsections.
4853         (Selectors): Describe use and syntax of selectors.
4854         (Effective-Target Keywords): Describe all existing keywords.
4855         (Add Options): Describe features for dg-add-options.
4856         (Require Support): Describe variants of dg-require-support.
4857         (Final Actions): Describe commands to use in dg-final.
4858
4859 2010-03-22  Michael Matz  <matz@suse.de>
4860
4861         PR middle-end/43475
4862         * recog.c (validate_replace_rtx_group): Replace also in
4863         REG_EQUAL and REG_EQUIV notes.
4864
4865 2010-03-22  Richard Guenther  <rguenther@suse.de>
4866
4867         PR tree-optimization/43390
4868         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4869         sure vector extracts are type correct.
4870
4871 2010-03-22  Richard Guenther  <rguenther@suse.de>
4872
4873         PR middle-end/40106
4874         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4875         x * sqrt (x) even when optimizing for size if the target
4876         has native support for sqrt.
4877
4878 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4879
4880         * varasm.c (make_decl_rtl_for_debug): Also clear
4881         flag_mudflap for the duration of make_decl_rtl call.
4882
4883         PR debug/43443
4884         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4885         locs from preserved VALUEs.
4886
4887 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4888
4889         PR middle-end/42718
4890         * pa.md (movmemsi): Set align to one if zero.
4891         (movmemdi): Likewise.
4892
4893 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4894
4895         PR target/42321
4896         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4897         with their corresponding prologue pushes.
4898
4899 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4900
4901         PR target/43156
4902         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4903         at the begining or end.
4904         (spu_expand_epilogue): Likewise.
4905
4906 2010-03-20  Richard Guenther  <rguenther@suse.de>
4907
4908         PR rtl-optimization/43438
4909         * combine.c (make_extraction): Properly zero-/sign-extend an
4910         extraction of the low part of a CONST_INT.  Also handle
4911         CONST_DOUBLE.
4912
4913 2010-03-19  Mike Stump  <mikestump@comcast.net>
4914
4915         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4916         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4917         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4918
4919 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4920
4921         PR c/43211
4922         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4923         an error.
4924
4925 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4926
4927         PR rtl-optimization/42258
4928         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4929         use that may match DEF.
4930
4931         PR target/40697
4932         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4933         the cost of loading the constant rather than assuming
4934         COSTS_N_INSNS (1).
4935         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4936         outer code is AND, do the same tests as the andsi3 expander and
4937         return COSTS_N_INSNS (1) if and is cheap.
4938
4939         * optabs.c (avoid_expensive_constant): Fix formatting.
4940
4941 2010-03-19  Michael Matz  <matz@suse.de>
4942
4943         PR c++/43116
4944         * attribs.c (decl_attributes): When rebuilding a function pointer
4945         type use the same qualifiers as the original pointer type.
4946
4947 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4948
4949         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4950         and is_gimple_ip_invariant_address.
4951
4952 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4953
4954         Revert
4955         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4956
4957         * config/arm/arm.c (arm_override_options): Turn off
4958         flag_dwarf2_cfi_asm for AAPCS variants.
4959
4960 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4961
4962         PR target/43399
4963         * config/arm/arm.c (emit_multi_reg_push): Update comments.
4964         Use PRE_MODIFY instead of PRE_DEC.
4965         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
4966         (vfp_emit_fstmd): Likewise.
4967
4968 2010-03-19  Michael Matz  <matz@suse.de>
4969
4970         PR target/43305
4971         * builtins.c (expand_builtin_interclass_mathfn,
4972         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
4973         if that fails.
4974
4975 2010-03-19  Richard Guenther  <rguenther@suse.de>
4976
4977         PR tree-optimization/43415
4978         * tree-ssa-pre.c (phi_translate): Split out worker to ...
4979         (phi_translate_1): ... this.
4980         (phi_translate): Move all caching here.  Cache all NARY
4981         and REFERENCE translations.
4982
4983 2010-03-19  David S. Miller  <davem@davemloft.net>
4984
4985         With help from Eric Botcazou.
4986         * config/sparc/sparc.c: Include dwarf2out.h.
4987         (emit_pic_helper): Delete.
4988         (pic_helper_symbol_name): Delete.
4989         (pic_helper_emitted_p): Delete.
4990         (pic_helper_needed): New.
4991         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
4992         (get_pc_thunk_name): New.
4993         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
4994         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
4995         Set pic_helper_needed to true.  Don't call emit_pic_helper.
4996         (sparc_expand_prologue): Update load_pic_register call.
4997         (sparc_output_mi_thunk): Likewise.
4998         (sparc_file_end): Emit a hidden comdat symbol for the PIC
4999         thunk if possible.  Output CFI information as needed.
5000
5001 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5002             Jack Howarth <howarth@bromo.med.uc.edu>
5003
5004         PR target/36399
5005         * config/i386/i386.h: Fix ABI on darwin x86-32.
5006
5007 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
5008
5009         * tree.h: Declare make_decl_rtl_for_debug.
5010         * varasm.c (make_decl_rtl_for_debug): New.
5011         * dwarf2out.c (rtl_for_decl_location): Call it.
5012         * cfgexpand.c (expand_debug_expr): Call it.
5013
5014 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5015
5016         PR bootstrap/43399
5017         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
5018         mem_mode.
5019
5020         PR bootstrap/43403
5021         * var-tracking.c (vt_init_cfa_base): Do nothing if
5022         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
5023
5024 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
5025
5026         PR debug/42873
5027         * var-tracking.c (canonicalize_vars_star): New.
5028         (dataflow_post_merge_adjust): Use it.
5029
5030 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5031
5032         PR debug/43058
5033         * var-tracking.c (non_suitable_const): New function.
5034         (add_uses): For DEBUG_INSNs with constants, don't record any
5035         value, instead just the constant value itself.
5036         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
5037         is not VAR_LOC_UNKNOWN_P, set var to the constant.
5038         (emit_notes_in_bb): Likewise.
5039         (emit_note_insn_var_location): For onepart variables if
5040         cur_loc is a VOIDmode constant, use DECL_MODE.
5041
5042 2010-03-18  Martin Jambor  <mjambor@suse.cz>
5043
5044         PR middle-end/42450
5045         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
5046         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
5047         all non-clones.  Moved call redirection...
5048         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
5049         (cgraph_materialize_all_clones): Dispose of all
5050         combined_args_to_skip bitmaps.
5051         (verify_cgraph_node): Do not check for edges pointing to wrong
5052         nodes in inline clones.
5053         * tree-inline.c (copy_bb): Call
5054         cgraph_redirect_edge_call_stmt_to_callee.
5055         * ipa.c (cgraph_remove_unreachable_nodes): Call
5056         cgraph_node_remove_callees even when there are used clones.
5057
5058 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5059
5060         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
5061
5062 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5063
5064         PR target/43383
5065         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
5066         for 32bit.
5067
5068 2010-03-18  Michael Matz  <matz@suse.de>
5069
5070         PR middle-end/43419
5071         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
5072         into sqrt(x) if we need to preserve signed zeros.
5073
5074 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
5075             Eric Botcazou  <ebotcazou@adacore.com>
5076
5077         PR rtl-optimization/43360
5078         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
5079         note if we don't know its invariant status.
5080
5081 2010-03-18  Michael Matz  <matz@suse.de>
5082
5083         PR tree-optimization/43402
5084         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
5085         PHI chains of ssa names registered for update.
5086
5087 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
5088
5089         PR target/42427
5090         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
5091         non-offsettable and pre_modify update addressing.
5092         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
5093         and "2" alternatives "#".
5094         (*movdd_softfloat32): Make all alternatives "#";
5095         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
5096         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
5097         (*movdf_softfloat32): Make all alternatives "#";
5098         (movdi): Use the new DIFD mode iterator to create a common splitter
5099         for movdi, movdf and movdd patterns.
5100
5101 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
5102
5103         * common.opt (dumpdir): Remove redundant tab.
5104
5105 2010-03-17  Martin Jambor  <mjambor@suse.cz>
5106
5107         PR tree-optimization/43347
5108         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
5109         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
5110
5111 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
5112
5113         PR rtl-optimization/42216
5114         * regrename.c (create_new_chain): New function, broken out from...
5115         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
5116         appending a use to an empty chain.
5117         (build_def_use): Remove previous changes that convert OP_INOUT to
5118         OP_OUT operands; instead detect the case where an OP_INOUT operand
5119         uses a previously untracked register and create an empty chain for it.
5120
5121 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5122
5123         * doc/extend.texi (Function Attributes): Rewrite unfinished
5124         sentence in ms_abi documentation.
5125
5126 2010-03-17  Alan Modra  <amodra@gmail.com>
5127
5128         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
5129         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
5130         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
5131         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
5132
5133 2010-03-16  Richard Henderson  <rth@redhat.com>
5134
5135         PR middle-end/43365
5136         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
5137         (lower_try_finally): Save and restore eh_seq around the expansion
5138         of the try-finally.
5139
5140 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5141
5142         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
5143         statements before splitting block.
5144
5145 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5146
5147         * doc/sourcebuild.texi (Testsuites): Fix markup.
5148         Use pathnames relative to gcc/testsuite.
5149         (Test Directives): Move description of how timeout is determined.
5150         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
5151         (C Tests): Correct gcc.misc-tests directory.
5152         Framework tests now live in gcc.test-framework.
5153
5154 2010-03-16  Richard Guenther  <rguenther@suse.de>
5155
5156         PR middle-end/43379
5157         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
5158         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
5159
5160 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5161             Alexandre Oliva  <aoliva@redhat.com>
5162
5163         PR tree-optimization/42917
5164         * lambda-code.c (remove_iv): Skip debug statements.
5165         (lambda_loopnest_to_gcc_loopnest): Likewise.
5166         (not_interesting_stmt): Debug statements are not interesting.
5167
5168 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
5169
5170         PR debug/43051
5171         PR debug/43092
5172         * cselib.c (cselib_preserve_constants,
5173         cfa_base_preserved_val): New static variables.
5174         (preserve_only_constants): New function.
5175         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
5176         clear its REG_VALUES.  If cselib_preserve_constants, don't
5177         empty the whole hash table, but preserve there VALUEs with constants,
5178         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
5179         (cselib_preserve_cfa_base_value): New function.
5180         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
5181         (cselib_init): Change argument to int bitfield.  Set
5182         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
5183         is in it.
5184         (cselib_finish): Clear cselib_preserve_constants and
5185         cfa_base_preserved_val.
5186         * cselib.h (enum cselib_record_what): New enum.
5187         (cselib_init): Change argument to int.
5188         (cselib_preserve_cfa_base_value): New prototype.
5189         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
5190         * dse.c (dse_step1): Likewise.
5191         * cfgcleanup.c (thread_jump): Likewise.
5192         * sched-deps.c (sched_analyze): Likewise.
5193         * gcse.c (local_cprop_pass): Likewise.
5194         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
5195         If FN is non-NULL, call the callback always and whenever it returns
5196         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
5197         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
5198         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
5199         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
5200         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
5201         * var-tracking.c: Include recog.h.
5202         (bb_stack_adjust_offset): Remove.
5203         (vt_stack_adjustments): Don't call it, instead just gather the
5204         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
5205         (adjust_stack_reference): Remove.
5206         (compute_cfa_pointer): New function.
5207         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
5208         (struct adjust_mem_data): New type.
5209         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
5210         functions.
5211         (get_address_mode): New function.
5212         (replace_expr_with_values): Use it.
5213         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
5214         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
5215         (adjust_sets): Remove.
5216         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
5217         Use get_address_mode.
5218         (get_adjusted_src): Remove.
5219         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
5220         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
5221         (add_with_sets): Don't call adjust_sets.
5222         (fp_setter, vt_init_cfa_base): New functions.
5223         (vt_initialize): Change return type to bool.  Move most of pool etc.
5224         initialization to the beginning of the function from end.  Pass
5225         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
5226         If !frame_pointer_needed, call vt_stack_adjustment before mos
5227         vector is filled, call vt_init_cfa_base if argp/framep has been
5228         eliminated to sp.  If frame_pointer_needed and argp/framep has
5229         been eliminated to hard frame pointer, set
5230         hard_frame_pointer_adjustment and call vt_init_cfa_base after
5231         encountering fp setter in the prologue.  For MO_ADJUST, call
5232         log_op_type before pusing the op into mos vector, not afterwards.
5233         Call adjust_insn before cselib_process_insn/add_with_sets,
5234         call cancel_changes (0) afterwards.
5235         (variable_tracking_main_1): Adjust for vt_initialize calling
5236         vt_stack_adjustments and returning whether it succeeded or not.
5237
5238 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
5239
5240         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
5241         debug statements.
5242
5243 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
5244
5245         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
5246         has been set.
5247         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
5248         drap_reg has not been set.
5249
5250 2010-03-15  Michael Matz  <matz@suse.de>
5251
5252         PR middle-end/43300
5253         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
5254         use it to expand block copies.
5255         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5256         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
5257         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
5258
5259 2010-03-15  Richard Guenther  <rguenther@suse.de>
5260
5261         PR tree-optimization/43367
5262         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
5263         elimination check.
5264
5265 2010-03-15  Richard Guenther  <rguenther@suse.de>
5266
5267         PR tree-optimization/43317
5268         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
5269
5270 2010-03-15  Martin Jambor  <mjambor@suse.cz>
5271
5272         PR tree-optimization/43141
5273         * tree-sra.c (create_abstract_origin): New function.
5274         (modify_function): Call create_abstract_origin.
5275
5276 2010-03-15  Chris Demetriou  <cgd@google.com>
5277
5278         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
5279         wasn't copied.
5280
5281 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5282
5283         PR middle-end/43354
5284         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
5285         call insert_out_of_ssa_copy for default definitions.
5286
5287 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5288
5289         * graphite-clast-to-gimple.c (my_long_long): Defined.
5290         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
5291         * graphite-sese-to-poly.c (my_long_long): Defined.
5292         (scop_ivs_can_be_represented): Use it.
5293
5294 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5295
5296         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
5297         graphite-max-bbs-per-function, and loop-block-tile-size.
5298         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
5299         with "maximum".
5300         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
5301
5302 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5303
5304         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
5305         forward declaration.
5306         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
5307         (add_upper_bounds_from_estimated_nit): New.
5308         (build_loop_iteration_domains): Use it.
5309
5310 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5311
5312         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
5313
5314 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5315
5316         PR middle-end/43306
5317         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
5318         should be an INTEGER_CST.  Also handle CASE_CONVERT.
5319
5320 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5321
5322         * graphite.c (graphite_initialize): To bound the number of bbs per
5323         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
5324         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
5325         * doc/invoke.texi: Document it.
5326
5327 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5328
5329         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
5330         * graphite-sese-to-poly.h (build_poly_scop): Same.
5331
5332 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5333
5334         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
5335         the number of parameters in the scop.  Use as an upper bound
5336         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
5337         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
5338         * doc/invoke.texi: Document it.
5339
5340 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
5341
5342         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
5343         * doc/c-tree.texi: Remove.
5344         * doc/generic.texi: Merge c-tree.texi here.
5345         * doc/gccint.texi (Trees): Remove menu entry.
5346         (c-tree.texi): Remove @include.
5347         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
5348         * doc/languages.texi (Reading RTL): Ditto.
5349
5350 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
5351
5352         PR target/42869
5353         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
5354
5355 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5356
5357         PR middle-end/42431
5358         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
5359         code added to work around reload clobbering CONST insns.
5360
5361 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
5362
5363         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
5364         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
5365         (cselib_preserve_only_values): Remove retain argument, don't
5366         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
5367         * cselib.h (cselib_preserve_only_values): Remove retain argument.
5368         * var-tracking.c (micro_operation): Move insn field before union.
5369         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
5370         (struct variable_tracking_info_def): Remove n_mos field, change
5371         mos into a vector of micro_operations.
5372         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
5373         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
5374         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
5375         changing into a vector.
5376         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
5377         come before all other uops generated by add_stores.
5378         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
5379         argument removal.
5380         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
5381         a vector.  Run just one pass over the bbs instead of separate counting
5382         and computation phase.
5383         (vt_finalize): Free VTI (bb)->mos vector instead of array.
5384
5385         PR debug/43329
5386         * tree-inline.c (remap_decls): Put old_var rather than origin_var
5387         into *nonlocalized_list vector.
5388         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
5389         even if origin is non-NULL.
5390         (gen_variable_die): Likewise.
5391         (process_scope_var): Don't change origin.
5392         (gen_decl_die): Likewise.
5393         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
5394         before adding new edges instead of after it, fix moving over
5395         debug stmts.
5396
5397 2010-03-11  David S. Miller  <davem@davemloft.net>
5398
5399         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
5400         of four.
5401         * configure: Rebuild.
5402
5403 2010-03-11  Martin Jambor  <mjambor@suse.cz>
5404
5405         PR tree-optimization/43257
5406         * tree.c (assign_assembler_name_if_neeeded): New function.
5407         (free_lang_data_in_cgraph): Assembler name assignment moved to the
5408         above new function.
5409         * tree.h (assign_assembler_name_if_neeeded): Declare.
5410         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
5411         the function if needed.
5412
5413 2010-03-11  Chris Demetriou  <cgd@google.com>
5414
5415         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
5416         include/stdint-gcc.h, and include/stdint.h world-readable.
5417
5418 2010-03-11  Richard Guenther  <rguenther@suse.de>
5419
5420         PR tree-optimization/43255
5421         * tree-vrp.c (process_assert_insertions_for): Do not insert
5422         asserts for trivial conditions.
5423
5424 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5425
5426         PR tree-optimization/43280
5427         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
5428         generation.  Move calculation of size out of the if branch.
5429         (find_bswap): Modify compare number generation.
5430
5431 2010-03-11  Richard Guenther  <rguenther@suse.de>
5432
5433         PR lto/43200
5434         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
5435         (input_gimple_stmt): Fixup handled component types during
5436         operand read.  Also fix up decls in ADDR_EXPRs.
5437
5438 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5439
5440         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
5441         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
5442
5443 2010-03-10  Jan Hubicka  <jh@suse.cz>
5444
5445         PR c/43288
5446         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
5447         * varasm.c (get_variable_section): Don't do that here...
5448         (make_decl_rtl): ... and here.
5449         (do_assemble_alias): Produce decl RTL.
5450         (assemble_alias): Likewise.
5451
5452 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5453
5454         PR debug/43290
5455         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
5456         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
5457         of fde->vdrap_reg.
5458         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
5459         (based_loc_descr): Only express drap or vdrap regno based expressions
5460         using DW_OP_fbreg when not optimizing.
5461         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
5462         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
5463         REG_CFA_SET_VDRAP note.
5464
5465 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
5466
5467         PR tree-optimization/43236
5468         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
5469         error in calculation of base address in reverse iteration case.
5470         (generate_builtin): Take number of latch executions if the statement
5471         is in the latch.
5472
5473 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
5474
5475         PR middle-end/42859
5476         * tree-eh.c: Include pointer-set.h.
5477         (lower_eh_dispatch): Filter out duplicate case labels and
5478         remove the unneeded edge when the label is unused.  Return
5479         true when some edges are removed.
5480         (execute_lower_eh_dispatch): When any lowering resulted in
5481         removing an edge, also delete unreachable blocks.
5482
5483 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5484
5485         PR bootstrap/43287
5486         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5487         UNSPEC_MACHOPIC_OFFSET.
5488
5489 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
5490
5491         PR target/43294
5492         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5493         (m68k_delegitimize_address): New function.
5494
5495 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
5496
5497         PR debug/43299
5498         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
5499
5500         PR debug/43299
5501         * var-tracking.c (adjust_sets): New function.
5502         (count_with_sets, add_with_sets): Use it.
5503         (get_adjusted_src): New inline function.
5504         (add_stores): Use it.
5505
5506         PR debug/43304
5507         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
5508         call cselib_dummy_expand_value_rtx_cb instead of
5509         cselib_expand_value_rtx_cb.
5510
5511         PR debug/43293
5512         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
5513         * config/i386/i386.c: Include debug.h and dwarf2out.h.
5514         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
5515         and .cfi_endproc around the pic thunks.
5516         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
5517         all queued unwind info register saves are saved before the call.
5518         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
5519         considered as sp-=4 for unwind info and the pop as sp+=4 which
5520         also clobbers dest, but doesn't actually restore it.
5521
5522         PR debug/43290
5523         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
5524         RTX_FRAME_RELATED_P.
5525
5526 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5527
5528         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
5529         whitespaces in output template.
5530
5531 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5532
5533         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
5534         out array boundary.
5535
5536 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5537
5538         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
5539         builtins.exp in a separate job.
5540
5541 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5542
5543         * graphite-sese-to-poly.c (add_param_constraints): Use
5544         lower_bound_in_type and upper_bound_in_type.
5545
5546 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5547
5548         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
5549         instead of unsigned_type_node.
5550
5551 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5552             Reza Yazdani  <reza.yazdani@amd.com>
5553
5554         PR middle-end/43065
5555         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
5556         on pointer type parameters.
5557
5558 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5559
5560         PR middle-end/42644
5561         PR middle-end/42130
5562         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
5563         handle conversions from pointer to integers.
5564         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
5565         induction variable, to be able to work with code generated by CLooG.
5566         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
5567         (build_poly_scop): Bail out if we cannot codegen a loop.
5568
5569 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5570
5571         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
5572         code generation with gloog_error.
5573
5574 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5575
5576         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
5577         Call fold_convert on all the returned values.
5578         (expand_scalar_variables_expr): Pass to
5579         expand_scalar_variables_ssa_name the type of the resulting expression.
5580
5581 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5582
5583         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
5584         ppl_min_for_le_pointset.
5585         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
5586         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
5587
5588 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5589
5590         * graphite-dependences.c (map_into_dep_poly): Removed.
5591         (dependence_polyhedron_1): Use combine_context_id_scat.
5592
5593 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5594
5595         * graphite-poly.h (struct poly_scattering): Add layout documentation.
5596         (struct poly_bb): Same.
5597         (combine_context_id_scat): New.
5598
5599 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5600
5601         PR middle-end/42326
5602         * sese.c (name_defined_in_loop_p): Return false for default
5603         definitions.
5604
5605 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5606
5607         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
5608         and clean up the logic.
5609
5610 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5611
5612         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
5613         early return.
5614
5615 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5616
5617         * var-tracking.c (remove_cselib_value_chains): Define only for
5618         ENABLE_CHECKING.
5619         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
5620         delete_slot_part, emit_notes_for_differences_1): Don't call
5621         remove_cselib_value_chains here.
5622         (set_slot_part, emit_notes_for_differences_2): Don't call
5623         add_cselib_value_chains here.
5624         (preserved_values): New vector.
5625         (preserve_value): New function.
5626         (add_uses, add_stores, vt_add_function_parameters): Use it
5627         instead of cselib_preserve_value.
5628         (changed_values_stack): New vector.
5629         (check_changed_vars_0): New function.
5630         (check_changed_vars_1, check_changed_vars_2): Use it.
5631         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
5632         changed_values_stack VALUEs.
5633         (vt_emit_notes): For all preserved_values call
5634         add_cselib_value_chains.  If ENABLE_CHECKING call
5635         remove_cselib_value_chains before verifying value_chains is empty.
5636         Initialize and free changed_values_stack.
5637         (vt_initialize): Initialize preserved_values.
5638         (vt_finalize): Free preserved_values.
5639
5640 2010-03-08  Richard Guenther  <rguenther@suse.de>
5641
5642         PR tree-optimization/43269
5643         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
5644         region detection.
5645
5646 2010-03-08  Martin Jambor  <mjambor@suse.cz>
5647
5648         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
5649         (ipa_is_param_called): Removed.
5650         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
5651         (ipa_print_node_params): Do not print the called flag.
5652         (ipa_write_node_info): Do not stream the called flag.
5653         (ipa_read_node_info): Likewise.
5654
5655 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
5656
5657         PR debug/43176
5658         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
5659         * cselib.c (struct expand_value_data): Add dummy field.
5660         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
5661         dummy to false.
5662         (cselib_dummy_expand_value_rtx_cb): New function.
5663         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
5664         any rtl.
5665         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
5666         * var-tracking.c: Include pointer-set.h.
5667         (variable): Change n_var_parts to char from int.  Add
5668         cur_loc_changed and in_changed_variables fields.
5669         (variable_canonicalize): Remove.
5670         (shared_var_p): New inline function.
5671         (unshare_variable): Maintain cur_loc_changed and
5672         in_changed_variables fields.  If var was in changed_variables,
5673         replace it there with new_var.  Just copy cur_loc instead of
5674         resetting it to something else.
5675         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
5676         (dataflow_set_union): Don't call variable_canonicalize.
5677         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
5678         of their DEBUG_EXPR_TREE_DECLs.
5679         (canonicalize_loc_order_check): Verify that cur_loc is NULL
5680         and in_changed_variables and cur_loc_changed is false.
5681         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
5682         and cur_loc_changed.  Don't update cur_loc here.
5683         (variable_merge_over_src): Don't call variable_canonicalize.
5684         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
5685         removing loc that is equal to cur_loc, clear cur_loc,
5686         set cur_loc_changed and ensure variable_was_changed is called.
5687         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
5688         compare pointers in cur_loc check, if it is equal to loc,
5689         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
5690         (variable_different_p): Remove compare_current_location argument,
5691         don't compare cur_loc.
5692         (dataflow_set_different_1): Adjust variable_different_p caller.
5693         (variable_was_changed): If dv had some var in changed_variables
5694         already, reset in_changed_variables flag for it and propagate
5695         cur_loc_changed over to the new variable.  On empty var
5696         always set cur_loc_changed.  Set in_changed_variables on whatever
5697         var is added to changed_variables.
5698         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
5699         Use shared_var_p.  When removing loc that is equal to cur_loc,
5700         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
5701         end, don't set it to something else, just call variable_was_changed.
5702         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
5703         loc being removed, clear cur_loc and set cur_loc_changed.
5704         Set cur_loc_changed if all locations have been removed.
5705         (struct expand_loc_callback_data): New type.
5706         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
5707         allocated.  Always create SUBREGs if simplify_subreg failed.
5708         Prefer to use cur_loc, when that fails and still in
5709         changed_variables (and seen first time) recompute it.  Set
5710         cur_loc_changed of variables which had to change cur_loc and
5711         compute elcd->cur_loc_changed if any of the subexpressions used
5712         had to change cur_loc.
5713         (vt_expand_loc): Adjust to pass arguments in
5714         expand_loc_callback_data structure.
5715         (vt_expand_loc_dummy): New function.
5716         (emitted_notes): New variable.
5717         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
5718         that weren't used for any other decl in current
5719         emit_notes_for_changes call call vt_expand_loc_dummy to update
5720         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
5721         first loc_chain location if NULL before.  Always use just
5722         cur_loc instead of first loc_chain location.  When cur_loc_changed
5723         is false, when not --enable-checking=rtl just don't emit any note.
5724         When rtl checking, compute the note and assert it is the same
5725         as previous note.  Clear cur_loc_changed and in_changed_variables
5726         at the end before removing from changed_variables.
5727         (check_changed_vars_3): New function.
5728         (emit_notes_for_changes): Traverse changed_vars to call
5729         check_changed_vars_3 on each changed var.
5730         (emit_notes_for_differences_1): Clear cur_loc_changed and
5731         in_changed_variables.  Recompute cur_loc of new_var.
5732         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
5733         (vt_emit_notes): Initialize and destroy emitted_notes.
5734
5735 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
5736
5737         PR rtl-optimization/42220
5738         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
5739         Use verify_reg_tracked to determine if we should use OP_OUT rather
5740         than OP_INOUT.
5741         (build_def_use): If we see an in-out operand for a register that we
5742         know nothing about, treat is an output if possible, fail the block if
5743         not.
5744
5745 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5746
5747         PR debug/42897
5748         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
5749         permanently.
5750
5751 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5752
5753         PR debug/42897
5754         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
5755         uses of relevant DEFs that are dead outside the loop too.
5756
5757 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
5758
5759         * var-tracking.c (dataflow_set_merge): Swap src and src2.
5760         Reverted:
5761         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
5762         PR debug/41371
5763         * var-tracking.c (values_to_unmark): New variable.
5764         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
5765         values_to_unmark vector.  Moved body to...
5766         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
5767         instead queue it into values_to_unmark vector.
5768         (vt_find_locations): Free values_to_unmark vector.
5769
5770 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5771
5772         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
5773         (site.exp): Export them when plugins are enabled.
5774
5775 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
5776
5777         PR middle-end/42326
5778         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
5779         that contain scevs.
5780         (chrec_fold_multiply): Same.
5781
5782 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5783
5784         PR c/43248
5785         * c-decl.c (build_compound_literal): Return early if init is
5786         an error_mark_node.
5787
5788 2010-03-04  Martin Jambor  <mjambor@suse.cz>
5789
5790         PR tree-optimization/43164
5791         PR tree-optimization/43191
5792         * tree-sra.c (type_consists_of_records_p): Reject records with
5793         zero-size bit-fields at the end.
5794
5795 2010-03-04  Mike Stump  <mikestump@comcast.net>
5796
5797         * Makefile.in (TAGS): Remove *.y.
5798
5799 2010-03-04  Richard Guenther  <rguenther@suse.de>
5800
5801         PR tree-optimization/40761
5802         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
5803         in reverse order.
5804         (my_rev_post_order_compute): New function.
5805         (init_pre): Call it.
5806
5807 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5808
5809         PR middle-end/43209
5810         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
5811         decrease the cost of an IV candidate when the cost is infinite.
5812
5813 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5814
5815         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
5816         Use '3DNow!' for the extension of that name, ensure normal space
5817         after the string.
5818         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
5819
5820 2010-03-03  Jeff Law  <law@redhat.com>
5821
5822         * PR middle-end/32693
5823         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
5824         than gen_rtx_SUBREG.
5825         (extract_bit_field_1): Likewise.
5826
5827 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
5828
5829         * doc/sourcebuild.texi (Test directives): Document that arguments
5830         include-opts and exclude-opts are now optional for dg-skip-if,
5831         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
5832
5833 2010-03-03  Jason Merrill  <jason@redhat.com>
5834
5835         PR c++/12909
5836         * cgraph.h (varpool_node): Add extra_name field.
5837         * varpool.c (varpool_extra_name_alias): New.
5838         (varpool_assemble_decl): Emit extra name aliases.
5839         (varpool_mark_needed_node): Look past an extra name alias.
5840         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
5841         * lto-streamer-in.c (lto_input_tree): Read it.
5842         * lto-streamer-out.c (output_unreferenced_globals): Write it.
5843
5844 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5845
5846         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
5847         (sparc*-*-solaris2*): ...this.
5848
5849 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
5850
5851         PR debug/43229
5852         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
5853         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
5854         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
5855         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
5856
5857         PR debug/43237
5858         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
5859         fallthrough to default handling, just with want_address 0 instead of 2.
5860         For single element lists, add_AT_loc directly, otherwise create an
5861         artificial variable DIE and stick location list to it.
5862
5863         PR debug/43177
5864         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
5865         (VAL_EXPR_HAS_REVERSE): Define.
5866         (reverse_op): New function.
5867         (add_stores): For reversible operations add an extra MO_VAL_USE.
5868
5869 2010-03-02  Jason Merrill  <jason@redhat.com>
5870
5871         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
5872
5873 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
5874
5875         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
5876         (sparc64-*-linux*): Likewise.
5877         (sparc64-*-solaris2*): Include assembler files before linker ones.
5878         (sparc-*-solaris2*): Simplify and reorder to match previous case.
5879         * config/sparc/gas.h: Delete.
5880         * config/sparc/sol2-64.h: Add copyright notice.
5881         * config/sparc/sol2-gas-bi.h: Likewise.
5882         * config/sparc/sol2-gld.h: Likewise.
5883         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
5884         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
5885         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
5886         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
5887         (sparc_elf_asm_named_section): Rename into...
5888         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
5889
5890 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
5891
5892         * config/alpha/alpha.c (override_options): Fix -mtune error message.
5893
5894 2010-03-02  Jeff Law  <law@redhat.com>
5895
5896         PR middle-end/42431
5897         * reload1.c (rtx_p, substitute_stack): Declare.
5898         (substitute): Record addresses of changed rtxs.
5899         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
5900         Restore the original rtx when complete.
5901         (reload): Free subsitute_stack when complete.
5902
5903 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
5904
5905         * doc/gccint.texi (menu): Add Testsuites as a chapter.
5906         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
5907         new chapter.
5908         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
5909         LTO Testing, gcov Testing, profopt Testing, compat Testing,
5910         Torture Tests): Change from subsection to section.
5911
5912 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
5913             Steven Bosscher  <steven@gcc.gnu.org>
5914
5915         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
5916         instead of bb.
5917
5918 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
5919
5920         PR middle-end/42640
5921         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
5922         the assignment from the new induction variable to the assignment
5923         of the value from the original loop PHI function.
5924
5925 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
5926             Daniel Jacobowitz  <dan@codesourcery.com>
5927
5928         * doc/sourcebuild.texi (Test directives): Clarify options to
5929         dg-skip-if.
5930
5931 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5932
5933         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
5934         Disable cfi directives unless GCC and gas agree on using read-only
5935         .eh_frame sections for 64-bit.
5936         * configure: Regenerate.
5937
5938 2010-03-01  Richard Guenther  <rguenther@suse.de>
5939
5940         PR tree-optimization/43220
5941         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
5942         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
5943
5944 2010-03-01  Richard Guenther  <rguenther@suse.de>
5945             Martin Jambor  <mjambor@suse.cz>
5946
5947         PR middle-end/41250
5948         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
5949         gimplified parameters.
5950
5951 2010-03-01  Christian Bruel  <christian.bruel@st.com>
5952
5953         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
5954
5955 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
5956
5957         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
5958
5959 2010-03-01  Richard Guenther  <rguenther@suse.de>
5960
5961         PR middle-end/43213
5962         * expr.c (expand_assignment): Use the alias-oracle to tell
5963         if the rhs aliases the result decl.
5964
5965 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5966
5967         PR pch/14940
5968         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
5969         to sol_gt_pch_get_address.
5970         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
5971         64-bit, SPARC and x86.
5972         (sol_gt_pch_get_address): New function.
5973
5974 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
5975
5976         * toplev.h (inform_n, error_n): Declare.
5977         * diagnostic.c (inform_n, error_n): New function.
5978
5979 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
5980
5981         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
5982         has no rtl yet when processing local_decls, queue it and recheck
5983         if deferred stack allocation hasn't assigned it rtl.
5984
5985 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5986
5987         * config/sh/sh.c (unspec_bbr_uid): New.
5988         (gen_block_redirect): Use it instead of INSN_UID.
5989         (gen_far_branch): Likewise.
5990
5991 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5992
5993         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
5994         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
5995
5996 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5997
5998         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
5999         (Warning Options): -Wno-conversion-null is valid for
6000         Objective-C++ as well.
6001         * doc/tm.texi (Named Address Spaces): Likewise.
6002         * doc/plugins.texi (Plugins): Replace TABs with spaces.
6003         * doc/tree-ssa.texi (Tree SSA): Likewise.
6004
6005 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6006
6007         PR bootstrap/43202
6008         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
6009         by default.  Don't set the default arch for
6010         i[34567]86-*-darwin*|x86_64-*-darwin*.
6011
6012 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6013
6014         PR bootstrap/43202
6015         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
6016         default.  Set the default 32bit/64bit archs with $with_arch
6017         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
6018
6019 2010-02-27  Richard Guenther  <rguenther@suse.de>
6020
6021         PR tree-optimization/43186
6022         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
6023         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
6024         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
6025         unroller iterations.
6026
6027 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6028
6029         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
6030         required and i[34567]86-*-* targets don't support 64bit ISA.
6031
6032 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
6033
6034         PR ada/43096
6035         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
6036         the same alias set.
6037
6038 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6039
6040         * config.gcc: Set the default arch at least to Prescott for
6041         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
6042         if SSE math is enabled.
6043
6044 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6045
6046         * diagnostic.c (diagnostic_initialize): Update.
6047         (diagnostic_report_diagnostic): Test inhibit_notes_p for
6048         informative notes.
6049         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
6050         (diagnostic_inhibit_notes): New.
6051         * toplev.c (process_options): inhibit notes with -fcompare-debug.
6052
6053 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6054
6055         PR c/20631
6056         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
6057         * doc/standards.texi: Likewise.
6058         * doc/extend.texi: Likewise.
6059         * doc/trouble.texi: Likewise.
6060         * doc/cppopts.texi: Likewise.
6061         * doc/install.texi: Likewise.
6062         * c.opt (std=c90,std=gnu90): New options.
6063         * c-opts.c (c_common_handle_option): Handle them.
6064
6065 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6066
6067         PR c/24577
6068         * c-decl.c (undeclared_variable): Use an informative note.
6069
6070 2010-02-26  Richard Guenther  <rguenther@suse.de>
6071
6072         PR tree-optimization/43186
6073         * gimple.h (gimple_fold): Remove.
6074         * gimple.c (gimple_fold): Remove.  Inline into single user ...
6075         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
6076         Try harder for conditions.
6077
6078 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6079
6080         PR debug/43190
6081         * function.c (used_types_insert): Don't skip through named pointer
6082         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
6083         and it is different from the main variant's type.
6084
6085 2010-02-26  Nick Clifton  <nickc@redhat.com>
6086
6087         * config/rx/rx.md (sminsi3): Remove bogus alternative.
6088
6089 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6090
6091         * config.gcc: Support --with-fpmath=sse for x86.
6092
6093         * config/i386/ssemath.h: New.
6094
6095         * doc/install.texi (--with-fpmath=sse): Documented.
6096
6097 2010-02-26  Richard Guenther  <rguenther@suse.de>
6098
6099         PR tree-optimization/43188
6100         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
6101         vector types of over-aligned element type.
6102
6103 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
6104
6105         PR target/43175
6106         * config/i386/i386.c (expand_vec_perm_blend): Use correct
6107         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
6108
6109 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
6110
6111         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
6112
6113 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6114
6115         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
6116         * var-tracking.c: Include diagnostic.h.
6117         (debug_dv): New function.
6118         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
6119
6120         PR debug/43160
6121         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
6122         (add_value_chain, add_value_chains, remove_value_chain,
6123         remove_value_chains): Handle DEBUG_EXPRs.
6124         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
6125
6126         PR debug/43161
6127         * regcprop.c (struct queued_debug_insn_change): New type.
6128         (struct value_data_entry): Add debug_insn_changes field.
6129         (struct value_data): Add n_debug_insn_changes field.
6130         (debug_insn_changes_pool): New variable.
6131         (free_debug_insn_changes, apply_debug_insn_changes,
6132         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
6133         (kill_value_one_regno): Call free_debug_insn_changes if needed.
6134         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
6135         fields.
6136         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
6137         changes for them.
6138         (copyprop_hardreg_forward_1): Don't call apply_change_group for
6139         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
6140         changes, call cprop_find_used_regs via note_stores.
6141         (copyprop_hardreg_forward): When copying vd from predecessor
6142         which has any queued DEBUG_INSN changes, make sure the pointers are
6143         cleared.  At the end call df_analyze and then if there are any
6144         DEBUG_INSN changes queued at the end of some basic block for still
6145         live registers, apply them.
6146         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
6147
6148 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
6149
6150         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
6151         (arm*-*-*): Ditto.
6152
6153 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6154
6155         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
6156         targets.  Set the default with_cpu/with_arch from arch/cpu.
6157         Allow x86-64 and native for with_cpu/with_arch.
6158
6159 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
6160
6161         * ebitmap.c: Change calls to verify_popcount with calls to
6162         sbitmap_verify_popcount.
6163         (ebitmap_clear_bit): Fixed map->cacheindex test and
6164         map>cache update when bit clearing results in an empty
6165         element.
6166
6167 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
6168
6169         PR target/43154
6170         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
6171         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
6172         and support both V2DF and V2DI modes.
6173         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
6174         support both V2DF and V2DI modes.
6175         (general): Delete trailing whitespace from a few patterns.
6176
6177         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6178         V2DF/V2DI interleave high/low builtins.
6179
6180         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
6181         new VSX builtins.
6182
6183         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
6184         interleave high/low functions.
6185
6186 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6187
6188         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
6189         #pragma extern_prefix.
6190
6191 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
6192
6193         PR debug/43166
6194         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
6195         BLKmode, assert op0 is a MEM and just adjust its mode.
6196
6197         PR debug/43165
6198         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
6199         if bitpos isn't multiple of mode's bitsize.
6200
6201 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6202
6203         * c.opt (-ftemplate-depth=): New.
6204         (-ftemplate-depth-): Deprecate.
6205         * optc-gen.awk: Handle -ftemplate-depth=.
6206         * opth-gen.awk: Likewise.
6207         * c-opts.c (c_common_handle_option): Likewise.
6208         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
6209
6210 2010-02-24  Jason Merrill  <jason@redhat.com>
6211
6212         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
6213
6214 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6215
6216         * cfg.c (alloc_aux_for_block): Remove inline.
6217         (alloc_aux_for_edge): Likewise.
6218
6219 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6220
6221         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
6222
6223 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6224
6225         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
6226         * config/i386/sol2-gas.h: New file.
6227         * config.gcc (i[34567]86-*-solaris2*): Use it.
6228
6229 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6230
6231         PR c/43128
6232         * c-typeck.c (ep_convert_and_check): New.
6233         (build_conditional_expr): Use it.
6234         (build_binary_op): Likewise.
6235
6236 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
6237
6238         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
6239
6240         PR debug/43150
6241         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
6242         bounds even for -O+.
6243         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
6244         expr needs to have DECL_NAME set.
6245
6246 2010-02-24  Nick Clifton  <nickc@redhat.com>
6247
6248         * config/mep/mep.c: Include gimple.h.
6249         (mep_function_uses_sp): Delete unused function.
6250         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
6251         parameters.  Use unsigned integers to count args.  Return a
6252         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
6253
6254 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6255
6256         PR target/43107
6257         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
6258         greater or equal to nelt instead of 2 * nelt.
6259         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
6260         with nelt - 1.
6261
6262 2010-02-23  Jason Merrill  <jason@redhat.com>
6263
6264         PR debug/42800
6265         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
6266         in cfun->local_decls even if they have register types.
6267
6268         PR c++/42837
6269         * stor-layout.c (place_field): Don't warn about unnecessary
6270         DECL_PACKED if the type is packed.
6271
6272 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6273
6274         PR target/43139
6275         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
6276         GOTOFF relocs, even when the base reg isn't pic pointer.
6277
6278 2010-02-23  Michael Matz  <matz@suse.de>
6279
6280         PR debug/43077
6281         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
6282         (expand_gimple_basic_block): Generate and use debug temps if there
6283         are debug uses left after the last real use of TERed ssa names.
6284         Unlink debug immediate uses when they are expanded.
6285
6286 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6287
6288         PR 43123
6289         * config/i386/i386.c (override_options): Reorganise to provide
6290         better error messages.
6291
6292 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6293
6294         PR middle-end/43083
6295         * graphite-scop-detection.c (create_single_exit_edge): Move
6296         the call to find_single_exit_edge to....
6297         (create_sese_edges): ...here.  Don't handle multiple edges
6298         exiting the function.
6299         (build_graphite_scops): Don't handle multiple edges
6300         exiting the function.
6301
6302 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6303
6304         PR middle-end/43097
6305         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
6306         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
6307
6308 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6309
6310         PR middle-end/43026
6311         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
6312
6313 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6314
6315         PR c++/43126
6316         * c-typeck.c (convert_arguments): Print declaration location.
6317         * c-common.c (validate_nargs): Rename as
6318         builtin_function_validate_nargs.
6319         (check_builtin_function_arguments): Update.
6320
6321 2010-02-22  Richard Guenther  <rguenther@suse.de>
6322
6323         PR lto/43045
6324         * tree-inline.c (declare_return_variable): Use the type of
6325         the call stmt lhs if available.
6326
6327 2010-02-22  Duncan Sands  <baldrick@free.fr>
6328
6329         * passes.c (register_pass): Always consider all pass lists when
6330         ref_pass_instance_number is zero.
6331
6332 2010-02-22  Richard Guenther  <rguenther@suse.de>
6333
6334         PR tree-optimization/42749
6335         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
6336         parameter.  Do arithmetic in the original type.
6337         (update_accumulator_with_ops): Likewise.
6338         (adjust_accumulator_values): Adjust.
6339
6340 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6341
6342         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
6343         (QI to BLKmode splitter): New splitter.
6344
6345 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
6346
6347         * config/i386/i386.c (initial_ix86_tune_features): Turn on
6348         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
6349
6350 2010-02-22  Richard Guenther  <rguenther@suse.de>
6351
6352         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
6353
6354 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
6355
6356         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
6357         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
6358         ($(T)crti.o, $(T)crtn.o): Remove rules.
6359
6360 2010-02-21  Tobias Burnus  <burnus@net-b.de>
6361
6362         PR fortran/35259
6363         * doc/invoke.texi (-fassociative-math): Document that this
6364         option is automatically enabled for Fortran.
6365
6366 2010-02-20  David S. Miller  <davem@davemloft.net>
6367
6368         * configure.ac: Test if linker and assembler properly support
6369         GOTDATA_OP relocations.
6370         * configure: Rebuild.
6371         * config.in: Likewise.
6372         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
6373         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
6374         (movsi_high_pic): Likewise.
6375         (movdi_lo_sum_pic): Likewise.
6376         (movdi_high_pic): Likewise.
6377         (movsi_pic_gotdata_op): New pattern.
6378         (movdi_pic_gotdata_op): Likewise.
6379         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
6380         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
6381
6382 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
6383
6384         PR target/43067
6385         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
6386         attribute to ssemul.
6387         (xop_mulv2div2di3_high): Ditto.
6388
6389 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6390
6391         PR c++/35669
6392         * c.opt (Wconversion-null): New option.
6393         * doc/invoke.texi (Wconversion-null): Document.
6394
6395 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6396
6397         * common.opt (Wlarger-than-): Add Undocumented.
6398
6399 2010-02-19  Mike Stump  <mikestump@comcast.net>
6400
6401         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
6402
6403 2010-02-19  Jason Merrill  <jason@redhat.com>
6404
6405         PR target/40332
6406         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
6407         * configure: Likewise.
6408
6409 2010-02-20  Alan Modra  <amodra@gmail.com>
6410
6411         PR middle-end/42344
6412         * cgraph.h (cgraph_make_decl_local): Declare.
6413         * cgraph.c (cgraph_make_decl_local): New function.
6414         (cgraph_make_node_local): Use it.
6415         * cgraphunit.c (cgraph_function_versioning): Likewise.
6416         * ipa.c (function_and_variable_visibility): Likewise.
6417
6418 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6419
6420         PR bootstrap/43121
6421         * except.c (sjlj_emit_function_enter): Don't call
6422         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
6423         directly.
6424         * rtl.h (add_reg_br_prob_note): Remove prototype.
6425
6426 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6427
6428         PR 41779
6429         * c-common.c (conversion_warning): Remove widening conversions
6430         before checking the conversion of integers to reals.
6431
6432 2010-02-19  Mike Stump  <mikestump@comcast.net>
6433
6434         PR middle-end/43125
6435         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
6436
6437         PR objc/43061
6438         * cgraphunit.c (process_function_and_variable_attributes): Check
6439         DECL_PRESERVE_P instead of looking up attribute "used".
6440         * ipa-pure-const.c (check_decl): Likewise.
6441         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
6442         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
6443         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
6444         instead of attribute "used".
6445         * config/sol2-c.c (solaris_pragma_init): Likewise.
6446         (solaris_pragma_fini): Likewise.
6447
6448 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6449
6450         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
6451         Use XCNEW instead of xcalloc.
6452         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
6453         XNEW instead of xmalloc.
6454         (get_fields): Use XNEWVEC instead of xmalloc.
6455
6456         PR debug/43084
6457         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
6458         populate vars array.
6459         (create_new_general_access): For debug stmts just reset value.
6460         (get_stmt_accesses): For accesses within debug stmts just record them
6461         using add_access_to_acc_sites instead of preventing the peeling or
6462         counting them as accesses.
6463
6464         PR middle-end/42233
6465         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
6466
6467 2010-02-19  Richard Guenther  <rguenther@suse.de>
6468
6469         PR tree-optimization/42916
6470         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
6471         instructions.
6472
6473 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
6474
6475         * configure.ac: Replace all uses of changequote in macro arguments
6476         with proper quoting.
6477
6478 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6479
6480         PR middle-end/42233
6481         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
6482
6483 2010-02-19  Richard Guenther  <rguenther@suse.de>
6484
6485         PR tree-optimization/42944
6486         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
6487         test for aliasing with errno.
6488
6489 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6490
6491         PR middle-end/42233
6492         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
6493         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
6494         * dojump.c: Include output.h.
6495         (inv): New inline function.
6496         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
6497         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
6498         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
6499         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
6500         argument, pass it down to other calls.
6501         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
6502         add REG_BR_PROB note to the conditional jump.
6503         * cfgexpand.c (add_reg_br_prob_note): Removed.
6504         (expand_gimple_cond): Don't call it, add the probability
6505         as last argument to jumpif_1/jumpifnot_1.
6506         * Makefile.in (dojump.o): Depend on output.h.
6507         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
6508         callers.
6509         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
6510         * stmt.c (do_jump_if_equal): Likewise.
6511         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
6512         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6513         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
6514         Likewise.
6515         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
6516         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
6517         jumpifnot_1 callers.
6518         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
6519         callers.
6520         (store_expr): Adjust jumpifnot caller.
6521         (store_constructor): Adjust jumpif caller.
6522
6523         PR middle-end/42233
6524         * gimplify.c (gimple_boolify): For __builtin_expect call
6525         gimple_boolify also on its first argument.
6526
6527 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
6528
6529         * configure.ac (gnu-unique-object): Wrap regexps using [] in
6530         changequote block.
6531         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
6532         * configure: Regenerated.
6533
6534 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6535
6536         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
6537         lang_hooks.types_compatible_p instead of comptypes.
6538
6539 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
6540
6541         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
6542         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
6543         if __prefer_thumb__ is defined.
6544
6545 2010-02-18  Martin Jambor  <mjambor@suse.cz>
6546
6547         PR tree-optimization/43066
6548         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
6549         array with zero-sized element type.
6550
6551 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
6552
6553         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
6554         rtx, allocate struct var_loc_node here and return it to the
6555         caller, and only if it is actually needed.
6556         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
6557         move it earlier and return immediately if it returns NULL.
6558
6559 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
6560
6561         * config/sparc/gas.h: New file.  Restore
6562         TARGET_ASM_NAMED_SECTION to its ELF default.
6563         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
6564         check !HAVE_GNU_AS.
6565         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6566         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
6567         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
6568         after sparc/sysv4.h.
6569
6570 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6571
6572         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
6573
6574 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
6575
6576         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
6577         patterns from predicated pattern.
6578
6579 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
6580
6581         PR target/43103
6582         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
6583         for insn mnemonic suffix.
6584
6585 2010-02-17  Richard Guenther  <rguenther@suse.de>
6586
6587         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
6588         to loop PHI nodes.
6589
6590 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
6591
6592         PR debug/42918
6593         * caller-save.c (save_call_clobbered_regs): If BB ends with
6594         a DEBUG_INSN, move any notes in between last real insn and the last
6595         DEBUG_INSN after the last DEBUG_INSN.
6596
6597 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6598
6599         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
6600         Fix return type.  Fix argument type.  Explain meaning of return value.
6601
6602 2010-02-16  Richard Guenther  <rguenther@suse.de>
6603
6604         PR tree-optimization/41043
6605         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
6606         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
6607         statements ...
6608         (vrp_visit_phi_node): ... but only for loop PHI nodes.
6609
6610 2010-02-16  Ira Rosen  <irar@il.ibm.com>
6611
6612         PR tree-optimization/43074
6613         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
6614         * tree-vect-loop.c (vect_analyze_loop_operations): Add
6615         vectorizable cycles in hybrid SLP check.
6616         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
6617
6618 2010-02-16  Richard Guenther  <rguenther@suse.de>
6619
6620         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
6621         (true_dependence): If memrefs_conflict_p computes must-alias
6622         trust it.  Move TBAA check after offset-based disambiguation.
6623         (canon_true_dependence): Likewise.
6624
6625 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
6626
6627         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
6628         * doc/invoke.texi: Document it.
6629         * var-tracking.c: Include toplev.h and params.h.
6630         (vt_find_locations): Return bool indicating success.  Compute
6631         hash sizes unconditionally.  Check new parameter, report.
6632         (variable_tracking_main_1): Check vt_find_locations results and
6633         retry.  Renamed from...
6634         (variable_tracking_main): ... this.  New wrapper to preserve
6635         flag_var_tracking_assignments.
6636         * Makefile.in (var-tracking.o): Adjust dependencies.
6637
6638 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
6639             Jakub Jelinek <jakub@redhat.com>
6640
6641         PR target/42854
6642         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
6643         if weak_import attribute is present.
6644         * config/darwin.c (machopic_select_section): Likewise.
6645
6646 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
6647
6648         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
6649         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
6650         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
6651         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
6652
6653         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
6654         types.
6655
6656         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6657         Fix argument types.
6658
6659         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
6660         Rewrite text to refer to the names.
6661
6662 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
6663
6664         * config/i386/i386-builtin-types.def
6665         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
6666         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
6667         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
6668         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
6669         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
6670         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
6671         IX86_BUILTIN_VPERMIL2PS256.
6672         (MULTI_ARG_4_DF2_DI_I): Defined.
6673         (MULTI_ARG_4_DF2_DI_I1): Defined.
6674         (MULTI_ARG_4_SF2_SI_I): Defined.
6675         (MULTI_ARG_4_SF2_SI_I1): Defined.
6676         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
6677         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
6678         __builtin_ia32_vpermil2ps256.
6679         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6680         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6681         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
6682         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6683         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6684         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
6685         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
6686         CODE_FOR_xop_vpermil2v8sf3.
6687         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
6688         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
6689         * config/i386/xopintrin.h (_mm_permute2_pd): New.
6690         (_mm256_permute2_pd): New.
6691         (_mm_permute2_ps): New.
6692         (_mm256_permute2_ps): New.
6693
6694 2010-02-15  Nick Clifton  <nickc@redhat.com>
6695
6696         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
6697         boolean parameters.  Use emit_jump_insn when emitting a pop
6698         instruction containing a return insn.
6699         (push): Use 'true' rather than '1' as second parameter to F.
6700         (h8300_expand_prologue): Likewise.
6701         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
6702         (h8300_expand_epilogue): Likewise.
6703
6704 2010-02-15  Richard Guenther  <rguenther@suse.de>
6705
6706         PR middle-end/43068
6707         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
6708         if that is zero.
6709
6710 2010-02-15  Nick Clifton  <nickc@redhat.com>
6711
6712         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
6713         delta.
6714
6715 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
6716
6717         * intl.c (fake_ngettext): New function.
6718         * intl.h (fake_ngettext): Declare.
6719         (ngettext): Define macro.
6720         * collect2.c (notice_translated): New function.
6721         (main): Use notice_translated and ngettext.
6722         * collect2.h (notice_translated): Declare.
6723
6724 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6725
6726         * reorg.c (delete_computation): Comment fixes.
6727         * caller-save.c (setup_save_areas): Idem.
6728         * sel-sched-dump.c (dump_lv_set): Idem.
6729         * rtl.def: Idem.
6730
6731 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6732
6733         * config/s390/s390.c (s390_sched_init): New function.
6734         (TARGET_SCHED_INIT): Target hook defined.
6735
6736 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
6737             Jack Howarth  <howarth@bromo.med.uc.edu>
6738             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6739
6740         PR target/42982
6741         Partial revert of unintended change in fix for PR41605.
6742         * config/darwin.h: Fix typo.
6743         * config/darwin9.h: Same.
6744
6745 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6746
6747         * c-pch.c (pch_init): Clear v.
6748
6749 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6750
6751         PR middle-end/42930
6752         * graphite-scop-detection.c (graphite_can_represent_scev): Call
6753         graphite_can_represent_init for MULT_EXPR.
6754
6755 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6756
6757         PR middle-end/42914
6758         PR middle-end/42530
6759         * graphite-sese-to-poly.c (remove_phi): New.
6760         (translate_scalar_reduction_to_array): Call remove_phi.
6761
6762 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6763
6764         PR middle-end/42771
6765         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
6766         * graphite-clast-to-gimple.h (gloog): Update declaration.
6767         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
6768         * graphite-poly.h (struct poly_bb): Add missing comments.
6769         (struct scop): Add poly_scop_p field.
6770         (POLY_SCOP_P): New.
6771         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
6772         * graphite.c (graphite_transform_loops): Build the polyhedral
6773         representation for each scop before code generation.
6774         * sese.c (rename_variables_in_operand): Removed.
6775         (rename_variables_in_expr): Return the renamed expression.
6776         (rename_sese_parameters): New.
6777         * sese.h (rename_sese_parameters): Declared.
6778
6779 2010-02-11  Richard Guenther  <rguenther@suse.de>
6780
6781         PR tree-optimization/42998
6782         * tree-ssa-pre.c (create_expression_by_pieces): Treat
6783         POINTER_PLUS_EXPR properly.
6784
6785 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6786             Changpeng Fang  <changpeng.fang@amd.com>
6787
6788         PR middle-end/40886
6789         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
6790         the cost of an IV candidate when the IV is used in a test against zero.
6791
6792         * gcc.dg/tree-ssa/ivopts-3.c: New.
6793
6794 2010-02-11  Richard Guenther  <rguenther@suse.de>
6795
6796         PR lto/41664
6797         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
6798         pointer-vs-decl case by swapping refs.  Handle some cases
6799         of pointer-vs-decl disambiguations more conservatively.
6800         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
6801         to false after expanding.
6802
6803 2010-02-11  Richard Guenther  <rguenther@suse.de>
6804
6805         PR driver/43021
6806         * gcc.c (process_command): Handle LTO file@offset case more
6807         appropriately.
6808
6809 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6810
6811         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
6812         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
6813         of DEBUG_INSNs.
6814         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
6815
6816         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
6817         if MEM's mode size isn't DWARF2_ADDR_SIZE.
6818         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
6819         Optimize eq/ne comparisons when both arguments are known to be
6820         zero-extended.
6821         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
6822         Don't mask operands unnecessarily if they are known to be already
6823         zero-extended.
6824
6825 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6826
6827         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
6828         instead of loop.
6829
6830 2010-02-10  Richard Guenther  <rguenther@suse.de>
6831
6832         PR tree-optimization/43017
6833         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
6834         for wrapping signed arithmetic.
6835
6836 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6837
6838         PR debug/43010
6839         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
6840         if no debug info should be emitted for it.
6841
6842 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6843
6844         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
6845         note when flag_exceptions is set.
6846
6847 2010-02-10  Duncan Sands  <baldrick@free.fr>
6848
6849         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
6850
6851 2010-02-10  Richard Guenther  <rguenther@suse.de>
6852
6853         PR c/43007
6854         * tree.c (get_unwidened): Handle constants.
6855         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
6856
6857 2010-02-10  Martin Jambor  <mjambor@suse.cz>
6858
6859         PR lto/42985
6860         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
6861         check for variable argument counts independently.
6862
6863 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6864
6865         PR target/42841
6866         * config/sh/sh.c (find_barrier): Increase length for non delayed
6867         conditional branches.
6868
6869 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6870
6871         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
6872
6873 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6874
6875         * builtins.c (set_builtin_user_assembler_name): Also handle
6876         ffs if int is smaller than word.
6877
6878 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
6879
6880         PR middle-end/42973
6881         * ira-conflicts.c (get_dup): Remove.
6882         (process_reg_shuffles): Add new parameter.  Use it as an
6883         additional guard for copy generation.
6884         (add_insn_allocno_copies): Rewrite.
6885
6886 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
6887
6888         * common.opt (fsched2-use-traces): Preserved for backward
6889         compatibility.
6890         * doc/invoke.texi: Remove the documentation about option
6891         -fsched2-use-traces.
6892         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
6893         flag_sched2_use_traces.
6894         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
6895         the backward compatibility flag section.
6896
6897 2010-02-09  Richard Guenther  <rguenther@suse.de>
6898
6899         PR tree-optimization/43008
6900         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
6901         make HEAP variables initialized from global memory if they
6902         are not known builtin functions.
6903         (find_func_aliases): Adjust.
6904
6905 2010-02-09  Richard Guenther  <rguenther@suse.de>
6906
6907         PR tree-optimization/43000
6908         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
6909         arithmetic manually.
6910
6911 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
6912
6913         PR tree-optimization/42931
6914         * tree-loop-linear.c (try_interchange_loops): Don't call
6915         double_int_mul if estimated_loop_iterations failed.
6916
6917 2010-02-08  Martin Jambor  <mjambor@suse.cz>
6918
6919         PR middle-end/42898
6920         * tree-sra.c (build_accesses_from_assign): Do not mark in
6921         should_scalarize_away_bitmap if stmt has volatile ops.
6922         (sra_modify_assign): Do not process assigns piecemeal if if stmt
6923         has volatile ops.
6924
6925 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6926
6927         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
6928
6929 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
6930
6931         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
6932         before the pattern.
6933
6934 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
6935
6936         PR middle-end/42946
6937         * df-core.c (df_finish_pass): Change type of saved_flags to int.
6938
6939 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6940
6941         PR middle-end/42988
6942         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
6943         to unknown_dependence.
6944         (graphite_legal_transform_dr): Handle the unknown_dependence.
6945         (graphite_carried_dependence_level_k): Same.
6946
6947 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6948
6949         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
6950
6951 2010-02-07  Richard Guenther  <rguenther@suse.de>
6952
6953         PR middle-end/42991
6954         * expr.c (get_inner_reference): Always initialize *pbitsize.
6955
6956 2010-02-07  Richard Guenther  <rguenther@suse.de>
6957
6958         PR middle-end/42956
6959         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
6960         new ARRAY_REFs on variable size element or minimal index arrays.
6961         Complete.
6962         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
6963         gimple_fold_indirect_ref.
6964
6965 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
6966
6967         PR target/42957
6968         * arm.c (arm_override_options): Just return if the user has specified
6969         an invalid fpu name.
6970
6971 2010-02-03  Jason Merrill  <jason@redhat.com>
6972
6973         PR c++/42870
6974         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
6975         i386_pe_maybe_record_exported_symbol.
6976
6977 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
6978
6979         PR target/42924
6980         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6981         (pa_delegitimize_address): New function.
6982
6983 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
6984
6985         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
6986         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
6987
6988 2010-02-05  Richard Guenther  <rguenther@suse.de>
6989
6990         PR lto/42762
6991         * lto-streamer-in.c (get_resolution): Deal with references
6992         to undefined functions.
6993
6994 2010-02-05  Richard Guenther  <rguenther@suse.de>
6995
6996         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6997         (fold_const_aggregate_ref): Likewise.
6998         (ccp_fold_stmt): Substitute loads.
6999         (maybe_fold_reference): Verify types before substituting.
7000         Unshare properly.
7001         (fold_gimple_assign): Unshare properly.
7002         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
7003
7004 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
7005
7006         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
7007         for rs6000_gen_cell_microcode.
7008
7009 2010-02-04  Richard Guenther  <rguenther@suse.de>
7010
7011         PR rtl-optimization/42952
7012         * dse.c (const_or_frame_p): Remove MEM handling.
7013
7014 2010-02-04  Nick Clifton  <nickc@redhat.com>
7015
7016         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
7017         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
7018         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
7019         (mn10300_asm_output_mi_thunk): New function.
7020         (mn10300_can_output_mu_thunk): New function.
7021         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
7022         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
7023         (FUNCTION_ARG): Delete incorrect comment.
7024
7025 2010-02-03  Jason Merrill  <jason@redhat.com>
7026
7027         PR c++/40138
7028         * fold-const.c (operand_equal_p): Handle erroneous types.
7029
7030 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7031
7032         * config/h8300/h8300.md (can_delay): Fix attibute condition.
7033
7034 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
7035
7036         PR rtl-optimization/42941
7037         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
7038         of xmalloc.
7039
7040 2010-02-03  Jason Merrill  <jason@redhat.com>
7041
7042         PR c++/35652
7043         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
7044
7045 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
7046
7047         PR debug/42896
7048         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
7049         (cselib_reset_table): Renamed from...
7050         (cselib_reset_table_with_next_value): ... this.
7051         (cselib_get_next_uid): Renamed from...
7052         (cselib_get_next_unknown_value): ... this.
7053         * cselib.c (next_uid): Renamed from...
7054         (next_unknown_value): ... this.
7055         (cselib_clear_table): Adjust.
7056         (cselib_reset_table): Adjust.  Renamed from...
7057         (cselib_reset_table_with_next_value): ... this.
7058         (cselib_get_next_uid): Adjust.  Renamed from...
7059         (cselib_get_next_unknown_value): ... this.
7060         (get_value_hash): Use hash.
7061         (cselib_hash_rtx): Likewise.
7062         (new_cselib_val): Adjust.  Set and dump uid.
7063         (cselib_lookup_mem): Pass next_uid as hash.
7064         (cselib_subst_to_values): Likewise.
7065         (cselib_log_lookup): Dump uid.
7066         (cselib_lookup): Pass next_uid as hash.  Adjust.
7067         (cselib_process_insn): Adjust.
7068         (cselib_init): Initialize next_uid.
7069         (cselib_finish): Adjust.
7070         (dump_cselib_table): Likewise.
7071         * dse.c (canon_address): Dump value uid.
7072         * print-rtl.c (print_rtx): Print value uid.
7073         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
7074         (dvuid): New type.
7075         (dv_uid): New function, sort of renamed from...
7076         (dv_htab_hash): ... this, reimplemented in terms of it and...
7077         (dv_uid2hash): ... this.  New.
7078         (variable_htab_eq): Drop excess assertions.
7079         (tie_break_pointers): Removed.
7080         (canon_value_cmp): Compare uids.
7081         (variable_post_merge_New_vals): Print uids.
7082         (vt_add_function_parameters): Adjust.
7083         (vt_initialize): Reset table.  Adjust.
7084
7085 2010-02-03  Richard Guenther  <rguenther@suse.de>
7086
7087         PR tree-optimization/42944
7088         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
7089         (call_may_clobber_ref_p_1): Likewise.  Properly handle
7090         malloc and calloc clobbering errno.
7091
7092 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
7093
7094         * doc/invoke.texi: Fix name of sched1 dump.
7095
7096         * opts.c (decode_options): Set flag_tree_switch_conversion
7097         only conditionally on optimize >= 2.
7098
7099         * gcse.c: Assorted comment fixes in pass description.
7100
7101 2010-02-03  Anthony Green  <green@moxielogic.com>
7102
7103         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
7104         nop padding in order to maintain alignment of storage location of
7105         target function address.
7106         (moxie_trampoline_init): Store target function address at newly
7107         aligned location.
7108         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
7109         to 32.
7110         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
7111
7112 2010-02-03  Richard Guenther  <rguenther@suse.de>
7113
7114         PR middle-end/42927
7115         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
7116
7117 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7118
7119         * config.gcc: Reenable check for obsolete targets.
7120         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
7121         mips-sgi-irix6.[0-4]*.
7122
7123 2010-02-02  Nick Clifton  <nickc@redhat.com>
7124
7125         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
7126         constant size of 4 as being the same as 0.
7127         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
7128         can take values in the range 0..4.
7129
7130 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
7131
7132         PR java/41991
7133         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
7134         as _darwin10_Unwind_FindEnclosingFunction().
7135         * libgcc-libsystem.ver: New.
7136
7137 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
7138
7139         PR target/41399
7140         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
7141         implicitly set registers.
7142
7143 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
7144
7145         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
7146         (arm_override_options): Allow automatic selection of the thread
7147         pointer register if thumb2.
7148         (legitimize_pic_address): Improve code sequences for Thumb2.
7149         (arm_call_tls_get_addr): Likewise.
7150         (legitimize_tls_address): Likewise.
7151         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
7152         (pic_load_addr_32bit): ... this.  New named pattern.
7153         * thumb2.md (pic_load_addr_thumb2): Delete.
7154         (pic_load_dot_plus_four): Delete.
7155         (tls_load_dot_plus_four): New named pattern.
7156
7157 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7158
7159         PR libgomp/29986
7160         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
7161         Document fix for TLS bug.
7162
7163 2010-01-31  Richard Guenther  <rguenther@suse.de>
7164
7165         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
7166         conservatively correct.
7167
7168 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7169
7170         PR target/42850
7171         Revert:
7172         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7173
7174         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
7175
7176 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7177
7178         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
7179
7180 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
7181
7182         * config.gcc: Adjust order of makefile fragments for mingw targets.
7183
7184 2010-01-31  Richard Guenther  <rguenther@suse.de>
7185
7186         PR middle-end/42898
7187         * gimplify.c (gimplify_init_constructor): For volatile LHS
7188         initialize a temporary.
7189
7190 2010-01-31  Matthias Klose  <doko@ubuntu.com>
7191
7192         * configure.ac: Fix __stack_chk_fail check for cross builds configured
7193         --with-headers
7194         * configure: Regenerate.
7195
7196 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
7197
7198         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7199         the same alias set and their sizes different constantness.
7200         (aliasing_component_refs_p): Revert 2009-10-24 change.
7201
7202 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7203
7204         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
7205         unused.
7206
7207 2010-01-29  Richard Guenther  <rguenther@suse.de>
7208
7209         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
7210         Assert we successfully updated the call.
7211
7212 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
7213
7214         PR rtl-optimization/42889
7215         * df.h (df_set_bb_dirty_nonlr): New prototype.
7216         * df-core.c (df_set_bb_dirty_nonlr): New function.
7217         * df-scan.c (df_insn_rescan): Call it instead of
7218         df_set_bb_dirty for DEBUG_INSNs.
7219
7220 2010-01-29  Richard Guenther  <rguenther@suse.de>
7221
7222         PR middle-end/37448
7223         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
7224         quadratic behavior in most cases.
7225
7226 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
7227
7228         PR target/42891
7229         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
7230         in the call to gen_x86_movsicc_0_m1.
7231
7232 2010-01-28  Richard Guenther  <rguenther@suse.de>
7233
7234         PR tree-optimization/42871
7235         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
7236
7237 2010-01-28  Richard Guenther  <rguenther@suse.de>
7238
7239         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
7240         into call arguments.
7241
7242 2010-01-28  Richard Guenther  <rguenther@suse.de>
7243
7244         PR middle-end/42883
7245         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
7246         the forwarder if the destination is an EH landing pad.
7247
7248 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
7249
7250         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
7251         block list passed to gimple_duplicate_sese_tail.
7252         (parallelize_loops): Avoid parallelization when the function
7253         has_nonlocal_label.
7254         Avoid parallelization when the preheader is IRREDUCIBLE.
7255         Try to optimize when estimated_loop_iterations_int is unresolved.
7256         Add the loop's location to the dump file.
7257         * tree-cfg.c (add_phi_args_after_redirect): Remove.
7258         (gimple_duplicate_sese_tail): Remove the check for the latch.
7259         Redirect nexits to the exit block.
7260         Remove handling of the incoming edges to the latch.
7261         Redirect the backedge from the copied latch to the exit bb.
7262
7263 2010-01-28  Michael Matz  <matz@suse.de>
7264
7265         PR target/42881
7266         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
7267         Wrap force_reg into a sequence, emit it before user.
7268
7269 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
7270
7271         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
7272         (arm_rev): New.
7273         (arm_legacy_rev): Likewise.
7274         (thumb_legacy_rev): Likewise.
7275
7276 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7277
7278         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
7279         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
7280         on MEM's address failed, try avoid_constant_pool_reference and
7281         recurse if it returned something different.
7282         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
7283         address, try avoid_constant_pool_reference and recurse if it
7284         returned something different.
7285         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
7286         address and avoid_constant_pool_reference returned something
7287         different, don't set have_address.
7288
7289 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
7290
7291         PR debug/42861
7292         * var-tracking.c (val_store): Add modified argument, obey it.
7293         Adjust callers.
7294         (count_uses): Move down logging of main.
7295         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
7296         don't need resolution.
7297         (emit_notes_in_bb): Likewise.
7298
7299 2010-01-27  Richard Guenther  <rguenther@suse.de>
7300
7301         PR middle-end/42878
7302         * tree-inline.c (remap_decl): Delay remapping of SSA name
7303         default definitions until we need them.
7304
7305 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7306
7307         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7308         (rs6000_delegitimize_address): New function.
7309
7310         * config/s390/s390.c (s390_delegitimize_address): Call
7311         delegitimize_mem_from_attrs.
7312
7313         PR middle-end/42874
7314         * tree-inline.c (cannot_copy_type_1): Removed.
7315         (copy_forbidden): Don't forbid copying of functions containing
7316         records/unions with variable length fields.
7317
7318 2010-01-27  Christian Bruel  <christian.bruel@st.com>
7319
7320         Revert:
7321         PR target/42841
7322         * config/sh/sh.c (find_barrier): Increase length for non delayed
7323         conditional branches.
7324
7325 2010-01-27  Matthias Klose  <doko@ubuntu.com>
7326
7327         * configure.ac (gnu-unique-object): Fix ldd version check.
7328         * configure: Regenerate.
7329
7330 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7331
7332         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
7333         HAVE_GNU_AS value.
7334         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
7335         Test for HAVE_GNU_AS value.
7336
7337 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7338
7339         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
7340         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
7341         INT64_TYPE): Define.
7342         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
7343         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7344         INT_LEAST64_TYPE): Define.
7345         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
7346         UINT_LEAST64_TYPE): Define.
7347         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
7348         INT_FAST64_TYPE): Define.
7349         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7350         UINT_FAST64_TYPE): Define.
7351         (INTMAX_TYPE, UINTMAX_TYPE): Define.
7352         (INTPTR_TYPE, UINTPTR_TYPE): Define.
7353         (SIG_ATOMIC_TYPE): Define.
7354
7355 2010-01-26  Richard Guenther  <rguenther@suse.de>
7356
7357         * df-scan.c (df_scan_set_bb_info): Remove assert.
7358         (df_insn_rescan_debug_internal): Merge asserts.
7359         (df_install_ref): Likewise.
7360         (df_mark_reg): Use bitmap_set_range.
7361         (df_hard_reg_used_p): Remove assert.
7362         (df_hard_reg_used_count): Likewise.
7363
7364 2010-01-26  Richard Guenther  <rguenther@suse.de>
7365
7366         PR rtl-optimization/42685
7367         * web.c (web_main): Ignore DEBUG_INSNs.
7368
7369 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
7370
7371         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
7372
7373         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
7374         Fix types of fndecl and arglist parameters.
7375
7376 2010-01-26  Richard Guenther  <rguenther@suse.de>
7377
7378         PR middle-end/42806
7379         * tree-eh.c (unsplit_eh): Skip debug insns.
7380
7381 2010-01-26  Richard Guenther  <rguenther@suse.de>
7382
7383         PR tree-optimization/42250
7384         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
7385
7386 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7387
7388         PR fortran/42866
7389         * omp-low.c (expand_omp_sections): Only use single_pred if
7390         l2_bb is single_pred_p.
7391
7392 2010-01-25  Christian Bruel  <christian.bruel@st.com>
7393
7394         PR target/42841
7395         * config/sh/sh.c (find_barrier): Increase length for non delayed
7396         conditional branches.
7397         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
7398
7399 2010-01-24  David S. Miller  <davem@davemloft.net>
7400
7401         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
7402         define if not using GAS.
7403         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7404         Likewise.  Delete SECTION_MERGE code, which is only applicable
7405         when using GAS.
7406
7407 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
7408
7409         PR c++/42748
7410         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
7411         mangling of va_list in system headers.
7412
7413 2010-01-23  Toon Moene  <toon@moene.org>
7414
7415         * tree-predcom.c (combine_chains): Return NULL, not false.
7416
7417 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
7418
7419         * tree-loop-distribution.c (distribute_loop): Fix declaration and
7420         initialization of variable res to agree with return type.
7421
7422 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
7423
7424         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
7425         * tree-sra.c: Add include of expr.h.
7426
7427 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
7428
7429         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
7430         insert the debug stmt on the single non-EH edge from the stmt.
7431
7432 2010-01-22  Richard Henderson  <rth@redhat.com>
7433
7434         PR tree-opt/42833
7435         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
7436         the RHS until after generate_subtree_copies has insertted its
7437         code before the current statement.
7438
7439 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
7440
7441         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
7442
7443         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
7444
7445 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7446
7447         PR tree-optimization/42585
7448         * tree-sra.c (struct access): New field grp_total_scalarization.
7449         (dump_access): Dump the new field.
7450         (should_scalarize_away_bitmap): New variable.
7451         (cannot_scalarize_away_bitmap): Likewise.
7452         (sra_initialize): Allocate new bitmaps.
7453         (sra_deinitialize): Free new bitmaps.
7454         (create_access_1): New function.
7455         (create_access): Parts moved to create_access_1.
7456         (type_consists_of_records_p): New function.
7457         (completely_scalarize_record): Likewise.
7458         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
7459         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
7460         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
7461         access.
7462         (analyze_all_variable_accesses): Completely scalarize small eligible
7463         records.
7464
7465 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7466
7467         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
7468
7469 2010-01-21  Andrew Haley  <aph@redhat.com>
7470
7471         * gcc.c (process_command): Move lang_specific_driver before
7472         setting cc_libexec_prefix.
7473
7474 2010-01-21  Richard Guenther  <rguenther@suse.de>
7475
7476         PR middle-end/19988
7477         * fold-const.c (negate_expr_p): Pretend only negative
7478         real constants are easily negatable.
7479
7480 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
7481             Jason Merrill  <jason@redhat.com>
7482
7483         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
7484         (TYPE_TRANSPARENT_AGGR): this, for union and record.
7485         * calls.c (initialize argument_information): Handle it.
7486         * c-common.c (handle_transparent_union_attribute): Use new name.
7487         * c-decl.c (finish_struct): Ditto.
7488         * c-typeck.c (type_lists_compatible_p): Ditto.
7489         (convert_for_assignment): Use new name and also handle record.
7490         * function.c (aggregate_value_p): Handle it.
7491         (pass_by_reference): Ditto.
7492         (assign_parm_data_types): Ditto.
7493         * print-tree.c (print_node): Ditto.
7494         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
7495         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
7496         * tree.c (first_field): New fn.
7497
7498 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7499
7500         PR target/42818
7501         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
7502         even when linking statically, for now.
7503
7504 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7505
7506         PR debug/42715
7507         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
7508         without a cselib val.
7509         (count_uses): Accept MO_VAL_SET with no val on stores.
7510         (add_stores): Likewise.
7511
7512 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7513
7514         * var-tracking.c (check_value_val): Add a compile time assertion.
7515         (dv_is_decl_p): Simplify.
7516         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
7517         gcc_assert if ENABLE_CHECKING.
7518
7519 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7520
7521         PR debug/42782
7522         * var-tracking.c: Include tree-flow.h.
7523         (mem_dies_at_call): New.
7524         (dataflow_set_preserve_mem_locs): Use it.
7525         (dataflow_set_remove_mem_locs): Likewise.
7526         (dump_var): Renamed from dump_variable.  Adjust all callers.
7527         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
7528         * Makefile.in (var-tracking.o): Adjust deps.
7529
7530 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
7531
7532         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
7533
7534 2010-01-20  Richard Guenther  <rguenther@suse.de>
7535
7536         PR tree-optimization/42717
7537         * tree-ssa-dce.c (get_live_post_dom): Remove.
7538         (forward_edge_to_pdom): Take an arbitrary edge to copy
7539         degenerate PHI args from.
7540         (remove_dead_stmt): Use the first post-dominator even if it
7541         does not contain live statements as redirection destination.
7542
7543 2010-01-20  Richard Guenther  <rguenther@suse.de>
7544
7545         * tree-inline.c (estimate_num_insns): Handle EH builtins.
7546
7547 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7548
7549         * sel-sched.c (create_speculation_check): Remove set but not used
7550         variable twin.
7551         (try_transformation_cache): Remove set but not used variable ds.
7552         (calculate_privileged_insns): Remove set but not used variables
7553         cur_insn and min_spec_insn.
7554         (find_best_expr): Remove set but not used variable avail_n.
7555         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
7556         variable e.
7557         * cgraphunit.c (assemble_thunk): Remove set but not used variable
7558         false_label.
7559         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
7560         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
7561         new_scop_exit_edge.
7562
7563 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
7564
7565         PR bootstrap/42786
7566         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
7567         cpu types.  Add support for *-sse3 cpu types.
7568         (x86_64-*-*): Ditto.
7569
7570 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7571
7572         PR middle-end/42803
7573         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
7574         argument, call initializer_constant_valid_p_1 instead of
7575         initializer_constant_valid_p, pass CACHE to it, return NULL
7576         immediately if first call returns NULL.
7577         (initializer_constant_valid_p_1): New function.
7578         (initializer_constant_valid_p): Use it.
7579
7580 2010-01-20  Thomas Quinot  <quinot@adacore.com>
7581
7582         * tree.def (PLACEHOLDER_EXPR): Fix comment.
7583
7584 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7585
7586         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
7587         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
7588         (loc_list_from_tree): Don't handle unsigned division.  Handle
7589         signed modulo using DW_OP_{over,over,div,mul,minus}.
7590         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
7591         modulo instead of signed.
7592
7593 2010-01-20  DJ Delorie  <dj@redhat.com>
7594
7595         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
7596         (Fpa): Pass it
7597         (h8300_emit_stack_adjustment): Propogate it.
7598         (push): Pass it.
7599         (h8300_expand_prologue): Likewise.
7600         (h8300_expand_epilogue): Likewise.
7601
7602 2010-01-19  Michael Matz  <matz@suse.de>
7603
7604         PR tree-optimization/41783
7605         * tree-data-ref.c (toplevel): Include flags.h.
7606         (dump_data_dependence_relation):  Also dump the inputs if the
7607         result will be unknown.
7608         (split_constant_offset_1): Look through some conversions.
7609         * tree-predcom.c (determine_roots_comp): Restart a new chain if
7610         the offset from last element is too large.
7611         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
7612         (reassociate_to_the_same_stmt): Handle vector registers.
7613         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
7614         (e.g. conversions).
7615         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
7616         wide_prolog_niters argument, emit widening instructions.
7617         (vect_do_peeling_for_alignment): Adjust caller, use widened
7618         variant of the iteration cound.
7619         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
7620
7621 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7622
7623         PR target/38697
7624         * config/arm/neon-testgen.m (emit_automatics): New parameter
7625         features. Adjust for Fixed_return_reg feature.
7626         (test_intrinsic): Call emit_automatics with new feature.
7627         * config/arm/neon.ml: Update copyright years.
7628         (features): New Fixed_return_reg feature.
7629         (ops): Update feature for Vget_low.
7630
7631 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
7632
7633         PR tree-optimization/42719
7634         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
7635         stmt uses.
7636
7637         PR debug/42728
7638         * fwprop.c (all_uses_available_at): Return false if def_set dest
7639         is a REG that is used in def_insn.
7640
7641 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
7642
7643         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
7644
7645         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
7646         Add argument names.
7647
7648         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
7649
7650         * target.h (struct gcc_target) <secondary_reload>: Change type
7651         of last argument to secondary_reload_info *.
7652
7653 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
7654
7655         PR target/42774
7656         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
7657         memory references with unaligned offsets.  Remove CQImode handling.
7658         (unaligned_memory_operand): Return 1 for memory references with
7659         unaligned offsets.  Remove CQImode handling.
7660
7661 2010-01-18  Richard Guenther  <rguenther@suse.de>
7662
7663         PR middle-end/39954
7664         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
7665         builtin calls.
7666
7667 2010-01-18  Richard Guenther  <rguenther@suse.de>
7668
7669         PR tree-optimization/42781
7670         * tree-ssa-structalias.c (find_what_var_points_to): Skip
7671         restrict processing only if the original variable was artificial.
7672
7673 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
7674
7675         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
7676         find number of popped argument bytes.
7677
7678         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
7679         Fix the text that describes the return value for invalid insns.
7680
7681         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
7682
7683         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
7684         Clarify what 'cost of the -dependence' is.  Fix quoting.
7685
7686         * toplev.c (default_get_pch_validity): Rename argument to "sz".
7687         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
7688
7689 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
7690
7691         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7692         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
7693
7694 2010-01-17  Richard Guenther  <rguenther@suse.de>
7695
7696         PR middle-end/42248
7697         * function.c (split_complex_args): Take a VEC to modify.
7698         (assign_parms_augmented_arg_list): Build a VEC instead of
7699         a chain of PARM_DECLs.
7700         (assign_parms_unsplit_complex): Take a VEC of arguments.
7701         Do not fixup unmodified parms.
7702         (assign_parms): Deal with the VEC.
7703         (gimplify_parameters): Likewise.
7704
7705 2010-01-17  Richard Guenther  <rguenther@suse.de>
7706
7707         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
7708         node existence check.
7709         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
7710         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
7711         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7712         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
7713         (gimple_execute_on_growing_pred): Likewise.
7714
7715 2010-01-17  Richard Guenther  <rguenther@suse.de>
7716
7717         PR tree-optimization/42773
7718         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
7719         (compute_antic_aux): Likewise.
7720         (compute_partial_antic_aux): Likewise.
7721
7722 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
7723
7724         PR debug/42767
7725         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
7726         and US_TRUNCATE.
7727
7728 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
7729
7730         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
7731         appearance.
7732
7733         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
7734         Fix markup for strict argument.
7735
7736         (TARGET_SCHED_REORDER2): Fix argument types.
7737
7738         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
7739         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
7740
7741         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
7742         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
7743
7744         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
7745         Add argument name.
7746
7747         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
7748         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
7749         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
7750         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
7751         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
7752
7753         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
7754
7755         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
7756
7757         (TARGET_ASM_RELOC_RW_MASK): Add return type.
7758         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
7759
7760         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
7761
7762         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
7763         Use prototype.
7764
7765         (TARGET_ASM_NAMED_SECTION): Fix argument list.
7766
7767         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
7768         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
7769
7770         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
7771
7772         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
7773
7774         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
7775         referring to it.  Fix language.
7776
7777         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
7778
7779         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
7780
7781         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
7782
7783         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
7784
7785         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
7786         '@var{stream}.  Remove stray 'and'.
7787
7788         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
7789
7790         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
7791
7792         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
7793
7794         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
7795         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
7796
7797         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
7798         Fix description of return value.
7799         Rename argument "sz" to "len."
7800
7801         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
7802         Clarify meaning of 'true' return value.
7803
7804         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
7805
7806         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
7807         rep_mode versus mode_rep.
7808
7809         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
7810
7811         (TARGET_BUILTIN_DECL): Fix name.
7812
7813         (TARGET_COMMUTATIVE_P): Fix type of first argument.
7814
7815         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
7816
7817         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
7818
7819         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
7820
7821         (TARGET_RELAXED_ORDERING): Use @deftypevr.
7822
7823         (TARGET_GET_DRAP_RTX): Note that this is a hook.
7824         Clarify language.
7825
7826         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
7827         Rename argument tm_fn to md_fn.
7828
7829         (TARGET_OPTION_PRINT): Fix argument list.
7830
7831 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
7832
7833         PR target/42664
7834         * config/i386/i386.c (ix86_fixup_binary_operands):
7835         Revert FMA4 fixup of operands.
7836
7837 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7838
7839         PR gcc/42525
7840         * Makefile.in (write_entries_to_file, install-plugin):
7841         Use \012 instead of \n with tr.
7842
7843 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
7844
7845         * configure.ac (HAVE_AS_REF): New C macro.
7846         * configure: Regenerate.
7847         * config.in: Likewise.
7848         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
7849         if HAVE_AS_REF.
7850         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
7851         if HAVE_AS_REF.
7852
7853 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
7854
7855         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
7856
7857         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
7858
7859         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
7860
7861         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
7862
7863         (TARGET_IN_SMALL_DATA_P): Fix argument type.
7864
7865         (TARGET_BINDS_LOCAL_P): Fix argument type.
7866
7867         (TARGET_ASM_FILE_END): Use prototype.
7868
7869         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
7870
7871         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
7872
7873         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
7874
7875         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
7876
7877         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
7878         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
7879
7880         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
7881         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
7882
7883         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
7884         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
7885         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
7886         (TARGET_ADDR_SPACE_CONVERT): Likewise.
7887
7888         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
7889
7890         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
7891
7892         (TARGET_INIT_BUILTINS): Use prototype.
7893
7894         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
7895         Put 'const char *' in braces.  Fix parameter types.
7896         (TARGET_INVALID_CONVERSION): Fix parameter types.
7897         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
7898         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
7899
7900         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
7901         Fix argument type.
7902
7903         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
7904
7905         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
7906
7907 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
7908
7909         * doc/tm.texi (TARGET_HELP): Fix return type.
7910
7911         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
7912         in braces.  Fix argument types.
7913
7914         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
7915
7916         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
7917
7918         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
7919
7920         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
7921         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
7922
7923         (TARGET_MANGLE_TYPE): Fix argument types.
7924
7925         (TARGET_IRA_COVER_CLASSES): Use prototype.
7926
7927         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
7928
7929         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
7930
7931         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
7932
7933         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
7934
7935         (TARGET_CALLEE_COPIES): Fix argument types.
7936
7937         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
7938
7939         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
7940
7941         (TARGET_FUNCTION_VALUE): Fix argument types.
7942
7943         (TARGET_RETURN_IN_MSB): Fix argument type.
7944
7945         (TARGET_RETURN_IN_MEMORY): Fix argument types.
7946
7947         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
7948
7949         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
7950
7951         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
7952         agree with return type.
7953
7954         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
7955
7956 2010-01-15  Jing Yu  <jingyu@google.com>
7957
7958         PR rtl-optimization/42691
7959         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
7960         a pseudo to a constant and are merged, and adjust comments.
7961
7962 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7963
7964         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
7965
7966 2010-01-15  Richard Guenther  <rguenther@suse.de>
7967
7968         PR middle-end/42739
7969         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
7970         labels of computed or non-local gotos to the destination.
7971         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
7972         landing pad label is the first label.
7973
7974 2010-01-15  Richard Guenther  <rguenther@suse.de>
7975
7976         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
7977
7978 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7979
7980         PR target/42747
7981         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
7982         to allow generation of the xssqrtdp instruction on power7.
7983         (sqrtdf2_fpr): Ditto.
7984
7985 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7986
7987         PR middle-end/42674
7988         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
7989         functions with noreturn attribute.
7990
7991         PR c++/42608
7992         * varasm.c (declare_weak): Add weak attribute to decl if it
7993         doesn't have one already.
7994         (assemble_external): Only add decls to weak_decls if they also
7995         have weak attribute.
7996
7997 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
7998
7999         * var-tracking.c (var_reg_delete): Don't delete the association
8000         between REGs and values or one-part variables if the register
8001         isn't clobbered.
8002
8003 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8004
8005         PR debug/42657
8006         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
8007         because its first operand is a non-localized variable.
8008
8009 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8010
8011         PR tree-optimization/42706
8012         * tree-sra.c (encountered_recursive_call): New variable.
8013         (encountered_unchangable_recursive_call): Likewise.
8014         (sra_initialize): Initialize both new variables.
8015         (callsite_has_enough_arguments_p): New function.
8016         (scan_function): Call decl and flags check only for IPA-SRA, check
8017         whether there is a recursive call and whether it has enough arguments.
8018         (all_callers_have_enough_arguments_p): New function.
8019         (convert_callers): Look for recursive calls only when
8020         encountered_recursive_call is set.
8021         (ipa_early_sra): Bail out either if
8022         !all_callers_have_enough_arguments_p or
8023         encountered_unchangable_recursive_call.
8024
8025 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8026
8027         * sel-sched.c: Add 2010 to copyright years.
8028         * sel-sched-ir.c: Likewise.
8029         * sel-sched-ir.h: Likewise.
8030
8031 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8032
8033         PR tree-optimization/42714
8034         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
8035         constructors specially.
8036
8037 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8038
8039         * config/i386/drivers-i386.c (detect_caches_intel):
8040         Add l2sizekb parameter and fill in.
8041         (host_detect_local_cpu): Add l2sizekb, fill in.
8042         Add Atom small cache heuristic.
8043
8044 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8045
8046         * config/i386/drivers-i386.c (detect_caches_cpuid4):
8047         Add level3 parameter and fill in.
8048         (detect_caches_intel): Handle level3 cache.
8049
8050 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8051
8052         * config/i386/drivers-i386.c (host_detect_local_cpu):
8053         Fix core duo detection.
8054
8055 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8056
8057         * config/i386/drivers-i386.c (host_detect_local_cpu):
8058         Fix Atom detection.
8059
8060 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8061
8062         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
8063         (rs6000_variable_issue_1): this.  Use...
8064         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
8065
8066 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8067
8068         * sel-sched-ir.c (sel_restore_other_notes): Rename to
8069         sel_restore_notes.  Update all callers.  Call reemit_notes
8070         for all insns.
8071
8072 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8073
8074         PR rtl-optimization/42246
8075         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
8076         loops.
8077
8078 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8079
8080         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
8081         all successors is the same as number of successors in current region.
8082
8083 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8084
8085         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
8086         to rename is not separable.  Otherwise check that its LHS is not NULL.
8087
8088 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8089
8090         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
8091
8092 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8093
8094         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
8095         available registers when failed to discover LHS register class.
8096         Fix indentation.  Update comment.
8097
8098 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8099             Alexander Monakov  <amonakov@ispras.ru>
8100
8101         PR rtl-optimization/42389
8102         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
8103         to can_issue_more.
8104         (advance_state_on_fence): Likewise.
8105         (sel_target_adjust_priority): Print debug output only when
8106         sched_verbose >= 4, not 2.
8107         (get_expr_cost): Do not issue all unique insns on the next cycle.
8108         (fill_insns): Initialize can_issue_more from the value saved
8109         with the fence.
8110         * sel-sched-ir.c (flist_add): New parameter issue_more.
8111         Init FENCE_ISSUE_MORE with it.
8112         (merge_fences): Likewise.
8113         (init_fences): Update call to flist_add.
8114         (add_to_fences, add_clean_fence_to_fences)
8115         (add_dirty_fence_to_fences): Likewise.
8116         (move_fence_to_fences): Update call to merge_fences.
8117         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
8118         sched groups.
8119         * sel-sched-ir.h (struct _fence): New field issue_more.
8120         (FENCE_ISSUE_MORE): New accessor macro.
8121
8122 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8123
8124         PR rtl-optimization/42388
8125         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
8126         that have no predecessors nor successors.  Do not call move_bb_info
8127         for empty blocks outside of current region.
8128
8129 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8130
8131         PR rtl-optimization/42294
8132         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
8133         * sel-sched.c (move_exprs_to_boundary): Transitively add all
8134         originators' originators.
8135
8136 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8137
8138         PR rtl-optimization/39453
8139         PR rtl-optimization/42246
8140         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
8141         for pipelining_p.
8142         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
8143
8144 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8145             Alexander Monakov  <amonakov@ispras.ru>
8146
8147         PR middle-end/42245
8148         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
8149         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
8150         argument.  Update all callers.
8151         (tidy_control_flow): ... and here.  Recompute topological order
8152         of basic blocks in region if necessary.
8153         (sel_redirect_edge_and_branch): Change return type.  Return true
8154         if topological order might have been invalidated.
8155         (purge_empty_blocks): Export and move from...
8156         * sel-sched.c (purge_empty_blocks): ... here.
8157         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
8158         (maybe_tidy_empty_bb): Delete prototype.
8159         (purge_empty_blocks): Declare.
8160
8161 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
8162
8163         PR rtl-optimization/42249
8164         * sel-sched.c (try_replace_dest_reg): When chosen register
8165         and original register is the same, do not bail out early, but
8166         still check all original insns for validity of replacing destination
8167         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
8168         in this case.
8169
8170 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8171
8172         PR c/42721
8173         Port from no-undefined-overflow branch:
8174         2009-03-09  Richard Guenther  <rguenther@suse.de>
8175
8176         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
8177
8178 2010-01-14  Richard Guenther  <rguenther@suse.de>
8179
8180         PR lto/42665
8181         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
8182
8183 2010-01-14  Ira Rosen  <irar@il.ibm.com>
8184
8185         PR tree-optimization/42709
8186         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
8187         as scalar type in creation of constant vector operand.
8188
8189 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8190
8191         PR testsuite/42414
8192         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
8193         (check-parallel-%): Match `testsuite' directory component only
8194         at the end.
8195
8196 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
8197
8198         PR translation/39521
8199         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
8200         strings with _().
8201
8202 2010-01-13  Richard Guenther  <rguenther@suse.de>
8203
8204         PR tree-optimization/42730
8205         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
8206         offset zero.
8207
8208 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
8209
8210         PR target/pr42542
8211         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
8212         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
8213         them signed.
8214
8215 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8216
8217         * config/bfin/libgcc-bfin.ver: Regenerate based on current
8218         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
8219         ___umulsi3_highpart.
8220
8221         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
8222         rather than schedule_insns if the pass is enabled.
8223
8224 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8225
8226         PR tree-optimization/42704
8227         * tree-sra.c (sra_modify_assign): Do not delete assignments to
8228         SSA_NAMEs.
8229
8230 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8231
8232         PR tree-optimization/42703
8233         * tree-sra.c (analyze_access_subtree): Check that we can build a
8234         reference to the original data within the aggregate.
8235
8236 2010-01-13  Richard Guenther  <rguenther@suse.de>
8237
8238         PR tree-optimization/42705
8239         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
8240
8241 2010-01-13  Richard Guenther  <rguenther@suse.de>
8242
8243         PR middle-end/42716
8244         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
8245
8246 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8247
8248         PR debug/41371
8249         * var-tracking.c (values_to_unmark): New variable.
8250         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8251         values_to_unmark vector.  Moved body to...
8252         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8253         instead queue it into values_to_unmark vector.
8254         (vt_find_locations): Free values_to_unmark vector.
8255
8256 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
8257
8258         * config/s390/s390.c (override_options): Set
8259         default of max-pending-list-length to 256
8260
8261 2010-01-13  Richard Guenther  <rguenther@suse.de>
8262
8263         PR lto/42678
8264         * tree-pass.h (PROP_gimple_lcx): New.
8265         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
8266         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
8267         before the final cleanup_eh.
8268         (dump_properties): Dump PROP_gimple_lcx.
8269         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
8270         (tree_lower_complex_O0): Remove.
8271         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
8272         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
8273         tree_lower_complex, schedule TODO_update_ssa.
8274         * lto-streamer-out.c (output_function): Stream the functions
8275         properties.
8276         * lto-streamer-in.c (input_function): Likewise.
8277         (lto_read_body): Do not override them here.
8278
8279 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
8280
8281         PR c/42708
8282         * c-typeck.c (build_c_cast): Fold value cast to union type before
8283         wrapping it in a CONSTRUCTOR.
8284
8285 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8286
8287         PR rtl-optimization/42699
8288         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
8289         involved.
8290
8291 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8292
8293         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8294         SUBTARGET_WARN_UNUSED_SPEC): Move ...
8295         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8296         SUBTARGET_WARN_UNUSED_SPEC): ... here
8297         * config/mips/iris5.h (LIBGCC_SPEC): Define.
8298
8299 2010-01-12  Julian Brown  <julian@codesourcery.com>
8300
8301         * config/arm/neon-schedgen.ml (Utils): Don't try to
8302         open missing module.
8303         (find_with_result): New.
8304
8305 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8306
8307         PR debug/42662
8308         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
8309         sharing when canonicalizing ({lt,ge}u (plus a b) b).
8310
8311         PR tree-optimization/42645
8312         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
8313         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
8314         decl_map, set processing_debug_stmt to -1 and return name without
8315         any remapping.
8316
8317 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
8318
8319         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
8320         binutils version, and reword target configuration description.
8321
8322 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8323
8324         * config/avr/avr.h (LINKER_NAME): Remove.
8325
8326 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
8327
8328         PR target/42416
8329         * config/rs6000/rs6000.c (rs6000_override_options): On targets
8330         that support VSX, warn for -mno-altivec if vsx is not disabled,
8331         and disable vsx.
8332
8333 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
8334             Shujing Zhao  <pearly.zhao@oracle.com>
8335
8336         PR translation/42469
8337         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
8338         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
8339         character between option name and help text.
8340         * c.opt (imultilib): Likewise.
8341
8342 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
8343
8344         * lto-streamer-out.c (output_unreferenced_globals): Output static
8345         variables.
8346
8347 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
8348
8349         PR rtl-optimization/42621
8350         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
8351         optimizing for size.
8352         (duplicate_computed_gotos): Remove now-redundant check.
8353
8354 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
8355
8356         PR target/37454
8357         * configure.ac: Save and restore LDFLAGS and LIBS
8358         * configure: Regenerate.
8359
8360 2010-01-10  Richard Guenther  <rguenther@suse.de>
8361
8362         PR middle-end/42667
8363         * builtins.c (fold_builtin_strlen): Add type argument and
8364         convert the resulting length to it.
8365         (fold_builtin_1): Adjust.
8366
8367 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8368
8369         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
8370         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
8371         1 insn.
8372         (num_insns_constant_wide): Adjust for that change.
8373
8374 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8375
8376         PR debug/42631
8377         * web.c (union_defs): Add used argument, to combine uses of
8378         uninitialized regs.
8379         (entry_register): Adjust type and tests of used argument.
8380         (web_main): Widen used for new use.  Pass it to union_defs.
8381         * df.h (union_defs): Adjust prototype.
8382
8383 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8384
8385         PR debug/42630
8386         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
8387         uses in new incoming argument.  Free body.
8388         (reset_debug_uses_in_loop): New.
8389         (analyze_insn_to_expand_var): Call the latter if the former found
8390         anything.  Fix whitespace.  Reject invalid dest overlaps before
8391         going through all insns in the loop.
8392
8393 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8394
8395         PR debug/42629
8396         * haifa-sched.c (dying_use_p): Debug insns don't count.
8397
8398 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8399
8400         PR middle-end/42363
8401         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
8402         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
8403         (verify_gimple_call): Reject LHS in noreturn calls.
8404
8405 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8406
8407         PR debug/42604
8408         PR debug/42395
8409         * tree-vect-loop-manip.c (adjust_info): New type.
8410         (adjust_vec): New pointer to vector.
8411         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
8412         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
8413         (slpeel_update_phis_for_duplicate_loop): Use them.
8414         (slpeel_update_phi_nodes_for_guard1): Likewise.
8415         (slpeel_update_phi_nodes_for_guard2): Likewise.
8416         (slpeel_tree_peel_loop_to_edge): Likewise.
8417         (vect_update_ivs_after_vectorizer): Likewise.
8418
8419 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8420
8421         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
8422         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8423
8424 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8425
8426         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
8427         bogus uninitialized warning.
8428
8429 2010-01-09  Richard Guenther  <rguenther@suse.de>
8430
8431         PR middle-end/42512
8432         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
8433         the evolution is compatible with the initial condition.
8434
8435 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8436
8437         * gcc.c (process_command): Update copyright notice dates.
8438         * gcov.c (print_version): Likewise.
8439         * gcov-dump.c (print_version): Likewise.
8440         * mips-tfile.c (main): Likewise.
8441         * mips-tdump.c (main): Likewise.
8442
8443 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8444
8445         PR target/41885
8446         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
8447         (rotlhi3): Delete.
8448         (rotlhi3_8): Delete.
8449         (rotlsi3): Delete.
8450         (rotlsi3_8): Delete.
8451         (rotlsi3_16): Delete.
8452         (rotlsi3_24): Delete.
8453         (rotl<mode>3): New.
8454         (*rotw<mode>3): New.
8455         (*rotb<mode>3): New.
8456         * config/avr/avr.c (avr_rotate_bytes): New function.
8457         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
8458
8459 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
8460
8461         PR target/37454
8462         * configure.ac: Modify -rdynamic check.
8463         * configure: Regenerate.
8464
8465 2010-01-08  DJ Delorie  <dj@redhat.com>
8466
8467         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
8468         register popping order.
8469
8470 2010-01-08  Richard Guenther  <rguenther@suse.de>
8471
8472         PR lto/42528
8473         * c.opt (fsigned-char): Also let LTO handle this option.
8474         (funsigned-char): Likewise.
8475
8476 2010-01-07  Richard Guenther  <rguenther@suse.de>
8477
8478         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
8479         (gimple_op): Likewise.
8480         (gimple_op_ptr): Likewise.
8481         (gimple_assign_set_lhs): Remove gcc_assert.
8482         (gimple_assign_set_rhs1): Likewise.
8483         (gimple_assign_set_rhs2): Likewise.
8484         (gimple_call_set_lhs): Likewise.
8485         (gimple_call_set_fn): Likewise.
8486         (gimple_call_set_fndecl): Likewise.
8487         (gimple_call_fndecl): Likewise.
8488         (gimple_call_return_type): Likewise.
8489         (gimple_call_set_chain): Likewise.
8490         (gimple_call_num_args): Likewise.
8491         (gimple_call_set_arg): Likewise.
8492         (gimple_cond_set_code): Likewise.
8493         (gimple_cond_set_lhs): Likewise.
8494         (gimple_cond_set_rhs): Likewise.
8495         (gimple_cond_set_true_label): Likewise.
8496         (gimple_cond_set_false_label): Likewise.
8497         (gimple_label_set_label): Likewise.
8498         (gimple_goto_set_dest): Likewise.
8499         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
8500         (gimple_debug_bind_get_value): Likewise.
8501         (gimple_debug_bind_get_value_ptr): Likewise.
8502         (gimple_debug_bind_set_var): Likewise.
8503         (gimple_debug_bind_set_value): Likewise.
8504         (gimple_debug_bind_reset_value): Likewise.
8505         (gimple_debug_bind_has_value_p): Likewise.
8506         (gimple_return_retval_ptr): Remove gcc_assert.
8507         (gimple_return_retval): Likewise.
8508         (gimple_return_set_retval): Likewise.
8509         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
8510         (safe_referenced_var_iterator): Remove.
8511         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
8512         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
8513         (fill_referenced_var_vec): Remove.
8514         (first_readonly_imm_use): Remove redundant gcc_assert.
8515         (phi_arg_index_from_use): Combine gcc_asserts.
8516         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
8517         (first_imm_use_stmt): Remove redundant gcc_assert.
8518         * tree-cfg.c (verify_gimple_call): Verify function and chain
8519         operands.  Verify arguments.
8520         (verify_types_in_gimple_stmt): Verify condition code and labels.
8521
8522 2010-01-07  Richard Guenther  <rguenther@suse.de>
8523
8524         PR tree-optimization/42641
8525         * sese.c (rename_map_elt_info): Use the SSA name version, do
8526         not hash pointers.
8527
8528 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
8529
8530         PR tree-optimization/42625
8531         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8532         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
8533
8534 2010-01-07  Duncan Sands  <baldrick@free.fr>
8535
8536         * Makefile.in (PLUGIN_HEADERS): Add version.h.
8537
8538 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
8539
8540         PR target/42511
8541         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
8542         note itself is not function_invariant_p.
8543
8544 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
8545
8546         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
8547         Do not add the DF_NOTE problem.
8548         * store-motion.c (execute_rtl_store_motion): Likewise.
8549
8550 2010-01-07  Martin Jambor  <mjambor@suse.cz>
8551
8552         PR tree-optimization/42157
8553         * tree-sra.c (compare_access_positions): Stabilize sort if both
8554         accesses have integer types, return zero immediately if they are the
8555         same.
8556
8557 2010-01-06  Richard Henderson  <rth@redhat.com>
8558
8559         PR middle-end/41883
8560         * haifa-sched.c (add_to_note_list): Merge into ...
8561         (concat_note_lists): ... here, and ...
8562         (unlink_other_notes, rm_other_notes): Merge into...
8563         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
8564         NOTE_INSN_EPILOGUE_BEG.
8565
8566 2010-01-06  Richard Guenther  <rguenther@suse.de>
8567
8568         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
8569         not inline regular functions into always-inline functions.
8570
8571 2010-01-06  Nick Clifton  <nickc@redhat.com>
8572
8573         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
8574         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
8575         used together.
8576         (OVERRIDE_OPTIONS): Delete.
8577         (OPTIMIZATION_OPTIONS): Define.
8578         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
8579         * config/rx/rx.c (rx_handle_option): Issue an error message if
8580         -mcpu=rx200 and -fpu are used together.
8581         (rx_set_optimization_options): New function.  Issue an error
8582         message if an optimization attribute attempts to reset the FPU/
8583         math optimization pairing.
8584         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
8585         * config/rx/rx.opt: Set the default to 32-bit doubles.
8586         * config/rx/t-rx: Add multilibs for -nofpu option.
8587         * doc/invoke.texi: Update documentation of RX options.
8588
8589 2010-01-06  Richard Guenther  <rguenther@suse.de>
8590
8591         * tree-ssa-pre.c (name_to_id): New global.
8592         (alloc_expression_id): Simplify SSA name handling.
8593         (lookup_expression_id): Likewise.
8594         (init_pre): Zero name_to_id.
8595         (fini_pre): Free it.
8596
8597 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
8598
8599         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
8600
8601 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
8602
8603         PR target/42542
8604         * config/i386/sse.md (smaxv2di3): New.
8605         (umaxv2di3): Likewise.
8606         (sminv2di3): Likewise.
8607         (uminv2di3): Likewise.
8608
8609 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8610
8611         PR target/42564
8612         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
8613         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
8614         (legitimize_tls_address): Likewise.
8615         (sparc_tls_referenced_p): Likewise.
8616         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
8617         and adjust calls to legitimize_pic_address.
8618         (legitimate_constant_p) Use sparc_tls_referenced_p.
8619         (legitimate_pic_operand_p): Likewise.
8620         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
8621         (sparc_tls_symbol_ref_1): Delete.
8622         (sparc_tls_referenced_p): Make static, recognize specific patterns.
8623         (legitimize_tls_address): Make static, handle CONST patterns.
8624         (legitimize_pic_address): Make static, remove unused parameter and
8625         adjust recursive calls.
8626         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
8627         and adjust call to legitimize_pic_address.
8628         (sparc_output_mi_thunk): Likewise.
8629
8630 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
8631             H.J. Lu  <hongjiu.lu@intel.com>
8632
8633         PR target/42542
8634         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
8635         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
8636         operands to make them signed.
8637
8638         Revert:
8639         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8640
8641         PR target/42542
8642         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8643         GTU to GT for V4SI and V2DI.
8644
8645         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8646         (umin<mode>3): Removed.
8647         (uminv8hi3): New.
8648         (uminv4si3): Likewise.
8649
8650 2010-01-05  Martin Jambor  <mjambor@suse.cz>
8651
8652         PR tree-optimization/42462
8653         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
8654         current_function_decl to helper functions and macros.
8655
8656 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8657
8658         PR bootstrap/41771
8659         * flags.h: Don't include real.h.
8660         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
8661         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
8662         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
8663         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
8664         * dominance.c: Update copyright.
8665         * gimple.c (walk_gimple_op): Remove inline.
8666         * tree-ssa-reassoc.c: Include real.h.
8667         * Makefile.in (FLAGS_H): Remove $(REAL_H).
8668         (tree-ssa-reassoc.o): Depend on $(REAL_H).
8669
8670 2010-01-05  Nick Clifton  <nickc@redhat.com>
8671
8672         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
8673         register to push into the stack frame when the accumulator has to
8674         be saved during interrupts.
8675
8676 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
8677
8678         * doc/invoke.texi: Remove the documentation about option
8679         -Wunreachable-code.
8680         * common.opt (Wunreachable-code):  Preserved for backward
8681         compatibility.
8682         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
8683         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
8684         the backward compatibility flag section.
8685
8686 2010-01-05  Richard Guenther  <rguenther@suse.de>
8687
8688         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
8689
8690 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
8691
8692         PR other/42611
8693         * cfgexpand.c (expand_one_var): Diagnose too large variables.
8694
8695         PR tree-optimization/42508
8696         * tree-sra.c (convert_callers): Check for recursive call
8697         by comparing cgraph nodes instead of decls.
8698         (modify_function): Call ipa_modify_formal_parameters also
8699         on all same_body aliases.
8700
8701         * cgraphunit.c (cgraph_materialize_all_clones): Compare
8702         cgraph nodes when checking for same_body aliases.
8703
8704 2010-01-05  Richard Guenther  <rguenther@suse.de>
8705
8706         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
8707         allocation and lookup.
8708         (get_or_alloc_expr_for_constant): Likewise.
8709         (phi_translate): Sink allocation.
8710
8711 2010-01-04  Richard Guenther  <rguenther@suse.de>
8712
8713         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
8714         a new entry only if needed.
8715         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
8716         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
8717         hashtable lookup.
8718         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
8719         the result array.
8720         (phi_translate): Handle CONSTANTs early.
8721
8722 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8723
8724         PR tree-optimization/42398
8725         * tree-sra.c (struct access): Removed flag grp_different_types.
8726         (dump_access): Do not dump the removed flag.
8727         (sort_and_splice_var_accesses): Do not set the removed flag.
8728         (sra_modify_expr): Check for type compatibility directly.
8729
8730 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8731
8732         PR tree-optimization/42366
8733         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
8734         edges with variable number of parameters.
8735         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
8736         flag instead of asserting it.
8737         (ipa_read_node_info): Read uses_analysis_done flag.
8738
8739 2010-01-04  Richard Guenther  <rguenther@suse.de>
8740
8741         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
8742         iterative_hash_* as intended.
8743         (vn_reference_compute_hash): Likewise.  Simplify hashing
8744         SSA names.
8745         (vn_reference_lookup_2): Likewise.
8746         (vn_nary_op_compute_hash): Likewise.
8747         (vn_phi_compute_hash): Likewise.
8748         (expressions_equal_p): Remove strange code.
8749         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
8750         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
8751         (bitmap_insert_into_set_1): Take value-id as parameter.
8752         (add_to_value): Pass it.
8753         (bitmap_insert_into_set): Likewise.
8754         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
8755
8756 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
8757
8758         PR driver/42442
8759         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
8760         (do_self_spec): For switches with SWITCH_IGNORE set set also
8761         SWITCH_IGNORE_PERMANENTLY.
8762         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
8763         of SWITCH_IGNORE.
8764
8765 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
8766
8767         * lto-streamer-out.c (output_unreferenced_globals): Output the full
8768         tree of an unreferenced global var.
8769
8770 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8771
8772         PR target/42542
8773         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8774         GTU to GT for V4SI and V2DI.
8775
8776         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8777         (umin<mode>3): Removed.
8778         (uminv8hi3): New.
8779         (uminv4si3): Likewise.
8780
8781 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8782
8783         PR lto/42581
8784         * collect2.c (main): Turn on trace in collect2 if -v is passed
8785         to gcc with LTO.
8786
8787 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
8788
8789         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
8790         description of expression operand.
8791
8792 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
8793
8794         * configure.ac: Add install-html to target_list for Make-hooks.
8795         * configure: Regenerate.
8796         * fortran/Make-lang.in (F95_HTMLFILES): New.
8797         (fortran.html): Use it.
8798         (fortran.install-html): New.
8799         * Makefile.in (install-html): Add lang.install-html.
8800         * java/Make-lang.in (JAVA_HTMLFILES): New.
8801         (java.html): Use it.
8802         (java.install-html): New.
8803         * objc/Make-lang.in (objc.install-html): New.
8804         * objcp/Make-lang.in (obj-c++.install-html): New.
8805         * cp/Make-lang.in (c++.install-html): New.
8806         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
8807         * lto/Make-lang.in (lto.install-html): New.
8808
8809 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8810
8811         PR lto/42520
8812         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
8813
8814 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8815
8816         PR rtl-optimization/41862
8817         * store-motion.c (store_killed_in_insn, compute_store_table,
8818         remove_reachable_equiv_notes, replace_store_insn,
8819         build_store_vectors): Ignore all DEBUG_INSNs.
8820
8821 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8822
8823         PR lto/41564
8824         * common.opt: Add dumpdir.
8825
8826         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
8827         isn't specified.
8828         (option_map): Add --dumpdir.
8829
8830         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
8831
8832         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
8833
8834         * opts.c (decode_options): Try dump_dir_name first if
8835         dump_base_name isn't an absolute path.
8836         (common_handle_option): Handle OPT_dumpdir.
8837
8838         * toplev.c (dump_dir_name): New.
8839         (print_switch_values): Also ignore -dumpdir.
8840
8841         * toplev.h (dump_dir_name): New.
8842
8843 2010-01-03  Richard Guenther  <rguenther@suse.de>
8844
8845         PR tree-optimization/42589
8846         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
8847         double-word expansion of bswap32.
8848
8849 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8850
8851         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
8852         with BLOCK_FOR_INSN.
8853         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
8854         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
8855         noce_process_if_block): Likewise.
8856         * gcse.c (compute_local_properties, insert_expr_in_table,
8857         insert_set_in_table, canon_list_insert, find_avail_set,
8858         pre_insert_copy_insn): Likewise.
8859
8860         * basic-block.h (BLOCK_NUM): Move from here...
8861         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
8862
8863 2010-01-03  Richard Guenther  <rguenther@suse.de>
8864
8865         PR tree-optimization/42438
8866         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
8867         contains_may_not_return_call flag.
8868         (BB_MAY_NOTRETURN): New.
8869         (valid_in_sets): Trapping nary operations are not valid
8870         in blocks that may not return.
8871         (insert_into_preds_of_block): Remove check for trapping expressions.
8872         (compute_avail): Compute also BB_MAY_NOTRETURN.
8873
8874 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
8875
8876         * doc/invoke.texi: Add 2010 to copyright years.
8877
8878 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8879
8880         * config/sparc/sparc.c: Fix formatting nits.
8881
8882 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
8883             Alexander Monakov  <amonakov@ispras.ru>
8884
8885         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
8886
8887 2010-01-02  Richard Guenther  <rguenther@suse.de>
8888
8889         PR middle-end/42577
8890         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
8891         (simplify_switch_using_ranges): Mark to be removed edges
8892         as non-executable.
8893
8894 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8895
8896         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8897
8898         * collect2.c (scan_libraries): Add missing argument in call to
8899         scan_prog_file.
8900
8901 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
8902
8903         PR target/42448
8904         * config/alpha/predicates.md (aligned_memory_operand): Return false
8905         for CQImode.
8906         (unaligned_memory_operand): Return true for CQImode.
8907         * config/alpha/alpha.c (get_aligned_mem): Assert that location
8908         doesn not cross aligned SImode word boundary.
8909
8910 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
8911
8912         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
8913         Remove.
8914         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
8915         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
8916
8917 2010-01-02  Richard Guenther  <rguenther@suse.de>
8918
8919         PR lto/41597
8920         * toplev.c (compile_file): Emit LTO marker properly.  Change
8921         it to __gnu_lto_v1.
8922         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
8923
8924 2010-01-01  Richard Guenther  <rguenther@suse.de>
8925
8926         PR debug/42455
8927         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
8928
8929 2010-01-01  Richard Guenther  <rguenther@suse.de>
8930
8931         PR c/42570
8932         * c-decl.c (grokdeclarator): For zero-size arrays force
8933         structural equality checks as layout_type does.
8934
8935 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8936
8937         * builtins.c: Update copyright to 2010.
8938
8939 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8940
8941         PR lto/42531
8942         * lto-streamer-out.c (produce_asm): Revert the last change.
8943         (copy_function): Likewise.
8944
8945         * lto-streamer.c (lto_get_section_name): Skip any leading
8946         asterisk in name.
8947
8948 2010-01-01  Richard Guenther  <rguenther@suse.de>
8949
8950         PR middle-end/42559
8951         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
8952         for LABEL_DECLs.
8953
8954 \f
8955 Copyright (C) 2010 Free Software Foundation, Inc.
8956
8957 Copying and distribution of this file, with or without modification,
8958 are permitted in any medium without royalty provided the copyright
8959 notice and this notice are preserved.