OSDN Git Service

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