OSDN Git Service

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