OSDN Git Service

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