OSDN Git Service

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