OSDN Git Service

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