OSDN Git Service

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