OSDN Git Service

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