OSDN Git Service

5f792925477cda76f296e4720a0fa8f67eef96f3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2
3         PR c/10676
4         * c-typeck.c (lookup_field): Take a type directly.  Update
5         recursive calls.
6         (build_component_ref): Update call to lookup_field.
7         (set_init_label): Use lookup_field to find initialized field.
8         Handle returned list of fields like a sequence of designators.
9
10 2010-05-09  Richard Guenther  <rguenther@suse.de>
11
12         PR middle-end/44024
13         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14         handle &FUNCTION_DECL.
15
16 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
17
18         PR c/4784
19         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
20         structures and unions recursively.
21         (detect_field_duplicates): Move duplicate detection with a hash to
22         detect_field_duplicates_hash.  Always use a hash if anonymous
23         structures or unions are present.
24         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
25         give errors.
26
27 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
28
29         PR target/44046
30         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31         detect Atom, Core 2 and Core i7.
32
33 2010-05-09  Richard Guenther  <rguenther@suse.de>
34
35         * gcc.c (store_arg): Handle temporary file deletion for
36         joined arguments.
37
38 2010-05-09  Richard Guenther  <rguenther@suse.de>
39
40         PR middle-end/44043
41         * ipa-inline.c (estimate_function_body_sizes): Return after
42         disregarding inline limits.
43
44 2010-05-09  Richard Guenther  <rguenther@suse.de>
45
46         * gcc.c (store_arg): Revert last change.
47
48 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
49
50         PR middle-end/28685
51         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
52         (optimize_ops_list): Call it.
53
54 2010-05-08  Richard Guenther  <rguenther@suse.de>
55
56         PR tree-optimization/44030
57         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
58         NECESSARY flag if we propagate from a inserted expression.
59
60 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
61
62         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
63         domain types as equal if they are both PLACEHOLDER_EXPRs.
64
65 2010-05-08  Richard Guenther  <rguenther@suse.de>
66
67         * lto-wrapper.c (run_gcc): Remove linker output from
68         command line for LTRANS invocation.
69
70 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
71
72         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
73         lto-macho as lto_binary_reader.
74         * target.h (struct gcc_target): New hooks lto_start and lto_end.
75         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
76         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
77         in lto_start and lto_end calls.
78         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
79         magic numbers.
80         (scan_prog_file): Update is_elf_or_coff call.
81         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
82
83         * collect2.c (main): Fix enum comparison.
84
85         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
86         Add prototypes.
87         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
88         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
89         and TARGET_ASM_LTO_END.
90         * darwin.c: Include obstack.h and lto-streamer.h.
91         (lto_section_names_offset, lto_section_names_obstack,
92         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
93         global variables.
94         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
95         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
96         to a temporary file.
97         (darwin_asm_lto_end): New function.  Restore asm_out_file.
98         (darwin_asm_named_section): For LTO sections, replace the name with
99         the offset of the section name in a string table, and build this
100         table.
101         (darwin_file_start): Initialize global vars for LTO support.
102         (darwin_file_end): If output to asm_out_file was redirected, append it
103         to the proper asm_out_file here.  Add the section names section.
104
105 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
106
107         * c-pragma.c (pending_weak_d, pending_weak): New.
108         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
109         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
110         handle_pragma_weak): Update the uses of pending_weaks.
111
112 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
113
114         PR documentation/44016
115         * doc/standards.texi (Standards): Link to unversioned
116         cxx0x_status.html page.
117
118 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
119
120         PR target/43708
121         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
122         in addition to TREE_USED, to avoid "set but unused" warnings.
123
124 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
125
126         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
127         (is_loop_prefetching_profitable): Do not insert prefetches
128         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
129         times the prefetch ahead distance.
130
131 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
132
133         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
134         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
135         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
136         the unroll_factor.
137
138 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
139
140         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
141         a diagnostic info when the insn-to-mem ratio is too small.
142
143 2010-05-07  Richard Guenther <rguenther@suse.de>
144
145         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
146         the linker plugin.
147         (store_arg): Queue temp_filename for deletion instead of
148         the whole argument.
149
150 2010-05-07  Richard Guenther  <rguenther@suse.de>
151
152         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
153         (run_gcc): Handle LTRANS phase invocation.
154         * collect2.c (maybe_run_lto_and_relink): Do not set
155         WPA_SAVE_LTRANS.
156
157 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
158
159         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
160         this is also meaningful on PARM_DECLs and RESULT_DECLs.
161
162 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
163
164         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
165
166 2010-05-07  Richard Guenther  <rguenther@suse.de>
167
168         PR tree-optimization/44020
169         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
170         code when PRE is not yet initialized.
171
172 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
173
174         * config/mips/dbxmdebug.h: Remove.
175         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
176
177 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
178
179         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
180         with null pointer and also warn about ordered comparison of zero with
181         pointer if -Wextra.
182
183 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
184
185         * graphite-blocking.c
186         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
187         * graphite-clast-to-gimple.c
188         (clast_to_gcc_expression): Same.
189         (precision_for_value): Same.
190         (precision_for_interval): Same.
191         (gcc_type_for_interval): Same.
192         (graphite_create_new_guard): Same.
193         (compute_bounds_for_level): Same.
194         (graphite_create_new_loop_guard): Same.
195         * graphite-interchange.c
196         (build_linearized_memory_access): Same.
197         (pdr_stride_in_loop): Same.
198         (memory_strides_in_loop_1): Same.
199         (memory_strides_in_loop): Same.
200         (extend_scattering): Same.
201         (psct_scattering_dim_for_loop_depth): Same.
202         (pbb_number_of_iterations): Same.
203         * graphite-poly.h
204         (debug_iteration_domains): Same.
205         * graphite-ppl.c
206         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
207         (ppl_set_inhomogeneous_gmp): Same.
208         (ppl_strip_loop): Same.
209         (ppl_lexico_compare_linear_expressions): Same.
210         (ppl_read_polyhedron_matrix): Same.
211         (ppl_max_for_le_pointset): Same.
212         * graphite-ppl.h
213         (ppl_read_polyhedron_matrix): Same.
214         (tree_int_to_gmp): Same.
215         (gmp_cst_to_tree): Same.
216         (ppl_set_inhomogeneous): Same.
217         (ppl_set_inhomogeneous_tree): Same.
218         (ppl_set_coef): Same.
219         (ppl_set_coef_tree): Same.
220         * graphite-sese-to-poly.c
221         (build_pbb_scattering_polyhedrons): Same.
222         (build_scop_scattering): Same.
223         (scan_tree_for_params_right_scev): Same.
224         (scan_tree_for_params): Same.
225         (find_params_in_bb): Same.
226         (find_scop_parameters): Same.
227         (add_upper_bounds_from_estimated_nit): Same.
228         (build_loop_iteration_domains): Same.
229         (add_condition_to_domain): Same.
230         (pdr_add_memory_accesses): Same.
231
232 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
233
234         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
235         CLooG's value_* macros to their respective mpz_* counterparts.
236         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
237         (graphite_create_new_loop_guard): Same.
238         * graphite-interchange.c (build_linearized_memory_access): Same.
239         (pdr_stride_in_loop): Same.
240         (memory_strides_in_loop_1): Same.
241         (1st_interchange_profitable_p): Same.
242         * graphite-poly.c (extend_scattering): Same.
243         (psct_scattering_dim_for_loop_depth): Same.
244         (pbb_number_of_iterations): Same.
245         (pbb_number_of_iterations_at_time): Same.
246         * graphite-poly.h (new_1st_loop): Same.
247         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
248         (oppose_constraint): Same.
249         (insert_constraint_into_matrix): Same.
250         (ppl_set_inhomogeneous_gmp): Same.
251         (ppl_set_coef_gmp): Same.
252         (ppl_strip_loop): Same.
253         (ppl_lexico_compare_linear_expressions): Same.
254         (ppl_max_for_le_pointset): Same.
255         (ppl_min_for_le_pointset): Same.
256         (ppl_build_realtion): Same.
257         * graphite-ppl.h (gmp_cst_to_tree): Same.
258         (ppl_set_inhomogeneous): Same.
259         (ppl_set_inhomogeneous_tree): Same.
260         (ppl_set_coef): Same.
261         (ppl_set_coef_tree): Same.
262         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
263         (build_scop_scattering): Same.
264         (add_value_to_dim): Same.
265         (scan_tree_for_params_right_scev): Same.
266         (scan_tree_for_params_int): Same.
267         (scan_tree_for_params): Same.
268         (find_params_in_bb): Same.
269         (find_scop_parameters): Same.
270         (add_upper_bounds_from_estimated_nit): Same.
271         (build_loop_iteration_domains): Same.
272         (create_linear_expr_from_tree): Same.
273         (add_condition_to_domain): Same.
274         (pdr_add_memory_accesses): Same.
275
276 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
277             Jason Merrill  <jason@redhat.com>
278
279         * c-common.c (c_common_reswords): Add nullptr.
280         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
281         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
282         (gen_type_die_with_usage): Likewise.
283         * dbxout.c (dbxout_type): Likewise.
284         * sdbout.c (plain_type_1): Likewise.
285
286 2010-05-06  Jason Merrill  <jason@redhat.com>
287
288         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
289         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
290         ret appropriately.
291         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
292
293         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
294         stripping WITH_SIZE_EXPR.
295         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
296         change.
297
298 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
299
300         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
301         list of obsolete configurations.
302         Disabled check for obsolete configurations.
303         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
304         Removed support for previous versions.
305         * config/mips/iris.h: Removed.
306         * config/mips/iris5.h: Removed.
307         * config/mips/iris6.h: Merged old iris.h contents.
308         (TARGET_IRIX): Removed.
309         (DRIVER_SELF_SPECS): Removed mabi=32.
310         (IDENT_ASM_OP): Removed undef.
311         (STARTFILE_SPEC): Removed mabi=32.
312         (ENDFILE_SPEC): Likewise.
313         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
314         (MACHINE_TYPE): Update for IRIX 6.5.
315         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
316         TARGET_IRIX by TARGET_IRIX6.
317         (mips_file_start): Likewise.
318         (mips_output_external): Remove IRIX 5/6 O32 support.
319         (mips_output_function_prologue): Likewise.
320         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
321         TARGET_IRIX6.
322         (TARGET_CPU_CPP_BUILTINS): Likewise.
323         (TARGET_IRIX): Removed.
324         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
325         (MULTILIB_DIRNAMES): Removed 32.
326         (MULTILIB_OSDIRNAMES): Removed ../lib.
327         * doc/install.texi (Prerequisites): Don't reference IRIX before
328         6.5.
329         (Specific, mips-sgi-irix5): Document removal.
330         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
331         removal.
332         Remove references to older IRIX 6 releases and the O32 ABI.
333
334 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
335
336         * gcc.dg/Wunused-var-8.c: Move to...
337         * c-c++-common/Wunused-var-6.c: ... here.  New test.
338
339         PR bootstrap/43994
340         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
341         instead of DF_REF_REAL_REG.
342
343 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
344
345         PR target/43888
346         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
347         handling to still return true for x64 targets.
348
349 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
350
351         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
352
353 2010-05-06  Jan Hubicka  <jh@suse.cz>
354
355         PR tree-optimization/43791
356         * ipa-inline.c (update_caller_keys): Remove bogus
357         disregard_inline_limits check.
358
359 2010-05-06  Michael Matz  <matz@suse.de>
360
361         PR tree-optimization/43984
362         * tree-ssa-pre.c (inserted_phi_names): Remove.
363         (inserted_exprs): Change to bitmap.
364         (create_expression_by_pieces): Set bits, don't append to vector.
365         (insert_into_preds_of_block): Don't handle inserted_phi_names.
366         (eliminate): Don't look at inserted_phi_names, remove deleted
367         insns from inserted_exprs.
368         (remove_dead_inserted_code): Adjust to use bitmaps instead of
369         vectors.
370         (init_pre, fini_pre): Allocate and free bitmaps.
371         (execute_pre): Insert insns on edges before elimination.
372
373 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
374
375         * tree.c (initializer_zerop): Handle STRING_CST.
376
377 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
378
379         PR 40989
380         * doc/invoke.texi (Wimplicit): Document as C only.
381         * opts.c (common_handle_option): Add argument kind.
382         (handle_option): Rename as read_cmdline_option. Factor out code to...
383         (handle_option): ... here. New.
384         (handle_options): Rename as read_cmdline_options.
385         (decode_options): Update call.
386         (set_option): Use option index instead of option pointer. Classify
387         diagnostics correctly.
388         (enable_warning_as_error): Call handle_option.
389         * opts.h (set_option): Update declaration.
390         (handle_option): Declare.
391         * langhooks.h (struct lang_hooks): Add argument kind to
392         handle_option.
393         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
394         * c-opts.c (set_Wimplicit): Delete.
395         (c_family_lang_mask): New static constant.
396         (c_common_handle_option): Add argument kind. Use handle_option
397         instead of set_Wimplicit.
398         (c_common_post_options): warn_implicit and warn_implicit_int
399         are disabled by default.
400         * c-common.c (warn_implicit): Do not define here.
401         * c-common.h (warn_implicit): Do not declare here.
402         (c_common_handle_option): Update declaration.
403         * lto-opts.c (lto_reissue_options): Update call to set_option.
404
405 2010-05-06  Richard Guenther  <rguenther@suse.de>
406
407         PR tree-optimization/43571
408         * domwalk.c (walk_dominator_tree): Walk the dominator
409         sons in more optimal order.
410
411 2010-05-06  Richard Guenther  <rguenther@suse.de>
412
413         PR tree-optimization/43934
414         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
415         (stmt_cost): Likewise.
416         (extract_true_false_args_from_phi): New helper.
417         (determine_max_movement): For PHI nodes verify we can hoist them
418         and compute their cost.
419         (determine_invariantness_stmt): Handle PHI nodes.
420         (move_computations_stmt): Likewise.  Hoist PHI nodes in
421         if-converted form using COND_EXPRs.
422         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
423         nodes.
424         (tree_ssa_lim): Likewise.
425         * tree-flow.h (tree_ssa_lim): Adjust prototype.
426         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
427
428 2010-05-06  Richard Guenther  <rguenther@suse.de>
429
430         PR tree-optimization/43987
431         * tree-ssa-structalias.c (could_have_pointers): For possibly
432         address-taken variables force pointers to be recorded.
433         (create_variable_info_for_1): Likewise.
434         (push_fields_onto_fieldstack): Pass in wheter all fields
435         must have pointers.
436         (find_func_aliases): Query types instead of vars whether
437         they contain pointers where appropriate.
438
439 2010-05-06  Jan Hubicka  <jh@suse.cz>
440
441         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
442         (record_reference, mark_address, mark_load, mark_store): Record
443         references.
444         (record_references_in_initializer): Update call of record_references.
445         (rebuild_cgraph_edges): Remove all references before rebuiding.
446         * cgraph.c (cgraph_create_node): Clear ref list.
447         (cgraph_remove_node): Remove references.
448         (dump_cgraph_node): Dump references.
449         (cgraph_clone_node): Clone references.
450         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
451         (struct cgraph_node, varpool_node): Add ref_lst.
452         * ipa-ref.c: New file.
453         * ipa-ref.h: New file.
454         * ipa-ref-inline.h: New file.
455         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
456         (referenced_from_other_partition_p): New function.
457         (lto_output_varpool_node): Take set arugment; call
458         referenced_from_other_partition.
459         (lto_output_ref): New.
460         (add_references): New.
461         (output_refs): New.
462         (output_cgraph): Compute boundary based on references;
463         output refs.
464         (output_varpool): Accept cgraph_node_set argument.
465         (input_ref): New.
466         (input_refs): New.
467         (input_cgraph): Call input_refs.
468         * lto-section-in.c (lto_section_name): Add refs.
469         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
470         (ipa-ref.o): New file.
471         * varpool.c (varpool_node): Clear ipa ref list.
472         (varpool_remove_node): Remove references.
473         (dump_varpool_node): Dump references.
474         (varpool_assemble_decl): Only compile finalized ones.
475         (varpool_extra_name_alias): Initialize ref list.
476         * lto-streamer.c (lto-get_section_name): Add .refs section.
477         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
478         (referenced_from_other_partition_p): Declared.
479
480 2010-05-06  Ira Rosen  <irar@il.ibm.com>
481
482         PR tree-optimization/43901
483         * tree-vect-stmts.c (vectorizable_call): Assert that vector
484         type is not NULL if it's transformation phase, and return
485         FALSE if it's analysis.
486         (vectorizable_conversion, vectorizable_operation, 
487         vectorizable_type_demotion, vectorizable_type_promotion):
488         Likewise.
489
490 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
491
492         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
493         Delete.
494         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
495         New define.
496         * config/mips/mips-protos.h
497         (mips_small_register_classes_for_mode_p): Delete prototype.
498
499 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
500
501         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
502         * config/arm/arm.c (multiple_operation_profitable_p,
503         compute_offset_order): New static functions.
504         (load_multiple_sequence, store_multiple_sequence): Use them.
505         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
506         memory offsets, not register numbers.
507         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
508
509 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
510
511         * stor-layout.c (pending_sizes): Change the type to
512         VEC(tree,gc) *.
513         (get_pending_sizes, put_pending_size, put_pending_sizes):
514         Update the uses of pending_sizes.
515         * c-decl.c (store_parm_decls): Likewise.
516         * c-tree.h (struct c_arg_info): Likewise.
517         * tree.h: Update the prototype for get_pending_sizes and
518         put_pending_sizes.
519
520 2010-05-05  Jason Merrill  <jason@redhat.com>
521
522         PR debug/43370
523         * c-common.c (handle_aligned_attribute): Respect
524         ATTR_FLAG_TYPE_IN_PLACE.
525
526         PR testsuite/43758
527         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
528         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
529         (TARGET_INITIALIZER): Use it.
530         * c-common.c (attribute_takes_identifier_p): Call it.
531         * c-common.h: Update prototype.
532         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
533         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
534
535 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
536
537         PR debug/43950
538         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
539         DW_ID_down_case for Fortran compilation units.
540
541 2010-05-05  Jan Hubicka  <jh@suse.cz>
542
543         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
544         handle aliases.
545
546 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
547
548         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
549         a variable-sized RESULT_DECL.
550
551 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
552
553         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
554
555 2010-05-05  Jason Merrill  <jason@redhat.com>
556
557         PR c++/43787
558         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
559         returns GS_OK.
560         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
561
562 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
563             Jakub Jelinek  <jakub@redhat.com>
564
565         PR debug/43478
566         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
567         (dead_debug_init, dead_debug_finish): New functions.
568         (dead_debug_add, dead_debug_insert_before): Likewise.
569         (df_note_bb_compute): Initialize a dead_debug object, add dead
570         debug uses to it, insert debug bind insns before death insns,
571         reset debug insns that refer to pending uses at the end.
572         * rtl.h (make_debug_expr_from_rtl): New prototype.
573         * varasm.c (make_debug_expr_from_rtl): New function.
574
575 2010-05-05  Jan Hubicka  <jh@suse.cz>
576
577         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
578         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
579         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
580         lto_varpool_encoder_encode_initializer_p,
581         lto_set_varpool_encoder_encode_initializer): New functions.
582         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
583         call output_varpool.
584         (input_varpool_node): Do not always set analyzed.
585         (input_cgraph_1): Return vector of cgraph nodes.
586         (input_varpool_1): Return vector of varpools.
587         (input_cgraph): Free the vectors.
588         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
589         output only initializers needed.
590         (lto_output): Only call output_cgraph.
591         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
592         * lto-section-out.c (lto_new_out_decl_state): Initialize
593         state->varpool_node_encoder.
594         * lto-streamer.h (lto_varpool_encoder_d): New.
595         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
596         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
597         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
598         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
599         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
600         Declare.
601         (output_varpool, input_varpool): Remove declarations.
602
603 2010-05-05  Jan Hubicka  <jh@suse.cz>
604
605         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
606         with body can prevail.
607
608 2010-05-05  Jan Hubicka  <jh@suse.cz>
609
610         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
611         size.
612
613 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
614
615         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
616         dependencies.
617
618         * gengtype.h (erro_at_line): Constify pos argument.
619
620         * gengtype.c: Include hashtab.h.
621         (enum gc_used): Document GC_MAYBE_POINTED_TO.
622         (error_at_line): Constify pos argument.
623         (do_typedef): Initialize p->opt field.
624         (get_file_gtfilename): Fix comment typo.
625         (struct walk_type_data): Constify line field.
626         (get_output_file_for_structure): New function.
627         (write_local_func_for_structure): Constify orig_s argument.
628         Use get_output_file_for_structure.
629         (write_func_for_structure): Use get_output_file_for_structure.
630         (INDENT): New define.
631         (dump_pair, dump_type, dump_type_list, dump_typekind)
632         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
633         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
634         functions.
635         (seen_types): New variable.
636         (main): New variable do_dump.  Process "-d" command line option.
637         Call dump_everything if dump requested.
638
639 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
640
641         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
642         in a temporary instead of invoking the macro multiple times.
643         (track_expr_p): Likewise.
644
645 2010-05-04  Neil Vachharajani <nvachhar@google.com>
646
647         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
648         per new semantics.
649         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
650         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
651         conditions for printing notes.
652         * common.opt (-Wcoverage-mismatch): Allow negative, default to
653         true, update documentation.
654         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
655
656 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
657
658         PR c/43981
659         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
660         on dimen.
661
662 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
663
664         PR target/43799
665         * config/i386/i386.md (sse_prologue_save): Add clobber CC
666         register.
667         (*sse_prologue_save_insn1): Likewise.
668         (SSE prologue save splitter): Likewise.
669
670 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
671
672         * tree.c (free_lang_data_in_one_sizepos): New inline function.
673         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
674         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
675         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
676         all decls.  Call it on DECL_FIELD_OFFSET of fields.
677         (find_decls_types_r): Follow DECL_VALUE_EXPR.
678         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
679
680 2010-05-04  Martin Jambor  <mjambor@suse.cz>
681
682         * tree-sra.c (build_access_from_expr_1): The first parameter type
683         changed to simple tree.
684         (build_access_from_expr): Likewise, gsi parameter was eliminated.
685         (scan_assign_result): Renamed to assignment_mod_result, enum elements
686         renamed as well.
687         (build_accesses_from_assign): Removed all parameters except for a
688         simple gimple statement.  Now returns a simple bool.
689         (scan_function): All non-analysis parts moved to separate functions
690         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
691         parameters and updated both callers.
692         (sra_modify_expr): Removed parameter data.
693         (sra_modify_function_body): New function.
694         (perform_intra_sra): Call sra_modify_function_body to modify the
695         function body.
696         (replace_removed_params_ssa_names): Parameter data changed into
697         adjustments vector.
698         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
699         changed the parameter dont_convert to convert with the opposite
700         meaning.
701         (sra_ipa_modify_assign): Parameter data changed into adjustments
702         vector, return value changed to bool.
703         (ipa_sra_modify_function_body): New function.
704         (sra_ipa_reset_debug_stmts): Updated a comment.
705         (modify_function): Use ipa_sra_modify_function_body to modify function
706         body.
707
708 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
709
710         PR middle-end/43671
711         * alias.c (true_dependence): Handle the same VALUE in x and mem.
712         (canon_true_dependence): Likewise.
713         (write_dependence_p): Likewise.
714
715 2010-05-04  Jan Hubicka  <jh@suse.cz>
716
717         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
718         * cgraphbuild.c: Include ipa-utils.h
719         (record_reference_ctx): New struct.
720         (record_reference): Simplify to work on initializers; not statements.
721         (mark_address, mark_load, mark_store): New.
722         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
723         walk PHI nodes too.
724         (record_references_in_initializer): Update use of record_reference.
725         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
726         walk PHI nodes too.
727
728 2010-05-04  Jan Hubicka  <jh@suse.cz>
729
730         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
731         node will be removed anyway.
732         (lto_varpool_replace_node): Allow also unanalyzed nodes;
733         relink aliases of node into prevailing node.
734         * varpool.c (varpool_remove_node): Remove aliases properly;
735         when removing node, remove all its aliases too; remove DECL_INITIAL
736         of removed node; ggc_free the varpool node.
737
738 2010-05-04  Richard Guenther  <rguenther@suse.de>
739
740         PR tree-optimization/43879
741         * tree-ssa-structalias.c (alias_get_name): Use
742         DECL_ASSEMBLER_NAME if available.
743         (create_function_info_for): Return the varinfo node.
744         (ipa_pta_execute): Associate same-body aliases and extra names
745         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
746
747 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
748
749         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
750         static.
751
752 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
753
754         PR bootstrap/43964
755         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
756         only if HONOR_REG_ALLOC_ORDER is not defined.
757
758 2010-05-04  Richard Guenther  <rguenther@suse.de>
759
760         PR tree-optimization/43949
761         * tree-vrp.c (extract_range_from_binary_expr): Only handle
762         TRUNC_MOD_EXPR.
763
764 2010-04-26  Jason Merrill  <jason@redhat.com>
765
766         * c.opt (-fstrict-enums): New.
767         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
768
769 2010-05-03  David Ung <davidu@mips.com>
770             James E. Wilson  <wilson@codesourcery.com>
771
772         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
773         emit the trap instruction before the divide for TUNE_74K.
774
775 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
776
777         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
778         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
779         based on the above, for new target hook.
780
781         * hooks.c (hook_bool_mode_true): New generic hook.
782         * hooks.h (hook_bool_mode_true): Add prototype.
783
784         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
785         target hook.
786         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
787         target hook, set to hook_bool_mode_false.
788         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
789         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
790         with targetm.small_register_classes_for_mode_p.
791         (find_reusable_reload): Likewise.
792         (combine_reloads): Likewise.
793         * reload1.c (reload_as_needed): Likewise.
794         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
795         * ifcvt.c (noce_process_if_block, check_cond_move_block,
796         dead_or_predicable): Likewise.
797         * regmove.c (optimize_reg_copy_1): Likewise.
798         * calls.c (prepare_call_address): Likewise.
799         (precompute_register_parameters): Likewise.
800
801         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
802         hook definition.
803         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
804         implementation of the hook that considers all register classes
805         small except for SH64.
806         (sh_override_options): Use the new hook.
807         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
808         Add prototype.
809
810         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
811         hook definition.
812         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
813         implementation of the hook that considers all register classes
814         small for THUMB1.
815         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
816         Add prototype.
817
818         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
819         hook definition.
820         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
821         implementation of the hook that considers all register classes
822         small for MIPS16.
823         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
824         Add prototype.
825
826         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
827         hook definition.
828         * config/m32c/m32c.h: Likewise.
829         * config/pdp11/pdp11.h: Likewise.
830         * config/avr/avr.h: Likewise.
831         * config/xtensa/xtensa.h: Likewise.
832         * config/m68hc11/m68hc11.h: Likewise.
833         * config/mn10300/mn10300.h: Likewise.
834         * config/mcore/mcore.h: Likewise.
835         * config/h8300/h8300.h: Likewise.
836         * config/bfin/bfin.h: Likewise.
837
838         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
839         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
840
841 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
842
843         * double-int.h (tree_to_double_int): Remove macro.
844         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
845         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
846         (tree_to_double_int): New function.
847         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
848         Move ...
849         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
850
851 2010-05-03  Richard Guenther  <rguenther@suse.de>
852
853         PR tree-optimization/43971
854         * tree-ssa-structalias.c (get_constraint_for_1): Fix
855         constraints in the !flag_delete_null_pointer_checks case.
856
857 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
858
859         PR debug/43972
860         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
861         result mode matches original rtl mode.
862
863 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
864
865         PR target/43888
866         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
867
868 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
869
870         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
871         when processing flag options.
872
873 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
874
875         * gcov-iov.c (main): Change format string placeholder
876         from %#08x to 0x%08x.
877         * genchecksum.c (dosum): Change format string placeholder
878         from %#02x to 0x%02x.
879
880 2010-05-02  Richard Guenther  <rguenther@suse.de>
881
882         PR tree-optimization/43879
883         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
884
885 2010-05-02  Bruno Haible  <bruno@clisp.org>
886
887         * doc/extend.texi (Function Attributes): Fix a typo.
888
889 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
890
891         Revert:
892         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
893         placeholder from 0x%x to %#x.
894         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
895         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
896         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
897         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
898         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
899         * config/i386/i386.c (ix86_target_string): Ditto.
900         * config/i386/i386.c (output_pic_addr_const): Ditto.
901         (print_operand): Ditto.
902
903 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
904
905         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
906         placeholder from 0x%x to %#x.
907         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
908         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
909         (ASM_OUTPUT_DEBUG_DATA): Ditto.
910         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
911         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
912         * optc-gen.awk: Ditto.
913         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
914         (HOST_WIDE_INT_PRINT_HEX): Ditto.
915         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
916         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
917
918 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
919
920         * target.h (struct calls): Add function_value_regno_p field.
921         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
922         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
923         * targhooks.c (default_function_value_regno_p): New function.
924         * targhooks.h (default_function_value_regno_p): Declare function.
925         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
926         * builtins.c. (apply_result_size): (Ditto.).
927         * combine.c. (likely_spilled_retval_p): (Ditto.).
928         * mode-switching.c. Include 'target.h'.
929         (create_pre_exit): Use function_value_regno_p hook.
930         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
931         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
932         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
933
934         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
935         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
936         (ix86_function_value_regno_p): Declare as static, change argument
937         type to const unsigned int.
938         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
939
940 2010-05-01  Richard Guenther  <rguenther@suse.de>
941
942         PR tree-optimization/43949
943         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
944         types.
945         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
946
947 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
948
949         * rtl.h (CONST_DOUBLE_P): Define.
950         (rtx_to_double_int): Declare.
951         * emit-rtl.c (rtx_to_double_int): New function.
952         * dwarf2out.c (insert_double): New function.
953         (loc_descriptor, add_const_value_attribute): Clean up, use
954         rtx_to_double_int and insert_double functions.
955
956 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
957
958         * doc/extend.texi (Inline): Add missing return keyword to examples.
959         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
960         "command-line".
961
962 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
963
964         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
965         the variable part of the offset as well.  Use highest_pow2_factor for
966         all alignment checks.
967
968 2010-04-30  Richard Guenther  <rguenther@suse.de>
969
970         PR tree-optimization/43879
971         * tree-ssa-structalias.c (type_could_have_pointers): Functions
972         can have pointers.
973
974 2010-04-30  Jan Hubicka  <jh@suse.cz>
975
976         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
977         varpool.
978         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
979
980 2010-04-30  Jan Hubicka  <jh@suse.cz>
981
982         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
983         New.
984         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
985         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
986         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
987         cgraph_node_set_needs_ltrans_p): Remove.
988
989 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
990
991         * sdbout.c: Include vec.h, do not include varray.h.
992         (deferred_global_decls, sdbout_global_decl,
993         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
994         * toplev.c: Do not include varray.h.
995         (dump_memory_report): Do not dump VARRAY statistics.
996         * gengtype.c (open_base_file): Ignore varray.h.
997         * Makefile.in: Update for abovementioned changes.
998         Remove all traces of varray.c and varray.h.
999         * varray.c: Remove file.
1000         * varray.h: Remove file.
1001
1002 2010-04-30  Jan Hubicka  <jh@suse.cz>
1003
1004         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
1005         references.
1006
1007 2010-04-30  Jan Hubicka  <jh@suse.cz>
1008
1009         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
1010         needed.
1011
1012 2010-04-30  Richard Guenther  <rguenther@suse.de>
1013
1014         * tree-ssa-structalias.c (get_constraint_for_1): Generate
1015         constraints for CONSTRUCTOR.
1016
1017 2010-04-30  Richard Guenther  <rguenther@suse.de>
1018
1019         PR lto/43946
1020         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
1021         first after all lowering passes.
1022
1023 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1024
1025         * toplev.c: Include varray.h for statistics dumping.
1026         * tree.h: Do not declare varray_head_tag.
1027         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
1028         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
1029         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
1030         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
1031         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
1032         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
1033         c-common.c, c-common.h, reg-stack.c, basic-block.h,
1034         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
1035         include varray.h.
1036         * Makefile.in: Update for abovementioned changes.
1037
1038 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
1039
1040         PR debug/43942
1041         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
1042
1043 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1044
1045         * config/picochip/picochip.c (picochip_legitimize_address): Define.
1046         Use this function to do machine-specific conversion.
1047         (picochip_legitimize_reload_address): Likewise.
1048         (picochip_legitimate_address_p): Check valid base register only if
1049         strict.
1050         (picochip_check_conditional_copy): Check for modw only if opnd is
1051         register.
1052         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
1053         to call the function in c.
1054         * config/picochip/picochip-protos.h
1055         (picochip_legitimize_reload_address): Define.
1056         * config/picochip/picochip.md (supported_compare1): Define.
1057
1058 2010-04-30  Jan Hubicka  <jh@suse.cz>
1059
1060         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
1061         (cgraph_global_info): Remove inlined.
1062         (LTO_cgraph_tag_names): Remove.
1063         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
1064         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
1065         simplify cgraph tags and document.
1066         (lto_output_node): Use only LTO_cgraph_unavail_node and
1067         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
1068         for_functions_valid, global info, process and output flags.
1069         (input_overwrite_node): Initialize estimated stack size and
1070         estimated growth.  Do not read flags we no longer store.
1071         (input_node): Likewise do not read info no longer stored.
1072         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
1073         flag.
1074
1075 2010-04-30  Richard Guenther  <rguenther@suse.de>
1076
1077         PR tree-optimization/43879
1078         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1079         handle non-zero initializers.
1080
1081 2010-04-30  Richard Guenther  <rguenther@suse.de>
1082
1083         * builtins.c (fold_builtin_1): Delete free (0).
1084
1085 2010-04-29  Jan Hubicka  <jh@suse.cz>
1086
1087         * gengtype.c (open_base_files): Add lto-streamer.h
1088         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
1089         (pass_ipa_cp): GGC collect.
1090         * toplev. (compile_file): Do not output symbols.
1091         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
1092         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
1093         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
1094         * lto-section-in.c: Include ggc.h
1095         (lto_new_in_decl_state): Alloc in GGC.
1096         (lto_delete_in_decl_state): Likewise.
1097         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
1098         Collect.
1099
1100 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1101
1102         PR target/42895
1103         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
1104         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
1105         (HONOR_REG_ALLOC_ORDER): Describe new macro.
1106         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
1107         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
1108         account only if HONOR_REG_ALLOC_ORDER is not defined.
1109         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
1110         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
1111
1112 2010-04-29  Jon Grant  <04@jguk.org>
1113
1114         * collect2.c (vflag): Change type from int to bool.
1115         (debug): Likewise.
1116         (helpflag): New global bool.
1117         (main): Set vflag and debug with boolean, not integer truth values.
1118         Accept new "--help" option and output usage text if found.
1119         * collect2.h (vflag): Update prototype.
1120         (debug): Likewise.
1121
1122 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1123
1124         PR bootstrap/43936
1125         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
1126
1127 2010-04-29  Richard Guenther  <rguenther@suse.de>
1128
1129         PR bootstrap/43935
1130         * plugin.h (invoke_plugin_callbacks): Annotate arguments
1131         with ATTRIBUTE_UNUSED.
1132
1133 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1134
1135         PR target/43921
1136         * config/i386/i386.c (get_some_local_dynamic_name): Replace
1137         INSN_P with NONDEBUG_INSN_P.
1138         (distance_non_agu_define): Likewise.
1139         (distance_agu_use): Likewise.
1140
1141 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1142
1143         From Dominique d'Humieres <dominiq@lps.ens.fr>
1144         PR bootstrap/43858
1145         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
1146         test_set.
1147
1148 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1149
1150         * plugin.h (invoke_plugin_callbacks): New inline function.
1151         * plugin.c (flag_plugin_added): New global flag.
1152         (add_new_plugin): Initialize above flag.
1153         (invoke_plugin_callbacks): Rename to ...
1154         (invoke_plugin_callbacks_full): ... this.
1155
1156 2010-04-28  Jan Hubicka  <jh@suse.cz>
1157
1158         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
1159         (lto_varpool_replace_node): New.
1160         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1161         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1162         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1163         * cgraph.h (varpool_node_ptr): New type.
1164         (varpool_node_ptr): New vector.
1165         (varpool_node_set_def): New structure.
1166         (varpool_node_set): New type.
1167         (varpool_node_set): New vector.
1168         (varpool_node_set_element_def): New structure.
1169         (varpool_node_set_element, const_varpool_node_set_element): New types.
1170         (varpool_node_set_iterator): New type.
1171         (varpool_node): Add prev pointers, add used_from_other_partition,
1172         in_other_partition.
1173         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1174         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1175         varpool_get_node, varpool_remove_node): Declare.
1176         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1177         varpool_node_set_size): New inlines.
1178         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1179         * tree-pass.h (varpool_node_set_def): Forward declare.
1180         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1181         (ipa_write_optimization_summaries): Update prototype.
1182         * ipa-cp.c (ipcp_write_summary): Update.
1183         * ipa-reference.c (ipa_reference_write_summary): Update.
1184         * lto-cgraph.c (lto_output_varpool_node): New static function.
1185         (output_varpool): New function.
1186         (input_varpool_node): New static function.
1187         (input_varpool_1): New function.
1188         (input_cgraph): Input varpool.
1189         * ipa-pure-const.c (pure_const_write_summary): Update.
1190         * lto-streamer-out.c (lto_output): Update, output varpool too.
1191         (write_global_stream): Kill WPA hack.
1192         (produce_asm_for_decls): Update.
1193         (output_alias_pair_p): Handle variables.
1194         (output_unreferenced_globals): Output only needed partition of varpool.
1195         * ipa-inline.c (inline_write_summary): Update.
1196         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1197         cgraph.
1198         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1199         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1200         varpool_node_set_new, varpool_node_set_add,
1201         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1202         debug_varpool_node_set): New functions.
1203         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1204         (execute_one_pass): Process new decls too.
1205         (ipa_write_summaries_2): Pass around vsets.
1206         (ipa_write_summaries_1): Likewise.
1207         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1208         to add.
1209         (ipa_write_optimization_summaries_1): Pass around vsets.
1210         (ipa_write_optimization_summaries): Likewise.
1211         * varpool.c (varpool_get_node): New.
1212         (varpool_node): Update doubly linked lists.
1213         (varpool_remove_node): New.
1214         (dump_varpool_node): More dumping.
1215         (varpool_enqueue_needed_node): Update doubly linked lists.
1216         (decide_is_variable_needed): Kill ltrans hack.
1217         (varpool_finalize_decl): Kill lto hack.
1218         (varpool_assemble_decl): Skip decls in other partitions.
1219         (varpool_assemble_pending_decls): Update doubly linkes lists.
1220         (varpool_empty_needed_queue): Likewise.
1221         (varpool_extra_name_alias): Likewise.
1222         * lto-streamer.c (lto_get_section_name): Add vars section.
1223         * lto-streamer.h (lto_section_type): Update.
1224         (output_varpool, input_varpool): Declare.
1225
1226 2010-04-28  Mike Stump  <mikestump@comcast.net>
1227
1228         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1229
1230 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1231
1232         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1233         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1234         (lto_input_ts_type_tree_pointers): Likewise.
1235         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1236         (lto_output_ts_type_tree_pointers): Likewise.
1237
1238 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1239
1240         Uniquization of constants at the Tree level
1241         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1242         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1243         bit to the end.
1244         (tree_output_constant_def): Declare.
1245         * gimplify.c (gimplify_init_constructor): When using block copy, first
1246         uniquize the constant constructor on the RHS.
1247         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1248         DECL_IN_CONSTANT_POOL flag.
1249         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1250         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1251         constant pool.
1252         (assemble_variable): Deal with symbols belonging to the tree constant
1253         pool.
1254         (get_constant_section): Add ALIGN parameter and simplify.
1255         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1256         (assemble_constant_contents): Use the expression of the VAR_DECL.
1257         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1258         (tree_output_constant_def): New global function.
1259         (mark_constant): Use the expression of the VAR_DECL.
1260         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1261         its expression.
1262         (output_object_block): Likewise and assemble the expression.
1263
1264 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1265
1266         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1267         hash_tree, eq_tree): New tree hash table.
1268         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1269         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1270         lto_orig_address_remove): Reimplement.
1271
1272 2010-04-28  Xinliang David Li  <davidxl@google.com>
1273
1274         PR c/42643
1275         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1276         (compute_uninit_opnds_pos): New function.
1277         (is_non_loop_exit_postdominating): New function.
1278         (compute_control_dep_chain): New function.
1279         (find_pdom): New function.
1280         (convert_control_dep_chain_into_preds): New function.
1281         (find_predicates): New function.
1282         (find_control_equiv_block): New function.
1283         (collect_phi_def_edges): New function.
1284         (find_def_preds): New function.
1285         (find_dom): New function.
1286         (dump_predicates): New function.
1287         (get_cmp_code): New function.
1288         (is_value_included_in): New function.
1289         (find_matching_predicate_in_rest_chains): New function.
1290         (use_pred_not_overlap_with_undef_path_pred): New function.
1291         (is_use_properly_guarded): New function.
1292         (normalize_cond_1): New function.
1293         (is_and_or_or): New function.
1294         (normalize_cond): New function.
1295         (is_gcond_subset_of): New function.
1296         (is_subset_of_any): New function.
1297         (is_or_set_subset_of): New function.
1298         (is_and_set_subset_of): New function.
1299         (is_norm_cond_subset_of): New function.
1300         (is_pred_expr_subset_of): New function.
1301         (is_pred_chain_subset_of): New function.
1302         (is_included_in): New function.
1303         (is_superset_of): New function.
1304         (find_uninit_use): New function.
1305         (warn_uninitialized_phi): New function.
1306         (compute_possibly_undefined_names): New function.
1307         (ssa_undefined_value_p): New function.
1308         (execute_late_warn_uninitialized): New function.
1309         * tree-ssa.c (ssa_undefined_value_p): Removed.
1310         (warn_uninit): Changed to extern.
1311         (warn_uninitialized_phi): Removed.
1312         (warn_uninitialized_vars): Changed to extern.
1313         (execute_late_warn_uninitialized): Removed
1314         * tree-flow.h: Add new prototypes.
1315         * timevar.def: Add new time variable.
1316         * Makefile.in: Add new build file.
1317
1318 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1319
1320         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1321         type if available.
1322
1323 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1324
1325         PR target/22224
1326         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1327
1328 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1329
1330         * cgraph.h (struct cgraph_node): New field indirect_calls.
1331         (struct cgraph_indirect_call_info): New type.
1332         (struct cgraph_edge): Removed field indirect_call. New fields
1333         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1334         (cgraph_create_indirect_edge): Declare.
1335         (cgraph_make_edge_direct): Likewise.
1336         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1337         * ipa-prop.h (struct ipa_param_call_note): Removed.
1338         (struct ipa_node_params): Removed field param_calls.
1339         (ipa_create_all_structures_for_iinln): Declare.
1340         * cgraph.c: Described indirect edges and uids in initial comment.
1341         (cgraph_add_edge_to_call_site_hash): New function.
1342         (cgraph_edge): Search also among the indirect edges, use
1343         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1344         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1345         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1346         site hash.
1347         (initialize_inline_failed): Assign a reason to indirect edges.
1348         (cgraph_create_edge_1): New function.
1349         (cgraph_create_edge): Moved some functionality to
1350         cgraph_create_edge_1.
1351         (cgraph_create_indirect_edge): New function.
1352         (cgraph_edge_remove_callee): Add an assert checking for
1353         non-indirectness.
1354         (cgraph_edge_remove_caller): Special-case indirect edges.
1355         (cgraph_remove_edge): Likewise.
1356         (cgraph_set_edge_callee): New function.
1357         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1358         (cgraph_make_edge_direct): New function.
1359         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1360         the declaration of the call statement matches.
1361         (cgraph_node_remove_callees): Special-case indirect edges.
1362         (cgraph_clone_edge): Likewise.
1363         (cgraph_clone_node): Clone also the indirect edges.
1364         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1365         indirect_call, dump count of indirect_calls edges.
1366         * ipa-prop.c (iinlining_processed_edges): New variable.
1367         (ipa_note_param_call): Create indirect edges instead of
1368         creating notes.  New parameter node.
1369         (ipa_analyze_call_uses): New parameter node, pass it on to
1370         ipa_note_param_call.
1371         (ipa_analyze_stmt_uses): Likewise.
1372         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1373         (print_edge_addition_message): Work on edges rather than on notes.
1374         (update_call_notes_after_inlining): Likewise, renamed to
1375         update_indirect_edges_after_inlining.
1376         (ipa_create_all_structures_for_iinln): New function.
1377         (ipa_free_node_params_substructures): Do not free notes.
1378         (ipa_edge_duplication_hook): Propagate bits within
1379         iinlining_processed_edges bitmap.
1380         (ipa_node_duplication_hook): Do not duplicate notes.
1381         (free_all_ipa_structures_after_ipa_cp): Renamed to
1382         ipa_free_all_structures_after_ipa_cp.
1383         (free_all_ipa_structures_after_iinln): Renamed to
1384         ipa_free_all_structures_after_iinln.g
1385         (ipa_write_param_call_note): Removed.
1386         (ipa_read_param_call_note): Removed.
1387         (ipa_write_indirect_edge_info): New function.
1388         (ipa_read_indirect_edge_info): Likewise.
1389         (ipa_write_node_info): Do not stream notes, do stream information
1390         in indirect edges.
1391         (ipa_read_node_info): Likewise.
1392         (lto_ipa_fixup_call_notes): Removed.
1393         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1394         * ipa-inline.c (pass_ipa_inline): Likewise.
1395         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1396         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1397         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1398         is_gimple_call.
1399         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1400         edges.
1401         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1402         (output_cgraph): Stream also indirect edges.
1403         (lto_output_edge): Added capability to stream indirect edges.
1404         (input_edge): Likewise.
1405         (input_cgraph_1): Likewise.
1406         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1407         of indirect edges.
1408
1409 2010-04-28  Richard Guenther  <rguenther@suse.de>
1410
1411         PR tree-optimization/43879
1412         PR tree-optimization/43909
1413         * tree-ssa-structalias.c (struct variable_info): Add
1414         only_restrict_pointers flag.
1415         (new_var_info): Initialize it.  Increment stats.total_vars here.
1416         (create_function_info_for): Do not increment stats.total_vars
1417         here.
1418         (get_function_part_constraint): Fix build with C++.
1419         (insert_into_field_list): Remove.
1420         (push_fields_onto_fieldstack): Properly merge fields.
1421         (create_variable_info_for): Split and simplify.
1422         (create_variable_info_for_1): New piece.
1423         (intra_create_variable_infos): Properly make restrict constraints
1424         from parameters.
1425
1426 2010-04-28  Richard Guenther  <rguenther@suse.de>
1427
1428         PR c++/43880
1429         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1430
1431 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1432             Jan Hubicka <hubicka@ucw.cz>
1433
1434         * doc/invoke.texi (-Wsuggest-attribute=const,
1435         -Wsuggest-attribute=pure): Document.
1436         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1437         (function_always_visible_to_compiler_p,
1438         suggest_attribute, warn_function_pure, warn_function_const):
1439         New functions.
1440         (check_call): Improve debug info.
1441         (analyze_function): Do not check availability.
1442         (add_new_function): Check availability.
1443         (propagate): Output warnings.
1444         (skip_function_for_local_pure_const): New function.
1445         (local_pure_const): Use it; output warnings.
1446         * common.opt (Wsuggest-attribute=const,
1447         Wsuggest-attribute=pure): New.
1448
1449 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1450
1451         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1452         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1453         or DW_CFA_def_cfa_offset{,_sf}.
1454
1455 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1456
1457         * tree.h: Fix truncated long macros.
1458
1459 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1460
1461         * collect2.c (TARGET_64BIT): Redefine to target's default.
1462         * tlink.c: Likewise.
1463         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1464         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1465         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1466         for underscoring __USER_LABEL_PREFIX__.
1467         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1468         (SUB_LINK_ENTRY32): New.
1469         (SUB_LINK_ENTRY64): New.
1470         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1471         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1472         (SUB_LINK_ENTRY64): New.
1473         (SUB_LINK_ENTRY): New.
1474         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1475         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1476         x64 target is choosen.
1477         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1478         * configure: Regenerated.
1479         * configure.ac (leading-mingw64-underscores): Option added.
1480
1481 2010-04-27  Jan Hubicka  <jh@suse.cz>
1482
1483         * doc/invoke.texi (-fipa-profile): Document.
1484         * opts.c (decode_options): Enable ipa-profile at -O1.
1485         * timevar.def (TV_IPA_PROFILE): Define.
1486         * common.opt (fipa-profile): Add.
1487         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1488         flag for clones.
1489         (cgraph_propagate_frequency): Handle only local ones.
1490         * tree-pass.h (pass_ipa_profile): Declare.
1491         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1492         (pass_ipa_profile): Use TV_IPA_PROFILE.
1493         * ipa.c (ipa_profile): New function.
1494         (gate_ipa_profile): Likewise.
1495         (pass_ipa_profile): New global variable.
1496         * passes.c (pass_ipa_profile): New.
1497
1498 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1499
1500         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1501
1502 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1503
1504         PR middle-end/43812
1505         * ipa.c (dissolve_same_comdat_group_list): New function.
1506         (function_and_variable_visibility): Call
1507         dissolve_same_comdat_group_list when comdat group contains external or
1508         newly local nodes.
1509         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1510         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1511
1512 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1513
1514         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1515         (const_hash_1) <VECTOR_CST>: New case.
1516         (compare_constant) <VECTOR_CST>: Likewise.
1517         <ADDR_EXPR>: Deal with LABEL_REFs.
1518         (copy_constant) <VECTOR_CST>: New case.
1519
1520 2010-04-27  Jan Hubicka  <jh@suse.cz>
1521
1522         * cgraph.c (cgraph_propagate_frequency): New function.
1523         * cgraph.h (cgraph_propagate_frequency): Declare.
1524         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1525         cgraph_propagate_frequency.
1526
1527 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1528
1529         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1530
1531 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1532
1533         PR target/40657
1534         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1535         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1536         here to determine which regs to push and how much stack to reserve.
1537
1538 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1539
1540         * doc/gimple.texi (gimple_statement_with_ops): Remove
1541         addresses_taken field.
1542         (gimple_statement_with_memory_ops): Likewise.
1543
1544 2010-04-27  Jan Hubicka  <jh@suse.cz>
1545
1546         * tree-inline.c (eni_inlining_weights): Remove.
1547         (estimate_num_insns): Special case more builtins.
1548
1549 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1550
1551         PR c/32207
1552         * c-typeck.c (build_binary_op): Move forward check for comparison
1553         pointer with null pointer constant and adjust the diagnostic message.
1554
1555 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1556
1557         PR lto/42776
1558         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1559         binutils supports extended .section directive needed by LTO, or
1560         warn if older binutils found.
1561         (LTO_BINARY_READER): New AC_SUBST'd variable.
1562         (LTO_USE_LIBELF): Likewise.
1563         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1564         variable.
1565         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1566         (LTO_USE_LIBELF): Likewise.
1567         * configure: Regenerate.
1568
1569         * collect2.c (is_elf): Rename from this ...
1570         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1571          object files in addition to ELF-formatted ones.
1572         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1573         symbol to be prefixed or not by an extra underscore.
1574
1575         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1576         * config/i386/winnt.c: Also #include lto-streamer.h
1577         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1578         LTO named sections.
1579         (i386_pe_asm_output_aligned_decl_common): Add comment.
1580         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1581
1582 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1583
1584         PR target/43889
1585         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1586         Add missing earlyclobber for second alternative.
1587
1588 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1589
1590         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1591         bits for artificial defs at the top of the block.
1592         * fwprop.c (single_def_use_enter_block): Don't call it.
1593
1594 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1595
1596         PR 43715
1597         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1598         instead of "$gcc_cv_objdump -T".
1599         Use "-undefined dynamic_lookup" on darwin.
1600         * gcc/configure: Regenerate.
1601
1602 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1603
1604         PR c/43893
1605         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1606
1607 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1608
1609         * c-parser.c (struct c_token): Move location field up.
1610         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1611         (struct c_declspecs): Convert typespec_word, storage_class, and
1612         default_int_p into bitfields.
1613         (struct c_declarator): Move loc field up.
1614
1615 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1616
1617         * cfgloop.h (struct loop): Move can_be_parallel field up.
1618         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1619         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1620         down.
1621         (struct iv_cand): Convert pos field into a bitfield.
1622         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1623         field up.
1624         (struct _stmt_vec_info): Shuffle fields for better packing.
1625
1626 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1627
1628         * varasm.c (IN_NAMED_SECTION): Remove guard.
1629         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1630         (IN_NAMED_SECTION_P): ...this.
1631         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1632         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1633
1634 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1635
1636         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1637         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1638         of shadowing it.  Fix comments.
1639
1640 2010-04-26  Jan Hubicka  <jh@suse.cz>
1641
1642         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1643         (cgraph_clone_node): Copy function frequency.
1644         * cgraph.h (node_frequency): New enum
1645         (struct cgraph_node): Add.
1646         * final.c (rest_of_clean_state): Update.
1647         * lto-cgraph.c (lto_output_node): Output node frequency.
1648         (input_overwrite_node): Input node frequency.
1649         * tre-ssa-loop-ivopts (computation_cost): Update.
1650         * lto-streamer-out.c (output_function): Do not output function
1651         frequency.
1652         * predict.c (maybe_hot_frequency_p): Update and handle functions
1653         executed once.
1654         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1655         attribute lookup.
1656         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1657         (compute_function_frequency): Set noreturn functions to be executed
1658         once.
1659         (choose_function_section): Update.
1660         * lto-streamer-in.c (input_function): Do not input function frequency.
1661         * function.c (allocate_struct_function): Do not initialize function
1662         frequency.
1663         * function.h (function_frequency): Remove.
1664         (struct function): Remove function frequency.
1665         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1666         (try_update): Update.
1667         * tree-inline.c (initialize_cfun): Do not update function frequency.
1668         * passes.c (pass_init_dump_file): Update.
1669         * i386.c (ix86_compute_frame_layout): Update.
1670         (ix86_pad_returns): Update.
1671
1672 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1673
1674         PR tree-optimization/43833
1675         * tree-vrp.c (range_int_cst_p): New.
1676         (range_int_cst_singleton_p): New.
1677         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1678         when both operands are constants.  Use range_int_cst_p in
1679         BIT_IOR_EXPR case.
1680
1681 2010-04-26  Jan Hubicka  <jh@suse.cz>
1682
1683         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1684
1685 2010-04-26  Richard Guenther  <rguenther@suse.de>
1686
1687         PR lto/43080
1688         * gimple.c (gimple_decl_printable_name): Deal gracefully
1689         with a NULL DECL_NAME.
1690
1691 2010-04-26  Richard Guenther  <rguenther@suse.de>
1692
1693         PR lto/42425
1694         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1695         if emitting debug information and it is either a function
1696         or a namespace decl.
1697
1698 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1699
1700         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1701         determine if the statement is vectorizable, and a macro to access it.
1702         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1703         Skip statements that can't be vectorized. If the analysis fails,
1704         mark the statement as unvectorizable if vectorizing basic block.
1705         (vect_compute_data_refs_alignment): Likewise.
1706         (vect_verify_datarefs_alignment): Skip statements marked as
1707         unvectorizable. Add print.
1708         (vect_analyze_group_access): Skip statements that can't be
1709         vectorized. If the analysis fails, mark the statement as
1710         unvectorizable if vectorizing basic block.
1711         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1712         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1713         generated stmts for SLP.
1714         (new_stmt_vec_info): Initialize the new field.
1715         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1716         statements marked as unvectorizable.
1717
1718 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1719
1720         * c-common.c (flag_isoc1x): New.
1721         (flag_isoc99): Update comment.
1722         * c-common.h (flag_isoc1x): New.
1723         (flag_isoc99): Update comment.
1724         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1725         __<type>_DECIMAL_DIG__.
1726         * c-opts.c (set_std_c1x): New.
1727         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1728         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1729         * c.opt (-std=c1x, -std=gnu1x): New options.
1730         * doc/cpp.texi: Mention -std=c1x.
1731         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1732         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1733         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1734         * doc/standards.texi: Mention C1X.
1735         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1736         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1737         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1738         Define for C1X.
1739
1740 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1741
1742         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1743         placeholder from 0x%x to %#x.
1744         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1745         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1746         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1747         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1748         * config/i386/i386.c (ix86_target_string): Ditto.
1749         (output_pic_addr_const): Ditto.
1750         (print_operand): Ditto.
1751
1752 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1753
1754         * combine.c (find_split_point): Add third argument.  Use it
1755         to find nested multiply-accumulate instructions.  Adjust calls.
1756         (try_combine): Adjust call to find_split_point.
1757
1758 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1759
1760         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1761
1762 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1763
1764         PR tree-optimization/41442
1765         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1766         (fold_binary_loc): Call it.
1767
1768 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1769
1770         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1771         * opts.c (common_handle_option): Allow disabling it.
1772         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1773
1774 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1775
1776         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1777         between modes if both types are integral.
1778
1779 2010-04-23  Richard Guenther  <rguenther@suse.de>
1780
1781         PR tree-optimization/43572
1782         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1783
1784 2010-04-23  Richard Guenther  <rguenther@suse.de>
1785
1786         PR lto/43455
1787         * tree-inline.c (tree_can_inline_p): Also check compatibility
1788         of return types.
1789
1790 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1791
1792         PR tree-optimization/43846
1793         * tree-sra.c (struct access): New flag grp_assignment_read.
1794         (build_accesses_from_assign): Set grp_assignment_read.
1795         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1796         (enum mark_read_status): New type.
1797         (analyze_access_subtree): Propagate grp_assignment_read, create
1798         accesses also if both direct_read and root->grp_assignment_read.
1799
1800 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1801
1802         PR middle-end/43835
1803         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1804         function does not have type attributes.
1805
1806 2010-04-23  Richard Guenther  <rguenther@suse.de>
1807
1808         PR lto/42653
1809         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1810         of FUNCTION_DECLs.
1811
1812 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1813
1814         * sese.h (create_if_region_on_edge): Remove.
1815
1816         * sese.c (create_if_region_on_edge): Make static.
1817
1818         * tree-inline.c: Do not include ggc.h.
1819
1820         * expr.c: Do not include ggc.h.
1821
1822         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1823         dependencies.
1824
1825 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1826
1827         PR target/43744
1828         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1829         in the middle of insns for casesi_worker_2.
1830
1831 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1832
1833         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1834
1835 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1836
1837         PR tree-optimization/43842
1838         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1839         loop unrolling in update of exit phis. Fix comment.
1840         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1841         least two reduction statements in the loop before starting SLP
1842         analysis.
1843
1844 2010-04-22  Nick Clifton  <nickc@redhat.com>
1845
1846         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1847
1848 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1849
1850         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1851         to simplify a + ~a.
1852
1853 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1854
1855         * tree-parloops.c (loop_parallel_p): New argument
1856         parloop_obstack.  Pass it down.
1857         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1858         pass it down, free it.
1859
1860         * tree-loop-linear.c (linear_transform_loops): Pass down
1861         lambda_obstack.
1862
1863         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1864         of type struct obstack *.
1865
1866         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1867         scratch_obstack.  Initialize it, pass down, free it.
1868
1869         * lambda.h (lambda_loop_new): Remove.
1870         (lambda_matrix_new, lambda_matrix_inverse)
1871         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1872         argument of type struct obstack *.
1873
1874         * lambda-trans.c (lambda_trans_matrix_new): New argument
1875         lambda_obstack.  Pass it down, use obstack allocation for ret.
1876         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1877         it down.
1878
1879         * lambda-mat.c (lambda_matrix_get_column)
1880         (lambda_matrix_project_to_null): Remove.
1881         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1882         allocation for mat.
1883         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1884         lambda_obstack.
1885
1886         * lambda-code.c (lambda_loop_new): New function.
1887         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1888         (lambda_compute_auxillary_space, lambda_compute_target_space)
1889         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1890         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1891         (build_access_matrix): New argument lambda_obstack.  Use obstack
1892         allocation for am.
1893         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1894         argument lambda_obstack.  Pass it down.
1895
1896 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1897
1898         * optabs.h (expand_widening_mult): Declare.
1899
1900 2010-04-22  Richard Guenther  <rguenther@suse.de>
1901
1902         PR tree-optimization/43845
1903         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1904         lookup the CALL_EXPR function and arguments.
1905
1906 2010-04-22  Nick Clifton  <nickc@redhat.com>
1907
1908         * config/stormy16/stormy16.c
1909         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1910         * config/stormy16/stormy16.h: Tidy up formatting.
1911         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1912         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1913         (ineqbranchsi): Delete pattern.
1914         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1915         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1916         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1917         stormy16-lib2-ucmpsi2.c.
1918
1919 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1920
1921         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1922         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1923         extra set merge_set_noclobber, and use it to relax the final test
1924         slightly.
1925         * df.h (df_simulate_find_noclobber_defs): Declare.
1926         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1927         conditional defs.
1928         (df_simulate_find_noclobber_defs): New function.
1929
1930 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1931
1932         * config/i386/i386.md: Use {} around multi-line preparation statements.
1933
1934 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1935
1936         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1937         (process_init_element): New argument of type struct obstack *.
1938
1939         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1940         (set_init_index, set_init_label, set_nonincremental_init)
1941         (set_nonincremental_init_from_string, find_init_member)
1942         (output_init_element, output_pending_init_elements)
1943         (process_init_element): New argument braced_init_obstack.  Pass it
1944         down.
1945         (push_range_stack, add_pending_init): New argument
1946         braced_init_obstack.  Use obstack allocation.
1947
1948         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1949         braced_init_obstack.  Pass it down.
1950         (c_parser_braced_init): New variables ret, braced_init_obstack.
1951         Initialize obstack, pass it down and finally free it.
1952
1953 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1954
1955         PR middle-end/29274
1956         * tree-pass.h (pass_optimize_widening_mul): Declare.
1957         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1958         gate_optimize_widening_mul): New static functions.
1959         (pass_optimize_widening_mul): New.
1960         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1961         <case MULT_EXPR>: Remove support for widening multiplies.
1962         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1963         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1964         simplify_gen_unary rather than directly building extensions.
1965         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1966         WIDEN_MULT_EXPR.
1967         * expmed.c (expand_widening_mult): New function.
1968         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1969
1970 2010-04-21  Jan Hubicka  <jh@suse.cz>
1971
1972         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1973         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1974         * lto-wpa-fixup.c: Remove.
1975         * Makefile.in (lto-wpa-fixup.o): Remove.
1976         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1977         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1978         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1979
1980 2010-04-21  Jan Hubicka  <jh@suse.cz>
1981
1982         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1983         add write_optimization_summary, read_optimization_summary.
1984         (ipa_write_summaries_of_cgraph_node_set): Remove.
1985         (ipa_write_optimization_summaries): Declare.
1986         (ipa_read_optimization_summaries): Declare.
1987         * ipa-cp.c (pass_ipa_cp): Update.
1988         * ipa-reference.c (pass_ipa_reference): Update.
1989         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1990         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1991         Update.
1992         * ipa-inline.c (pass_ipa_inline): Update.
1993         * ipa.c (pass_ipa_whole_program): Update.
1994         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1995         * passes.c (ipa_write_summaries_1): Do not test wpa.
1996         (ipa_write_optimization_summaries_1): New.
1997         (ipa_write_optimization_summaries): New.
1998         (ipa_read_summaries): Do not test ltrans.
1999         (ipa_read_optimization_summaries_1): New.
2000         (ipa_read_optimization_summaries): New.
2001
2002 2010-04-21  Jan Hubicka  <jh@suse.cz>
2003
2004         * lto-cgraph.c (lto_output_node): Do not output comdat groups
2005         for boundary nodes.
2006         (output_cgraph): Do not arrange comdat groups for boundary nodes.
2007
2008 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2009
2010         PR debug/40040
2011         * dwarf2out.c (add_name_and_src_coords_attributes): Add
2012         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
2013
2014 2010-04-21  Jan Hubicka  <jh@suse.cz>
2015
2016         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
2017
2018 2010-04-21  Jan Hubicka  <jh@suse.cz>
2019
2020         * varpool.c (decide_is_variable_needed): Variable is always needed
2021         during ltrans.
2022
2023 2010-04-21  Jan Hubicka  <jh@suse.cz>
2024
2025         * opts.c (decode_options): Enable pure-const pass for whopr.
2026
2027 2010-04-21  Jan Hubicka  <jh@suse.cz>
2028
2029         * cgraph.c (dump_cgraph_node): Dump also assembler name.
2030         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
2031         at WPA dumping.
2032         (cgraph_decide_inlining): Do not expect callee to be removed in all
2033         cases.
2034
2035 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
2036
2037         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
2038
2039 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2040
2041         * config/i386/i386.md (x86_shrd): Add athlon_decode and
2042         amdfam10_decode attributes.
2043
2044 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2045
2046         PR middle-end/43570
2047         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
2048         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
2049         (lower_copyprivate_clauses): Use private var in outer
2050         context instead of original var.  Make sure the types
2051         are correct for VLAs.
2052
2053 2010-04-21  Richard Guenther  <rguenther@suse.de>
2054
2055         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
2056         to non-pointer objects.
2057
2058 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2059
2060         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
2061         last chain entry if it starts with the still current label.
2062         (add_location_or_const_value_attribute): Check that
2063         loc_list->first->next is NULL instead of comparing ->first with ->last.
2064         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
2065         to add_var_loc_to_decl.
2066
2067         * dwarf2out.c (output_call_frame_info): For dw_cie_version
2068         >= 4 add also address size and segment size fields into CIE header.
2069
2070         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
2071         long as address size is the same as sizeof (void *) and
2072         segment size is 0.
2073         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
2074         address size or segment size is unexpected, return DW_EH_PE_omit.
2075         (classify_object_over_fdes): If get_cie_encoding returned
2076         DW_EH_PE_omit, return -1.
2077         (init_object): If classify_object_over_fdes returned -1,
2078         pretend there were no FDEs at all.
2079
2080 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2081
2082         * config/i386/i386.md (bswap<mode>2): Macroize expander from
2083         bswap{si,di}2 using SWI48 mode iterator.
2084         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
2085         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
2086         set modrm attribute of bswap insn to 0 and remove length attribute.
2087         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
2088         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
2089         set mode attribute to <MODE> and remove length attribute.
2090
2091 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
2092
2093         PR rtl-optimization/43520
2094         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
2095         zero available registers.
2096
2097 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2098
2099         * builtins.c (fold_builtin_cproj): Fold more cases.
2100
2101 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2102
2103         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
2104         (fold_builtin_1): Fold builtin cproj.
2105         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
2106         Use ATTR_CONST_NOTHROW_LIST.
2107
2108 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
2109
2110         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
2111         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
2112         ffsi2_no_cmove for !TARGET_CMOVE.
2113         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
2114         (ffssi2): Remove expander.
2115         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
2116         mode iterator.
2117         (ctz<mode>2): Ditto from ctz{si,di}2.
2118         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
2119         mode iterator.
2120         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
2121         mode iterator.
2122
2123 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2124
2125         * dwarf2out.c (AT_linkage_name): Define.
2126         (clone_as_declaration): Handle DW_AT_linkage_name.
2127         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
2128         of DW_AT_MIPS_linkage_name.
2129         (move_linkage_attr): Likewise.
2130         (dwarf2out_finish): Likewise.
2131
2132 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
2133
2134         PR middle-end/41952
2135         * fold-const.c (fold_comparison): New folding rule.
2136
2137 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
2138
2139         * double-int.h (double_int_setbit): Declare.
2140         * double-int.c (double_int_setbit): New function.
2141         * rtl.h (immed_double_int_const): Declare.
2142         * emit-rtl.c (immed_double_int_const): New function.
2143         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
2144         and immed_double_int_const functions.
2145         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
2146         expand_copysign_bit):  (Ditto.).
2147         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
2148         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2149         * dojump.c (prefer_and_bit_test): (Ditto.).
2150         * expr.c (convert_modes, reduce_to_bit_field_precision,
2151         const_vector_from_tree): (Ditto.).
2152         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2153
2154 2010-04-20  Jan Hubicka  <jh@suse.cz>
2155
2156         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2157         (dump_cgraph_node): Dump new flags.
2158         * cgraph.h (struct cgraph_node): Add flags
2159         reachable_from_other_partition and in_other_partition.
2160         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2161         other partition can not be removed.
2162         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2163         the other partition must be output; silence sanity checking on
2164         leaking functions bodies from other paritition.
2165         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2166         (lto_output_node): Output new flags; do not sanity check that inline
2167         clones are output; drop lto_forced_extern_inline_p code; do not mock
2168         visibility flags at partition boundaries.
2169         (add_node_to): New function.
2170         (output_cgraph): Use it to sort functions so masters appear before
2171         clones.
2172         (input_overwrite_node): Input new flags.
2173         * passes.c (ipa_write_summaries): Do not call
2174         lto_new_extern_inline_states.
2175         * lto-section-out.c (forced_extern_inline,
2176         lto_new_extern_inline_states lto_delete_extern_inline_states,
2177         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2178         * lto-streamer.h (lto_new_extern_inline_states,
2179         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2180         lto_forced_extern_inline_p): Kill.
2181
2182 2010-04-20  Richard Guenther  <rguenther@suse.de>
2183
2184         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2185         from vars that can have pointers.
2186         (process_constraint): Dump useless constraints.
2187
2188 2010-04-20  Richard Guenther  <rguenther@suse.de>
2189
2190         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2191         (dump_sa_points_to_info): Remove asserts.
2192         (init_base_vars): nothing_id isn't an escape point nor does it
2193         have pointers.
2194
2195 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2196
2197         * tree.h (TYPE_REF_IS_RVALUE): Define.
2198         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2199         should_move_die_to_comdat, prune_unused_types_walk): Handle
2200         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2201         (modified_type_die, gen_reference_type_die): Emit
2202         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2203         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2204
2205 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2206
2207         PR target/43635
2208         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2209         calls for -fpic -m31 if they have been sibcall optimized.
2210
2211 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2212
2213         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2214         ar.lc fixed and call-used.
2215
2216         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2217
2218 2010-04-19  Jan Hubicka  <jh@suse.cz>
2219
2220         * opts.c (decode_options): Disable whpr incompatible passes.
2221         * lto/lto.c (lto_1_to_1_map): Skip clones.
2222         (read_cgraph_and_symbols): Do not mark everything as needed.
2223         (do_whole_program_analysis): Do map only after optimizing;
2224         set proper cgraph_state; use passmanager.
2225
2226 2010-04-19  DJ Delorie  <dj@redhat.com>
2227
2228         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2229         POINTER_PLUS_EXPR and fix them.
2230
2231 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2232
2233         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2234         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2235         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2236         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2237         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2238         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2239         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2240         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2241         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2242         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2243         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2244
2245 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2246
2247         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2248         (check_cond_move_block): Likewise.
2249         (cond_move_process_if_block): Likewise.
2250         (noce_find_if_block): Improve formatting.
2251         (find_if_header): Pass 0 to memset and tweak conditions.
2252         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2253
2254 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2255
2256         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2257         for -gdwarf-4.
2258
2259         PR middle-end/43337
2260         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2261         with non-local decl doesn't need chain.
2262
2263 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2264
2265         * ira-color.c (allocno_reload_assign): Avoid accumulating
2266         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2267
2268 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2269
2270         * gimple.h (create_tmp_reg): Declare.
2271         * gimplify.c (create_tmp_reg): New function.
2272         (gimplify_return_expr): Use create_tmp_reg.
2273         (gimplify_omp_atomic): Likewise.
2274         (gimple_regimplify_operands): Likewise.
2275         * tree-dfa.c (make_rename_temp): Likewise.
2276         * tree-predcom.c (predcom_tmp_var): Likewise.
2277         (reassociate_to_the_same_stmt): Likewise.
2278         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2279         (get_replaced_param_substitute): Likewise.
2280         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2281         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2282         * tree-ssa-pre.c (get_representative_for): Likewise.
2283         (create_expression_by_pieces): Likewise.
2284         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2285         (create_tailcall_accumulator): Likewise.
2286
2287 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2288
2289         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2290         new_stmt.
2291         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2292
2293 2010-04-19  Richard Guenther  <rguenther@suse.de>
2294
2295         PR tree-optimization/43796
2296         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2297         from SCEV in the lattice.
2298         (vrp_visit_phi_node): Dump change.
2299
2300 2010-04-19  Richard Guenther  <rguenther@suse.de>
2301
2302         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2303         * configure: Re-generated.
2304
2305 2010-04-19  Richard Guenther  <rguenther@suse.de>
2306
2307         PR tree-optimization/43783
2308         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2309         constant ARRAY_REF operands two and three if possible.
2310
2311 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2312
2313         PR target/43766
2314         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2315
2316 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2317
2318         PR target/43662
2319         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2320
2321 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2322
2323         PR tree-optimization/37027
2324         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2325         and macro to access it.
2326         (vectorizable_reduction): Add argument.
2327         (vect_get_slp_defs): Likewise.
2328         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2329         statements for possible use in SLP.
2330         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2331         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2332         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2333         add new argument.
2334         (vectorizable_reduction): Likewise.
2335         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2336         vect_get_slp_defs.
2337         (vectorizable_type_demotion, vectorizable_type_promotion,
2338         vectorizable_store): Likewise.
2339         (vect_analyze_stmt): Update call to vectorizable_reduction.
2340         (vect_transform_stmt): Likewise.
2341         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2342         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2343         from different interleaving chains in same node.
2344         (vect_slp_rearrange_stmts): New function.
2345         (vect_supported_load_permutation_p): Allow load permutations for
2346         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2347         inside SLP nodes if necessary.
2348         (vect_analyze_slp_instance): Handle reductions.
2349         (vect_analyze_slp): Try to build SLP instances originating from groups
2350         of reductions.
2351         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2352         (vect_get_constant_vectors): Create initial vectors for reductions
2353         according to reduction code. Add new argument.
2354         (vect_get_slp_defs): Add new argument, pass it to
2355         vect_get_constant_vectors.
2356         (vect_schedule_slp_instance): Remove SLP tree root statements.
2357
2358 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2359
2360         * tree.h (ENUM_IS_SCOPED): Define.
2361         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2362         for ENUM_IS_SCOPED enums.
2363
2364 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         * fold-const.c (fold_comparison): Use ssizetype.
2367         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2368         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2369         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2370         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2371
2372         * tree.h (initialize_sizetypes): Remove parameter.
2373         (build_common_tree_nodes): Remove second parameter.
2374         * stor-layout.c (initialize_sizetypes): Remove parameter.
2375         Always create an unsigned type.
2376         (set_sizetype): Assert that the passed type is unsigned and simplify.
2377         * tree.c (build_common_tree_nodes): Remove second parameter.
2378         Adjust call to initialize_sizetypes.
2379         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2380         build_common_tree_nodes.
2381
2382 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2383
2384         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2385
2386 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2387
2388         PR tree-optimization/43771
2389         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2390         load permutation doesn't have gaps.
2391
2392 2010-04-18  Jan Hubicka  <jh@suse.cz>
2393
2394         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2395         (sse_prologue_save_insn expander): Use new pattern.
2396         (sse_prologue_save_insn1): New pattern and splitter.
2397         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2398         blocks.
2399         * i386.c (setup_incoming_varargs_64): Do not compute jump
2400         destination here.
2401         (ix86_gimplify_va_arg): Update alignment needed.
2402         (ix86_local_alignment): Do not align all local arrays to 128bit.
2403
2404 2010-04-17  Jan Hubicka  <jh@suse.cz>
2405
2406         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2407
2408 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2409
2410         * arm.md (negdi2): Remove redundant code to force values into a
2411         register.
2412
2413 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2414
2415         * arm/bpabi.S: Add EABI alignment attributes to objects.
2416         * arm/bpabi-v6m.S: Likewise.
2417         * arm/crti.asm: Likewise.
2418         * arm/crtn.asm: Likewise.
2419         * arm/lib1funcs.asm: Likewise.
2420         * arm/libunwind.S: Likewise.
2421
2422 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2423
2424         * arm-protos.h (tune_params): New structure.
2425         * arm.c (current_tune): New variable.
2426         (arm_constant_limit): Delete.
2427         (struct processors): Add pointer to the tune parameters.
2428         (arm_slowmul_tune): New tuning option.
2429         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2430         (all_cores): Adjust to pick up the tuning model.
2431         (arm_constant_limit): New function.
2432         (arm_override_options): Select the appropriate tuning model.  Delete
2433         initialization of arm_const_limit.
2434         (arm_split_constant): Use the new constant-limit model.
2435         (arm_rtx_costs): Pick up the current tuning model.
2436         * arm.md (is_strongarm, is_xscale): Delete.
2437         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2438         for Xscale variant architectures.
2439         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2440
2441 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2442
2443         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2444         can_shift.
2445         (arm_rtx_costs_1): Remove unused variable extra_cost.
2446         (arm_unwind_emit_set): Use variable offset.
2447         (thumb1_output_casesi): Remove unused variable flags.
2448
2449 2010-04-16  Jeff Law  <law@redhat.com>
2450
2451         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2452         needing assignment rather than doing a two-phase assignment.  Remove
2453         unused variable 'm'.
2454
2455 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2456
2457         PR bootstrap/43767
2458         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2459
2460 2010-04-16  Doug Kwan  <dougkwan@google.com>
2461
2462         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2463         (next_operand_entry_id): New static variable.
2464         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2465         (add_to_ops_vec): Assigned unique ID to operand entry.
2466         (struct oecount_s): New field ID.
2467         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2468         (undistribute_ops_list): Assign unique IDs to oecounts.
2469         (init_reassoc): reset next_operand_entry_id.
2470
2471 2010-04-16  Doug Kwan  <dougkwan@google.com>
2472
2473         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2474         missing left parenthesis.
2475
2476 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2477
2478         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2479         *btdi_rex64 using SWI48 mode iterator.
2480         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2481         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2482         *jcc_btdi_mask_rex64.
2483
2484 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2485
2486         * double-int.h (tree_to_double_int): Convert to macro.
2487         * double-int.c (tree_to_double_int): Remove.
2488
2489 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2490
2491         PR debug/43762
2492         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2493         with want_address 2 and in case a single element list might be
2494         possible, call it again with want_address 0.
2495
2496 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2497
2498         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2499         case 'W' print operands for HI mode.
2500         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2501         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2502         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2503         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2504
2505         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2506
2507         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2508         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2509         #xx:3 and #xx:4 mode.
2510
2511         * config/h8300/h8300.md (inverted load with HImode dest): Add
2512         support for H8300SX.
2513
2514         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2515         satisfy 'U' constraint.
2516
2517 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2518
2519         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2520         * configure: Regenerate.
2521         * config.in: Regenerate.
2522         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2523         works.
2524
2525 2010-04-16  Richard Guenther  <rguenther@suse.de>
2526
2527         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2528         (struct tree_decl_common): ... here.
2529         (DECL_PT_UID): Adjust.
2530         (SET_DECL_PT_UID): Likewise.
2531         (DECL_PT_UID_SET_P): Likewise.
2532
2533 2010-04-16  Richard Guenther  <rguenther@suse.de>
2534
2535         PR tree-optimization/43572
2536         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2537         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2538         * tree-flow.h (is_call_clobbered): Remove.
2539         * tree-flow-inline.h (is_call_clobbered): Likewise.
2540         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2541         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2542         (execute_return_slot_opt): Adjust.
2543         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2544         check for call clobbered vars here.
2545         (find_tail_calls): Move tailcall verification to the
2546         proper place.
2547
2548 2010-04-16  Diego Novillo  <dnovillo@google.com>
2549
2550         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2551
2552 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2553
2554         PR target/40603
2555         * config/arm/arm.md (cbranchqi4): New pattern.
2556         * config/arm/predicates.md (const0_operand,
2557         cbranchqi4_comparison_operator): New predicates.
2558
2559 2010-04-16  Richard Guenther  <rguenther@suse.de>
2560
2561         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2562         (dump_gimple_stmt): Likewise.
2563
2564 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2565
2566         * recog.h (struct recog_data): New field is_operator.
2567         (struct insn_operand_data): New field is_operator.
2568         * recog.c (extract_insn): Set recog_data.is_operator.
2569         * genoutput.c (output_operand_data): Emit code to set the
2570         is_operator field.
2571         * reload.c (find_reloads): Use it rather than testing for an
2572         empty constraint string.
2573
2574         PR target/41514
2575         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2576         If the previous insn is a cbranchsi4_insn with the same arguments,
2577         omit the compare instruction.
2578
2579         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2580         register, inputs must be low registers and we need a low register
2581         scratch.  Handle alternative 2 like alternative 3.
2582
2583 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2584
2585         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2586         don't call get_addr on both.  If one expression is a VALUE and
2587         the other a REG, check VALUE's locs if the REG isn't among them.
2588
2589 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2590
2591         * config/sh/sh.h (sh_frame_pointer_required): New function.
2592         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2593         (flag_omit_frame_pointer) Set.
2594         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2595         (rounded_frame_size): Adjust size with outgoing_args_size.
2596         (sh_set_return_address): Must return from stack pointer.
2597         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2598         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2599         (ACCUMULATE_OUTGOING_ARGS): Define.
2600         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2601         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2602
2603 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2604
2605         PR target/43471
2606         * config/sh/sh.c (sh_legitimize_reload_address): Use
2607         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2608         Remove a unneeded check for offset_base.
2609
2610 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2611
2612         * configure: Regenerated.
2613
2614 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2615
2616         * config/s390/s390.c (s390_call_save_register_used): Switch back
2617         to HARD_REGNO_NREGS.
2618
2619 2010-04-15  Richard Guenther  <rguenther@suse.de>
2620
2621         * alias.c (alias_set_subset_of): Handle alias-set zero
2622         child properly.
2623
2624 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2625             Julian Brown  <julian@codesourcery.com>
2626
2627         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2628         alternatives according to use of high and low regs.
2629         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2630         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2631         optimizing for size on Thumb-2.
2632
2633 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2634
2635         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2636
2637 2010-04-15  Richard Guenther  <rguenther@suse.de>
2638
2639         * tree-ssa-structalias.c (struct variable_info): Add
2640         is_fn_info flag.
2641         (new_var_info): Initialize it.
2642         (dump_constraints): Support printing last added constraints.
2643         (debug_constraints): Adjust.
2644         (dump_constraint_graph): Likewise.
2645         (make_heapvar_for): Check for NULL cfun.
2646         (get_function_part_constraint): New function.
2647         (get_fi_for_callee): Likewise.
2648         (find_func_aliases): Properly implement IPA PTA constraints.
2649         (process_ipa_clobber): New function.
2650         (find_func_clobbers): Likewise.
2651         (insert_into_field_list_sorted): Remove.
2652         (create_function_info_for): Properly allocate vars for IPA mode.
2653         Do not use insert_into_field_list_sorted.
2654         (create_variable_info_for): Properly generate constraints for
2655         global vars in IPA mode.
2656         (dump_solution_for_var): Always dump the solution.
2657         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2658         (find_what_var_points_to): Adjust.
2659         (pt_solution_set): Change.
2660         (pt_solution_ior_into): New function.
2661         (pt_solution_empty_p): Export.
2662         (pt_solution_includes_global): Adjust.
2663         (pt_solution_includes_1): Likewise.
2664         (pt_solutions_intersect_1): Likewise.
2665         (dump_sa_points_to_info): Check some invariants.
2666         (solve_constraints): Move constraint dumping ...
2667         (compute_points_to_sets): ... here.
2668         (ipa_pta_execute): ... and here.
2669         (compute_may_aliases): Do not re-compute points-to info
2670         locally if IPA info is available.
2671         (ipa_escaped_pt): New global var.
2672         (ipa_pta_execute): Properly implement IPA PTA.
2673         * tree-into-ssa.c (dump_decl_set): Support dumping
2674         decls not in referenced-vars.
2675         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2676         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2677         (dump_points_to_solution): Likewise.
2678         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2679         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2680         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2681         (copy_decl_to_var): Copy DECL_PT_UID.
2682         (copy_result_decl_to_var): Likewise.
2683         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2684         (copy_node_stat): Copy it.
2685         * tree.h (DECL_PT_UID): New macro.
2686         (SET_DECL_PT_UID): Likewise.
2687         (DECL_PT_UID_SET_P): Likewise.
2688         (struct tree_decl_minimal): Add pt_uid member.
2689         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2690         (pt_solution_empty_p): Declare.
2691         (pt_solution_set): Adjust.
2692         (ipa_escaped_pt): Declare.
2693         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2694         * gimple-pretty-print.c (pp_points_to_solution): New function.
2695         (dump_gimple_call): Dump call clobber/use information.
2696         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2697         * tree-pass.h (TDF_ALIAS): New dump option.
2698         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2699         * doc/invoke.texi (-fipa-pta): Update documentation.
2700
2701 2010-04-15  Richard Guenther  <rguenther@suse.de>
2702
2703         * Makefile.in (OBJS-common): Add gimple-fold.o.
2704         (gimple-fold.o): New rule.
2705         * tree.h (maybe_fold_offset_to_reference,
2706         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2707         prototypes ...
2708         * gimple.h: ... here.
2709         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2710         may_propagate_address_into_dereference): Move prototypes ...
2711         * gimple.h: ... here.
2712         * tree-ssa-ccp.c (get_symbol_constant_value,
2713         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2714         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2715         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2716         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2717         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2718         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2719         gimplify_and_update_call_from_tree): Move ...
2720         * gimple-fold.c: ... here.  New file.
2721         (ccp_fold_builtin): Rename to ...
2722         (gimple_fold_builtin): ... this.
2723         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2724
2725 2010-04-15  Richard Guenther  <rguenther@suse.de>
2726
2727         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2728         fit_double_type, force_fit_type_double, add_double_with_sign,
2729         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2730         lrotate_double, rrotate_double, div_and_round_double): Move ...
2731         * double-int.c: ... here.
2732         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2733         add_double, neg_double, mul_double_with_sign, mul_double,
2734         lshift_double, rshift_double, lrotate_double, rrotate_double,
2735         div_and_round_double): Move prototypes ...
2736         * double-int.h: ... here.
2737
2738 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2739
2740         PR target/43742
2741         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2742         matching constraints to ensure inputs match the output.
2743
2744 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2745
2746         PR target/43742
2747         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2748         in an input-only operand.
2749
2750 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2751
2752         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2753         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2754         (double_int_negative_p): Convert to static inline function.
2755         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2756         (double_int_negative_p): Remove.
2757         * tree.h (lshift_double, rshift_double):
2758         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2759         * fold-const.c (fold_convert_const_int_from_real,
2760         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2761         (lshift_double): Change type of arith argument to bool.
2762         (rshift_double): Change type of arith argument to bool. Correct
2763         comment.
2764         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2765
2766 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2767
2768         PR target/21803
2769         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2770         at the start and end of the then/else blocks, and omit them from the
2771         conversion.
2772         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2773         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2774         (flow_find_head_matching_sequence): New function.
2775         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2776         * basic-block.h (flow_find_cross_jump,
2777         flow_find_head_matching_sequence): Declare functions.
2778
2779 2010-04-14  Jason Merrill  <jason@redhat.com>
2780
2781         PR c++/36625
2782         * c-common.c (attribute_takes_identifier_p): New fn.
2783         * c-common.h: Declare it.
2784
2785 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2786
2787         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2788         splitter condition.
2789         (*udivmod<mode>4): Ditto.
2790
2791 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2792
2793         * config/i386/i386.md (maxmin_int): Rename code attribute from
2794         maxminiprefix and update all users.
2795         (maxmin_float): Ditto from maxminfprefix.
2796         (logic): Ditto from logicprefix.
2797         (absneg_mnemonic): Ditto from absnegprefix.
2798         * config/i386/mmx.md: Update all users of maxminiprefix,
2799         maxminfprefix and logicprefix for rename.
2800         * config/i386/sse.md: Ditto.
2801         * config/i386/sync.md (sync_<code><mode>): Update for
2802         logicprefix rename.
2803
2804 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2805
2806         PR 42966
2807         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2808         warnings converted to errors.
2809
2810 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2811
2812         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2813         used insn_type variable.
2814         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2815         to avoid set-but-not-used warning.
2816
2817 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2818
2819         * df-core.c (df_ref_debug): Change format string placeholder
2820         from 0x%x to %#x.
2821         * dwarf2asm.c (dw2_asm_output_data_raw,
2822         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2823         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2824         * dwarf2out.c (output_cfi, output_cfi_directive,
2825         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2826         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2827         Ditto.
2828         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2829         * print-rtl.c (print_rtx): Ditto.
2830
2831 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2832
2833         PR middle-end/42694
2834         * builtins.c (expand_builtin_pow_root): New function to expand pow
2835         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2836         series of sqrt and cbrt calls under -ffast-math.
2837         (expand_builtin_pow): Call it.
2838
2839 2010-04-14  Michael Matz  <matz@suse.de>
2840
2841         PR tree-optimization/42963
2842         * tree-cfg.c (touched_switch_bbs): New static variable.
2843         (group_case_labels_stmt): New function broken out from ...
2844         (group_case_labels): ... here, use the above.
2845         (start_recording_case_labels): Allocate touched_switch_bbs.
2846         (end_recording_case_labels): Deallocate it, call
2847         group_case_labels_stmt.
2848         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2849
2850 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2851
2852         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2853         from insn template.
2854
2855 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2856
2857         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2858
2859 2010-04-13  Jan Hubicka  <jh@suse.cz>
2860
2861         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2862         of optimized out static functions.
2863         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2864         cost computation.  Also sanity check for overflows.
2865         (update_caller_keys): Update cgraph_edge_badness call; properly
2866         update fibheap and sanity check that it is up to date.
2867         (add_new_edges_to_heap): Update cgraph_edge_badness.
2868         (cgraph_decide_inlining_of_small_function): Likewise;
2869         add sanity checking that badness in heap is up to date;
2870         improve dumping of reason; Update badness of calls to the
2871         offline copy of function currently inlined; dump badness
2872         of functions not inlined because of unit growth limits.
2873
2874 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2875
2876         PR middle-end/32628
2877         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2878         because of sign-extension change when converting to sizetype here...
2879         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2880
2881         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2882         the folding to constants.  Remove redundant final conversion.
2883         (fold_binary) <associate>: Do not associate if the re-association of
2884         constants alone overflows.
2885         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2886         to the end of the list.
2887         (multiple_of_p) <COND_EXPR>: New case.
2888
2889 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2890
2891         * opt-functions.awk (opt_sanitized_name): New.
2892         (opt_enum): New.
2893         * optc-gen.awk: Use it
2894         * opth-gen.awk: Use it.
2895
2896 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2897
2898         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2899         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2900         children.  Call replace_uses_with_default_def_ssa_name to handle
2901         SSA_NAES on lhs.
2902
2903 2010-04-13  Michael Matz  <matz@suse.de>
2904
2905         PR middle-end/43730
2906         * builtins.c (expand_builtin_interclass_mathfn): Also create
2907         a register if the predicate doesn't match.
2908
2909 2010-04-13  Diego Novillo  <dnovillo@google.com>
2910
2911         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2912         * c-pch.c: Include timevar.h.
2913         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2914         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2915         * ggc-common.c: Include timevar.h.
2916         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2917         * timevar.def (TV_PCH_SAVE): Define.
2918         (TV_PCH_CPP_SAVE): Define.
2919         (TV_PCH_PTR_REALLOC): Define.
2920         (TV_PCH_PTR_SORT): Define.
2921         (TV_PCH_RESTORE): Define.
2922         (TV_PCH_CPP_RESTORE): Define.
2923
2924 2010-04-13  Michael Matz  <matz@suse.de>
2925
2926         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2927         into MINUS_EXPRs.
2928         (can_reassociate_p): New function.
2929         (break_up_subtract_bb, reassociate_bb): Use it.
2930
2931 2010-04-13  Richard Guenther  <rguenther@suse.de>
2932
2933         PR bootstrap/43737
2934         * builtins.c (c_readstr): Fix assert.
2935
2936 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2937
2938         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2939         when generating cltd insn.
2940
2941         (*ashl<mode>3_1): Remove special handling for register operand 2.
2942         (*ashlsi3_1_zext): Ditto.
2943         (*ashlhi3_1): Ditto.
2944         (*ashlhi3_1_lea): Ditto.
2945         (*ashlqi3_1): Ditto.
2946         (*ashlqi3_1_lea): Ditto.
2947         (*<shiftrt_insn><mode>3_1): Ditto.
2948         (*<shiftrt_insn>si3_1_zext): Ditto.
2949         (*<shiftrt_insn>qi3_1_slp): Ditto.
2950         (*<rotate_insn><mode>3_1): Ditto.
2951         (*<rotate_insn>si3_1_zext): Ditto.
2952         (*<rotate_insn>qi3_1_slp): Ditto.
2953
2954 2010-04-13  Richard Guenther  <rguenther@suse.de>
2955
2956         * tree-ssa-structalias.c (callused_id): Remove.
2957         (call_stmt_vars): New.
2958         (get_call_vi): Likewise.
2959         (lookup_call_use_vi): Likewise.
2960         (lookup_call_clobber_vi): Likewise.
2961         (get_call_use_vi): Likewise.
2962         (get_call_clobber_vi): Likewise.
2963         (make_transitive_closure_constraints): Likewise.
2964         (handle_const_call): Adjust to do per-call call-used handling.
2965         (handle_pure_call): Likewise.
2966         (find_what_var_points_to): Remove general callused handling.
2967         (init_base_vars): Likewise.
2968         (init_alias_vars): Initialize call_stmt_vars.
2969         (compute_points_to_sets): Process call-used and call-clobbered
2970         vars for call statements.
2971         (delete_points_to_sets): Free call_stmt_vars.
2972
2973 2010-04-13  Richard Guenther  <rguenther@suse.de>
2974
2975         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2976         Only add RW dependence for dependence distance zero.
2977         Adjust maximal vectorization factor according to dependences.
2978         Move alignment handling ...
2979         (vect_find_same_alignment_drs): ... here.  New function.
2980         (vect_analyze_data_ref_dependences): Adjust.
2981         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2982         (vect_analyze_data_refs): Adjust minimal vectorization factor
2983         according to data references.
2984         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2985         dependences before determining the vectorization factor.
2986         Analyze alignment after determining the vectorization factor.
2987         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2988         dependences before alignment.
2989         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2990         Adjust prototype.
2991         (vect_analyze_data_refs): Likewise.
2992         (MAX_VECTORIZATION_FACTOR): New define.
2993
2994 2010-04-13  Duncan Sands  <baldrick@free.fr>
2995
2996         * except.h (lang_eh_type_covers): Remove.
2997         * except.c (lang_eh_type_covers): Likewise.
2998
2999 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3000             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3001
3002         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
3003         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
3004         UNITS_PER_LONG where it is ABI relevant.
3005         (s390_return_addr_rtx): Likewise.
3006         (s390_back_chain_rtx): Likewise.
3007         (s390_frame_area): Likewise.
3008         (s390_frame_info): Likewise.
3009         (s390_initial_elimination_offset): Likewise.
3010         (save_gprs): Likewise.
3011         (s390_emit_prologue): Likewise.
3012         (s390_emit_epilogue): Likewise.
3013         (s390_function_arg_advance): Likewise.
3014         (s390_function_arg): Likewise.
3015         (s390_va_start): Likewise.
3016         (s390_gimplify_va_arg): Likewise.
3017         (s390_function_profiler): Likewise.
3018         (s390_optimize_prologue): Likewise.
3019         (s390_rtx_costs): Likewise.
3020         (s390_secondary_reload): Likewise.
3021         (s390_promote_function_mode): Likewise.
3022         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
3023         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
3024         registers available.
3025         (s390_unwind_word_mode): New function.
3026         (s390_function_value): Split 64 bit values into register pair if
3027         used as return value.
3028         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
3029         function call parameters.  Handle parallels.
3030         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
3031         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
3032         (DWARF_CIE_DATA_ALIGNMENT): New macro.
3033         (s390_expand_setmem): Remove unused variable src_addr.
3034         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3035         deal with 64 bit registers.
3036         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
3037         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
3038         (UNITS_PER_LONG): New macro.
3039         * libjava/include/s390-signal.h: Define extended ucontext
3040         structure containing the upper halfs of the 64 bit registers.
3041
3042 2010-04-13  Simon Baldwin  <simonb@google.com>
3043
3044         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
3045
3046 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3047
3048         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
3049         rvalue on the RHS if the LHS is of a non-renamable type.
3050         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
3051
3052 2010-04-13  Matthias Klose  <doko@ubuntu.com>
3053
3054         * gcc.c (cc1_options): Handle -iplugindir before processing
3055         the cc1 spec. Only add -iplugindir once.
3056         (cpp_unique_options): Add -iplugindir option if -fplugin* options
3057         found.
3058         * common.opt (iplugindir): Remove `Separate' property, initialize.
3059         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
3060         option.
3061         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
3062         (distclean): Remove plugin dir.
3063         * doc/invoke.texi: Document -iplugindir.
3064
3065 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
3066
3067         * doc/plugins.texi (Loading Plugins): Document short
3068         -fplugin=foo option.
3069         (Plugin API): Mention default_plugin_dir_name function.
3070
3071         * gcc.c (find_file_spec_function): Add new declaration.
3072         (static_spec_func): Use it for "find-file".
3073         (find_file_spec_function): Add new function.
3074         (cc1_options): Add -iplugindir option if -fplugin* options found.
3075
3076         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
3077
3078         * plugin.c (add_new_plugin): Updated comment, and handle short
3079         plugin name.
3080         (default_plugin_dir_name): Added new function.
3081
3082         * common.opt (iplugindir): New option to set the plugin directory.
3083
3084 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
3085
3086         * config/i386/i386.md (any_rotate): New code iterator.
3087         (rotate_insn): New code attribute.
3088         (rotate): Ditto.
3089         (SWIM124): New mode iterator.
3090         (<rotate_insn>ti3): New expander.
3091         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
3092         any_rotate code iterator.
3093         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
3094         using any_rotate code iterator and SWIM124 mode iterator.
3095         (ix86_rotlti3): New insn_and_split pattern.
3096         (ix86_rotrti3): Ditto.
3097         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
3098         ix86_rotl{di,ti}3 patterns.
3099         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
3100         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
3101         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
3102         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
3103         code iterator and SWI mode iterator.
3104         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
3105         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
3106         code iterator.
3107         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
3108         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
3109         (bswap rotatert splitter): Add splitter.
3110         (bswap splitter): Macroize splitter using any_rotate code iterator.
3111         Add insn predicate to split only for TARGET_USE_XCHGB or when
3112         optimizing function for size.
3113
3114 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3115
3116         * config/pa/pa.c (emit_move_sequence): Remove use of
3117         deleted variable flag_argument_noalias.
3118
3119 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3120
3121         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
3122         configurations.
3123         Add to unsupported targets list.
3124         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
3125         sparc*-sun-solaris2.[567]* from target lists.
3126         * configure: Regenerate.
3127         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
3128         removal.
3129         Remove Solaris 7 patch references.
3130         (Specific, sparc-sun-solaris2.7): Removed.
3131         (sparc-sun-solaris2*): Update Solaris 7 example.
3132         (sparc64-*-solaris2*): Likewise.
3133
3134 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3135
3136         * config.build (alpha*-dec-osf4*): Remove.
3137         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
3138         of obsolete configurations.
3139         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
3140         support.
3141         * config/alpha/t-osf4: Renamed to ...
3142         * config/alpha/t-osf5: ... this.
3143         * config/alpha/osf.h: Renamed to ...
3144         * config/alpha/osf5.h: ... this.
3145         Merged old osf5.h contents.
3146         Update comments.
3147         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
3148         (EXTRA_SPECS): Removed.
3149         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
3150         reflect removal of Tru64 UNIX V4.0/V5.0 support.
3151         Document that.
3152
3153 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3154
3155         * doc/contrib.texi (Contributors, Rainer Orth): Update.
3156
3157 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
3158
3159         PR/43702
3160         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
3161         __thiscall convention.
3162
3163 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3164
3165         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
3166         orig_base.
3167         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
3168
3169 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3170
3171         * function.c (assign_parms_initialize_all): Add unused attribute
3172         to fntype.
3173
3174 2010-04-12  Richard Guenther  <rguenther@suse.de>
3175
3176         * gsstruct.def (GSS_CALL): New.
3177         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3178         * gimple.h: Include tree-ssa-alias.h.
3179         (struct gimple_statement_call): New.
3180         (union gimple_statement_struct_d): Add gimple_call member.
3181         (gimple_call_reset_alias_info): Declare.
3182         (gimple_call_use_set): New function.
3183         (gimple_call_clobber_set): Likewise.
3184         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3185         * gimple.c (gimple_call_reset_alias_info): New function.
3186         (gimple_build_call_1): Call it.
3187         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3188         * tree-inline.c (remap_gimple_stmt): Likewise.
3189         (expand_call_inline): Remove callused handling.
3190         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3191         * tree-dfa.c (dump_variable): Likewise.
3192         * tree-parloops.c (parallelize_loops): Likewise.
3193         * tree-ssa.c (init_tree_ssa): Likewise.
3194         (delete_tree_ssa): Likewise.
3195         * tree-flow-inline.h (is_call_used): Remove.
3196         * tree-flow.h (struct gimple_df): Remove callused member.
3197         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3198         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3199         (ref_maybe_used_by_call_p_1): Simplify.
3200         (call_may_clobber_ref_p_1): Likewise.
3201         * tree-ssa-structalias.c (compute_points_to_sets): Set
3202         the call stmt used and clobbered sets.
3203         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3204         (find_tail_calls): Verify the tail call.
3205
3206 2010-04-12  Richard Guenther  <rguenther@suse.de>
3207
3208         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3209         single-iteration always-inline inlining.
3210         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3211         (cgraph_decide_inlining): Do not handle always-inline specially.
3212         (try_inline): Remove always-inline cycle detection special case.
3213         Do not recurse on always-inlines.
3214         (cgraph_early_inlining): Do not iterate if not optimizing.
3215         (cgraph_gate_early_inlining): remove.
3216         (pass_early_inline): Run unconditionally.
3217         (gate_cgraph_decide_inlining): New function.
3218         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3219         not inlining or optimizing.
3220         (cgraph_decide_inlining_of_small_functions): Also consider
3221         always-inline functions.
3222         (cgraph_default_inline_p): Return true for nodes which should
3223         disregard inline limits.
3224         (estimate_function_body_sizes): Assume zero size and time for
3225         nodes which are marked as disregarding inline limits.
3226         (cgraph_decide_recursive_inlining): Do not perform recursive
3227         inlining on always-inline nodes.
3228
3229 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3230
3231         PR bootstrap/43699
3232         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3233         for exprs satisfying handled_component_p.
3234
3235 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3236
3237         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3238         non-constant aggregate elements.
3239
3240         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3241         is a real initialization.
3242
3243 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3244
3245         PR c/36774
3246         * c-decl.c (start_function): Move forward check for nested function.
3247
3248 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3249
3250         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3251         * config/sh/sh.c: Include reload.h.
3252         (sh_legitimize_reload_address): New.
3253         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3254         sh_legitimize_reload_address.
3255
3256 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3257
3258         * config/sh/sh.md (*movqi_pop): New insn pattern.
3259         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3260
3261 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3262
3263         * config/i386/i386.md (any_shiftrt): New code iterator.
3264         (shiftrt_insn): New code attribute.
3265         (shiftrt): Ditto.
3266         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3267         using any_shiftrt code iterator.
3268         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3269         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3270         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3271         pattern from corresponding peephole2 patterns.
3272         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3273         using any_shiftrt code iterator.
3274         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3275         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3276         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3277         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3278         *{ashr,lshr}<mode>3_cmp_zext.
3279         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3280
3281 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3282
3283         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3284         scratch register.
3285         (*lshr<mode>3_cconly): Ditto.
3286
3287 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3288
3289         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3290         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3291         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3292         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3293         DWI mode iterator.
3294         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3295         from corresponding peephole2 patterns.
3296         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3297         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3298         and *lshrdi3_1_rex64 using SWI mode iterator.
3299         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3300         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3301         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3302         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3303         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3304         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3305         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3306         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3307         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3308         SWI mode iterator.
3309
3310 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3311
3312         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3313         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3314         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3315         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3316         DWI mode iterator.
3317         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3318         from corresponding peephole2 patterns.
3319         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3320         (ashrsi3_cvt): Rename from ashrsi3_31.
3321         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3322         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3323         and x86_64_shift_adj_3 using SWI48 mode iterator.
3324         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3325         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3326         and *ashrdi3_1_rex64 using SWI mode iterator.
3327         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3328         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3329         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3330         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3331         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3332         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3333         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3334         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3335         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3336         SWI mode iterator.
3337         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3338         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3339         x86_shift<mode>_adj_3 expanders.
3340
3341 2010-04-10  Wei Guozhi  <carrot@google.com>
3342
3343         PR target/42601
3344         * config/arm/arm.c (arm_pic_static_addr): New function.
3345         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3346         a static symbol.
3347         (arm_output_addr_const_extra): Output expression for new pattern.
3348         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3349
3350 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3351
3352         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3353         not enabled.
3354
3355         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3356         * web.c: Include "insn-config.h" and "recog.h".
3357         (union_match_dups): New function.
3358         (web_main): Call it.
3359         (union_defs): Don't try to recognize match_dups.
3360
3361         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3362         if doing so would replace the entire pattern.
3363
3364 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3365
3366         PR target/43707
3367         PR target/43709
3368         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3369         and splitter pattern.  Change splitter operand 1 predicate to
3370         nonmemory_operand.
3371
3372 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3373
3374         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3375         lattices are addresses of CONST_DECLs with the same initial value.
3376         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3377         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3378
3379 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3380             Bernd Schmidt  <bernds@codesourcery.com>
3381
3382         * loop-invariant.c (replace_uses): New static function.
3383         (move_invariant_reg): Use it to ensure we can replace the uses.
3384
3385 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3386
3387         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3388         function template.
3389         (picochip_override_options): Enable section anchors only above -O1.
3390         (picochip_reorg): Fixed a couple of build warnings.
3391
3392 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3393
3394         * configure.ac (plugin -rdynamic test): Log result.
3395         * configure: Regenerate.
3396         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3397         (RDYNAMIC_SPEC): Define.
3398         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3399
3400 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3401
3402         * configure.ac: Determine Sun ld version numbers.
3403         (comdat_group): Restrict GNU ld version checks to gld.
3404         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3405         (enable_comdat): Support --enable-comdat.
3406         * configure: Regenerate.
3407         * doc/install.texi (Configuration): Document --enable-comdat.
3408
3409 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3410
3411         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3412         * config/sol2-gld.h: ... here.
3413         * config.gcc (sparc*-*-solaris2*): Reflect this.
3414         (i[34567]86-*-solaris2*): Use it.
3415
3416 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3417
3418         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3419         setup_clocks_p.
3420         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3421
3422 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3423
3424         PR 42965
3425         * diagnostic.c (diagnostic_initialize): Initialize
3426         some_warnings_are_errors.
3427         (diagnostic_finish): New.
3428         (diagnostic_action_after_output): Call it before exiting.
3429         (diagnostic_report_diagnostic): Do not print message here. Set
3430         some_warnings_are_errors.
3431         * diagnostic.h (diagnostic_context): Delete
3432         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3433         (diagnostic_finish): Declare.
3434         * toplev.c (toplev_main): Call it before exit.
3435
3436 2010-04-09  Jason Merrill  <jason@redhat.com>
3437
3438         PR c++/42623
3439         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3440         for incomplete type.
3441
3442         PR c++/41788
3443         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3444         based on a warning flag.
3445
3446 2010-04-09  Richard Guenther  <rguenther@suse.de>
3447
3448         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3449
3450 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3451
3452         PR bootstrap/43684
3453         * varasm.c (default_assemble_visibility): Wrap vars that are
3454         set, but unused, by targets without GAS.
3455         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3456         Remove set, but unused, vars.
3457         (rs6000_legitimize_tls_address): Likewise.
3458         (altivec_expand_dst_builtin): Likewise.
3459         * config/darwin.c (machopic_classify_symbol): Likewise.
3460         (machopic_indirection_name): Likewise.
3461
3462 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3463
3464         * config/i386/i386.md (DWI): New mode iterator.
3465         (S): New mode attribute.
3466         (shift_operand): Ditto.
3467         (shift_immediate_operand): Ditto.
3468         (ashl_input_operand): Ditto.
3469         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3470         using SDWIM mode iterator.
3471         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3472         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3473         DWI mode iterator.
3474         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3475         from corresponding peephole2 patterns.
3476         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3477         and x86_64_shift_adj_1 using SWI48 mode iterator.
3478         (x86_shift<mode>_adj_2): Ditto.
3479         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3480         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3481         using SWI48 mode iterator.
3482         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3483         *ashldi3_cmp_rex64 using SWI mode iterator.
3484         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3485         *ashldi3_cconly_rex64 using SWI mode iterator.
3486         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3487         x86_shift<mode>_adj_{1,2}.
3488         (ix86_split_ashr): Ditto.
3489         (ix86_split_lshr): Ditto.
3490
3491 2010-04-09  Richard Guenther  <rguenther@suse.de>
3492
3493         * target.h (builtin_conversion): Pass in input and output types.
3494         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3495         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3496         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3497         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3498
3499         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3500         Handle AVX modes.
3501         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3502
3503 2010-04-09  Richard Guenther  <rguenther@suse.de>
3504
3505         PR target/43152
3506         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3507
3508 2010-04-09  Richard Guenther  <rguenther@suse.de>
3509
3510         * tree-vectorizer.h (struct _stmt_vec_info): Document
3511         that vectype is the type of the LHS.
3512         (supportable_widening_operation, supportable_narrowing_operation):
3513         Get both input and output vector types as arguments.
3514         (vect_is_simple_use_1): Declare.
3515         (get_same_sized_vectype): Likewise.
3516         * tree-vect-loop.c (vect_determine_vectorization_factor):
3517         Set STMT_VINFO_VECTYPE to the vector type of the def.
3518         (vectorizable_reduction): Adjust.
3519         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3520         Adjust.  Specify the output vector type.
3521         (vect_pattern_recog_1): Adjust.
3522         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3523         (vectorizable_call): Adjust.
3524         (vectorizable_conversion): Likewise.
3525         (vectorizable_operation): Likewise.
3526         (vectorizable_type_demotion): Likewise.
3527         (vectorizable_type_promotion): Likewise.
3528         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3529         the def.
3530         (vect_is_simple_use_1): New function.
3531         (supportable_widening_operation): Get both input and output
3532         vector types.
3533         (supportable_narrowing_operation): Likewise.
3534         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3535
3536 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3537
3538         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3539         __thiscall and _thiscall as predefined macros.
3540         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3541         thiscall attribute handling.
3542         (ix86_comp_type_attributes): Likewise.
3543         (ix86_function_regparm): Likewise.
3544         (ix86_return_pops_args): Likewise.
3545         (init_cumulative_args): Likewise.
3546         (find_drap_reg): Likewise.
3547         (ix86_static_chain): Likewise.
3548         (x86_this_parameter): Likewise.
3549         (x86_output_mi_thunk): Likewise.
3550         (ix86_attribute_table): Add description for thiscall attribute.
3551         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3552         * doc/extend.texi: Add documentation for thiscall.
3553
3554 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3555
3556         PR c++/28584
3557         * c.opt (Wint-to-pointer-cast): Available in C++.
3558         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3559
3560 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3561
3562         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3563         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3564         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3565         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3566         function type instead.  Reorder and simplify checks.
3567
3568         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3569
3570 2010-04-08  Jing Yu  <jingyu@google.com>
3571             Zdenek Dvorak  <ook@ucw.cz>
3572
3573         PR tree-optimization/42720
3574         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3575         loop unswitch conditions here from ...
3576         (tree_unswitch_single_loop): ... here.
3577
3578 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3579
3580         * tree-if-conv.c: Fix comments and simplify logic.
3581
3582 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3583
3584         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3585         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3586         (main_tree_if_conversion): Update call to tree_if_conversion.
3587
3588 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3589
3590         PR 42485
3591         * doc/invoke.texi (-b,-V): Delete.
3592         * doc/tm.texi: Do not mention -b.
3593         * gcc.c (display_help): Delete -b and -V.
3594         (process_command): Delete -b and -V.
3595         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3596
3597 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3598             Wolfgang Gellerich  <gellerich@de.ibm.com>
3599
3600         Implement target hook for loop unrolling
3601         * target.h (loop_unroll_adjust): Add a new target hook function.
3602         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3603         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3604         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3605         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3606         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3607         target hook.
3608         (decide_unroll_stupid): Likewise.
3609
3610 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3611
3612         PR target/43643
3613         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3614
3615 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3616
3617         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3618         (Specific, *-*-solaris2*): Likewise.
3619         Don't prefer Sun as over GNU as.
3620
3621 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3622
3623         * config/s390/s390.c (override_options): Adjust the z10
3624           defaults for max-unroll-times, max-completely-peeled-insns
3625           and max-completely-peel-times.
3626
3627 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3628
3629         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3630         instructions for z10.
3631         (s390_expand_setmem): Likewise.
3632         (s390_expand_cmpmem): Likewise.
3633
3634 2010-04-08  Richard Guenther  <rguenther@suse.de>
3635
3636         PR tree-optimization/43679
3637         * tree-ssa-pre.c (eliminate): Only propagate copies.
3638
3639 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR bootstrap/43681
3642         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3643         set but not used variable warning.
3644
3645 2010-04-08  Wei Guozhi  <carrot@google.com>
3646
3647         PR target/41653
3648         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3649         (arm_size_rtx_costs): Call the new function when optimized for size.
3650
3651 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3652
3653         PR debug/43670
3654         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3655         op0 is not a MEM, just return NULL instead of assertion
3656         failure.
3657         (discover_nonconstant_array_refs): Don't walk debug stmts.
3658
3659 2010-04-08  Doug Kwan  <dougkwan@google.com>
3660
3661         * configure.ac: Recognize gold and do not use its version number
3662         to test ld features.
3663         * configure: Regenerate.
3664
3665 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3666
3667         PR middle-end/40815
3668         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3669         (negate_value): Move code to push elements to broken_up_substracts ...
3670         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3671         negative pair to plus_negates.
3672         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3673
3674 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3675
3676         * doc/install.texi (Configuration): Move description of
3677         --enable-lto, --with-libelf*, --enable-gold from Java section to
3678         general section.
3679
3680         * doc/generic.texi (Working with declarations)
3681         (Function Properties, C and C++ Trees): Fix typos.
3682         * doc/sourcebuild.texi (Top Level): Likewise.
3683
3684 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3685
3686         PR c/18624
3687         * tree.h (DECL_READ_P): Define.
3688         (struct tree_decl_common): Add decl_read_flag.
3689         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3690         a set but not used warning.
3691         (merge_decls): Merge DECL_READ_P flag.
3692         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3693         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3694         * c-common.c (handle_used_attribute, handle_unused_attribute):
3695         Likewise.
3696         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3697         New prototypes.
3698         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3699         New functions.
3700         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3701         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3702         c_parser_binary_expression, c_parser_cast_expression,
3703         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3704         Call default_function_array_read_conversion instead of
3705         default_function_array_conversion where needed.
3706         (c_parser_unary_expression, c_parser_conditional_expression,
3707         c_parser_postfix_expression_after_primary, c_parser_initelt):
3708         Likewise.  Call mark_exp_read where needed.
3709         (c_parser_statement_after_labels, c_parser_asm_operands,
3710         c_parser_typeof_specifier, c_parser_sizeof_expression,
3711         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3712         where needed.
3713         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3714         New.
3715         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3716         (warn_unused_but_set_parameter): Default to warn_unused
3717         && extra_warnings.
3718         * doc/invoke.texi: Document -Wunused-but-set-variable and
3719         -Wunused-but-set-parameter.
3720
3721         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3722         used count variable.
3723         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3724         when operandN variables aren't used in the body of the expander
3725         or splitter.
3726         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3727         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3728         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3729         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3730         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3731         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3732         * tree.c (PROCESS_ARG): Likewise.
3733
3734 2010-04-07  Simon Baldwin  <simonb@google.com>
3735
3736         * diagnostic.h (diagnostic_override_option_index): New macro to
3737         set a diagnostic's option_index.
3738         * c-tree.h (c_cpp_error): Add warning reason argument.
3739         * opts.c (_warning_as_error_callback): New.
3740         (register_warning_as_error_callback): Store callback for
3741         warnings enabled via enable_warning_as_error.
3742         (enable_warning_as_error): Call callback, minor code tidy.
3743         * opts.h (register_warning_as_error_callback): Declare.
3744         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3745         response to -Werror=.
3746         (c_common_init_options): Register warning_as_error_callback in opts.c.
3747         * common.opt: Add -Wno-cpp option.
3748         * c-common.c (struct reason_option_codes_t): Map cpp warning
3749         reason codes to gcc option indexes.
3750         * (c_option_controlling_cpp_error): New function, lookup the gcc
3751         option index for a cpp warning reason code.
3752         * (c_cpp_error): Add warning reason argument, call
3753         c_option_controlling_cpp_error for diagnostic_override_option_index.
3754         * doc/invoke.texi: Document -Wno-cpp.
3755
3756 2010-04-07  Richard Guenther  <rguenther@suse.de>
3757
3758         * ipa-reference.c (mark_load): Use get_base_address.
3759         (mark_store): Likewise.
3760
3761         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3762         inserting GIMPLE_NOPs into the IL.
3763         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3764         Explicitly strip handled components and indirect references.
3765
3766         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3767         folding address expressions.
3768         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3769         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3770         operand_equal_p to compare decls.
3771         (ptr_deref_may_alias_decl_p): Likewise.
3772         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3773         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3774         Handle reversed comparison ops.
3775         * tree-sra.c (asm_visit_addr): Use get_base_address.
3776         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3777         * ipa-reference.c (mark_address): Use get_base_address.
3778
3779 2010-04-07  Richard Guenther  <rguenther@suse.de>
3780
3781         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3782         Propagate constants everywhere.
3783
3784 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3785
3786         PR debug/43516
3787         * tree.c (MAX_INT_CACHED_PREC): Define.
3788         (nonstandard_integer_type_cache): New array.
3789         (build_nonstandard_integer_type): Cache results for precision
3790         <= MAX_INT_CACHED_PREC.
3791
3792 2010-04-07  Richard Guenther  <rguenther@suse.de>
3793
3794         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3795         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3796         * common.opt: Likewise.
3797         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3798         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3799         (nonoverlapping_memrefs_p): Likewise.
3800         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3801         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3802         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3803         OPT_fargument_noalias_global for backward compatibility.
3804
3805 2010-04-07  Richard Guenther  <rguenther@suse.de>
3806
3807         PR tree-optimization/43270
3808         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3809         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3810         * tree-ssa-pre.c (phi_translate_1): Adjust.
3811         (fully_constant_expression): Split out vn_reference handling to ...
3812         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3813         Fold reads from constant strings.
3814         (vn_reference_lookup): Handle fully constant references.
3815         (vn_reference_lookup_pieces): Likewise.
3816         * Makefile.in (expmed.o-warn): Add -Wno-error.
3817
3818 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3819
3820         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3821
3822 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3823
3824         PR driver/41594
3825         * gcc.c: Add -static-libstdc++ to list of recognized options.
3826
3827 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3828
3829         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3830
3831 2010-04-07  Richard Guenther  <rguenther@suse.de>
3832
3833         PR middle-end/42617
3834         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3835         bases build simple mem attributes to retain points-to information.
3836
3837 2010-04-07  Richard Guenther  <rguenther@suse.de>
3838
3839         PR middle-end/42617
3840         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3841         preserve points-to related information.
3842
3843 2010-04-07  Richard Guenther  <rguenther@suse.de>
3844
3845         PR middle-end/42617
3846         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3847         discard plain indirect references.
3848         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3849         * tree.c (tree_nop_conversion): Likewise.
3850
3851 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3852
3853         PR debug/43628
3854         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3855
3856 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3857
3858         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3859         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3860
3861 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3862
3863         * tree-if-conv.c: Fix indentation and comments.
3864
3865 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3866
3867         * tree-if-conv.c: Sort static functions in topological order.
3868
3869 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3870
3871         * tree-if-conv.c: Fix indentation and comments.
3872
3873 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3874
3875         PR middle-end/43519
3876         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3877         lang_hooks.types.type_for_size instead of
3878         build_nonstandard_integer_type.
3879         When converting an unsigned type to signed, double its precision.
3880         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3881         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3882         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3883         use lb <= ub.
3884
3885 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3886
3887         PR middle-end/43519
3888         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3889         POINTER_PLUS_EXPR for pointer types.
3890
3891 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3892
3893         PR middle-end/43519
3894         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3895         * graphite-clast-to-gimple.c: Include langhooks.h.
3896         (max_signed_precision_type): New.
3897         (max_precision_type): Takes two types as arguments.
3898         (precision_for_value): New.
3899         (precision_for_interval): New.
3900         (gcc_type_for_interval): New.
3901         (gcc_type_for_value): New.
3902         (gcc_type_for_clast_term): New.
3903         (gcc_type_for_clast_red): New.
3904         (gcc_type_for_clast_bin): New.
3905         (gcc_type_for_clast_expr): Split up into several functions.
3906         (gcc_type_for_clast_eq): Rewritten.
3907         (compute_bounds_for_level): New.
3908         (compute_type_for_level_1): New.
3909         (compute_type_for_level): New.
3910         (gcc_type_for_cloog_iv): Removed.
3911         (gcc_type_for_iv_of_clast_loop): Rewritten.
3912         (graphite_create_new_loop): Compute the lower and upper bound types
3913         with gcc_type_for_clast_expr.
3914         (graphite_create_new_loop_guard): Same.
3915         (find_cloog_iv_in_expr): Removed.
3916         (compute_cloog_iv_types_1): Removed.
3917         (compute_cloog_iv_types): Removed.
3918         (gloog): Do not call compute_cloog_iv_types.
3919         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3920         GBB_CLOOG_IV_TYPES.
3921         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3922         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3923         (GBB_CLOOG_IV_TYPES): Removed.
3924
3925 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3926
3927         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3928         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3929         (detect_commutative_reduction): Same.
3930
3931 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3932
3933         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3934         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3935         argument.
3936         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3937         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3938         (rewrite_commutative_reductions_out_of_ssa): Same.
3939         * passes.c (execute_function_todo): Call verify_ssa for every pass
3940         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3941         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3942         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3943         with an extra argument.
3944         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3945         verify_ssa only when the extra argument is true.
3946         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3947         with an extra argument.
3948         (tree_transform_and_unroll_loop): Same.
3949
3950 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3951
3952         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3953         for all the passes of the LNO having LOOP_CLOSED_SSA.
3954         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3955         * tree-loop-distribution.c (pass_loop_distribution): Same.
3956         * tree-pass.h (TODO_verify_loops): Removed.
3957         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3958         (pass_lim): Same.
3959         (pass_tree_unswitch): Same.
3960         (pass_predcom): Same.
3961         (pass_vectorize): Same.
3962         (pass_linear_transform): Same.
3963         (pass_graphite_transforms): Same.
3964         (pass_iv_canon): Same.
3965         (pass_complete_unroll): Same.
3966         (pass_complete_unrolli): Same.
3967         (pass_parallelize_loops): Same.
3968         (pass_loop_prefetch): Same.
3969         (pass_iv_optimize): Same.
3970
3971 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3972
3973         PR middle-end/32824
3974         * passes.c (init_optimization_passes): Move pass_lim before
3975         pass_copy_prop and pass_dce_loop.
3976
3977 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3978
3979         PR target/43667
3980         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3981         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3982         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3983         MULTI_* defines for 4 argument vpermil2p* builtins.
3984
3985 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3986
3987         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3988         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3989         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3990         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3991         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3992         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3993         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3994         Use x86_maybe_negate_const_int to output insn mnemonic.
3995         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3996         check from instruction predicate.  Update comments.
3997         * config/i386/sync.md (sync_add<mode>): Use
3998         x86_maybe_negate_const_int to output insn mnemonic.
3999
4000 2010-04-06  Jan Hubicka  <jh@suse.cz>
4001
4002         PR tree-optimization/42906
4003         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
4004         IGNORE_SELF argument.  Set visited_control_parents for fully
4005         processed BBs.
4006         (find_obviously_necessary_stmts): Update call of
4007         mark_control_dependent_edges_necessary.
4008         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
4009
4010 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>