ira-build.c (ira_create_object): New arg SUBWORD; all callers changed.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
2
3         * ira-build.c (ira_create_object): New arg SUBWORD; all callers changed.
4         Initialize OBJECT_SUBWORD.
5         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
7         all callers changed.
8         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
9         (finish_allocno): Likewise.
10         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
11         (remove_low_level_allocnos): Likewise.
12         (update_bad_spill_attribute): Likewise.
13         (setup_min_max_allocno_live_range_point): Likewise.
14         (sort_conflict_id_map): Likewise.
15         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
16         (ior_hard_reg_conflicts): New function.
17         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18         (compress_conflict_vecs): Iterate over objects, not allocnos.
19         (ira_add_live_range_to_object): New function.
20         (object_range_compare_func): Renamed from allocno_range_compare_func.
21         All callers changed.
22         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
23         subobjects, widen the min/max range of the lowest-order object to
24         potentially include all other such low-order objects.
25         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
26         (check_allocation): Likewise.  Use more fine-grained tests for register
27         conflicts.
28         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
29         allocno subobjects.
30         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
31         choices about which bits to set in each set.  Don't use
32         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
33         using the multiple sets we computed.
34         (push_allocno_to_stack): Iterate over allocno subobjects.
35         (all_conflicting_hard_regs_coalesced): New static function.
36         (setup_allocno_available_regs_num): Use it.
37         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
38         subobjects.
39         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
40         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
41         by ALLOCNO_NUM_OBJECTS.
42         (calculate_spill_cost): Likewise.
43         (color_pass): Express if statement in a more normal way.
44         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
45         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
46         (setup_slot_coalesced_allocno_live_ranges): Likewise.
47         (allocno_reload_assign): Likewise.
48         (ira_reassign_pseudos): Likewise.
49         (fast_allocation): Likewise.
50         * ira-conflicts.c (build_conflict_bit_table): Likewise.
51         (print_allocno_conflicts): Likewise.
52         (ira_build_conflicts): Likewise.
53         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
54         callers changed.  Test subword 0 of each allocno for conflicts.
55         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
56         callers changed.  Iterate over allocno subobjects.
57         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
58         * ira-int.h (struct ira_allocno): New member. num_objects.  Rename object
59         to objects and change it into an array.
60         (ALLOCNO_OBJECT): Add new argument N.
61         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
62         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
63         (ior_hard_reg_conflicts): Declare.
64         (ira_add_live_range_to_object): Declare.
65         (ira_allocno_object_iterator): New.
66         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
67         (FOR_EACH_ALLOCNO_OBJECT): New macro.
68         * ira-lives.c (objects_live): Renamed from allocnos_live; all uses changed.
69         (allocnos_processed): New sparseset.
70         (make_object_born): Renamed from make_allocno_born; take an ira_object_t
71         argument.  All callers changed.
72         (make_object_dead): Renamed from make_allocno_dead; take an ira_object t
73         argument.  All callers changed.
74         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
75         All callers changed.
76         (mark_pseudo_regno_live): Iterate over allocno subobjects.
77         (mark_pseudo_regno_dead): Likewise.
78         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
79         functions.
80         (mark_ref_live): Detect subword accesses and call
81         mark_pseudo_regno_subword_live as appropriate.
82         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
83         (process_bb_nodes_live): Deal with object-related updates first; set
84         and test bits in allocnos_processed to avoid computing allocno
85         statistics more than once.
86         (create_start_finish_chains): Iterate over objects, not allocnos.
87         (print_object_live_ranges): New function.
88         (print_allocno_live_ranges): Use it.
89         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
90         and objects_live.
91
92 2010-07-22  Richard Guenther  <rguenther@suse.de>
93
94         PR lto/42451
95         * gimple.c (gtc_next_dfs_num): New global.
96         (struct sccs): Make value a union, add integer same_p member.
97         (gtc_visit): New function.
98         (gimple_types_compatible_p_1): New function, split out from ...
99         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
100         (iterative_hash_gimple_type): Adjust for sccs change.
101
102 2010-07-22  Martin Jambor  <mjambor@suse.cz>
103
104         PR tree-optimization/44891
105         * tree-sra.c: Include gimple-pretty-print.h.
106         (replace_uses_with_default_def_ssa_name): Renamed to
107         get_repl_default_def_ssa_name, return the new SSA name instead of
108         replacing the old one.
109         (sra_modify_assign): Dump a message when removing a load, if the LHS
110         is an SSA_NAME, do not do any propagation, just set the RHS to a
111         default definition SSA NAME, type convert if necessary.
112         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
113
114 2010-07-22  Richard Guenther  <rguenther@suse.de>
115
116         PR tree-optimization/45017
117         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
118         TYPE_PRECISION of integral types in addition to size.
119
120 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
121
122         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
123         when no C library is specified.
124
125 2010-07-22  Martin Jambor  <mjambor@suse.cz>
126
127         * ipa-prop.h (struct ipa_node_params): Updated comment.
128         (struct ipa_edge_args): Likewise.
129         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
130
131 2010-07-22  Martin Jambor  <mjambor@suse.cz>
132
133         * cgraphunit.c (verify_edge_count_and_frequency): New function.
134         (verify_cgraph_node): Verify frequencies of indirect edges.
135         * tree-inline.c (tree_function_versioning): Update frequencies of
136         indirect edges.
137
138 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
139
140         PR target/43698
141         * config/arm/arm.md: Split arm_rev into *arm_rev
142         and *thumb1_rev. Set *arm_rev to be predicable.
143
144 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
145
146         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
147         (LINK_COMMAND_SPEC_A): New.
148         (DSYMUTIL): New.
149         (DSYMUTIL_SPEC): New.
150         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
151         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
152
153 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
154
155         * calls.c (load_register_parameters): Move check for zero
156         sized items so that only the call to 
157         mem_overlaps_already_clobbered_arg_p () is protected.
158
159 2010-07-22  Jan Hubicka  <jh@suse.cz>
160
161         * ipa-pure-const.c (varying_state): Break out from ...
162         (get_function_state): ... here; always return varying_state
163         when state would be NULL otherwise.
164         (remove_node_data): Do not free varying state.
165
166 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
167
168         PR bootstrap/44970
169         PR middle-end/45009
170         * postreload.c: Include "target.h".
171         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
172         into account.
173         (fixup_debug_insns): Don't copy the rtx.
174         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't
175         have uses.  Don't copy when replacing.  Call fixup_debug_insns
176         in the case where we merged one add with another.
177         (reload_combine_recognize_pattern): Fail if there aren't any
178         uses.  Try harder to determine whether we're picking a valid
179         index register.  Don't set store_ruid for an insn we're going
180         to scan in the next iteration.
181         (reload_combine): Remove unused code.
182         (reload_combine_note_use): When updating use information for
183         an old insn, ignore a use that occurs after store_ruid.
184         * Makefile.in (postreload.o): Update dependencies.
185
186         * function.c (record_hard_reg_sets): Restrict the previous change
187         to cases where the incoming nominal mode is the same as the
188         incoming promoted mode and everything happens in MODE_INT.
189
190 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
191
192         PR debug/45015
193         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
194         ASM_OPERANDS_OUTPUT_IDX.
195         (adjust_insn): For inline asm with multiple sets ensure first
196         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
197         the insn.
198
199 2010-07-21  Richard Henderson  <rth@redhat.com>
200
201         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
202         comparison for avoiding xmm register saves.  Emit the xmm register
203         saves explicitly.
204         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
205         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
206         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
207         Remove patterns and the associated splitters.
208
209 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
210
211         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
212         and imagine parts of a complex, so that they can have the same
213         base and fall into the same group.
214
215 2010-07-21  Richard Guenther  <rguenther@suse.de>
216
217         PR lto/45018
218         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
219         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
220         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
221
222 2010-07-21  Martin Jambor  <mjambor@suse.cz>
223
224         PR tree-optimization/44900
225         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
226         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
227
228 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
229
230         PR middle-end/44738
231         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
232
233 2010-07-21  Richard Guenther  <rguenther@suse.de>
234
235         PR middle-end/45013
236         * tree-ssa.c (useless_type_conversion_p): Dispatch to
237         gimple_types_compatible_p only when in lto.
238         * gimple.c (gimple_types_compatible_p): Use canonical types
239         to speed up comparison.
240
241 2010-07-21  Richard Guenther  <rguenther@suse.de>
242
243         * tree-flow.h (referenced_var): Move define ...
244         * tree-flow-inline.h (referenced_var): ... here as an inline
245         function.  Assert here ...
246         * tree-dfa.c (referenced_var_lookup): ... instead of here.
247         * tree-ssa.c (maybe_optimize_var): Check if the variable
248         is in referenced vars.
249         (execute_update_addresses_taken): Remove old broken check.
250         * gimple-pretty-print.c (pp_points_to_solution): Use
251         referenced_var_lookup.
252         * tree-into-ssa.c (dump_decl_set): Likewise.
253
254 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
255
256         PR debug/45003
257         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of
258         a MEM.
259         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
260         ZERO_EXTEND here.
261
262 2010-07-20  Richard Henderson  <rth@redhat.com>
263
264         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
265
266 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
267
268         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
269         computing the sum of the stack pointer and a large constant.
270         * config/arm/constraints.md (M): Remove superfluous parentheses.
271         (Pc): New constraint.
272
273 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
274
275         PR debug/45006
276         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
277         operand's type if exp is tcc_unary class tree.
278
279 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
280
281         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
282         Reverse sense of if_then_else condition.
283
284 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
285
286         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
287         * config/rs6000/rs6000.c (rs6000_override_options): Set
288         rs6000_block_move_inline_limit appropriately.
289         (expand_block_move): Use rs6000_block_move_inline_limit.
290         * doc/invoke.texi (mblock-move-inline-limit): Document.
291
292 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
293
294         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
295         FROM and TO.  All callers changed.  Don't look for tracked uses,
296         just scan the RTL for DEBUG_INSNs and substitute.
297         (reload_combine_recognize_pattern): Call fixup_debug_insns.
298         (reload_combine): Ignore DEBUG_INSNs.
299
300 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
301
302         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
303         depth to 8 from 5.
304
305         PR debug/45003
306         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
307         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
308         instead of the result's type.
309
310 2010-07-20  Richard Guenther  <rguenther@suse.de>
311
312         PR tree-optimization/44977
313         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
314         SSA form.
315
316 2010-07-20  Richard Guenther  <rguenther@suse.de>
317
318         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
319         (lto_symtab_merge_decls_2): Likewise.
320         * gimple.h (gimple_types_compatible_p): Declare.
321         * gimple.c (gimple_queue_type_fixup): Remove.
322         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
323         (gimple_compatible_complete_and_incomplete_type_p): New
324         function.
325         (gimple_types_compatible_p): Adjust.
326         (gimple_register_type): Remove type fixup code.
327         (print_gimple_types_stats): Adjust.
328         (free_gimple_type_tables): Likewise.
329         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
330         * tree-ssa.c (useless_type_conversion_p): Likewise.
331
332 2010-07-20  Richard Guenther  <rguenther@suse.de>
333
334         PR middle-end/44971
335         PR middle-end/44988
336         * tree-ssa.c (maybe_optimize_var): New function split out from ...
337         (execute_update_addresses_taken): ... here.
338         (non_rewritable_mem_ref_base): Likewise.
339         (execute_update_addresses_taken): Do not iterate over all referenced
340         vars but just all local decls and parms.
341         Properly check call and asm arguments and rewrite call arguments.
342
343 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
344
345         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
346         to top level.
347         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
348         definitions ...
349         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
350         New macro.
351         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
352
353 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
354
355         * gengtype.c (start_root_entry): New function, split out from
356         write_root.  Check whether V is null and raise an error if so.
357         (write_field_root): Check for V being null.  Don't raise an error here;
358         set V to null instead.
359         (write_root): Update comment above function.  Use start_root_entry.
360
361 2010-07-19  Xinliang David Li  <davidxl@google.com>
362
363         PR testsuite/44932
364         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting def edges.
365         (find_uninit_use): Add dump.
366         (is_use_properly_guarded): Ditto.
367         (warn_uninitialized_phi): Ditto.
368         (execute_late_warn_uninitialized): Ditto.
369
370 2010-07-19  Richard Guenther  <rguenther@suse.de>
371
372         PR middle-end/44941
373         * expr.c (emit_block_move_hints): Move zero size check first.
374         Move asserts to more useful places.
375         * calls.c (load_register_parameters): Check for zero size.
376
377 2010-07-19  Richard Henderson  <rth@redhat.com>
378
379         * tree-optimize.c (execute_all_early_local_passes): New.  Change
380         cgraph_state here ...
381         (execute_early_local_optimizations): ... not here.  Remove.
382         (pass_early_local_passes, pass_all_early_optimizations): Update.
383
384 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
385
386         * postreload.c (reload_combine_closest_single_use): Ignore the
387         number of uses for DEBUG_INSNs.
388         (fixup_debug_insns): New static function.
389         (reload_combine_recognize_const_pattern): Use it.  Don't let the
390         main loop be affected by DEBUG_INSNs.
391         Really disallow moving adds past a jump insn.
392         (reload_combine_recognize_pattern): Don't update use_ruid here.
393         (reload_combine_note_use): Do it here.
394         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
395
396 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
397
398         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
399         of a loop.
400         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
401
402 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
403
404         * config/i386/darwin.h: Define darwin_emit_branch_islands.
405         (TARGET_MACHO_BRANCH_ISLANDS): New.
406         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
407         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
408         default value.
409         * config/i386/i386.c (output_pic_addr_const): Do not emit
410         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
411         (x86_output_mi_thunk): Adjust symbol creation.
412         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
413         Remove out of date comment.
414         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
415         DARWIN_LINKER_GENERATES_ISLANDS: Remove.
416         DARWIN_GENERATE_ISLANDS: Ditto.
417         (output_call):  Do not emit branch islands unless
418         darwin_emit_branch_islands is set.
419         * config/darwin.c: Declare darwin_emit_branch_islands.
420         (machopic_indirect_data_reference): Do not emit unless
421         darwin_emit_branch_islands is set.
422         (darwin_override_options): Set darwin_emit_branch_islands
423         where it is needed.
424         * config/darwin9.h
425         DARWIN_LINKER_GENERATES_ISLANDS: Remove.
426
427 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
428
429         * doc/sourcebuild.texi (Effective-Target Keywords): Document
430         sse_runtime, sse2_runtime.
431
432 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
433
434         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
435         low half of a single-register SCmode return value before ORing
436         it with the high half.
437         * config/mips/mips16.S (MERGE_GPRf): Likewise.
438
439 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
440
441         PR target/44805
442         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
443         on all targets.
444
445 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
446
447         PR target/42235
448         * postreload.c (reload_cse_move2add): Return bool, true if anything.
449         changed.  All callers changed.
450         (move2add_use_add2_insn): Likewise.
451         (move2add_use_add3_insn): Likewise.
452         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
453         reload_combine.
454         (RELOAD_COMBINE_MAX_USES): Bump to 16.
455         (last_jump_ruid): New static variable.
456         (struct reg_use): New members CONTAINING_MEM and RUID.
457         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
458         (reload_combine_split_one_ruid, reload_combine_split_ruids,
459         reload_combine_purge_insn_uses, reload_combine_closest_single_use
460         reload_combine_purge_reg_uses_after_ruid,
461         reload_combine_recognize_const_pattern): New static functions.
462         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
463         is true for our reg and that we have available index regs.
464         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
465         callers changed.  Use them to initialize fields in struct reg_use.
466         (reload_combine): Initialize last_jump_ruid.  Be careful when to
467         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
468         Call reload_combine_recognize_const_pattern.
469         (reload_combine_note_store): Update REAL_STORE_RUID field.
470
471 2010-07-16  Jason Merrill  <jason@redhat.com>
472
473         * Makefile.in (opts-common.o): Depend on options.h.
474
475 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
476
477         * tree.c (build_common_builtin_nodes): Use build_function_type_list
478         instead of build_function_type.
479         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
480         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
481
482 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
483
484         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
485         do all the work.
486         (rs6000_emit_int_cmove): Use function pointers for insn generation.
487         Don't force values into registers unnecessarily.
488         (output_isel): Assert that we're not given conditions we can't handle.
489         Delete corresponding code.
490         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
491         scc_comparison_operator constraint.  Permit 0 for the consequent
492         operand.  Permit any GPR for the alternative operand.
493         (isel_unsigned_<mode>): Likewise.
494
495 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
496
497         PR target/44942
498         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
499         argument to const_tree.
500         * config/i386/i386.c (function_arg_advance): If padding needs to be
501         inserted before argument, increment cum->words by number of padding
502         words as well.
503         (contains_aligned_value_p): Change argument to const_tree.
504         (ix86_function_arg_boundary): Change second argument to const_tree.
505
506 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
507
508         PR target/42235
509         * function.c (record_hard_reg_sets): New static function.
510         (assign_parm_setup_reg): If an optab for extending exists and the
511         generated code clobbbers no hard regs, emit the insn directly and
512         create a REG_EQUIV note.
513
514 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
515
516         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
517         TREE_CHAIN.
518         * c-typeck.c (push_init_level): Likewise.
519         (process_init_element): Likewise.
520
521 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
522
523         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
524         (integer_three_node): Add.
525         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
526         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
527         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
528         of call build_int_cst.
529         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
530         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
531         (find_interesting_uses_address): Ditto.
532         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
533         * tree-eh.c (lower_eh_constructs_2): Ditto.
534         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
535         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
536         * expmed.c (expand_divmod): Ditto.
537         * tree-mudflap.c (mx_register_decls): Ditto.
538         * varasm.c (array_size_for_constructor): Ditto.
539         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
540         * c-parser.c (c_parser_postfix_expression): Ditto.
541
542 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
543
544         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
545         New static variables.
546         (reload_combine_recognize_pattern): New static function, broken out
547         of reload_combine.
548         (reload_combine): Use it.  Only initialize first_index_reg and
549         last_index_reg once.
550
551 2010-07-15  Richard Henderson  <rth@redhat.com>
552
553         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
554         when done.
555
556 2010-07-15  Jan Hubicka  <jh@suse.cz>
557
558         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling comdats
559         for broken gold.
560         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly. 
561
562 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
563
564         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
565
566 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
567
568         * tree.h (DECL_CHAIN): Define.
569         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
570         * c-decl.c: Likewise.
571         * c-parser.c: Likewise.
572         * c-typeck.c: Likewise.
573         * cfgexpand.c: Likewise.
574         * cgraph.c: Likewise.
575         * cgraphunit.c: Likewise.
576         * combine.c: Likewise.
577         * config/alpha/alpha.c: Likewise.
578         * config/arm/arm.c: Likewise.
579         * config/frv/frv.c: Likewise.
580         * config/i386/i386.c: Likewise.
581         * config/i386/winnt-cxx.c: Likewise.
582         * config/ia64/ia64.c: Likewise.
583         * config/iq2000/iq2000.c: Likewise.
584         * config/mep/mep.c: Likewise.
585         * config/mips/mips.c: Likewise.
586         * config/pa/som.h: Likewise.
587         * config/rs6000/rs6000.c: Likewise.
588         * config/s390/s390.c: Likewise.
589         * config/sh/sh.c: Likewise.
590         * config/sh/symbian-cxx.c: Likewise.
591         * config/sparc/sparc.c: Likewise.
592         * config/spu/spu.c: Likewise.
593         * config/stormy16/stormy16.c: Likewise.
594         * config/vxworks.c: Likewise.
595         * config/xtensa/xtensa.c: Likewise.
596         * coverage.c: Likewise.
597         * dbxout.c: Likewise.
598         * dwarf2out.c: Likewise.
599         * emit-rtl.c: Likewise.
600         * expr.c: Likewise.
601         * function.c: Likewise.
602         * gimple-low.c: Likewise.
603         * gimple-pretty-print.c: Likewise.
604         * gimplify.c: Likewise.
605         * integrate.c: Likewise.
606         * ipa-inline.c: Likewise.
607         * ipa-prop.c: Likewise.
608         * ipa-split.c: Likewise.
609         * ipa-struct-reorg.c: Likewise.
610         * ipa-type-escape.c: Likewise.
611         * langhooks.c: Likewise.
612         * lto-cgraph.c: Likewise.
613         * omp-low.c: Likewise.
614         * stor-layout.c: Likewise.
615         * tree-cfg.c: Likewise.
616         * tree-complex.c: Likewise.
617         * tree-dfa.c: Likewise.
618         * tree-dump.c: Likewise.
619         * tree-inline.c: Likewise.
620         * tree-mudflap.c: Likewise.
621         * tree-nested.c: Likewise.
622         * tree-object-size.c: Likewise.
623         * tree-pretty-print.c: Likewise.
624         * tree-sra.c: Likewise.
625         * tree-ssa-live.c: Likewise.
626         * tree-ssa-loop-niter.c: Likewise.
627         * tree-ssa-math-opts.c: Likewise.
628         * tree-ssa-reassoc.c: Likewise.
629         * tree-ssa-sccvn.c: Likewise.
630         * tree-ssa-structalias.c: Likewise.
631         * tree-tailcall.c: Likewise.
632         * tree-vrp.c: Likewise.
633         * tree.c: Likewise.
634         * var-tracking.c: Likewise.
635         * varasm.c: Likewise.
636
637 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
638
639         PR target/44877
640         * config/spu/spu.c (spu_expand_builtin_1): Allow references
641         (as well as pointers) as argument to mask_for_load builtins.
642
643 2010-07-15  Richard Guenther  <rguenther@suse.de>
644
645         PR tree-optimization/44946
646         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
647         with accessing only padding properly.
648
649 2010-07-15  Jan Hubicka  <jh@suse.cz>
650
651         * ipa.c (function_and_variable_visibility): Variables marked as used
652         should not be localized.
653
654 2010-07-15  Jan Hubicka  <jh@suse.cz>
655
656         * cgraph.c: Include lto-streamer.h
657         (change_decl_assembler_name): Work when assembler name hash is at place.
658         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage, be
659         sure to rename it to avoid name clash.
660         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
661         Localize hidden symbols only when locally defined.
662
663 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
664
665         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
666
667 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
668             Kevin F. Quinn  <kevquinn@gentoo.org>
669
670         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
671         * common.opt: Add -Wtrampolines.
672         * doc/invoke.texi: Add -Wtrampolines.
673
674 2010-07-15  Jie Zhang  <jie@codesourcery.com>
675
676         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
677         cortex_a8_issue_ls.
678
679 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
680
681         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
682         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
683
684 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
685
686         * config/spu/spu.c (reg_names): Remove prototype.
687         (call_used_regs): Likewise.
688
689 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
690
691         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
692         "unused" with attribute "used".
693         (__JCR_END__): Likewise.
694         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
695         "used" attribute.
696         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
697
698 2010-07-14  Richard Guenther  <rguenther@suse.de>
699
700         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
701         (maybe_fixup_decls): Likewise.
702         (input_gimple_stmt): Do not fixup anything.
703         * lto-streamer-out.c (output_gimple_stmt): Make sure all
704         non-automatic variable uses are wrapped inside a MEM_REF.
705
706 2010-07-14  Richard Henderson  <rth@redhat.com>
707
708         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
709         for functions.
710         * varasm.c (assemble_variable): Remove early exit for functions;
711         assert that we're given a variable.
712
713 2010-07-14  Jie Zhang  <jie@codesourcery.com>
714
715         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
716         cortex_a8_default when neon_type is not none.
717
718 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
719
720         * lower-subreg.c (subreg_context): New static bitmap.
721         (decompose_multiword_subregs): Allocate and free it.
722         (find_decomposable_subregs): Set a bit in it for a register that
723         occurs in a subreg that changes mode but not size.
724         (can_decompose_p): Test it instead of non_decomposable_context.
725
726 2010-07-14  Richard Guenther  <rguenther@suse.de>
727
728         PR tree-optimization/44824
729         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
730         is_gimple_mem_ref_addr.
731         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
732         non-decl_address_invariant_p addresses.
733
734 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
735
736         * reload.c (find_reloads): Revert code to penalize small register
737         classes that was brought in with the IRA merge.
738
739 2010-07-14  Richard Guenther  <rguenther@suse.de>
740
741         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
742         as base of ARRAY_REFs.
743
744 2010-07-14  Richard Guenther  <rguenther@suse.de>
745
746         PR middle-end/44930
747         * tree-pretty-print.c (do_niy): Do not print a newline.
748
749 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
750
751         * ira-int.h (struct ira_object): New.
752         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
753         (struct ira_allocno): Remove members min, max,
754         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
755         conflict_allocnos_num and conflict_vec_p.  Add new member object.
756         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
757         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
758         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
759         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
760         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
761         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
762         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
763         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
764         an ira_object_t rather than ira_allocno_t.  All uses changed.
765         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
766         contains a vector of ira_object_t; all uses changed.
767         (ira_objects_num): Declare variable.
768         (ira_create_allocno_object): Declare function.
769         (ira_conflict_vector_profitable_p): Adjust prototype.
770         (ira_allocate_conflict_vec): Renamed from
771         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
772         (ira_allocate_object_conflicts): Renamed from
773         ira_allocate_allocno_conflicts; first arg now ira_object_t.
774         (struct ira_object_iterator): New.
775         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
776         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
777         to conflict_vec_p.  All uses changed.
778         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
779         Changed to take into account that conflicts are now tracked for
780         objects.
781         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
782         Args changed to accept ira_object_t.  All uses changed.
783         (allocnos_conflict_p): New static function.
784         (collected_conflict_objects): Renamed from collected_allocno_objects;
785         now a vector of ira_object_t.  All uses changed.
786         (build_conflict_bit_table): Changed to take into account that
787         conflicts are now tracked for objects.
788         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
789         (print_allocno_conflicts, ira_build_conflicts): Likewise.
790         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
791         setup_allocno_left_conflicts_size, allocno_reload_assign,
792         fast_allocation): Likewise.
793         * ira-lives.c (make_hard_regno_born, make_allocno_born)
794         process_single_reg_class_operands, process_bb_node_lives): Likewise.
795         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
796         Likewise.
797         * ira-build.c (ira_objects_num): New variable.
798         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
799         contains a vector of ira_object_t; all uses changed.
800         (ira_object_id_map_vec): Corresponding change.
801         (object_pool): New static variable.
802         (initiate_allocnos): Initialize it.
803         (finish_allocnos): Free it.
804         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
805         New functions.
806         (ira_create_allocno): Don't set members that were removed.
807         (ira_set_allocno_cover_class): Don't change conflict hard regs.
808         (merge_hard_reg_conflicts): Changed to take into account that
809         conflicts are now tracked for objects.
810         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
811         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
812         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
813         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
814         setup_min_max_conflict_allocno_ids, ):  Likewise.
815         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
816         to ira_object_t; all callers changed.
817         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
818         to ira_object_t, all callers changed.
819         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
820         to ira_object_t, all callers changed.
821         (conflict_check, curr_conflict_check_tick): Renamed from
822         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
823         changed.
824         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
825         arg changed to ira_object_t, all callers changed.
826         (create_cap_allocno): Call ira_create_allocno_object.
827         (finish_allocno): Free the corresponding object.
828         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
829         callers changed.  Adjusted for dealing with objects.
830         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
831         dealing with objects.
832         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
833
834         * ira-int.h (struct live_range): Rename allocno member to object
835         and change type to ira_object_t.
836         (struct ira_object): New member live_ranges.
837         (struct ira_allocno): Remove member live_ranges.
838         (ALLOCNO_LIVE_RANGES): Remove.
839         (OBJECT_LIVE_RANGES): New macro.
840         (ira_create_live_range, ira_copy_live_range_list,
841         ira_merge_live_range_list, ira_live_ranges_intersect_p,
842         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
843         * ira-build.c (ira_create_object): Initialize live ranges here.
844         (ira_create_allocno): Not here.
845         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
846         changed to ira_object_t, all callers changed.
847         (copy_live_range): Rename from copy_allocno_live_range, all callers
848         changed.
849         (ira_copy_live_range_list): Rename from
850         ira_copy_allocno_live_range_list, all callers changed.
851         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
852         all callers changed.
853         (ira_live_ranges_intersect_p): Rename from
854         ira_allocno_live_ranges_intersect_p, all callers changed.
855         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
856         callers changed.
857         (ira_finish_live_range_list): Rename from
858         ira_finish_allocno_live_range_list, all callers changed.
859         (change_object_in_range_list): Rename from change_allocno_in_range_list,
860         last arg changed to ira_object_t, all callers changed.
861         (finish_allocno): Changed to expect live ranges in the allocno's object.
862         (move_allocno_live_ranges, copy_allocno_live_ranges,
863         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
864         ira_flattening, ira_build): Likewise.
865         * ira-color.c (allocnos_have_intersected_live_ranges_p,
866         slot_coalesced_allocno_live_ranges_intersect,
867         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
868         * ira-conflicts.c (build_conflict_bit_table): Likewise.
869         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
870         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
871         make_allocno_dead, create_start_finish_chains,
872         remove_some_program_points_and_update_live_ranges,
873         ira_debug_live_range_list): Likewise.
874
875         * ira-int.h (ira_object_conflict_iterator): Rename from
876         ira_allocno_conflict_iterator.
877         (ira_object_conflict_iter_init): Rename from
878         ira_allocno_conflict_iter_init, second arg changed to
879         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
880         FOR_EACH_ALLOCNO_CONFLICT.
881         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
882         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
883         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
884         * ira-conflicts.c (print_allocno_conflicts): Likewise.
885
886 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
887
888         PR other/44874
889         * tree-dump.c (dump_options): Add enumerate_locals entry.
890         Add TDF_NOID exclusion to all entry.
891         * tree-dump.h (dump_enumerated_decls): Declare.
892         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
893         Don't display type uid.
894         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
895         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
896         * tree-ssa-live.c: Include gimple.h.
897         (numbered_tree_d): New struct.
898         (numbered_tree): New typedef.
899         (DEF_VEC_O (numbered_tree): New.
900         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
901         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
902         (dump_enumerated_decls): Likewise.
903         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
904         debug info and flag_dump_final_insns, call dump_enumerated_decls.
905         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
906         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
907
908 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
909
910         * expmed.h (MAX_BITS_PER_WORD): Move to...
911         * defaults.h (MAX_BITS_PER_WORD): ...here.
912
913 2010-07-13  DJ Delorie  <dj@redhat.com>
914
915         * config/h8300/h8300.c (h8300_init_once): Default to
916         -fstrict_volatile_bitfields.
917
918         * config/sh/sh.c (sh_override_options): Default to
919         -fstrict_volatile_bitfields.
920
921         * config/rx/rx.c (rx_option_override): New.
922
923         * config/m32c/m32c.c (m32c_override_options): Default to
924         -fstrict_volatile_bitfields.
925
926 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
927
928         * tree.h (build_function_call_expr): Delete.
929         (build_call_expr_loc_array): New function.
930         (build_call_expr_loc_vec): New function.
931         * tree-flow.h (struct omp_region): Change type of ws_args field
932         to a VEC.
933         * builtins.c (build_function_call_expr): Delete.
934         (build_call_expr_loc_array): New function.
935         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
936         (build_call_expr): Likewise.
937         (build_call_expr_loc_vec): New function.
938         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
939         build_function_call_expr.
940         * expr.c (emutls_var_address): Likewise.
941         * varasm.c (emutls_common_1): Likewise.
942         * omp-low.c (expand_omp_atomic_mutex): Likewise.
943         (expand_omp_taskreg): Adjust for new type of region->ws_args.
944         (get_ws_args_for): Return a VEC instead of a tree.
945         (expand_parallel_call): Call build_call_expr_loc_vec instead of
946         build_function_call_expr.
947         * stor-layout.c (self_referential_size): Likewise.
948
949 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
950
951         PR testsuite/44701
952         * recog.c (constrain_operands): Allow side-effects in memory
953         operands if either < or > constraint is used, rather than if
954         both < and > is used.
955
956 2010-07-13  Richard Guenther  <rguenther@suse.de>
957
958         PR middle-end/44911
959         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
960         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
961         without name.
962
963 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
964
965         PR target/44761
966         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
967         to variable emited.
968         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
969         * config/sh/sh.md (symGOT_load): Likewise.
970         (symDTPOFF2reg): Likewise.
971         (symTPOFF2reg): Likewise.
972
973 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
974
975         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
976         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
977
978 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
979
980         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
981         explanation.
982         Find ucontext_t * on Solaris 11.
983         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
984         Handle new Solaris 11 __sighndlr patterns.
985
986 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
987
988         PR debug/44901
989         * vec.h (VEC_block_remove): Fix comment.
990         * tree-ssa-live.c (remove_unused_locals): Don't use
991         VEC_unordered_remove on local_decls, instead replace a single
992         vector element in each iteration if at least one element had
993         to be removed and VEC_truncate at the end.
994         * omp-low.c (expand_omp_taskreg): Likewise.
995
996 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
997
998         * c-decl.c (finish_function): Fix typo in comment.
999         
1000 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
1001
1002         PR bootstrap/44921
1003         * postreload.c (move2add_use_add3_insn): Silence gcc warning
1004         on min_regno.
1005
1006 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
1007
1008         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
1009         (simplify_stmt_using_ranges): Use it.
1010
1011 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1012
1013         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
1014         member.  Do not mark as GTY(()).
1015         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
1016         (spu_builtin_decls): New static variable.
1017         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
1018         (spu_init_builtins): Likewise.
1019         (spu_builtin_mul_widen_even): Likewise.
1020         (spu_builtin_mul_widen_odd): Likewise.
1021         (spu_builtin_mask_for_load): Likewise.
1022         (spu_builtin_vec_perm): Likewise.
1023         * config/spu/spu-c.c: Include "target.h".
1024         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
1025         of using spu_builtins[].fndecl.
1026
1027 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1028
1029         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
1030         imply -minterlink-mips16.
1031
1032 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1033
1034         * config/mips/mips.h (mips16_globals): Declare.
1035         (SWITCHABLE_TARGET): Define.
1036         * config/mips/mips.c: Include target-globals.h.
1037         (mips16_globals): New variable.
1038         (mips_set_mips16_mode): Use save_target_globals and
1039         restore_target_globals instead of target_reinit.
1040
1041 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1042
1043         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
1044         to say that the function can be called more than once.
1045         * target-globals.c (save_target_globals): Call init_reg_sets.
1046
1047 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1048
1049         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
1050         * bb-reorder.h: New file.
1051         * bb-reorder.c (default_target_bb_reorder): New variable.
1052         (this_target_bb_reorder): New conditional variable.
1053         (uncond_jump_length): Redefine as a macro.
1054         * target-globals.h (this_target_bb_reorder): Declare.
1055         (target_globals): Add a bb_reorder field.
1056         (restore_target_globals): Copy the bb_reorder field to
1057         this_target_bb-reorder.
1058         * target-globals.c: Include bb-reorder.h.
1059         (default_target_globals): Initialize the bb_reorder field.
1060         (save_target_globals): Likewise.
1061
1062 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1063
1064         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
1065         * gcse.h: New file.
1066         * gcse.c: Include gcse.h.
1067         (default_target_gcse): New variable.
1068         (this_target_gcse): New conditional variable.
1069         (can_copy): Redefine as a macro.
1070         (can_copy_init_p): New macro.
1071         (can_copy_p): Remove can_copy_init_p.
1072         * target-globals.h (this_target_gcse): Declare.
1073         (target_globals): Add a gcse field.
1074         (restore_target_globals): Copy the gcse field to this_target_gcse.
1075         * target-globals.c: Include gcse.h.
1076         (default_target_globals): Initialize the gcse field.
1077         (save_target_globals): Likewise.
1078
1079 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1080
1081         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
1082         and x_ira_prohibited_mode_move_regs_initialized_p.
1083         (ira_prohibited_mode_move_regs): Redefine as a macro.
1084         * ira.c (ira_prohibited_mode_move_regs): Delete.
1085         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
1086
1087 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1088
1089         * reload.h (target_reload): Add x_cached_reg_save_code and
1090         x_cached_reg_restore_code.
1091         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
1092         Redefine as macros.
1093
1094 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1095
1096         * Makefile.in (target-globals.o): Depend on builtins.h.
1097         * builtins.h: New file.
1098         * builtins.c: Include builtins.h.
1099         (default_target_builtins): New variable.
1100         (this_target_builtins): New conditional variable.
1101         (apply_args_mode, apply_result_mode): Redefine as macros.
1102         * target-globals.h (this_target_builtins): Declare.
1103         (target_globals): Add a builtins field.
1104         (restore_target_globals): Copy the builtins field to
1105         this_target_builtins.
1106         * target-globals.c: Include builtins.h.
1107         (default_target_globals): Initialize the builtins field.
1108         (save_target_globals): Likewise.
1109
1110 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1111
1112         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
1113         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
1114         from expmed.c.
1115         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
1116         (alg_hash, alg_hash_used_p): New macros.
1117         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
1118         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
1119         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
1120
1121 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1122
1123         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
1124         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
1125         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
1126         (this_op_costs, costs_classes): Redefine as macros.
1127         (record_reg_classes): Don't take op_costs as a parameter.
1128         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
1129         (scan_one_insn): Update call to record_operand_costs.
1130
1131 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1132
1133         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
1134         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
1135         (target_ira_int): New structure.
1136         (default_target_ira_int): Declare.
1137         (this_target_ira_int): Declare as a variable or define as a macro.
1138         (ira_reg_mode_hard_regset, ira_register_move_cost)
1139         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
1140         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
1141         (prohibited_class_mode_regs, ira_important_classes_num)
1142         (ira_important_classes, ira_reg_class_intersect)
1143         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
1144         (ira_reg_class_union): Redefine as macros.
1145         * ira.h (target_ira): New structure.
1146         (default_target_ira): Declare.
1147         (this_target_ira): Declare as a variable or define as a macro.
1148         (ira_available_class_regs, ira_hard_regno_cover_class)
1149         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
1150         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
1151         (ira_class_hard_regs_num): Redefine as macros.
1152         * ira.c (default_target_ira, default_target_ira_int): New variables.
1153         (this_target_ira, this_target_ira_int): New conditional variables.
1154         (ira_reg_mode_hard_regset, ira_memory_move_cost)
1155         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
1156         (ira_class_subset_p): Delete.
1157         (no_unit_alloc_regs): Redefine as a macro.
1158         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
1159         (ira_class_hard_regs_num, ira_class_hard_reg_index)
1160         (ira_available_class_regs): Delete.
1161         (alloc_reg_class_subclasses): Redefine as a macro.
1162         (ira_reg_class_cover_size, ira_reg_class_cover)
1163         (ira_important_classes_num, ira_important_classes)
1164         (ira_important_class_nums, ira_class_translate): Delete.
1165         (cover_class_order): Document the variable's lifetime.
1166         (reorder_important_classes): Don't set ira_important_class_nums.
1167         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
1168         (ira_reg_class_super_classes, ira_reg_class_union)
1169         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
1170         Delete.
1171         (setup_reg_class_nregs): Don't set ira_max_regs.
1172         (prohibited_class_mode_regs): Delete.
1173         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
1174         (target_globals): Add ira and ira_int fields.
1175         (restore_target_globals): Copy the ira field to this_target_ira
1176         and the ira_int field to this_target_ira_int.
1177         * target-globals.c: Include ira-int.h.
1178         (default_target_globals): Initialize the ira and ira_int fields.
1179         (save_target_globals): Likewise.
1180
1181 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1182
1183         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
1184         * cfgloop.h (target_cfgloop): New structure.
1185         (default_target_cfgloop): Declare.
1186         (this_target_cfgloop): Declare as a variable or define as a macro.
1187         (target_avail_regs, target_clobbered_regs, target_res_regs)
1188         (target_reg_cost, target_spill_cost): Redefine as macros.
1189         * cfgloopanal.c (default_target_cfgloop): New variable.
1190         (this_target_cfgloop): New conditional variable.
1191         (target_avail_regs, target_clobbered_regs, target_res_regs)
1192         (target_reg_cost, target_spill_cost): Delete.
1193         * target-globals.h (this_target_cfgloop): Declare.
1194         (target_globals): Add a cfgloop field.
1195         (restore_target_globals): Copy the cfgloop field to
1196         this_target_cfgloop.
1197         * target-globals.c: Include cfgloop.h.
1198         (default_target_globals): Initialize the cfgloop field.
1199         (save_target_globals): Likewise.
1200
1201 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1202
1203         * regs.h (target_regs): Add x_direct_load, x_direct_store and
1204         x_float_extend_from_mem.
1205         (direct_load, direct_store, float_extend_from_mem): New macros.
1206         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
1207
1208 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1209
1210         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
1211         (target-globals.o): Depend on $(LIBFUNCS_H).
1212         * libfuncs.h: Include hashtab.h.
1213         (libfunc_entry): Moved from optabs.c.
1214         (target_libfuncs): New structure.
1215         (default_target_libfuncs): Declare.
1216         (this_target_libfuncs): Declare as a variable or define as a macro.
1217         (libfunc_table): Redefine as a macro.
1218         * optabs.c (default_target_libfuncs): New variable.
1219         (this_target_libfuncs): New conditional variable.
1220         (libfunc_table): Delete.
1221         (libfunc_entry): Moved to optabs.h.
1222         (libfunc_hash): Redefine as a macro.
1223         (hash_libfunc, eq_libfunc): Fix comments.
1224         (init_optabs): Use libfunc_hash to detect cases where the function
1225         has already been called.  Clear the hash table instead of
1226         recreating it.
1227         * target-globals.h (this_target_libfuncs): Declare.
1228         (target_globals): Add a libfuncs field.
1229         (restore_target_globals): Copy the libfuncs field to
1230         this_target_libfuncs.
1231         * target-globals.c: Include libfuncs.h.
1232         (default_target_globals): Initialize the libfuncs field.
1233         (save_target_globals): Likewise.
1234
1235 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1236
1237         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
1238         in all dependency lists.
1239
1240 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1241
1242         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
1243         * optabs.h (target_optabs): New structure.
1244         (default_target_optabs): Declare.
1245         (this_target_optabs): Declare as a variable or define as a macro.
1246         (optab_table, convert_optab_table, direct_optab_table): Redefine
1247         as macros.
1248         * optabs.c (default_target_optabs): New variable.
1249         (this_target_optabs): New conditional variable.
1250         (optab_table, convert_optab_table, direct_optab_table): Delete.
1251         * target-globals.h (this_target_optabs): Declare.
1252         (target_globals): Add a optabs field.
1253         (restore_target_globals): Copy the optabs field to
1254         this_target_optabs.
1255         * target-globals.c: Include expr.h and optabs.h.
1256         (default_target_globals): Initialize the optabs field.
1257         (save_target_globals): Likewise.
1258
1259 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1260
1261         * flags.h (target_flagstate): Add x_flag_excess_precision.
1262         (flag_excess_precision): Redefine as a macro.
1263         * toplev.c (flag_excess_precision): Delete.
1264
1265 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1266
1267         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
1268         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
1269         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
1270         (no_caller_save_reg_set): Redefine as a macro.
1271         * reload.h (target_reload): Add x_caller_save_initialized_p and
1272         x_regno_save_mode.
1273         (caller_save_initialized_p): Redefine as a macro.
1274         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
1275         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
1276         (regno_save_mode): Redefine as a macro.
1277
1278 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1279
1280         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
1281         * expmed.h: New file.
1282         * expmed.c (default_target_costs): New variable.
1283         (this_target_costs): New conditional variable.
1284         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
1285         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
1286         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
1287         * target-globals.h (this_target_expmed): Declare.
1288         (target_globals): Add a expmed field.
1289         (restore_target_globals): Copy the expmed field to
1290         this_target_expmed.
1291         * target-globals.c: Include expmed.h.
1292         (default_target_globals): Initialize the expmed field.
1293         (save_target_globals): Likewise.
1294
1295 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1296
1297         * Makefile.in (target-globals.o): Depend on reload.h.
1298         * reload.h (target_reload): New structure.
1299         (default_target_reload): Declare.
1300         (this_target_reload): Declare as a variable or define as a macro.
1301         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
1302         * reload1.c (default_target_reload): New variable
1303         (this_target_reload): New conditional variable.
1304         (indirect_symref_ok, double_reg_address_ok): Delete.
1305         (spill_indirect_levels): Redefine as a macro.
1306         * target-globals.h (this_target_reload): Declare.
1307         (target_globals): Add a reload field.
1308         (restore_target_globals): Copy the reload field to
1309         this_target_reload.
1310         * target-globals.c: Include hard-reg-set.h.
1311         (default_target_globals): Initialize the reload field.
1312         (save_target_globals): Likewise.
1313
1314 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1315
1316         * rtl.h (target_rtl): Add x_static_reg_base_value.
1317         * alias.c (static_reg_base_value): Redefine as a macro.
1318
1319 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1320
1321         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
1322         (GTFILES): Remove reginfo.c.
1323         * rtl.h (target_rtl): Add x_top_of_stack.
1324         (top_of_stack): New macro.
1325         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
1326         (top_of_stack): Delete.
1327
1328 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1329
1330         * regs.h (target_regs): Add x_hard_regs_of_mode,
1331         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
1332         x_may_move_out_cost and x_last_mode_for_init_move_cost.
1333         (have_regs_of_mode, contains_reg_of_mode, move_cost)
1334         (may_move_in_cost, may_move_out_cost): Redefine as macros.
1335         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
1336         (may_move_in_cost, may_move_out_cost): Delete.
1337         (last_mode_for_init_move_cost): Redefine as a macro.
1338
1339 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1340
1341         * hard-reg-set.h (target_hard_regs): New structure.
1342         (default_target_hard_regs): Declare.
1343         (this_target_hard_regs): Declare as a variable or define as a macro.
1344         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
1345         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
1346         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
1347         (reg_class_size, reg_class_subclasses, reg_class_subunion)
1348         (reg_class_superunion, reg_names): Redefine as macros.
1349         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
1350         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
1351         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
1352         (reg_class_contents, reg_class_size, reg_class_subclasses)
1353         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
1354         (default_target_hard_regs): New variable
1355         (this_target_hard_regs, initial_call_really_used_regs)
1356         (initial_reg_alloc_order): New conditional variables.
1357         (initial_reg_names): New variable.
1358         (init_reg_sets): Assert that initial_call_really_used_regs,
1359         initial_reg_alloc_order and initial_reg_names
1360         are all the same size as their variable counterparts.  Use them to
1361         initialize those counterparts.
1362         * target-globals.h (this_target_hard_regs): Declare.
1363         (target_globals): Add a hard_regs field.
1364         (restore_target_globals): Copy the hard_regs field to
1365         this_target_hard_regs.
1366         * target-globals.c: Include hard-reg-set.h.
1367         (default_target_globals): Initialize the hard_regs field.
1368         (save_target_globals): Likewise.
1369
1370 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1371
1372         * Makefile.in (target-globals.o): Depend on $(RTL_H).
1373         * rtl.h: (target_rtl): New structure.
1374         (default_target_rtl): Declare.
1375         (this_target_rtl): Declare as a variable or define as a macro.
1376         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
1377         Redefine as macros.
1378         * emit-rtl.c (default_target_rtl): New variable.
1379         (this_target_rtl): New conditional variable.
1380         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
1381         (return_address_pointer_rtx): Delete.
1382         (initial_regno_reg_rtx): New macro.
1383         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
1384         (init_emit_regs): Likewise.
1385         * target-globals.h (this_target_rtl): Declare.
1386         (target_globals): Add a rtl field.
1387         (restore_target_globals): Copy the rtl field to this_target_rtl.
1388         * target-globals.c: Include rtl.h.
1389         (default_target_globals): Initialize the rtl field.
1390         (save_target_globals): Likewise.
1391
1392 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1393
1394         * Makefile.in (target-globals.o): Depend on $(REGS_H).
1395         * regs.h (target_reg_modes): New structure.
1396         (default_target_reg_modes): Declare.
1397         (this_target_reg_modes): Declare as a variable or define as a macro.
1398         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
1399         * reginfo.c (default_target_reg_modes): New variable.
1400         (this_target_reg_modes): New conditional variable.
1401         (hard_regno_nregs, reg_raw_mode): Delete.
1402         * target-globals.h (this_target_regs): Declare.
1403         (target_globals): Add a regs field.
1404         (restore_target_globals): Copy the regs field to this_target_regs.
1405         * target-globals.c: Include regs.h.
1406         (default_target_globals): Initialize the regs field.
1407         (save_target_globals): Likewise.
1408
1409 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1410
1411         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
1412         * doc/tm.texi: Regenerate.
1413         * Makefile.in (OBJS-common): Add target-globals.o.
1414         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
1415         and target-globals.h.
1416         (target-globals.o): New rule.
1417         (GTFILES): Include $(srcdir)/target-globals.h.
1418         * defaults.h (SWITCHABLE_TARGET): Define.
1419         * gengtype.c (open_base_files): Add target-globals.h to the
1420         list of includes.
1421         * target-globals.h: New file.
1422         * target-globals.c: Likewise.
1423
1424         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
1425         * flags.h (target_flag_state): New structure.
1426         (default_target_flag_state): Declare.
1427         (this_target_flag_state): Declare as a variable or define as a macro.
1428         (align_loops_log): Redefine as a macro.
1429         (align_loops_max_skip, align_jumps_log): Likewise.
1430         (align_jumps_max_skip, align_labels_log): Likewise.
1431         (align_labels_max_skip, align_functions_log): Likewise.
1432         * toplev.c (default_target_flag_state): New variable.
1433         (this_target_flag_state): New conditional variable.
1434         (align_loops_log): Delete.
1435         (align_loops_max_skip, align_jumps_log): Likewise.
1436         (align_jumps_max_skip, align_labels_log): Likewise.
1437         (align_labels_max_skip, align_functions_log): Likewise.
1438         * target-globals.h (this_target_flag_state): Declare.
1439         (target_globals): Add a flag_state field.
1440         (restore_target_globals): Copy the flag_state field to
1441         this_target_flag_state.
1442         * target-globals.c: Include flags.h.
1443         (default_target_globals): Initialize the flag_state field.
1444         (save_target_globals): Likewise.
1445
1446 2010-07-12  Jie Zhang  <jie@codesourcery.com>
1447
1448         * postreload.c (reg_symbol_ref[]): New.
1449         (move2add_use_add2_insn): New.
1450         (move2add_use_add3_insn): New.
1451         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
1452         (move2add_note_store): Likewise.
1453
1454 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
1455
1456         PR rtl-optimization/44752
1457         * genautomata.c (main): Don't emit an empty file even if there
1458         is no automaton.
1459
1460 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1461
1462         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
1463         ix86_solaris_return_in_memory.
1464         * config/i386-protos.h: Reflect this.
1465         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
1466         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
1467         Move ...
1468         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
1469
1470 2010-07-12  Jie Zhang  <jie@codesourcery.com>
1471
1472         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
1473         align the stack when it's going to be saved.
1474
1475 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1476
1477         PR pch/14940
1478         * config/host-solaris.c (mmap_fixed): New function.
1479         (sol_gt_pch_get_address): Use it.
1480         (sol_gt_pch_use_address): Likewise.
1481
1482 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1483
1484         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1485         pentiumpro on Solaris 8 and 9/x86.
1486         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
1487         Document SSE/SSE2 support.
1488         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
1489
1490 2010-07-12  Andi Kleen  <ak@linux.intel.com>
1491
1492         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
1493         instead of gcc_assert to print better error message for multiple
1494         prevailing defs.
1495
1496 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
1497
1498         * config/i386/i386.c (ix86_asm_output_function_label): Change format
1499         string placeholder from 0x%x to %#x.
1500         (ix86_code_end): Use putc to output '\n'.
1501         (ix86_print_operand) <case ';'>: Use putc to output ';'.
1502
1503 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
1504
1505         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
1506         in directive -export.
1507
1508 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
1509
1510         * reginfo.h (reg_classes_intersect_p): Change arguments type to
1511         reg_class_t.
1512         * rtl.h (reg_classes_intersect_p): Adjust prototype.
1513
1514         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
1515         Remove macros.
1516         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
1517         rs6000_memory_move_cost): Remove
1518         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
1519         TARGET_MEMORY_MOVE_COST): Define.
1520         (rs6000_register_move_cost): Make static. Change arguments type from
1521         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
1522         (rs6000_memory_move_cost): Make static. Change arguments type from
1523         'enum reg_class' to reg_class_t.
1524
1525 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
1526
1527         PR middle-end/42505
1528         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
1529         lookup code into....
1530         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
1531         new functions.
1532         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
1533         * cfgloopanal.c (target_clobbered_regs): Define.
1534         (init_set_costs): Initialize target_clobbered_regs.
1535         (estimate_reg_pressure_cost): Add call_p argument.  When true,
1536         adjust the number of available registers to exclude the
1537         call-clobbered registers.
1538         * cfgloop.h (target_clobbered_regs): Declare.
1539         (estimate_reg_pressure_cost): Adjust declaration.
1540         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
1541         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
1542         (determine_set_costs): Dump target_clobbered_regs.
1543         (loop_body_includes_call): New function.
1544         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
1545         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
1546         call_p flag through.
1547         (best_gain_for_invariant): Likewise.
1548         (find_invariants_to_move): Likewise.
1549         (move_single_loop_invariants): Likewise, using already-computed
1550         has_call field.
1551
1552 2010-07-10  Richard Guenther  <rguenther@suse.de>
1553             Joern Rennecke  <joern.rennecke@embecosm.com>
1554
1555         PR debug/44832
1556         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
1557         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
1558         unless they have DECL_IGNORED_P set.
1559
1560 2010-07-10  Richard Guenther  <rguenther@suse.de>
1561
1562         PR lto/44889
1563         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
1564         helper function.
1565         (gimple_types_compatible_p): Similar to pointed-to
1566         types allow and merge a mix of complete and incomplete aggregate.
1567         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
1568         (iterative_hash_gimple_type): Adjust for that.
1569
1570 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
1571
1572         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
1573
1574 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
1575
1576         PR objc/44140
1577         * config/darwin.c (output_objc_section_asm_op): Save and restore
1578         section when outputting ObjC section list.
1579
1580 2010-07-09  Jan Hubicka  <jh@suse.cz>
1581
1582         * lto-streamer-out.c (produce_symtab): Do not write alias
1583         cgraph/varpool nodes.
1584
1585 2010-07-09  Jan Hubicka  <jh@suse.cz>
1586
1587         * tree-inline.c (declare_return_variable): Fix ICE while
1588         inlining DECL_BY_VALUE function not in SSA form
1589
1590 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
1591
1592         PR tree-optimization/44576
1593         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
1594         New.  Pull out from is_loop_prefetching_profitable to implement
1595         the trip count to ahead ratio heuristic.
1596         (mem_ref_count_reasonable_p): New.  Pull out from
1597         is_loop_prefetching_profitable to implement the instruction to
1598         memory reference ratio heuristic.  Also consider not reasonable if
1599         the memory reference count is above a threshold (to avoid
1600         explosive compilation time.
1601         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
1602         is_loop_prefetching_profitable to implement the instruction to
1603         prefetch ratio heuristic.
1604         (is_loop_prefetching_profitable): Removed.
1605         (loop_prefetch_arrays): Distribute the cost analysis across the
1606         function to allow early exit of the prefetch analysis.
1607         is_loop_prefetching_profitable is splitted into three functions,
1608         with each one called as early as possible.
1609         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
1610         number of memory references in a loop is considered too many.
1611
1612 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
1613
1614         * reload.c (find_reloads): Don't clear badop if we have a winreg
1615         alternative, but not win, and the class only has fixed regs.
1616         * hard-reg-set.h (class_only_fixed_regs): Declare.
1617         * reginfo.c (class_only_fixed_regs): New array.
1618         (init_reg_sets_1): Initialize it.
1619         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
1620         discourage alternatives using the stack pointer.
1621
1622         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
1623
1624         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
1625
1626         * config/arm/arm.md (cbranchqi4): Fix array size.
1627         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
1628         calculating length.
1629
1630 2010-07-09  Richard Guenther  <rguenther@suse.de>
1631
1632         * gimple.c (struct type_fixup_s): New struct and VEC type.
1633         (gimple_register_type_fixups): New static global.
1634         (gimple_queue_type_fixup): New function.
1635         (gimple_types_compatible_p): Queue type fixups instead of
1636         applying them here.
1637         (gimple_register_type): Apply queued fixups for the
1638         canonical type.  Empty the type fixup queue.
1639
1640 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
1641
1642         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
1643         * configure: Regenerate.
1644         * config.in: Ditto.
1645
1646 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
1647             Denys Vlasenko  <dvlasenk@redhat.com>
1648             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1649
1650         PR tree-optimization/28632
1651         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
1652         (extract_range_from_binary_expr): Further optimize
1653         BIT_AND_EXPR and BIT_IOR_EXPR.
1654
1655 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
1656
1657         * tree-if-conv.c (fold_or_predicates): New.
1658         (add_to_predicate_list): Call it.
1659
1660 2010-07-09  Richard Guenther  <rguenther@suse.de>
1661
1662         PR middle-end/44890
1663         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
1664         if base is a pointer.
1665         * tree-cfg.c (verify_expr): Update MEM_REF checking.
1666
1667 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1668
1669         PR target/44877
1670         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
1671         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
1672         builtin mask for load/store builtins.
1673
1674 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
1675
1676         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
1677         for "lock addl".
1678         * configure: Regenerate.
1679         * config/i386/i386.c (ix86_print_operand) <case ';'>:
1680         Remove TARGET_MACHO.
1681
1682 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
1683
1684         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
1685         default ISA flags.
1686         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
1687
1688 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
1689
1690         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
1691
1692 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
1693
1694         * config/picochip/picochip.md (commsTestPort): Emit more
1695         efficient sequence for tstport instruction.
1696
1697 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
1698
1699         * config/i386/i386.c (ix86_veclib_handler): Make static.
1700
1701 2010-07-09  Richard Guenther  <rguenther@suse.de>
1702
1703         PR tree-optimization/44852
1704         * tree-ssa-alias.c: Include toplev.h for exact_log2.
1705         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
1706         in MEM_REF.
1707         (indirect_refs_may_alias_p): Likewise.
1708         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
1709
1710 2010-07-09  Richard Guenther  <rguenther@suse.de>
1711
1712         PR tree-optimization/44882
1713         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
1714         sets do conflict.
1715         (vectorizable_load): Likewise.
1716
1717 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
1718
1719         PR target/40657
1720         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
1721         All callers changed.
1722         Handle the case when we're called for the epilogue.
1723         (thumb_unexpanded_epilogue): Use it.
1724         (thumb1_expand_epilogue): Likewise.
1725
1726 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
1727
1728         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
1729         both ranges are range_int_cst_p with non-negative minimum,
1730         try harder to derive smaller range.
1731
1732 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1733
1734         * genrecog.c: Include diagnostic-core.h before toplev.h.
1735         * genoutput.c: Likewise.
1736         * genextract.c: Likewise.
1737         * genautomata.c: Likewise.
1738         * genemit.c: Likewise.
1739         * genpeep.c: Likewise.
1740         * genattrtab.c: Likewise.
1741         * genconditions.c: Likewise.
1742         * genpreds.c: Likewise.
1743
1744 2010-07-08  Andi Kleen  <ak@linux.intel.com>
1745
1746         * lto-section-in.c (lto_section_name): Add missing comma.
1747
1748 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
1749
1750         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
1751         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
1752         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
1753         (ia64_override_options): Rename to...
1754         (ia64_option_override): ... this one. Make static.
1755
1756 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1757
1758         PR middle-end/44843
1759         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
1760         pointed-to type of the offset in a MEM_REF to compute the alignment.
1761
1762 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
1763
1764         * final.c (final_scan_insn): Replace
1765         TARGET_UNWIND_INFO macro check by unwind_emit
1766         hook NULL check.
1767         * targhooks.c (default_unwind_emit): Removed.
1768         * targhooks.h (default_unwind_emit): Likewise.
1769         * target.def (unwind_emit): Set default value to NULL.
1770
1771         * config/i386/i386-protos.h (ix86_asm_output_function_label):
1772         New prototype.
1773         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
1774         for NULL fntype argument and allow 64-bit targets.
1775         (ix86_asm_output_function_label): New function.
1776         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
1777         (ix86_handle_fndecl_attribute): Likewise.
1778         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
1779         * doc/doc/tm.texi: Regenerated.
1780         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
1781         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
1782         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
1783         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1784         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1785         * config/elfos.h: Likewise.
1786         * config/i386/cygming.h: Likewise.
1787         * config/netbsd-aout.h: Likewise.
1788         * config/openbsd.h: Likewise.
1789         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
1790         by ix86_asm_output_function_label function call.
1791         * varasm.c (assemble_start_function): Use
1792         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
1793
1794 2010-07-08  Jan Hubicka  <jh@suse.cz>
1795
1796         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
1797         New function.
1798         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
1799         Declare.
1800         * ipa-cp.c (ipcp_estimate_growth): Use it.
1801         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
1802         Likewise.
1803
1804 2010-07-08  Jan Hubicka  <jh@suse.cz>
1805
1806         * tree-inline.c (declare_return_variable): Allocate annotation for new
1807         temporary.
1808
1809 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
1810
1811         PR tree-optimization/44710
1812         * tree-if-conv.c (parse_predicate): New.
1813         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
1814         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
1815
1816 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
1817
1818         * common.opt (ftree-loop-if-convert): New flag.
1819         * doc/invoke.texi (ftree-loop-if-convert): Documented.
1820         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
1821         when flag_tree_loop_if_convert is set.
1822
1823 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
1824
1825         * config/i386/i386.c: Use short syntax for function calls
1826         through function pointers.
1827         * config/i386/i386.md: Ditto.
1828
1829 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1830
1831         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
1832
1833 2010-07-08  Richard Guenther  <rguenther@suse.de>
1834
1835         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
1836         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
1837
1838 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1839
1840         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
1841         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
1842         (loc_list_from_tree): Likewise.
1843         (output_loc_operands): Handle outputting DW_OP_const[48]u
1844         with loc->dtprel set.
1845         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
1846
1847 2010-07-08  Jan Hubicka  <jh@suse.cz>
1848
1849         * ipa.c: Include pointer-set.h
1850         (cgraph_externally_visible_p): New attribute ALIASED;
1851         when in LTO, hidden symbols are local unless they are aliased.
1852         (function_and_variable_visibility): Compute aliased nodes;
1853         handle LTO and hidden symbol on functions and vars.
1854         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
1855         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
1856
1857 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1858
1859         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1860         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1861         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1862         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1863         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1864         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
1865         (ix86_gen_probe_stack_range): Likewise.
1866         (override_options): Set them.
1867         (ix86_target_stack_probe): New function.
1868         (ix86_compute_frame_layout): Force use of push instructions to
1869         save registers if stack checking with probes is enabled.
1870         (get_scratch_register_on_entry): New function.
1871         (release_scratch_register_on_entry): Likewise.
1872         (ix86_adjust_stack_and_probe): Likewise.
1873         (output_adjust_stack_and_probe): Likewise.
1874         (ix86_emit_probe_stack_range): Likewise.
1875         (output_probe_stack_range): Likewise.
1876         (ix86_expand_prologue): Emit stack checking code if static built-in
1877         stack checking is enabled.
1878         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
1879         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
1880         (output_adjust_stack_and_probe): Likewise.
1881         (output_probe_stack_range): Likewise.
1882         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1883         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
1884         TARGET_STACK_PROBE.
1885         (allocate_stack_worker_64): Likewise.
1886         (allocate_stack): Likewise.
1887         (adjust_stack_and_probe): New insn.
1888         (probe_stack_range): Likewise.
1889
1890 2010-07-08  Richard Guenther  <rguenther@suse.de>
1891
1892         PR tree-optimization/44831
1893         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
1894         a MEM_REF preserving TBAA info of the original dereference.
1895         Dereference the original pointer if the address is not invariant.
1896         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
1897         at least one invariant address that we are going to dereference.
1898
1899 2010-07-08  Richard Guenther  <rguenther@suse.de>
1900
1901         PR tree-optimization/44861
1902         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
1903         information when building MEM_REFs.
1904         (vectorizable_load): Likewise.
1905         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
1906
1907 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1908
1909         * config/sol2-c.c: Do not include diagnostic-core.h.
1910
1911 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1912
1913         PR bootstrap/44768
1914         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
1915         with respect to current_function_decl. Pass decl of the function.
1916         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
1917         * ipa-inline.c (compute_inline_parameters): Pass decl to
1918         estimated_stack_frame_size.
1919
1920 2010-07-08  Richard Guenther  <rguenther@suse.de>
1921
1922         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1923         New function.
1924         (valueize_refs): Call it.
1925
1926 2010-07-08  Richard Guenther  <rguenther@suse.de>
1927
1928         PR rtl-optimization/44838
1929         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
1930         SSA form do not use pointer equivalence.
1931
1932 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
1933
1934         * dwarf2out.c (AT_linkage_name): Delete.
1935         (add_linkage_attr): New function.
1936         (add_linkage_name): Call it to emit the linkage attribute.
1937         (dwarf2out_finish): Likewise.
1938         (move_linkage_attr): Explicitly accept both attribute variants.
1939
1940 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1941
1942         * toplev.h: Do not include diagnostic-core.h.
1943         Include diagnostic-core.h in every file that includes toplev.h.
1944         * c-tree.h: Do not include toplev.h.
1945         * pretty-print.h: Update comment.
1946         * Makefile.in: Update dependencies.
1947         * alias.c: Include diagnostic-core.h in every file that includes
1948         toplev.h.
1949         * attribs.c: Likewise.
1950         * auto-inc-dec.c: Likewise.
1951         * bb-reorder.c: Likewise.
1952         * bt-load.c: Likewise.
1953         * caller-save.c: Likewise.
1954         * calls.c: Likewise.
1955         * cfg.c: Likewise.
1956         * cfganal.c: Likewise.
1957         * cfgbuild.c: Likewise.
1958         * cfgcleanup.c: Likewise.
1959         * cfghooks.c: Likewise.
1960         * cfgloop.c: Likewise.
1961         * combine.c: Likewise.
1962         * config/alpha/alpha.c: Likewise.
1963         * config/arc/arc.c: Likewise.
1964         * config/arm/arm.c: Likewise.
1965         * config/arm/pe.c: Likewise.
1966         * config/avr/avr.c: Likewise.
1967         * config/bfin/bfin.c: Likewise.
1968         * config/cris/cris.c: Likewise.
1969         * config/crx/crx.c: Likewise.
1970         * config/darwin-c.c: Likewise.
1971         * config/darwin.c: Likewise.
1972         * config/fr30/fr30.c: Likewise.
1973         * config/frv/frv.c: Likewise.
1974         * config/h8300/h8300.c: Likewise.
1975         * config/host-darwin.c: Likewise.
1976         * config/i386/i386.c: Likewise.
1977         * config/i386/netware.c: Likewise.
1978         * config/i386/nwld.c: Likewise.
1979         * config/i386/winnt-cxx.c: Likewise.
1980         * config/i386/winnt-stubs.c: Likewise.
1981         * config/i386/winnt.c: Likewise.
1982         * config/ia64/ia64-c.c: Likewise.
1983         * config/ia64/ia64.c: Likewise.
1984         * config/iq2000/iq2000.c: Likewise.
1985         * config/lm32/lm32.c: Likewise.
1986         * config/m32c/m32c-pragma.c: Likewise.
1987         * config/m32c/m32c.c: Likewise.
1988         * config/m32r/m32r.c: Likewise.
1989         * config/m68hc11/m68hc11.c: Likewise.
1990         * config/m68k/m68k.c: Likewise.
1991         * config/mcore/mcore.c: Likewise.
1992         * config/mep/mep-pragma.c: Likewise.
1993         * config/mep/mep.c: Likewise.
1994         * config/mmix/mmix.c: Likewise.
1995         * config/mn10300/mn10300.c: Likewise.
1996         * config/moxie/moxie.c: Likewise.
1997         * config/pa/pa.c: Likewise.
1998         * config/pdp11/pdp11.c: Likewise.
1999         * config/picochip/picochip.c: Likewise.
2000         * config/rs6000/rs6000-c.c: Likewise.
2001         * config/rs6000/rs6000.c: Likewise.
2002         * config/rx/rx.c: Likewise.
2003         * config/s390/s390.c: Likewise.
2004         * config/score/score.c: Likewise.
2005         * config/score/score3.c: Likewise.
2006         * config/score/score7.c: Likewise.
2007         * config/sh/sh.c: Likewise.
2008         * config/sh/symbian-base.c: Likewise.
2009         * config/sh/symbian-c.c: Likewise.
2010         * config/sh/symbian-cxx.c: Likewise.
2011         * config/sol2-c.c: Likewise.
2012         * config/sol2.c: Likewise.
2013         * config/sparc/sparc.c: Likewise.
2014         * config/spu/spu.c: Likewise.
2015         * config/stormy16/stormy16.c: Likewise.
2016         * config/v850/v850-c.c: Likewise.
2017         * config/v850/v850.c: Likewise.
2018         * config/vax/vax.c: Likewise.
2019         * config/vxworks.c: Likewise.
2020         * config/xtensa/xtensa.c: Likewise.
2021         * convert.c: Likewise.
2022         * cse.c: Likewise.
2023         * cselib.c: Likewise.
2024         * dbgcnt.c: Likewise.
2025         * dbxout.c: Likewise.
2026         * ddg.c: Likewise.
2027         * dominance.c: Likewise.
2028         * emit-rtl.c: Likewise.
2029         * explow.c: Likewise.
2030         * expmed.c: Likewise.
2031         * fixed-value.c: Likewise.
2032         * fold-const.c: Likewise.
2033         * fwprop.c: Likewise.
2034         * gcse.c: Likewise.
2035         * ggc-common.c: Likewise.
2036         * ggc-page.c: Likewise.
2037         * ggc-zone.c: Likewise.
2038         * gimple-low.c: Likewise.
2039         * gimplify.c: Likewise.
2040         * graph.c: Likewise.
2041         * haifa-sched.c: Likewise.
2042         * ifcvt.c: Likewise.
2043         * implicit-zee.c: Likewise.
2044         * integrate.c: Likewise.
2045         * ira-build.c: Likewise.
2046         * ira-color.c: Likewise.
2047         * ira-conflicts.c: Likewise.
2048         * ira-costs.c: Likewise.
2049         * ira-lives.c: Likewise.
2050         * ira.c: Likewise.
2051         * lists.c: Likewise.
2052         * loop-doloop.c: Likewise.
2053         * loop-iv.c: Likewise.
2054         * lto-opts.c: Likewise.
2055         * lto-symtab.c: Likewise.
2056         * main.c: Likewise.
2057         * modulo-sched.c: Likewise.
2058         * optabs.c: Likewise.
2059         * params.c: Likewise.
2060         * plugin.c: Likewise.
2061         * postreload-gcse.c: Likewise.
2062         * postreload.c: Likewise.
2063         * predict.c: Likewise.
2064         * profile.c: Likewise.
2065         * real.c: Likewise.
2066         * regcprop.c: Likewise.
2067         * reginfo.c: Likewise.
2068         * regmove.c: Likewise.
2069         * reorg.c: Likewise.
2070         * resource.c: Likewise.
2071         * rtl.c: Likewise.
2072         * rtlanal.c: Likewise.
2073         * sched-deps.c: Likewise.
2074         * sched-ebb.c: Likewise.
2075         * sched-rgn.c: Likewise.
2076         * sdbout.c: Likewise.
2077         * sel-sched-dump.c: Likewise.
2078         * sel-sched-ir.c: Likewise.
2079         * simplify-rtx.c: Likewise.
2080         * stmt.c: Likewise.
2081         * stor-layout.c: Likewise.
2082         * store-motion.c: Likewise.
2083         * targhooks.c: Likewise.
2084         * tree-cfg.c: Likewise.
2085         * tree-cfgcleanup.c: Likewise.
2086         * tree-dump.c: Likewise.
2087         * tree-eh.c: Likewise.
2088         * tree-inline.c: Likewise.
2089         * tree-nomudflap.c: Likewise.
2090         * tree-object-size.c: Likewise.
2091         * tree-optimize.c: Likewise.
2092         * tree-outof-ssa.c: Likewise.
2093         * tree-phinodes.c: Likewise.
2094         * tree-profile.c: Likewise.
2095         * tree-ssa-ccp.c: Likewise.
2096         * tree-ssa-coalesce.c: Likewise.
2097         * tree-ssa-live.c: Likewise.
2098         * tree-ssa-loop-niter.c: Likewise.
2099         * tree-ssa-loop-prefetch.c: Likewise.
2100         * tree-ssa-loop.c: Likewise.
2101         * tree-ssa-structalias.c: Likewise.
2102         * tree-ssa-uninit.c: Likewise.
2103         * tree-ssa.c: Likewise.
2104         * tree-vect-data-refs.c: Likewise.
2105         * tree-vect-loop-manip.c: Likewise.
2106         * tree-vect-loop.c: Likewise.
2107         * tree-vect-patterns.c: Likewise.
2108         * tree-vect-stmts.c: Likewise.
2109         * tree-vrp.c: Likewise.
2110         * varasm.c: Likewise.
2111         * vec.c: Likewise.
2112         * web.c: Likewise.
2113         * xcoffout.c: Likewise.
2114
2115 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
2116
2117         * gengtype.c (write_field_root): New function.
2118         (write_root): Use it.
2119
2120 2010-07-07  Wei Guozhi  <carrot@google.com>
2121
2122         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
2123         of lowest bits to lshift/compare): Add a missing line.
2124
2125 2010-07-07  Wei Guozhi  <carrot@google.com>
2126
2127         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
2128         of lowest bits to lshift/compare): New.
2129
2130 2010-07-07  Tom Tromey  <tromey@redhat.com>
2131
2132         * doc/tm.texi: Update.
2133         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
2134         Add @hook.
2135         * target.def (want_debug_pub_sections): New hook.
2136         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
2137         * dwarf2out.c (add_pubname_string): Check
2138         targetm.want_debug_pub_sections.
2139         (add_pubname): Likewise.
2140         (add_pubtype): Likewise.
2141
2142 2010-07-07  Jie Zhang  <jie@codesourcery.com>
2143
2144         * genautomata.c (output_automata_list_min_issue_delay_code):
2145         Correctly decompress min_issue_delay.
2146
2147 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2148
2149         PR rtl-optimization/44404
2150         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
2151         possible, use reg_overlap_mentioned_p instead.
2152
2153 2010-07-07  Duncan Sands  <baldrick@free.fr>
2154
2155         PR middle-end/41355
2156         * tree.c (build_function_type_skip_args): Copy the original type using
2157         build_distinct_type_copy rather than copy_node.
2158
2159 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2160
2161         PR target/44850
2162         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
2163         revision 161876.
2164         (ix86_expand_prologue): Likewise.
2165         (ix86_handle_fndecl_attribute): Likewise.
2166         (ix86_asm_declare_function_name): Likewise.
2167         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2168         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2169         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
2170         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
2171         * doc/extend.texi: Likewise.
2172
2173 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2174
2175         PR target/44844
2176         * config/i386/i386.md (rdrand<mode>): Changed to expand to
2177         retry if the carry flag isn't valid.
2178         (rdrand<mode>_1): New.
2179
2180 2010-07-07  Richard Guenther  <rguenther@suse.de>
2181
2182         PR middle-end/44790
2183         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
2184         for expanding the constant offset for MEM_REFs.
2185
2186 2010-07-07  Richard Guenther  <rguenther@suse.de>
2187
2188         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
2189         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
2190         * gimple.h (is_gimple_operand): Remove.
2191         * gimple.c (is_gimple_operand): Likewise.
2192         (walk_gimple_op): Fix wi->val_only setting for calls.
2193         * tree-cfg.c (verify_gimple_call): Fix argument validation.
2194         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
2195         invalid gimple calls.
2196
2197 2010-07-06  Jan Hubicka  <jh@suse.cz>
2198
2199         * lto-cgraph.c (output_cgraph): Add missing declaration.
2200
2201 2010-07-06  Jan Hubicka  <jh@suse.cz>
2202
2203         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
2204         partition.
2205
2206 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
2207
2208         * doc/gimple.texi (GIMPLE_DEBUG): Document.
2209         * doc/rtl.texi (Debug Information): New node.
2210         (NOTE_INSN_VAR_LOCATION): Document.
2211         (debug_insn): Likewise.
2212         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
2213
2214 2010-07-07  Jan Hubicka  <jh@suse.cz>
2215
2216         With parts by Richard Guenther.
2217
2218         PR middle-end/44813
2219         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
2220         for functions passed by reference.
2221         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
2222         in memory when passed by reference.
2223         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
2224         beggining.
2225         * ipa-split.c (split_function): Cleanup way return value is passed;
2226         handle SSA DECL_BY_REFERENCE retvals.
2227         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
2228         DECL_BY_REFERENCE is set.
2229         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
2230         find_what_p_points_to): Handle RESULT_DECL.
2231         * tree-inline.c (declare_return_variable): Get new entry_block argument;
2232         when passing by reference ensure that RESULT_DECL is gimple_val.
2233         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
2234         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
2235
2236 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
2237
2238         PR rtl-optimization/44787
2239         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
2240         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
2241
2242 2010-07-06  Jan Hubicka  <jh@suse.cz>
2243
2244         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
2245         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
2246         with body can prevail.
2247         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
2248         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
2249         * cgraph.c (cgraph_get_node_or_alias): New function.
2250         * cgraph.h (cgraph_get_node_or_alias): Declare.
2251
2252 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
2253
2254         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
2255         support.
2256         (ix86_expand_prologue): Likewise.
2257         (ix86_handle_fndecl_attribute): Likewise.
2258         (ix86_asm_declare_function_name): New function for
2259         ASM_DECLARE_FUNCTION_NAME.
2260         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
2261         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
2262         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
2263         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
2264         * doc/extend.texi: Adjust documentation about ms_hook_prologue
2265         attribute.
2266
2267 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
2268
2269         * config/i386/i386.md (immediate_operand): New mode attribute.
2270
2271         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
2272         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
2273         using P mode iterator.
2274         (pro_epilogue_adjust_stack_di_2): Rename from
2275         pro_epilogue_adjust_stack_rex64_2.
2276
2277         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
2278
2279 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
2280
2281         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
2282         through gen_mov_insv_1 function pointer.
2283         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
2284         gen_truncxf<mode>2 through gen_truncxf function pointer.
2285         (remainder<mode>3): Ditto.
2286         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
2287         (allocate_stack): Call gen_allocate_stack_worker_64 or
2288         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
2289         function pointer.
2290         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
2291         function pointer.
2292
2293 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
2294
2295         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
2296         operand constraint instead of <r><i>m.
2297
2298 2010-07-06  Richard Guenther  <rguenther@suse.de>
2299
2300         PR middle-end/44828
2301         * convert.c (convert_to_integer): Watch out for overflowing
2302         MULT_EXPR as well.
2303
2304 2010-07-05  Jan Hubicka  <jh@suse.cz>
2305
2306         * lto-streamer.c (write_symbol_vec): Rename to ...
2307         (write_symbol) ... this one; write only symbol given and when
2308         present in cache. Sanity check that what is defined is present
2309         in cgraph/varpool with body/finalized decl.
2310         (write_symbols_of_kind): Remove.
2311         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
2312         pairs to produce symtab.
2313         (produce_asm_for_decls): Update call of produce_symtab; don't do so
2314         when doing WPA streaming.
2315
2316 2010-07-05  Jan Hubicka  <jh@suse.cz>
2317
2318         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
2319         function is still available to fold into.
2320
2321 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2322
2323         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
2324         * function.h (struct_function): Change type of local_decls field
2325         to a VEC.
2326         (add_local_decl): New function.
2327         (FOR_EACH_LOCAL_DECL): New macro.
2328         * cfgexpand.c (init_vars_expansion): Adjust for new type of
2329         cfun->local_decls.
2330         (estimated_stack_frame_size): Likewise.
2331         (expand_used_vars): Likewise.
2332         * cgraphbuild.c (build_cgraph_edges): Likewise.
2333         * function.c (instantiate_decls_1): Likewise.
2334         * ipa-struct-reorg.c (build_data_structure): Likewise.
2335         * ipa-type-escape.c (analyze_function): Likewise.
2336         * lto-streamer-in.c (input_function): Likewise.
2337         * lto-streamer-out.c (output_function): Likewise.
2338         * tree-ssa-live.c (remove_unused_locals): Likewise.
2339         * tree.c (free_lang_data_in_decl): Likewise.
2340         (find_decls_types_in_node): Likewise.
2341         * omp-low.c (remove_exit_barrier): Likewise.
2342         (expand_omp_taskreg): Likewise.
2343         (list2chain): Rename to...
2344         (vec2chain): ...this.  Adjust.
2345         * cgraphunit.c (assemble_thunk): Call add_local_decl.
2346         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
2347         * gimple-low.c (record_vars_into): Likewise.
2348         * tree-inline.c (remap_decls): Likewise.
2349         (declare_return_variable): Likewise.
2350         (declare_inline_vars): Likewise.
2351         (copy_forbidden): Adjust for new type of cfun->local_decls.
2352         (add_local_variables): New function.
2353         (expand_call_inline): Call it.
2354         (tree_function_versioning): Likewise.
2355
2356 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2357
2358         AVX Programming Reference (June, 2010)
2359         * config/i386/cpuid.h (bit_F16C): New.
2360         (bit_RDRND): Likewise.
2361         (bit_FSGSBASE): Likewise.
2362
2363         * config/i386/i386-builtin-types.def: Add
2364         "DEF_FUNCTION_TYPE (UINT16)", function types for
2365         float16 <-> float conversions and
2366         "DEF_FUNCTION_TYPE (VOID, UINT64)".
2367
2368         * config/i386/i386-c.c (ix86_target_macros_internal): Support
2369         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
2370         OPTION_MASK_ISA_F16C.
2371
2372         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
2373         (OPTION_MASK_ISA_RDRND_SET): Likewise.
2374         (OPTION_MASK_ISA_F16C_SET): Likewise.
2375         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
2376         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
2377         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
2378         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
2379         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
2380         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
2381         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
2382         (override_options): Handle them.
2383         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
2384         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
2385         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
2386         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
2387         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
2388         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
2389         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
2390         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
2391         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
2392         (bdesc_args): Likewise.
2393         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
2394         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
2395         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
2396         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
2397         Handle non-memory store.
2398
2399         * config/i386/i386.h (TARGET_FSGSBASE): New.
2400         (TARGET_RDRND): Likewise.
2401         (TARGET_F12C): Likewise.
2402
2403         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
2404         (UNSPEC_VCVTPS2PH): Likewise.
2405         (UNSPECV_RDFSBASE): Likewise.
2406         (UNSPECV_RDGSBASE): Likewise.
2407         (UNSPECV_WRFSBASE): Likewise.
2408         (UNSPECV_WRGSBASE): Likewise.
2409         (UNSPECV_RDRAND): Likewise.
2410         (rdfsbase<mode>): Likewise.
2411         (rdgsbase<mode>): Likewise.
2412         (wrfsbase<mode>): Likewise.
2413         (wrgsbase<mode>): Likewise.
2414         (rdrand<mode>): Likewise.
2415
2416         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
2417
2418         * config/i386/immintrin.h (_rdrand_u16): New.
2419         (_rdrand_u32): Likewise.
2420         (_readfsbase_u32): Likewise.
2421         (_readfsbase_u64): Likewise.
2422         (_readgsbase_u32): Likewise.
2423         (_readgsbase_u64): Likewise.
2424         (_writefsbase_u32): Likewise.
2425         (_writefsbase_u64): Likewise.
2426         (_writegsbase_u32): Likewise.
2427         (_writegsbase_u64): Likewise.
2428         (_rdrand_u64): Likewise.
2429         (_cvtsh_ss): Likewise.
2430         (_mm_cvtph_ps): Likewise.
2431         (_mm256_cvtph_ps): Likewise.
2432         (_cvtss_sh): Likewise.
2433         (_mm_cvtps_ph): Likewise.
2434         (_mm256_cvtps_ph): Likewise.
2435
2436         * config/i386/sse.md (vcvtph2ps): New.
2437         (*vcvtph2ps_load): Likewise.
2438         (vcvtph2ps256): Likewise.
2439         (vcvtps2ph): Likewise.
2440         (*vcvtps2ph): Likewise.
2441         (*vcvtps2ph_store): Likewise.
2442         (vcvtps2ph256): Likewise.
2443
2444         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
2445
2446         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
2447
2448 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
2449
2450         PR bootstrap/44512
2451         * genenums.c (main): Output include of insn-constants.h
2452         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
2453
2454 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
2455
2456         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
2457         (override_options): Initialize it.
2458         (ix86_expand_prologue): Use it.
2459
2460 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
2461
2462         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
2463
2464 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
2465
2466         * double-int.h (fit_double_type): Remove declaration.
2467         * double-int.c (fit_double_type): Remove function.
2468         * tree.h (int_fits_type_p): Adjust prototype.
2469         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
2470         instead of fit_double_type.
2471         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
2472         instead of fit_double_type and build_int_cst_wide.
2473         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
2474         instead of fit_double_type and build_int_cst_wide.
2475         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
2476         of fit_double_type.
2477
2478 2010-07-05  Jan Hubicka  <jh@suse.cz>
2479
2480         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
2481         in_other_partition.
2482         * lto-cgraph.c (referenced_from_other_partition_p,
2483         reachable_from_other_partition_p): Use in_other_partition flags.
2484         (output_node, output_varpool_node): COMDAT nodes always have private
2485         copies and thus are never used from other partition.
2486
2487 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
2488
2489         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
2490         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
2491         * config/ia64/ia64.c Include reload.h.
2492         (ia64_memory_move_cost): New function.
2493         (TARGET_MEMORY_MOVE_COST): Define.
2494         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
2495         memory_move_cost.
2496
2497 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2498
2499         PR middle-end/42505
2500         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
2501         comments about cost model.
2502         (try_add_cand_for):  Add second strategy for choosing initial set
2503         based on original IVs, controlled by ORIGINALP argument.
2504         (get_initial_solution): Add ORIGINALP argument.
2505         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
2506         (find_optimal_iv_set): Try two different strategies for choosing
2507         the IV set, and return the one with lower cost.
2508
2509 2010-07-05  Richard Guenther  <rguenther@suse.de>
2510
2511         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
2512
2513 2010-07-05  Richard Guenther  <rguenther@suse.de>
2514
2515         * tree.c (reference_alias_ptr_type): New function.
2516         * tree.h (reference_alias_ptr_type): Declare.
2517         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
2518         allow non-TARGET_MEM_REF new refs.
2519         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
2520         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
2521         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
2522         (create_mem_ref): Get alias pointer type.  Adjust calls to
2523         create_mem_ref_raw.
2524         (maybe_fold_tmr): Likewise.
2525         * tree-flow.h (create_mem_ref): Adjust prototype.
2526
2527 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
2528
2529         PR c++/44808
2530         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
2531         *from_p is VAR_DECL.
2532
2533 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2534
2535         * tree.h (build_call_list): Remove.
2536         * tree.c (build_call_list): Remove.
2537
2538 2010-07-05  Richard Guenther  <rguenther@suse.de>
2539
2540         * double-int.h (double_int_sub): Declare.
2541         * double-int.c (double_int_sub): New function.
2542         * dwarf2out.c (field_byte_offset): Use it.
2543         * fixed-value.c (do_fixed_add): Likewise.
2544         (do_fixed_multiply): Likewise.
2545         (do_fixed_divide): Likewise.
2546         * tree-predcom.c (add_ref_to_chain): Likewise.
2547         (determine_roots_comp): Likewise.
2548         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
2549
2550 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2551
2552         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
2553         implementations.
2554
2555 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
2556
2557         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
2558         * arm-modes.def (CC_NOTB): Don't define.
2559         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
2560         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
2561         (LTUGEU): New code_iterator.
2562         (cnb, optab): New corresponding code_attrs.
2563         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
2564         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
2565         using LTUGEU.
2566         (addsi3_carryin_shift_<optab>): Likewise.
2567         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
2568         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
2569         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
2570         (subsi3_compare): Renamed from subsi3_compare0_c.
2571         Change CC_NOTB to CC.
2572         (arm_subsi3_insn): Allow constants for operand 0.
2573         (compare_scc peephole for eq case): New.
2574         (compare_scc splitters): Change CC_NOTB to CC.
2575
2576 2010-07-05  Richard Guenther  <rguenther@suse.de>
2577
2578         * tree-ssa-loop-im.c (for_each_index): Do not handle
2579         ALIGN_INDIRECT_REF.
2580         (gen_lsm_tmp_name): Likewise.
2581         * tree-dump.c (dequeue_and_dump): Likewise.
2582         * tree-pretty-print.c (dump_generic_node): Likewise.
2583         (op_code_prio): Likewise.
2584         (op_symbol_code): Likewise.
2585         * tree.c (staticp): Likewise.
2586         (build1_stat): Likewise.
2587         * tree.h (INDIRECT_REF_P): Likewise.
2588         * fold-const.c (maybe_lvalue_p): Likewise.
2589         (operand_equal_p): Likewise.
2590         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2591         (ao_ref_init_from_vn_reference): Likewise.
2592         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
2593         (find_interesting_uses_address): Likewise.
2594         * dwarf2out.c (loc_list_from_tree): Likewise.
2595         * gimplify.c (gimplify_expr): Likewise.
2596         * tree-eh.c (tree_could_trap_p): Likewise.
2597         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2598         * cfgexpand.c (expand_debug_expr): Likewise.
2599         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2600         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2601         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2602         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
2603         * tree-ssa-operands.c (get_expr_operands): Likewise.
2604         * expr.c (safe_from_p): Likewise.
2605         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
2606         * tree-vect-data-refs.c (vect_setup_realignment): Build
2607         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
2608         * tree-vect-stmts.c (vectorizable_load): Likewise.
2609         * tree.def (ALIGN_INDIRECT_REF): Remove.
2610
2611 2010-07-05  Richard Guenther  <rguenther@suse.de>
2612
2613         PR tree-optimization/44784
2614         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
2615         for inserted stmts.
2616         (find_or_generate_expression): Fix SCCVN insertion check.
2617
2618 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
2619
2620         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
2621         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2622         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
2623         directives.
2624
2625 2010-07-05  Ira Rosen  <irar@il.ibm.com>
2626
2627         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
2628         statements that are not vectorized.
2629         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
2630         in INSIDE_COST.
2631
2632 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
2633
2634         PR bootstrap/44820
2635         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
2636
2637 2010-07-05  Richard Guenther  <rguenther@suse.de>
2638
2639         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
2640         RESULT_DECLs properly.
2641
2642 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         PR rtl-optimization/44695
2645         * config/i386/i386.md (extract_code): Removed.
2646         (<u>divmodqi4): Likewise.
2647         (divmodqi4): New.
2648         (udivmodqi4): Likewise.
2649         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
2650         (udivmodhiqi3): Likewise.
2651
2652 2010-07-04  Jan Hubicka  <jh@suse.cz>
2653
2654         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
2655
2656 2010-07-04  Jan Hubicka  <jh@suse.cz>
2657
2658         * cgraphunit.c (init_cgraph): Only initialize dump file if it
2659         is not already initialized.
2660
2661 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
2662
2663         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
2664         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
2665         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
2666         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
2667         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
2668         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
2669         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
2670         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
2671         (sync_new_nand_optab): Redefine as macros.
2672         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
2673         Delete.
2674         (direct_optab_index): New enum.
2675         (direct_optab_d): New structure.
2676         (direct_optab): New typedef.
2677         (direct_optab_table): Declare.
2678         (direct_optab_handler, set_direct_optab_handler): New functions.
2679         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
2680         (sync_lock_release_optab): New macros.
2681         * optabs.c (direct_optab_table): New variable.
2682         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
2683         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
2684         cmpstr_optab and cmpstrn_optab.
2685         (emit_conditional_move): Likewise for movcc_optab.
2686         (can_conditionally_move_p): Likewise for movcc_gen_code.
2687         (init_insn_codes): Clear direct_optab_table.
2688         (init_optabs): Don't initialize the new "direct optabs" here.
2689         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
2690         vcond_gen_code.
2691         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
2692         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
2693         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
2694         (expand_sync_operation): Likewise other sync_*_optabs.
2695         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
2696         to sync_compare_and_swap_optab.
2697         (expand_sync_lock_test_and_set): Use direct_optab_handler for
2698         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
2699         to the names of both.
2700         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
2701         cmpstr_optab and cmpstrn_optab.
2702         (expand_builtin_lock_release): Likewise sync_lock_release.
2703         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
2704         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
2705         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
2706         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
2707         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
2708         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
2709         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
2710         (sync_lock_test_and_set, sync_lock_release): Delete.
2711         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
2712         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
2713         * genopinit.c (optabs): Use set_direct_optab_handler for the new
2714         macro optabs.
2715         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
2716         the "optab" local variable.  Use direct_optab_handler for optab and
2717         sync_compare_and_swap_optab.
2718         * reload1.c (reload_in_optab, reload_out_optab): Delete.
2719         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
2720         reload_in_optab and reload_out_optab.
2721         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
2722         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
2723         * config/pa/pa.c (pa_secondary_reload): Likewise.
2724         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
2725         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
2726         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
2727         (VMSupportsCS8_builtin): Likewise.
2728
2729 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
2730
2731         * optabs.h (optab_handlers): Change type of insn_code to int.
2732         (optab_handler, set_optab_handler, convert_optab_handler)
2733         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
2734         CODE_FOR_nothing".
2735         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
2736         (init_insn_codes): Zero both the above arrays.
2737         (init_optabs): Never call init_insn_codes first time around.
2738
2739 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
2740
2741         * optabs.h (optab_handler, convert_optab_handler): Turn into
2742         inline functions that return an insn code.
2743         (set_optab_handler, set_convert_optab_handler): New functions.
2744         * builtins.c: Replace optab_handler(X)->insn_code with
2745         optab_handler or set_optab_handler thoughout.  Likewise
2746         convert_optab_handler(X)->insn_code with convert_optab_handler
2747         and set_convert_optab_handler.
2748         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
2749         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
2750         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
2751         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
2752         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
2753         config/spu/spu.c: Likewise.
2754
2755 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2756
2757         PR target/44531
2758         * config.gcc (sh*-*-*): Use regular expressions instead of
2759         the 'i' modifier for sed substitutions.
2760
2761 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2762
2763         * gimple.c (gimple_body): Comments added.
2764
2765 2010-07-04  Richard Guenther  <rguenther@suse.de>
2766
2767         PR middle-end/44809
2768         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
2769         of an INDIRECT_REF.
2770
2771 2010-07-04  Richard Guenther  <rguenther@suse.de>
2772
2773         PR tree-optimization/44479
2774         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
2775         extra SSA name copy statements which preserves points-to
2776         information.
2777         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2778         Copy points-to information for all pointers.  Properly handle
2779         MEM_REFs.
2780         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
2781         copy statements.
2782         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
2783         dependency.
2784
2785 2010-07-04  Richard Guenther  <rguenther@suse.de>
2786
2787         PR middle-end/44785
2788         * tree-inline.c (initialize_inlined_parameters): Do not
2789         re-use pointer-map slot over remap_type call.
2790
2791 2010-07-04  Richard Guenther  <rguenther@suse.de>
2792
2793         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
2794
2795 2010-07-04  Richard Guenther  <rguenther@suse.de>
2796
2797         PR tree-optimization/44656
2798         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
2799         again after value-replacing in the defintions lhs.
2800
2801 2010-07-04  Ira Rosen  <irar@il.ibm.com>
2802             Revital Eres  <eres@il.ibm.com>
2803
2804         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
2805         Document new arguments.
2806         * doc/tm.texi: Regenerate.
2807         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
2808         Handle unaligned store.
2809         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
2810         * target.def (builtin_vectorization_cost): Add new arguments.
2811         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
2812         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
2813         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
2814         (vect_vfa_segment_size): Fix indentation.
2815         * tree-vectorizer.h (struct _vect_peel_info): New.
2816         (struct _vect_peel_extended_info): New.
2817         (struct _loop_vec_info): Add new field for peeling hash table and a
2818         macro for its access.
2819         (VECT_MAX_COST): Define.
2820         (vect_get_load_cost): Declare.
2821         (vect_get_store_cost, vect_get_known_peeling_cost,
2822         vect_get_single_scalar_iteraion_cost): Likewise.
2823         (vect_supportable_dr_alignment): Add new argument.
2824         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
2825         field.
2826         (destroy_loop_vec_info): Free peeling hash table.
2827         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
2828         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
2829         vect_analyze_slp. Fix indentation.
2830         (vect_get_single_scalar_iteraion_cost): New function.
2831         (vect_get_known_peeling_cost): Likewise.
2832         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
2833         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
2834         statement. Move outside cost calculation inside unknown peeling case.
2835         Call vect_get_known_peeling_cost for known amount of peeling.
2836         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
2837         reference to the print message of forced alignment.
2838         (vect_verify_datarefs_alignment): Update call to
2839         vect_supportable_dr_alignment.
2840         (vect_get_data_access_cost): New function.
2841         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
2842         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
2843         vect_peeling_hash_choose_best_peeling): Likewise.
2844         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
2845         to store all the accesses in the loop and find best possible access to
2846         align using peeling for known alignment case. For unknown alignment
2847         check if stores are preferred or if peeling is worthy.
2848         (vect_find_same_alignment_drs): Analyze pairs of loads too.
2849         (vect_supportable_dr_alignment): Add new argument and check aligned
2850         accesses according to it.
2851         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
2852         (cost_for_stmt): Call vect_get_stmt_cost.
2853         (vect_model_simple_cost): Likewise.
2854         (vect_model_store_cost): Call vect_get_stmt_cost. Call
2855         vect_get_store_cost to calculate the cost of the statement.
2856         (vect_get_store_cost): New function.
2857         (vect_model_load_cost): Call vect_get_stmt_cost. Call
2858         vect_get_load_cost to calculate the cost of the statement.
2859         (vect_get_load_cost): New function.
2860         (vectorizable_store): Update call to vect_supportable_dr_alignment.
2861         (vectorizable_load): Likewise.
2862         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
2863         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
2864         arguments. Handle unaligned store.
2865         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
2866         (rs6000_builtin_support_vector_misalignment): Return true for word and
2867         double word alignments for VSX.
2868         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
2869         vect_supportable_dr_alignment and builtin_vectorization_cost.
2870
2871 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2872
2873         PR target/44597
2874         * config/pa/predicates.md (prefetch_cc_operand): Remove.
2875         (prefetch_nocc_operand): Likewise.
2876         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
2877         (prefetch_20): New insn.
2878         (prefetch_cc): Remove.
2879         (prefetch_nocc): Likewise.
2880
2881 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2882
2883         * expr.c (vector_mode_valid_p): Move to c-common.c.
2884         * expr.h (vector_mode_valid_p): Do not declare here.
2885         * system.h: Poison GCC_EXPR_H in front-ends.
2886         * Makefile.in: Update dependencies.
2887
2888 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2889
2890         PR target/44705
2891         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
2892
2893 2010-07-03  Jan Hubicka  <jh@suse.cz>
2894
2895         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
2896         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
2897         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
2898         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
2899         Likewise.
2900
2901         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
2902         Update timevars.V
2903         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
2904         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
2905         TV_IPA_LTO_DECL_OUT): New.
2906         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
2907
2908 2010-07-03  Jan Hubicka  <jh@suse.cz>
2909
2910         * ipa-inline.c (update_edge_key): Break out from ...
2911         update_callers_keys): ... here;
2912         (update_callee_keys): Update only the edges from caller to callee.
2913         (update_all_calle_keys): Do what update_calle_keys did.
2914         (decide_inlining_of_small_functions): Avoid recomputing of all
2915         callees when badness increase.
2916
2917 2010-07-03  Jie Zhang  <jie@codesourcery.com>
2918
2919         * config/arm/arm.c (arm_attr_length_move_neon): New.
2920         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
2921         * config/arm/neon.md (define_mode_attr V_slen): Remove.
2922         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
2923         to compute length attribute.
2924
2925 2010-07-03  Jie Zhang  <jie@codesourcery.com>
2926
2927         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
2928         as predicate for operand 1 and remove its constraint.
2929         * config/arm/predicates.md (vfp_register_operand): New.
2930         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
2931         (*push_fp_multi): Likewise.
2932
2933 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2934
2935         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
2936
2937 2010-07-03  Jan Hubicka  <jh@suse.cz>
2938
2939         * config/i386/i386.c (override_options): Revert accidental commit.
2940
2941 2010-07-02  Le-Chun Wu  <lcwu@google.com>
2942
2943         PR c++/44128
2944         * doc/invoke.texi: Update documentation of -Wshadow.
2945
2946 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
2947             Julian Brown  <julian@codesourcery.com>
2948             Sandra Loosemore <sandra@codesourcery.com>
2949
2950         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
2951         comparisons.  Adjust to take both operands.
2952         (arm_select_cc_mode): Handle DImode comparisons.
2953         (arm_gen_compare_reg): Generate a scratch register for DImode
2954         comparisons which require one.  Use xor for Thumb equality checks.
2955         (arm_const_double_by_immediates): New.
2956         (arm_print_operand): Allow 'Q' and 'R' for constants.
2957         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
2958         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
2959         arm_canonicalize_comparison.
2960         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
2961         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
2962         prototype.
2963         (arm_const_double_by_immediates): Declare.
2964         * config/arm/constraints.md (Di): New constraint.
2965         * config/arm/predicates.md (arm_immediate_di_operand)
2966         (arm_di_operand, cmpdi_operand): New.
2967         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
2968         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
2969         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
2970         (cstoredi4): Handle non-Cirrus also.
2971
2972 2010-07-02  Julian Brown  <julian@codesourcery.com>
2973             Sandra Loosemore <sandra@codesourcery.com>
2974
2975         PR target/43703
2976         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
2977         (smax<mode>3): Disable for NEON float modes when
2978         flag_unsafe_math_optimizations is false.
2979         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
2980         (*mul<mode>3_neon)
2981         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
2982         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
2983         for NEON float modes when flag_unsafe_math_optimizations is false.
2984         (quad_halves_<code>v4sf): Only enable if
2985         flag_unsafe_math_optimizations is true.
2986         * doc/invoke.texi (ARM Options): Add note about floating point
2987         vectorization requiring -funsafe-math-optimizations.
2988
2989 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2990             Julian Brown  <julian@codesourcery.com>
2991
2992         * config/arm/neon.md (UNSPEC_VABA): Delete.
2993         (UNSPEC_VABAL): Delete.
2994         (UNSPEC_VABS): Delete.
2995         (UNSPEC_VMUL_N): Delete.
2996         (adddi3_neon): New.
2997         (subdi3_neon): New.
2998         (mul<mode>3add<mode>_neon): Make the pattern named.
2999         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
3000         (neon_vadd<mode>): Replace with define_expand, and move the remaining
3001         unspec parts...
3002         (neon_vadd<mode>_unspec): ...to this.
3003         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
3004         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
3005         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
3006         (neon_vaba<mode>): Rewrite in terms of vabd.
3007         (neon_vabal<mode>): Rewrite in terms of vabdl.
3008         (neon_vabs<mode>): Rewrite without unspec.
3009         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
3010         (*arm_subdi3): Likewise.
3011         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
3012         No_op attribute to disable assembly output checks.
3013         * config/arm/arm_neon.h: Regenerated.
3014         * doc/arm-neon-intrinsics.texi: Regenerated.
3015
3016 2010-07-02  Jan Hubicka  <jh@suse.cz>
3017
3018         * ipa-split.c (split_function): For aggregate values, set the return
3019         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
3020         *<retval> = fncall.part ().
3021         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
3022
3023 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3024
3025         * config/arm/neon.md (UNSPEC_VAND): Delete.
3026         (UNSPEC_VBIC): Delete.
3027         (UNSPEC_VCLZ): Delete.
3028         (UNSPEC_VCNT): Delete.
3029         (UNSPEC_VEOR): Delete.
3030         (UNSPEC_VORN): Delete.
3031         (UNSPEC_VORR): Delete.
3032         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
3033         core registers too.
3034         (anddi3_neon): Likewise.
3035         (orndi3_neon): Likewise.
3036         (bicdi3_neon): Likewise.
3037         (xordi3_neon): Likewise.
3038         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
3039         rid of unspec and handle unused operand.
3040         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
3041         * config/arm/predicates.md (imm_for_neon_logic_operand):
3042         Require TARGET_NEON.
3043         (imm_for_neon_inv_logic_operand): Likewise.
3044         * config/arm/arm.md (define_split for logical_binary_operator):
3045         Disable for NEON registers.
3046         (anddi3): Add new define_expand, and rename the insn.  Disable
3047         this insn for NEON, where anddi3_neon now applies.
3048         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
3049         (iordi3): As for anddi3.
3050         (xordi3): Likewise.
3051         * config/arm/neon.ml (Vand): Split DImode variants and mark them
3052         as No_op to disable testing for exact instruction match.
3053         (Vorr): Likewise.
3054         (Veor): Likewise.
3055         (Vbic): Likewise.
3056         (Vorn): Likewise.
3057         * config/arm/arm_neon.h: Regenerated.
3058         * doc/arm-neon-intrinsics.texi: Regenerated.
3059
3060 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3061
3062         * expr.h (emit_stack_probe): Declare.
3063         * explow.c (emit_stack_probe): Make global.
3064         (anti_adjust_stack_and_probe): Fix comments.
3065         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3066         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3067         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3068         * config/sparc/sparc.c: Include except.h.
3069         (sparc_emit_probe_stack_range): New function.
3070         (output_probe_stack_range): Likewise.
3071         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
3072         built-in stack checking is enabled.
3073         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
3074         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3075         (probe_stack_range): New insn.
3076
3077 2010-07-02  Richard Guenther  <rguenther@suse.de>
3078
3079         PR target/43958
3080         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
3081         for argument alignment.
3082
3083 2010-07-02  Jan Hubicka  <jh@suse.cz>
3084
3085         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
3086         walk backwards from entry_bb to check only those basic block of header
3087         that might lead to execution of split part.
3088         (consider_split) ... here.
3089         (find_return_bb): Allow assignment in return BB.
3090         (find_retval): New.
3091         (split_function): Fix name of cloned function; take care of updating
3092         return value in return_bb containing move.
3093
3094 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
3095
3096         PR target/44771
3097         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
3098         used variable insn.
3099
3100 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3101
3102         * implicit-zee.c (combine_reaching_defs): Fix long lines.
3103         (is_set_with_extension_DI): Delete.
3104         (struct zero_extend_info): New structure.
3105         (add_removable_zero_extend): New function.
3106         (find_removable_zero_extends): Use note_stores to find SETs.
3107         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
3108
3109 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
3110
3111         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
3112         is_miss_rate_acceptable. Pull total_positions computation
3113         out of the loops.  Early return if miss_positions exceeds
3114         the acceptable threshold.
3115         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
3116         is_miss_rate_acceptable after renaming of compute_miss_rate.
3117
3118 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
3119
3120         PR middle-end/44576
3121         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
3122         of 1000) for miss rate if the address diference is greater than or
3123         equal to the cache line size (the two reference will never hit the
3124         same cache line).
3125
3126 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
3127
3128         PR target/42835
3129         * config/arm/arm-modes.def (CC_NOTB): New mode.
3130         * config/arm/arm.c (get_arm_condition_code): Handle it.
3131         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
3132         * config/arm/arm.md (subsi3_compare0_c): New pattern.
3133         (compare_scc): Now a define_and_split.  Add a number of extra
3134         splitters before it.
3135
3136         PR target/42172
3137         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
3138         and ZERO_EXTEND.
3139         (arm_rtx_costs_1): Likewise.
3140         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
3141         * config/arm/arm.md (is_arch6): New attribute.
3142         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
3143         extendqisi2): Tighten the code somewhat, avoiding invalid
3144         RTL to occur in the expander patterns.
3145         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
3146         (thumb1_zero_extendhisi2_v6): Delete.
3147         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
3148         (thumb1_extendhisi2_v6): Delete.
3149         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
3150         (thumb1_extendqisi2_v6): Delete.
3151         (zero_extendhisi2 for register input splitter): New.
3152         (zero_extendqisi2 for register input splitter): New.
3153         (thumb1_extendhisi2 for register input splitter): New.
3154         (extendhisi2 for register input splitter): New.
3155         (extendqisi2 for register input splitter): New.
3156         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
3157         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
3158         and add support for a register alternative requiring a split.
3159         (thumb1_zero_extendqisi2): Likewise.
3160         (arm_zero_extendqisi2): Likewise.
3161         (arm_extendhisi2): Likewise.
3162         (arm_extendqisi2): Likewise.
3163
3164 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3165
3166         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
3167         instead of an unspec.
3168         (neon_expand_vector_init): Likewise.
3169         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
3170         (UNSPEC_VDUP_LANE): Delete.
3171         (UNSPEC VDUP_N): Delete.
3172         (UNSPEC_VGET_HIGH): Delete.
3173         (UNSPEC_VGET_LANE): Delete.
3174         (UNSPEC_VGET_LOW): Delete.
3175         (UNSPEC_VMVN): Delete.
3176         (UNSPEC_VSET_LANE): Delete.
3177         (V_double_vector_mode): New.
3178         (vec_set<mode>_internal): Make code emitted match that for the
3179         corresponding intrinsics.
3180         (vec_setv2di_internal): Likewise.
3181         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
3182         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
3183         (neon_vset_lane<mode>): Combine double and quad patterns and
3184         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
3185         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
3186         (neon_vdup_n<mode>): Rewrite RTL without unspec.
3187         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
3188         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
3189         with neon_vdup_lanev2di, adjusting the pattern from the latter
3190         to be predicable for consistency.
3191         (neon_vdup_lane<mode>_internal): New.
3192         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
3193         to avoid using an unspec.
3194         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
3195         (neon_vdup_lanev2di): Turn into a define_expand.
3196         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
3197         (neon_vget_high<mode>): Replace with....
3198         (neon_vget_highv16qi): New pattern using canonical RTL.
3199         (neon_vget_highv8hi): Likewise.
3200         (neon_vget_highv4si): Likewise.
3201         (neon_vget_highv4sf): Likewise.
3202         (neon_vget_highv2di): Likewise.
3203         (neon_vget_low<mode>): Replace with....
3204         (neon_vget_lowv16qi): New pattern using canonical RTL.
3205         (neon_vget_lowv8hi): Likewise.
3206         (neon_vget_lowv4si): Likewise.
3207         (neon_vget_lowv4sf): Likewise.
3208         (neon_vget_lowv2di): Likewise.
3209
3210         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
3211         test for this emitting vmov.
3212         (Vset_lane): Likewise.
3213         (Vdup_n): Likewise.
3214         (Vmov_n): Likewise.
3215
3216         * doc/arm-neon-intrinsics.texi: Regenerated.
3217
3218 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3219
3220         * config/arm/neon.md (vec_extractv2di): Correct error in register
3221         numbering to reconcile with neon_vget_lanev2di.
3222
3223 2010-07-02  Richard Guenther  <rguenther@suse.de>
3224
3225         * tree-ssa-structalias.c (pt_solution_set_var): New function.
3226         * tree-ssa-alias.h (pt_solution_set_var): Declare.
3227         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
3228         points-to information.
3229
3230 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
3231
3232         * config/s390/s390.c (override_options): Adopt prefetching
3233         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
3234
3235 2010-07-02  Jan Hubicka  <jh@suse.cz>
3236
3237         * df-problems.c (df_kill_notes): Do not collect dead  notes.
3238         (df_set_note): Just call add_reg_note.
3239         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
3240         df_create_unused_note): Do not deal with lists of old notes.
3241         (df_note_bb_compute): Likewise.
3242
3243 2010-07-02  Richard Guenther  <rguenther@suse.de>
3244
3245         * tree-ssa-structalias.c (find_func_aliases): Handle
3246         pointer alignment via BIT_AND_EXPR.
3247         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
3248
3249 2010-07-02  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-data-ref.c (initialize_data_dependence_relation): Handle
3252         mismatching number of dimensions properly.
3253
3254 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3255
3256         PR target/44707
3257         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
3258         (lo_sum (high ...) ...) patterns generated by earlier passes.
3259
3260 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3261
3262         * doc/install.texi (Prerequisites): Document Perl requirement on
3263         Solaris 2.
3264         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
3265
3266 2010-07-02  Richard Guenther  <rguenther@suse.de>
3267
3268         PR middle-end/44777
3269         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
3270
3271 2010-07-02  Jan Hubicka  <jh@suse.cz>
3272
3273         PR middle-end/44706
3274         * predict.c (predict_paths_for_bb): Handle case when control dependence
3275         BB has only abnormal edges.
3276
3277 2010-07-02  Richard Guenther  <rguenther@suse.de>
3278
3279         PR tree-optimization/44748
3280         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
3281         the embedded conversion in MEM_REFs.
3282
3283 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
3284
3285         * reload.c: Include toplev.h.
3286         * recog.c:  Likewise.
3287         * Makefile.in: Adjust dependencies.
3288
3289 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
3290
3291         PR debug/44694
3292         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
3293         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
3294
3295 2010-07-01  Richard Guenther  <rguenther@suse.de>
3296
3297         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
3298         types for offsets.
3299
3300 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
3301
3302         PR target/44732
3303         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
3304         Fix argument types.
3305
3306 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
3307
3308         PR target/44727
3309         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3310         Make sure operand 0 dies.
3311
3312 2010-07-01  Richard Guenther  <rguenther@suse.de>
3313
3314         PR middle-end/42834
3315         PR middle-end/44468
3316         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
3317         * doc/generic.texi (References to storage): Document MEM_REF.
3318         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
3319         (print_call_name): Likewise.
3320         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
3321         (build_simple_mem_ref_loc): New function.
3322         (mem_ref_offset): Likewise.
3323         * tree.h (build_simple_mem_ref_loc): Declare.
3324         (build_simple_mem_ref): Define.
3325         (mem_ref_offset): Declare.
3326         * fold-const.c: Include tree-flow.h.
3327         (operand_equal_p): Handle MEM_REF.
3328         (build_fold_addr_expr_with_type_loc): Likewise.
3329         (fold_comparison): Likewise.
3330         (fold_unary_loc): Fold
3331         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
3332         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
3333         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
3334         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
3335         (ptr_deref_may_alias_ref_p_1): Likewise.
3336         (ao_ref_base_alias_set): Properly differentiate base object for
3337         offset and TBAA.
3338         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
3339         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
3340         (indirect_refs_may_alias_p): Likewise.
3341         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
3342         chasing code.
3343         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
3344         (call_may_clobber_ref_p_1): Likewise.
3345         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
3346         * expr.c (expand_assignment): Handle MEM_REF.
3347         (store_expr): Handle MEM_REFs from STRING_CSTs.
3348         (store_field): If expanding a MEM_REF of a non-addressable
3349         decl use bitfield operations.
3350         (get_inner_reference): Handle MEM_REF.
3351         (expand_expr_addr_expr_1): Likewise.
3352         (expand_expr_real_1): Likewise.
3353         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
3354         * alias.c (ao_ref_from_mem): Handle MEM_REF.
3355         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
3356         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
3357         (dr_analyze_indices): Likewise.
3358         (dr_analyze_alias): Likewise.
3359         (object_address_invariant_in_loop_p): Likewise.
3360         * gimplify.c (mark_addressable): Handle MEM_REF.
3361         (gimplify_cond_expr): Build MEM_REFs.
3362         (gimplify_modify_expr_to_memcpy): Likewise.
3363         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
3364         (gimple_fold_indirect_ref): Adjust.
3365         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
3366         * tree.def (MEM_REF): New tree code.
3367         * tree-dfa.c: Include toplev.h.
3368         (get_ref_base_and_extent): Handle MEM_REF.
3369         (get_addr_base_and_unit_offset): New function.
3370         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
3371         * gimple-fold.c (may_propagate_address_into_dereference): Handle
3372         MEM_REF.
3373         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
3374         accesses if the array has just one dimension.  Remove always true
3375         parameter.  Do not require type compatibility here.
3376         (maybe_fold_offset_to_component_ref): Remove.
3377         (maybe_fold_stmt_indirect): Remove.
3378         (maybe_fold_reference): Remove INDIRECT_REF handling.
3379         Fold back to non-MEM_REF.
3380         (maybe_fold_offset_to_address): Simplify.  Deal with type
3381         mismatches here.
3382         (maybe_fold_reference): Likewise.
3383         (maybe_fold_stmt_addition): Likewise.  Also handle
3384         &ARRAY + I in addition to &ARRAY[0] + I.
3385         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
3386         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
3387         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
3388         * tree-ssa.c (useless_type_conversion_p): Make most pointer
3389         conversions useless.
3390         (warn_uninitialized_var): Handle MEM_REF.
3391         (maybe_rewrite_mem_ref_base): New function.
3392         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
3393         to SSA form.
3394         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
3395         INDIRECT_REF handling.
3396         (copy_tree_body_r): Handle MEM_REF.
3397         * gimple.c (is_gimple_addressable): Adjust.
3398         (is_gimple_address): Likewise.
3399         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
3400         invariant base are invariant.
3401         (is_gimple_min_lval): Adjust.
3402         (is_gimple_mem_ref_addr): New function.
3403         (get_base_address): Handle MEM_REF.
3404         (count_ptr_derefs): Likewise.
3405         (get_base_loadstore): Likewise.
3406         * gimple.h (is_gimple_mem_ref_addr): Declare.
3407         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
3408         * tree-cfg.c (verify_address): New function, split out from ...
3409         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
3410         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
3411         INDIRECT_REFs.
3412         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
3413         INDIRECT_REF.  Allow conversions.
3414         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
3415         a register does not change its size.
3416         (verify_types_in_gimple_reference): Verify MEM_REF.
3417         (verify_gimple_assign_single): Disallow INDIRECT_REF.
3418         Handle MEM_REF.
3419         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
3420         New.
3421         (mark_address_taken): Handle MEM_REF.
3422         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
3423         (get_asm_expr_operands): Pass opf_not_non_addressable.
3424         (get_expr_operands): Handle opf_[not_]non_addressable.
3425         Handle MEM_REF.  Remove INDIRECT_REF handling.
3426         * tree-vrp.c: (check_array_ref): Handle MEM_REF.
3427         (search_for_addr_array): Likewise.
3428         (check_array_bounds): Likewise.
3429         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
3430         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
3431         (ref_always_accessed_p): Likewise.
3432         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
3433         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
3434         Handle MEM_REF.
3435         * cgraphbuild.c (mark_load): Properly check for NULL result
3436         from get_base_address.
3437         (mark_store): Likewise.
3438         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
3439         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
3440         handling for MEM_REF.
3441         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
3442         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
3443         * builtins.c (stabilize_va_list_loc): Use the function ABI
3444         valist type if we couldn't canonicalize the argument type.
3445         Always dereference with the canonical va-list type.
3446         (maybe_emit_free_warning): Handle MEM_REF.
3447         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
3448         memmove to memcpy.
3449         * builtins.c (fold_builtin_memory_op): Use ref-all types
3450         for all memcpy foldings.
3451         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
3452         (build_outer_var_ref): Likewise.
3453         (scan_omp_1_op): Likewise.
3454         (lower_rec_input_clauses): Likewise.
3455         (lower_lastprivate_clauses): Likewise.
3456         (lower_reduction_clauses): Likewise.
3457         (lower_copyprivate_clauses): Likewise.
3458         (expand_omp_atomic_pipeline): Likewise.
3459         (expand_omp_atomic_mutex): Likewise.
3460         (create_task_copyfn): Likewise.
3461         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
3462         Remove old union trick.  Initialize constant offsets.
3463         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
3464         INDIRECT_REF.  Init base_alias_set properly.
3465         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
3466         (vn_reference_fold_indirect): Adjust for MEM_REFs.
3467         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
3468         for ARRAY_REFs.
3469         (may_insert): Remove.
3470         (visit_reference_op_load): Do not test may_insert.
3471         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
3472         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
3473         a field to store the constant offset this op applies.
3474         (run_scc_vn): Adjust prototype.
3475         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
3476         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
3477         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
3478         bother about volatile qualifiers on pointers.
3479         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
3480         * tree-ssa-loop-ivopts.c
3481         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
3482         (strip_offset_1): Likewise.
3483         (find_interesting_uses_address): Replace INDIRECT_REF handling with
3484         MEM_REF handling.
3485         (get_computation_cost_at): Likewise.
3486         * ipa-pure-const.c (check_op): Handle MEM_REF.
3487         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
3488         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
3489         and constants.
3490         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
3491         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
3492         (eliminate_local_variables_1): Likewise.
3493         (create_call_for_reduction_1): Likewise.
3494         (create_loads_for_reductions): Likewise.
3495         (create_loads_and_stores_for_name): Likewise.
3496         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
3497         (ssa_accessed_in_tree): Handle MEM_REF.
3498         (ssa_accessed_in_assign_rhs): Likewise.
3499         (update_type_size): Likewise.
3500         (analyze_accesses_for_call_stmt): Likewise.
3501         (analyze_accesses_for_assign_stmt): Likewise.
3502         (transform_access_sites): Likewise.
3503         (transform_allocation_sites): Likewise.
3504         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
3505         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
3506         not handle INDIRECT_REF.
3507         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
3508         (cond_store_replacement): Likewise.
3509         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3510         MEM_REF, no not handle INDIRECT_REFs.
3511         (insert_into_preds_of_block): Properly initialize avail.
3512         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
3513         for ARRAY_REFs.  Properly handle reference lookups that
3514         require a bit re-interpretation.
3515         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
3516         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
3517         (build_ref_for_offset_1): Remove.
3518         (build_ref_for_offset): Build MEM_REFs.
3519         (gate_intra_sra): Disable for now.
3520         (sra_ipa_modify_expr): Handle MEM_REF.
3521         (ipa_early_sra_gate): Disable for now.
3522         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
3523         MEM_REF handling.
3524         (disqualify_base_of_expr): Likewise.
3525         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
3526         MEM_REF handling.
3527         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
3528         Use mem_ref_offset.  Remove bogus folding.
3529         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
3530         (make_fancy_name_1): Add support for MEM_REF.
3531         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
3532         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
3533         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
3534         (compute_complex_ancestor_jump_func): Likewise.
3535         (ipa_analyze_virtual_call_uses): Likewise.
3536         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
3537         INDIRECT_REF folding with more generalized MEM_REF folding.
3538         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
3539         (forward_propagate_addr_into_variable_array_index): Also handle
3540         &ARRAY + I in addition to &ARRAY[0] + I.
3541         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
3542         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
3543         creates assignments with overlap.
3544         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
3545         (get_frame_field): Likewise.
3546         (get_nonlocal_debug_decl): Likewise.
3547         (convert_nonlocal_reference_op): Likewise.
3548         (struct nesting_info): Add mem_refs pointer-set.
3549         (create_nesting_tree): Allocate it.
3550         (convert_local_reference_op): Insert to be folded mem-refs.
3551         (fold_mem_refs): New function.
3552         (finalize_nesting_tree_1): Perform defered folding of mem-refs
3553         (free_nesting_tree): Free the pointer-set.
3554         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
3555         (vectorizable_load): Likewise.
3556         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
3557         (propagate_with_phi): Likewise.
3558         * tree-object-size.c (addr_object_size): Handle MEM_REFs
3559         instead of INDIRECT_REFs.
3560         (compute_object_offset): Handle MEM_REF.
3561         (plus_stmt_object_size): Handle MEM_REF.
3562         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
3563         for &MEM_REF.
3564         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
3565         (symbol_marked_for_renaming): Likewise.
3566         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
3567         (fold-const.o): Add $(TREE_FLOW_H).
3568         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
3569         (find_func_clobbers): Likewise.
3570         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
3571         (decompose_access): Likewise.
3572         (replace_field_acc): Likewise.
3573         (replace_field_access_stmt): Likewise.
3574         (insert_new_var_in_stmt): Likewise.
3575         (get_stmt_accesses): Likewise.
3576         (reorg_structs_drive): Disable.
3577         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
3578         (ix86_canonical_va_list_type): Likewise.
3579
3580 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
3581
3582         PR other/44566
3583         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
3584         * target.def (struct gcc_target): Replace enum reg_class with
3585         reg_class_t in hook argument / return types.
3586         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
3587         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
3588         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
3589         * targhooks.h (default_branch_target_register_class): Likewise.
3590         (default_ira_cover_classes, default_secondary_reload): Likewise.
3591         (default_memory_move_cost, default_register_move_cost): Likewise.
3592         * targhooks.c (default_branch_target_register_class): Likewise.
3593         (default_ira_cover_classes, default_secondary_reload): Likewise.
3594         (default_memory_move_cost, default_register_move_cost): Likewise.
3595         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
3596         * bt-load.c (branch_target_load_optimize): Likewise.
3597         * ira.c (setup_cover_and_important_classes): Likewise.
3598         * ira-costs.c (copy_cost): Likewise.
3599         * reload1.c (emit_input_reload_insns): Likewise.
3600         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
3601         * config/frv/frv.c (frv_secondary_reload): Likewise.
3602         * config/s390/s390.c (s390_secondary_reload): Likewise.
3603         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
3604         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
3605         (ix86_register_move_cost): Likewise.
3606         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
3607         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
3608         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
3609         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
3610         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
3611         (rs6000_ira_cover_classes): Likewise.
3612         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
3613         * config/picochip/picochip-protos.h (picochip_secondary_reload):
3614         Likewise.
3615         * config/pa/pa.c (pa_secondary_reload): Likewise.
3616         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
3617         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
3618         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
3619         * doc/tm.texi: Regenerate.
3620
3621 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
3622
3623         PR bootstrrap/44726
3624         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
3625         use.
3626         (build_alias_set_optimal_p): Likewise.
3627         (build_base_obj_set_for_drs): Likewise.
3628
3629 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
3630
3631         * target.def: Remove comment about licensing problems of function
3632         declarations.
3633
3634         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
3635         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
3636         * doc/tm.texi: Regenerate.
3637
3638         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
3639         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
3640
3641         * target.def (enum_va_list_p): Use DEFHOOK.
3642         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
3643         Rename ptype to ptree.
3644         * doc/tm.texi: Regenerate.
3645
3646         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
3647         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
3648         * doc/tm.texi: Regenerate.
3649
3650         * target.def (memory_move_cost): Use DEFHOOK.
3651         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
3652         Rename regclass AKA class to rclass.
3653         * doc/tm.texi: Regenerate.
3654
3655         * target.def (pragma_parse): Use DEFHOOK.
3656         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
3657         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
3658         * doc/tm.texi: Regenerate.
3659
3660         * target.def (pass_by_reference): Use DEFHOOK.
3661         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
3662         * doc/tm.texi: Regenerate.
3663
3664         * target.def (resolve_overloaded_builtin): Rename params to arglist.
3665         Use DEFHOOK.
3666         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
3667         * doc/tm.texi: Regenerate.
3668
3669         * target.def (return_pops_args): Use DEFHOOK.
3670         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
3671         Rename stack-size to size.
3672         * doc/tm.texi: Regenerate.
3673
3674         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
3675         last-sched_cycle to last_clock, cur_cycle to clock.
3676         * doc/tm.texi.in: Use @hook.
3677         * doc/tm.texi: Regenerate.
3678
3679         * target.def (print_operand, print_operand_address): Update comment.
3680         (print_operand_punct_valid_p): Likewise.
3681
3682 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3683
3684         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
3685         to rtl.h.
3686         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
3687         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
3688         * rtl-error.h: New.
3689         * regrename.c: Do not include toplev.h. Include rtl-error.h.
3690         * rtl-error.c: Likewise.
3691         * reload.c: Likewise.
3692         * recog.c:  Likewise.
3693         * sel-sched.c: Likewise.
3694         * function.c: Likewise.
3695         * reg-stack.c: Likewise.
3696         * cfgrtl.c: Likewise.
3697         * reload1.c: Likewise.
3698         * final.c: Include rtl-error.
3699         * Makefile.in: Adjust dependencies.
3700
3701 2010-06-30  Jan Hubicka  <jh@suse.cz>
3702
3703         PR middle-end/PR44706
3704         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
3705         to return the value.
3706
3707 2010-06-30  Michael Matz  <matz@suse.de>
3708
3709         PR bootstrap/44699
3710         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
3711         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
3712         a gimple reg, attach the original VDEF to the last store in the
3713         sequence.
3714
3715 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
3716
3717         PR other/44034
3718         * config/darwin.c (darwin_override_options): Use renamed
3719         targetm.asm_out.emit_unwind_label.
3720
3721 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
3722
3723         PR tree-optimization/39799
3724         * tree-inline.c (remap_ssa_name): Initialize variable only if
3725         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3726
3727 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
3728
3729         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
3730
3731 2010-06-30  Richard Guenther  <rguenther@suse.de>
3732
3733         PR target/44722
3734         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
3735         against oscillation with reverse peephole2.
3736
3737 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
3738
3739         PR target/44721
3740         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3741         Fix last commit.
3742
3743 2010-06-30  Nick Clifton  <nickc@redhat.com>
3744
3745         * config/rx/rx-modes.def: New file.
3746         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
3747         (CC_REGNUM): Define.
3748         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
3749         register.
3750         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
3751         (SELECT_CC_MODE): Define.
3752         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
3753         (reg:CC CC_REG) instead of (cc0).
3754         (attr "cc"): Delete.
3755         (cbranchsi4): Do not split compare and branch here. Instead move
3756         it to...
3757         (cbranchsi4_<code>): ... here.  New patterns.
3758         (cmpsi): Call rx-compare_redundant to find out if it is necessary
3759         to emit the compare instruction.
3760         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
3761         cc_status flags.
3762         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
3763         FIRST_PSEUDO_REGNUM.
3764         (rx_expand_prologue, rx_expand_epilogue): Likewise.
3765         (rx_notice_update_cc): Delete.
3766         (rx_cc_modes_compatible): New function.
3767         (flags_needed_for_conditional): New function.
3768         (flags_from_mode): New function.
3769         (rx_compare_redundant): New function - scans backwards through
3770         insn list to find out if condition flags are already set correctly.
3771         (TARGET_CC_MODES_COMPATIBLE): Define.
3772         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
3773
3774         * config/rx/rx.h (BRANCH_COST): Define.
3775         (REGISTER_MOVE_COST): Define.
3776         * config/rx/predicates (rx_source_operand): Allow all constant types.
3777         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
3778         (tstsi4): New pattern.
3779         * config/rx/rx.c (rx_memory_move_cost): Define.
3780         (TARGET_MEMORY_MOVE_COST): Define.
3781
3782 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3783
3784         * tree.h (block_may_fallthru): Declare here.
3785         * tree-flow.h (block_may_fallthru): Do not declare here.
3786         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
3787         bitmap.h
3788         * Makefile.in (c-typeck.o): Update dependencies.
3789
3790 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR debug/44694
3793         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
3794         * cselib.c (cfa_base_preserved_regno): New static variable.
3795         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
3796         of REGNO (cfa_base_preserved_val->locs->loc).
3797         (cselib_preserve_cfa_base_value): Add regno argument, set
3798         cfa_base_preserved_regno to it.
3799         (cselib_invalidate_regno): Allow removal of registers other than
3800         cfa_base_preserved_regno from cfa_base_preserved_val.
3801         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
3802         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
3803         of MEM addresses, if not on LHS.
3804         (reverse_op): Don't add reverse ops for cfa_base_rtx.
3805         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
3806
3807 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
3808
3809         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
3810         static variables.
3811         (peep2_buf_position): New static function.
3812         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
3813         peephole2_optimize): Use it.
3814         (peep2_attempt, peep2_update_life): New static functions, broken out
3815         of peephole2_optimize.
3816         (peep2_fill_buffer): New static function.
3817         (peephole2_optimize): Change the main loop to try to fill the buffer
3818         with the maximum number of insns before matching them against
3819         peepholes.  Use a forward scan.  Remove special case for targets with
3820         conditional execution.
3821         * genrecog.c (change_state): Delete dead code.
3822         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
3823         Rewrite so as not to expect the second insn to have had a peephole
3824         applied yet.
3825
3826 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3827
3828         * genhooks.c (emit_findices): Cast field precision to int.
3829         (emit_documentation): Likewise.
3830
3831 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
3832
3833         PR tree-optimization/43801
3834         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
3835         if old_decl was DECL_ONE_ONLY.
3836
3837         PR debug/44668
3838         * dwarf2out.c (add_accessibility_attribute): New function.
3839         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
3840         instead of adding DW_AT_accessibility manually.
3841         (gen_enumeration_type_die, gen_struct_or_union_type_die,
3842         gen_typedef_die): Use it.
3843
3844 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3845
3846         * vmsdbgout.c (full_name): Just output the file name if not native.
3847
3848 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3849
3850         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
3851         (funcnam_table): New static table.
3852         (funcnum_table): New static table.
3853         (write_rtnbeg): Write value saved in funcnum_table.
3854         (write_rtnend): Write value saved in funcnum_table.
3855         (vmsdbgout_begin_function): Save current function info in
3856         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
3857         (vmsdbgout_finish): Iterate over funcnum_table.
3858
3859 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3860
3861         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
3862         (vmsdbgout_type_decl): Declare
3863         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
3864         (FUNC_EPILOGUE_LABEL): New macro
3865         (vmsdbgout_begin_epilogue): New function.
3866         (vmsdbgout_type_decl): New function.
3867
3868 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3869
3870         * vmsdbg.h: Update copyright.
3871
3872 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
3873
3874         * vmsdbg.h (DST_K_TBG): New DST constant.
3875         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
3876         (write_modbeg): Cast module_language to avoid warning.
3877         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
3878
3879 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
3880
3881         PR other/44034
3882         * target.def, doc/tm.texi.in, genhooks.c: New files.
3883         * target.h: Instead of defining individual hook members,
3884         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
3885         include target.def.
3886         * target-def.h: Instead of defining individual hook initializers,
3887         include target-hooks-def.h.
3888         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
3889         targetm.live_on_entry -> targetm.extra_live_on_entry
3890         targetm.sched.md_finish ->targetm.sched.finish
3891         targetm.sched.md_init -> targetm.sched.init
3892         targetm.sched.md_init_global -> targetm.sched.init_global
3893         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
3894         targetm.asm_out.except_table_label ->
3895           targetm.asm_out.emit_except_table_label
3896         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
3897         targetm.target_help -> targetm.help
3898         targetm.vectorize.builtin_support_vector_misalignment ->
3899           targetm.vectorize.support_vector_misalignment
3900         targetm.file_start_app_off -> targetm.asm_file_start_app_off
3901         targetm.file_start_file_directive ->
3902          targetm.asm_file_start_file_directive
3903         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
3904         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
3905         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
3906         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
3907           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
3908         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
3909           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
3910         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
3911         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
3912         * Makefile.in (TARGET_H): Depend on target.def.
3913         (TARGET_DEF_H): Depend on target-hooks-def.h.
3914         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
3915         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
3916         * doc/tm.texi: Regenerate.
3917
3918         * Makefile.in (s-tm-texi): Remove stray tab / rule.
3919
3920         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
3921         (targetm.sched.init): Likewise.
3922
3923 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3924
3925         PR bootstrap/44713
3926         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
3927         (function_arg_advance_32): Const-ify TYPE parameter.
3928         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
3929         (ix86_function_arg_advance): Change type of NAMED to bool.
3930         (function_arg_32): Const-ify CUM and TYPE parameters.
3931         (function_arg_64): Likewise.  Change type of NAMED to bool.
3932         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
3933         to bool.
3934         (ix86_function_arg): Change type of NAMED to bool.
3935         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
3936         last argument as a bool.
3937
3938 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
3939
3940         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
3941         (OVERRIDE_OPTIONS): Add note of obsolescence.
3942         Replace references with references to TARGET_OPTION_OVERRIDE.
3943         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
3944          the macro).
3945         * targhooks.c (default_target_option_override): New function.
3946         * targhooks.h (default_target_option_override): Declare.
3947         * target.h (struct gcc_target): Add override member to
3948         target_option member.
3949         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
3950         targetm.target_option.override call.
3951         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
3952         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
3953
3954 2010-06-29  Jan Hubicka  <jh@suse.cz>
3955
3956         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
3957
3958 2010-06-29  Jan Hubicka  <jh@suse.cz>
3959
3960         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
3961         unreachable.
3962         (rebuild_frequencies): New function.
3963         * predict.h (rebuild_frequencies): Declare.
3964         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
3965         entry block and edge reaching new_entry.
3966         (tree_function_versioning): When doing partial cloning, rebuild
3967         frequencies when done.
3968         * passes.c (execute_function_todo): Use rebild_frequencies.
3969
3970 2010-06-29  Richard Guenther  <rguenther@suse.de>
3971
3972         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
3973         * tree-flow.h (enum noalias_state): Remove.
3974         (struct var_ann_d): Remove noalias_state member.
3975
3976 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3977
3978         PR target/43902
3979         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
3980         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
3981         (maddhidi4): Likewise.
3982
3983         Revert parts of the change for PR25130.
3984         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3985         MEM_ALIAS_SET.
3986
3987 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
3988
3989         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
3990         targetm.calls.function_incoming_arg, and
3991         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
3992         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
3993         * target.h (struct gcc_target): Add function_arg_advance,
3994         function_arg, and function_incoming_arg fields.
3995         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
3996         (TARGET_FUNCTION_INCOMING_ARG): Define.
3997         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
3998         and TARGET_FUNCTION_INCOMING_ARG.
3999         * targhooks.h (default_function_arg_advance): Declare.
4000         (default_function_arg, default_function_incoming_arg): Declare.
4001         * targhooks.c (default_function_arg_advance): New function.
4002         (default_function_arg, default_function_incoming_arg): New function.
4003         * config/i386/i386.c (function_arg_advance): Rename to...
4004         (ix86_function_arg_advance): ...this.  Make static.
4005         (function_arg): Rename to...
4006         (ix86_function_arg): ...this.  Make static.
4007         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4008         (TARGET_FUNCTION_ARG): Define.
4009         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
4010         (FUNCTION_ARG): Delete.
4011         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
4012         (function_arg): Delete prototype.
4013
4014 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
4015
4016         * reginfo.c (init_reg_sets_1): Adjust comments.
4017         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
4018         * calls.c (prepare_call_address): Likewise.
4019         (emit_call_1): Use targetm.calls.return_pops_args.
4020         (expand_call): Likewise.
4021         * function.c (assign_parms): Likewise.
4022         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
4023         * target.h (struct gcc_target) [struct calls]: Add
4024         return_pops_args field.
4025         * targhooks.h (default_return_pops_args): Declare.
4026         * targhooks.c (default_return_pops_args): Define.
4027         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
4028         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
4029         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
4030         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
4031         documentation.
4032         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
4033         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
4034         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
4035         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
4036         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
4037         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
4038         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
4039         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
4040         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
4041         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
4042         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
4043         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
4044         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
4045         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
4046         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
4047         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
4048         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
4049         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
4050         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
4051         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
4052         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
4053         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
4054         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
4055         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
4056         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
4057         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
4058         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
4059         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
4060         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
4061         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
4062         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
4063         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
4064         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
4065         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
4066         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
4067         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
4068         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
4069         * config/i386/i386.c (ix86_return_pops_args): Make static.
4070         Constify arguments.
4071         (TARGET_RETURN_POPS_ARGS): Define.
4072         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
4073         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
4074         (TARGET_RETURN_POPS_ARGS): Define.
4075         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
4076         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
4077         (TARGET_RETURN_POPS_ARGS): Define.
4078
4079 2010-06-29  Richard Guenther  <rguenther@suse.de>
4080
4081         PR middle-end/44667
4082         * tree-inline.c (initialize_inlined_parameters): Make sure
4083         to remap the inlined parameter variable substitutions types.
4084
4085 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4086
4087         PR rtl-optimization/44659
4088         * combine.c (make_compound_operation) <SUBREG>: Do not return the
4089         result of force_to_mode if it partially re-expanded the compound.
4090
4091 2010-06-28  Jan Hubicka  <jh@suse.cz>
4092
4093         PR middle-end/44671
4094         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
4095         RESULT_DECL.
4096
4097 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
4098
4099         * double-int.h (force_fit_type_double): Remove declaration.
4100         * double-int.c (force_fit_type_double): Move to tree.c.
4101         * tree.h (force_fit_type_double): Declare.
4102         * tree.h (force_fit_type_double): Moved from double-int.c. Use
4103         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
4104         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
4105         * convert.c (convert_to_pointer): Adjust call to
4106         force_fit_type_double.
4107         * tree-vrp.c (extract_range_from_assert,
4108         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
4109         * fold-const.c: Update comment.
4110         (int_const_binop, fold_convert_const_int_from_int,
4111         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
4112         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
4113         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
4114         round_up_loc): Adjust call to force_fit_type_double.
4115
4116 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
4117
4118         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
4119
4120 2010-06-28  Martin Jambor  <mjambor@suse.cz>
4121
4122         * tree-sra.c (convert_callers): New parameter, change fndecls of
4123         recursive calls.
4124         (modify_function): Pass the old decl to convert_callers.
4125
4126 2010-06-28  Martin Jambor  <mjambor@suse.cz>
4127
4128         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
4129         ipa_check_create_node_params and ipa_initialize_node_params with
4130         checking asserts they are not necessary.
4131
4132 2010-06-28  Jan Hubicka  <jh@suse.cz>
4133
4134         PR tree-optimization/44687
4135         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
4136
4137 2010-06-28  Martin Jambor  <mjambor@suse.cz>
4138
4139         PR c++/44535
4140         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
4141         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
4142         instead of BINFO_BASE_BINFO.
4143
4144 2010-06-28  Michael Matz  <matz@suse.de>
4145
4146         PR middle-end/44592
4147         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
4148         proper VDEF chain for intermediate stores in the sequence.
4149
4150 2010-06-28  Jan Hubicka  <jh@suse.cz>
4151
4152         PR tree-optimization/44357
4153         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
4154         uninlinable functions.
4155
4156 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
4157
4158         * config.gcc (powerpc*-*-*): Handle titan.
4159         * config/rs6000/rs6000.c (titan_cost): New costs.
4160         (rs6000_override_options): Add "titan" to processor_target_table.
4161         Add Titan to branch alignment logic.
4162         Correctly set rs6000_cost for titan.
4163         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
4164         * config/rs6000/titan.md: New file.
4165         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
4166
4167 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
4168
4169         * tree-browser.c (TB_history_stack): Convert to a VEC.
4170         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
4171         (TB_history_prev): Likewise.
4172
4173 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
4174
4175         * vec.h (vec_heap_free): Add parentheses around free.
4176
4177 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
4178
4179         * system.h: Poison GCC_EXCEPT_H for front-end files.
4180
4181         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
4182         langhook.
4183         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
4184         Define to NULL by default.
4185         * except.h: Define GCC_EXCEPT_H.
4186         (doing_eh): Remove prototype.
4187         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
4188         (lang_protect_cleanup_actions): Remove.
4189         * except.c (lang_protect_cleanup_actions): Remove.
4190         (doing_eh): Remove.
4191         (gen_eh_region): Don't check doing_eh here.
4192         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
4193         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
4194         instead of lang_protect_cleanup_actions.
4195         * omp-low.c (maybe_catch_exception): Likewise.
4196         * Makefile.in: Update dependencies.
4197
4198 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
4199
4200         * cgraph.h (struct varpool_node): new used_from_object_file flag.
4201         (struct cgraph_local_info): new used_from_object_file flag.
4202         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
4203         (cgraph_clone_node): initialize used_from_object_file.
4204         (cgraph_create_virtual_clone): initialize used_from_object_file.
4205         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
4206         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
4207         when compiling with -fwhole-program.
4208         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
4209         internal resolver.
4210         * ipa.c (function_and_variable_visibility): Set externally_visible
4211         flag of varpool_node if used_from_object_file flag is set.
4212         (cgraph_externally_visible_p): check used_from_object_file flag.
4213         * doc/invoke.texi (-fwhole-program option): Change description of
4214         externally_visible attribute accordingly.
4215         * doc/extend.texi (externally_visible): Ditto.
4216
4217 2010-06-27  Jan Hubicka  <jh@suse.cz>
4218
4219         * params.def (max-inline-insns-auto): Default to 40.
4220         * doc/invoke.texi (max-inline-insns-auto): Document the change.
4221
4222 2010-06-27  Jan Hubicka  <jh@suse.cz>
4223
4224         PR middle-end/44671
4225         PR middle-end/44686
4226         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
4227         signature change.
4228         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
4229         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
4230
4231 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
4232
4233         * target.h (struct gcc_target): Add register_move_cost field.
4234         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
4235         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
4236         * targhooks.c (default_register_move_cost): New function.
4237         * targhooks.h (default_register_move_cost): Declare function.
4238         * defaults.h (REGISTER_MOVE_COST): Delete.
4239         * ira-int.h (ira_register_move_cost): Update comment.
4240         * ira.c: (ira_register_move_cost): Update comment.
4241         * reload.h (register_move_cost): Declare.
4242         * reginfo.c (register_move_cost): New function.
4243         (move_cost): Update comment.
4244         (init_move_cost, memory_move_secondary_cost): Replace
4245         REGISTER_MOVE_COST with register_move_cost.
4246         * postreload.c (reload_cse_simplify_set): (Ditto.).
4247         * reload.c (find_valid_class, find_reloads): (Ditto.).
4248         * reload1.c (choose_reload_regs): (Ditto.).
4249         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
4250         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
4251         * doc/md.texi (can_create_pseudo_p): Update documentation.
4252
4253         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
4254         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
4255         * config/i386/i386.h (ix86_memory_move_cost): Make static.
4256         (TARGET_MEMORY_MOVE_COST): Define.
4257
4258         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
4259         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
4260         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
4261         (TARGET_MEMORY_MOVE_COST): Define.
4262
4263 2010-06-27  Richard Guenther  <rguenther@suse.de>
4264
4265         PR tree-optimization/44683
4266         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
4267         false edge from the inverted condition.
4268
4269 2010-06-27  Richard Guenther  <rguenther@suse.de>
4270
4271         PR middle-end/44684
4272         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
4273         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
4274         for register LHS.  Or non-store assignments.
4275
4276 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
4277
4278         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
4279         (sparc_emit_set_const64): Likewise.  Remove disabled code.
4280         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
4281         (sparc_emit_set_const64): Likewise.
4282
4283 2010-06-26  Catherine Moore  <clm@codesourcery.com>
4284
4285         * config/mips/mips.md (alu_type): New attribute.
4286         (type): Infer type from alu_type.
4287         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
4288         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
4289         *subsi3_extended, negsi2, negdi2, *low<mode>,
4290         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
4291         xor<mode>3, *nor<mode>3,
4292         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
4293         *zero_extendhi_truncqi):  Set alu_type instead of type.
4294
4295 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
4296
4297         * config/alpha/alpha.c (alpha_need_linkage): Adjust
4298         splay_tree_new_ggc call.
4299         (alpha_use_linkage): Likewise.
4300
4301 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
4302
4303         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
4304         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
4305         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
4306         (static_specs): Remove switches_need_spaces.
4307         (process_command, do_self_spec): Hardcode handling "-o" instead of
4308         checking switches_need_spaces.
4309         * system.h (SWITCHES_NEED_SPACES): Poison.
4310
4311 2010-06-26  Richard Guenther  <rguenther@suse.de>
4312
4313         PR tree-optimization/44393
4314         * tree-loop-distribution.c (generate_loops_for_partition): Fix
4315         stmt removal and VOP renaming.
4316         (generate_memset_zero): Remove redundant stmt updating.
4317         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
4318         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
4319
4320 2010-06-26  Jan Hubicka  <jh@suse.cz>
4321
4322         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
4323         edges comming from header are equivalent.
4324         (visit_bb): Handle PHIs correctly.
4325         * tree-inline.c (copy_phis_for_bb): Be able to copy
4326         PHI from entry edge.
4327         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
4328
4329 2010-06-26  Richard Guenther  <rguenther@suse.de>
4330
4331         PR middle-end/44674
4332         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
4333         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
4334
4335 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
4336
4337         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
4338         add_infile, alloc_switch): New.
4339         (process_command): Remove variable lang_n_infiles.  Process
4340         options in a single pass.  Use new functions for allocating
4341         infiles and switches arrays.  Properly skip operands of
4342         -Xpreprocessor and -Xassembler.
4343
4344 2010-06-26  Jan Hubicka  <jh@suse.cz>
4345
4346         PR middle-end/44671
4347         * cgraphunit.c (cgraph_function_versioning): Remove wrong
4348         cgraph_make_decl_local call; fix typo copying RTL data.
4349
4350 2010-06-25  DJ Delorie  <dj@redhat.com>
4351
4352         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
4353         (m32c_output_aligned_common): Likewise.
4354         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
4355         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
4356         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
4357         (m32c_register_pragmas): Register it.
4358         * config/m32c/m32c.c (m32c_get_pragma_address): New.
4359         (m32c_insert_attributes): Set #pragma address decls volatile.
4360         (pragma_entry_eq): New.
4361         (pragma_entry_hash): New.
4362         (m32c_note_pragma_address): New.
4363         (m32c_get_pragma_address): New.
4364         (m32c_output_aligned_common): New.
4365         * doc/extend.texi: Document the new pragma.
4366
4367         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
4368         also.
4369         * config/m32c/predicates.md (m32c_any_operand): Check the code
4370         instead of memory_operand so as to allow matching volatile MEMs.
4371         (m32c_nonimmediate_operand): Likewise.
4372         (mra_operand): Allow volatiles.
4373
4374 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
4375
4376         PR debug/44610
4377         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
4378         address if the offset is unknown.
4379
4380 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
4381
4382         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
4383         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
4384         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
4385         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
4386         to ia64_start_function. Invoke it.
4387         * config/ia64/ia64.c (ia64_start_function): Call new function
4388         dwarf2out_vms_debug_main_pointer.
4389
4390 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
4391
4392         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
4393         statements computing the true predicate.
4394
4395 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
4396
4397         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
4398         to boolean_true_node.
4399         (reset_bb_predicate): New.
4400         (predicate_bbs): Call reset_bb_predicate.
4401
4402 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
4403
4404         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
4405         (tree_if_conversion): Returns true when something has been changed.
4406         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
4407         changed something.
4408
4409 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
4410
4411         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
4412         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
4413         * tree-if-conv.c: Include dbgcnt.h.
4414         (tree_if_conversion): Use if_conversion_tree to count the number of
4415         if-convertible loops.
4416
4417 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
4418
4419         * common.opt (fprefetch-loop-arrays): Re-define
4420         -fprefetch-loop-arrays as a tri-state option with the initial
4421         value of -1.
4422         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
4423         pass only when flag_prefetch_loop_arrays > 0.
4424         * toplev.c (process_options): Note that, with tri-states,
4425         flag_prefetch_loop_arrays>0 means prefetching is enabled.
4426         * config/i386/i386.c (override_options): Enable prefetching at -O3
4427         for a set of CPUs that sw prefetching is helpful.
4428         (software_prefetching_beneficial_p): New.  Return TRUE if software
4429         prefetching is beneficial for the given CPU.
4430
4431 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
4432
4433         PR rtl-optimization/44326
4434         * implicit-zee.c (find_removable_zero_extends): Replace
4435         INSN_P with NONDEBUG_INSN_P.
4436
4437 2010-06-25  Martin Jambor  <mjambor@suse.cz>
4438
4439         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
4440         (struct ipa_node_params): Removed the modification_analysis_done flag.
4441         (ipa_is_param_modified): Removed.
4442         (ipa_analyze_node): Declare.
4443         (ipa_compute_jump_functions): Remove declaration.
4444         (ipa_count_arguments): Likewise.
4445         (ipa_detect_param_modifications): Likewise.
4446         (ipa_analyze_params_uses): Likewise.
4447         * ipa-prop.c (struct param_analysis_info): New type.
4448         (visit_store_addr_for_mod_analysis): Removed.
4449         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
4450         moved down in the file.
4451         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
4452         (ipa_count_arguments): Made static.
4453         (mark_modified): New function.
4454         (is_parm_modified_before_call): New function.
4455         (compute_pass_through_member_ptrs): New parameter parms_info, call
4456         is_parm_modified_before_call instead of ipa_is_param_modified.
4457         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
4458         it to compute_pass_through_member_ptrs.
4459         (ipa_compute_jump_functions): New parameter parms_info, pass it to
4460         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
4461         on the callee if it is analyzed.  Made static.
4462         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
4463         is_parm_modified_before_call instead of ipa_is_param_modified.
4464         (ipa_analyze_call_uses): New parameter parms_info, pass it to
4465         ipa_analyze_indirect_call_uses.
4466         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
4467         ipa_analyze_call_uses.
4468         (ipa_analyze_params_uses): New parameter parms_info, pass it to
4469         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
4470         (ipa_analyze_node): New function.
4471         (ipa_print_node_params): Do not dump the modified flag.
4472         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
4473         it.  Do not stream the modified parameter flag.
4474         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
4475         it.  Do not stream the modified parameter flag.
4476         * ipa-cp.c (ipcp_analyze_node): Removed.
4477         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
4478         with only a call to ipa_analyze_node.
4479         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
4480         node with only a call to ipa_analyze_node.
4481
4482 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4483
4484         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
4485
4486 2010-06-25  Jan Hubicka  <jh@suse.cz>
4487
4488         * tree-pass.h (pass_split_functions): Declare.
4489         * opts.c (decode_options): Enable function splitting at -O2
4490         * timevar.def (TV_IPA_FNSPLIT): New macro.
4491         * ipa-split.c: New file.
4492         * common.opt (-fpartial-inlining): New flag.
4493         * Makefile.in (ipa-split.o): New object file.
4494         * passes.c (init_optimization_passes): Add ipa-split.
4495         * params.def (partial-inlining-entry-probability): New parameters.
4496         * doc/invoke.texi (-fpartial-inlining): New.
4497
4498 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4499
4500         PR 44665
4501         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
4502         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
4503         (gimplify_expr): Likewise.
4504
4505 2010-06-25  Martin Jambor  <mjambor@suse.cz>
4506
4507         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
4508         statements instead of bailing out on them.
4509         (ipa_analyze_indirect_call_uses): Do not require that loads from the
4510         parameter are in the same BB as the condition.  Update comments.
4511
4512 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
4513
4514         PR middle-end/43866
4515         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
4516         true or always false, return NULL_TREE.
4517         (tree_unswitch_single_loop): Optimize conditions even when reaching
4518         max-unswitch-level parameter.  If num > 0, optimize first all conditions
4519         using entry checks, then do still reachable block discovery and consider
4520         only conditions in still reachable basic blocks in the loop.
4521
4522         PR tree-optimization/44539
4523         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
4524         the call doesn't have LHS, but has VDEF.
4525
4526 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
4527
4528         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
4529         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
4530         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
4531         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
4532         * system.h (MODIFY_TARGET_NAME): Poison.
4533
4534 2010-06-25  Alan Modra  <amodra@gmail.com>
4535
4536         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
4537         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
4538         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4539         CMODEL_LARGE as default.
4540         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
4541         (offsettable_ok_by_alignment): Delete.
4542         (rs6000_emit_move): Remove mcmodel=medium optimization.
4543
4544 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
4545
4546         With large parts from Jim Wilson:
4547         PR target/43902
4548         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
4549         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
4550         * optabs.c (optab_for_tree_code): Likewise.
4551         (expand_widen_pattern_expr): Likewise.
4552         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
4553         out of execute_optimize_widening_mul.
4554         (convert_plusminus_to_widen): New function.
4555         (execute_optimize_widening_mul): Use the two new functions.
4556         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
4557         Remove code to generate widening multiply-accumulate.  Add support
4558         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
4559         * gimple-pretty-print.c (dump_ternary_rhs): New function.
4560         (dump_gimple_assign): Call it when appropriate.
4561         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
4562         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
4563         (expand_gimple_stmt_1): Likewise.
4564         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
4565         WIDEN_MULT_MINUS_EXPR.
4566         * tree-ssa-operands.c (get_expr_operands): Likewise.
4567         * tree-inline.c (estimate_operator_cost): Likewise.
4568         * gimple.c (extract_ops_from_tree_1): Renamed from
4569         extract_ops_from_tree.  Add new arg for a third operand; fill it.
4570         (gimple_build_assign_stat): Support operations with three operands.
4571         (gimple_build_assign_with_ops_stat): Likewise.
4572         (gimple_assign_set_rhs_from_tree): Likewise.
4573         (gimple_assign_set_rhs_with_ops_1): Renamed from
4574         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
4575         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
4576         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
4577         WIDEN_MULT_MINUS_EXPR.
4578         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
4579         (extract_ops_from_tree_1): Adjust declaration.
4580         (gimple_assign_set_rhs_with_ops_1): Likewise.
4581         (gimple_build_assign_with_ops): Pass NULL for last operand.
4582         (gimple_build_assign_with_ops3): New macro.
4583         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
4584         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
4585         functions.
4586         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
4587         (verify_gimple_assign): Call it.
4588         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
4589         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
4590         functions for dealing with three-operand statements.
4591         * tree.c (commutative_ternary_tree_code): New function.
4592         * tree.h (commutative_ternary_tree_code): Declare it.
4593         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
4594         ternary statements.
4595         (gimple_assign_nonzero_warnv_p): Likewise.
4596         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
4597         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
4598         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
4599         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
4600         (struct hashtable_expr): New member ternary in the union.
4601         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
4602         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
4603         (iterative_hash_hashable_expr): Likewise.
4604         (print_expr_hash_elt): Handle EXPR_TERNARY.
4605         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
4606         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
4607         statements.  Handle GIMPLE_TERNARY_RHS.
4608
4609 2010-06-25  Jan Hubicka  <jh@suse.cz>
4610
4611         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
4612
4613 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
4614
4615         PR c/44517
4616         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
4617         parameters are not good.
4618         (c_parser_parameter_declaration): Error unknown type name if the type
4619         name can't start declaration specifiers.
4620
4621 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
4622
4623         * gcc.c (translate_options): Don't mention +e in comment.
4624         (process_command): Don't handle +e specially.
4625
4626 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
4627
4628         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
4629
4630         * ira-build.c (merge_hard_reg_conflicts): New function.
4631         (create_cap_allocno, copy_info_to_removed_store_destinations,
4632         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
4633         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
4634         (remove_unnecessary_allocnos, remove_low_level_allocnos)
4635         copy_nifo_to_removed_store_destination): Use them.
4636         * ira-lives.c (make_hard_regno_born): New function, split out of
4637         make_regno_born.
4638         (make_allocno_born): Likewise.
4639         (make_hard_regno_dead): New function, split out of make_regno_dead.
4640         (make_allocno_dead): Likewise.
4641         (inc_register_pressure): New function, split out of set_allocno_live.
4642         (dec_register_pressure): New function, split out of clear_allocno_live.
4643         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
4644         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
4645         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
4646         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
4647         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
4648         mark_pseudo_regno_live.
4649         (process_bb_node_lives): Use mark_pseudo_regno_live,
4650         make_hard_regno_born and make_allocno_dead.
4651         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
4652         set_allocno_live, clear_allocno_live): Delete functions.
4653
4654         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
4655         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
4656         functions.
4657         (ira_flattening): Use ira_parent_allocno.
4658         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
4659         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
4660
4661         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
4662         statement.
4663
4664         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
4665         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
4666         minmax_set_iter_cond, minmax_set_iter_next,
4667         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
4668         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
4669         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
4670         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
4671         uses changed.
4672
4673         * ira-int.h (struct live_range, live_range_t): Renamed from struct
4674         ira_allocno_live_range and allocno_live_range_t; all uses changed.
4675         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
4676         All uses changed.
4677
4678 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
4679
4680         * thumb2.md (thumb2_tlobits_cbranch): Delete.
4681         (peephole2 to convert zero_extract/compare of single bit to
4682          lshift/compare): New.
4683
4684 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
4685
4686         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
4687         recursive call and call to 'int_const_binop'.
4688         (build_range_check, fold_cond_expr_with_comparison, unextend,
4689         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
4690         multiple_of_p): Adjust call to const_binop.
4691
4692 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
4693
4694         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
4695         determine size of XFmode operand.
4696         (XFmode extended DFmode push splitter): Ditto.
4697         (XFmode extended SFmode push splitter): Ditto.
4698
4699 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
4700
4701         PR target/44588
4702         * config/i386/i386.md (extract_code): New.
4703         (<u>divmodqi4): Likewise.
4704         (divmodhiqi3): Likewise.
4705         (udivmodhiqi3): Likewise.
4706         (<u>divqi3): Remvoved.
4707
4708 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
4709
4710         PR middle-end/44492
4711         * recog.h (struct recog_data): Add is_asm field.
4712         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
4713         present in constraints of inline-asm operand and memory operand
4714         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
4715         (extract_insn): Initialize recog_data.is_asm.
4716         * doc/md.texi (Constraints): Document operand side-effect rules.
4717
4718 2010-06-24  Andi Kleen  <ak@linux.intel.com>
4719
4720         * c-parser.c (c_parser_conditional_expression): Call
4721         warn_for_omitted_condop.
4722         * doc/invoke.texi: Document omitted condop warning.
4723
4724 2010-06-24  Nick Clifton<nickc@redhat.com>
4725
4726         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
4727         insn in the sequence is a jump insn before setting its label.
4728
4729 2010-06-24  Alan Modra  <amodra@gmail.com>
4730
4731         * collect2.c (main): Match exactly --version and --help.
4732
4733 2010-06-24  DJ Delorie  <dj@redhat.com>
4734
4735         * config/m32c/m32c-pragma.c: Don't include rtl.h.
4736
4737 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
4738
4739         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
4740         using X87MODEF mode iterator.
4741         (pushsf splitter): Macroize splitter using P mode iterator.
4742         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
4743         mode iterator.
4744
4745         (*movxf_internal): Rename from *movxf_integer.
4746         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
4747         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
4748         (*movdf_internal): Rename from *movdf_integer.
4749         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
4750         (*movsf_internal): Rename from *movdf_1.
4751
4752 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
4753
4754         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
4755         (const_gimple_seq_node): Removed typedefs.
4756
4757         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
4758         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
4759
4760 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
4761
4762         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
4763         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
4764         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
4765         and CODE_FOR_vec_extract_lo_v4df.
4766
4767         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
4768         Changed to define_insn_and_split.
4769         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
4770         (vec_extract_lo_v16hi): Likewise.
4771         (vec_extract_lo_v32qi): Likewise.
4772         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
4773         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
4774
4775 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
4776
4777         PR target/44640
4778         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
4779         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
4780         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
4781         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
4782         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
4783
4784         PR target/44640
4785         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
4786
4787         PR other/44644
4788         * df-core.c (struct df): Rename to df_d.
4789         * df.h (struct df): Likewise.
4790         * dse.h (struct df): Remove forward declaration.
4791         * recog.h (struct insn_data): Rename to:
4792         (struct_insn_data_d).  Adjusted all users.
4793
4794 2010-06-23  Arnaud Charlet  <charlet@adacore.com
4795
4796         PR ada/22220
4797         * doc/install.texi: Update requirements to build GNAT.
4798
4799 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
4800
4801         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
4802         enum type.
4803         (m68k_sched_attr_opx_type): Remove unreachable return.
4804         (m68k_sched_attr_opy_type): Likewise.
4805         (m68k_sched_attr_size): Likewise.
4806         (sched_get_opxy_mem_type): Likewise.
4807         (m68k_sched_attr_op_mem): Likewise.
4808
4809 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
4810
4811         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
4812         new statement and adjust VDEF only if necessary.  Remove superfluous
4813         call to maybe_clean_or_replace_eh_stmt.
4814         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
4815         copy the flags.
4816         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
4817         * tree-inline.c (copy_bb): ...and not there.
4818
4819 2010-06-22  Cary Coutant  <ccoutant@google.com>
4820
4821         * dwarf2out.c (is_nested_in_subprogram): New function.
4822         (should_move_die_to_comdat): Use it.
4823         (copy_ancestor_tree): Don't mark DIEs here.
4824         (copy_decls_walk): Start walk from root of newly-added tree;
4825         mark DIEs here instead.
4826
4827 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
4828
4829         * config/i386/i386.md (unit): Also check sseishft1.
4830
4831 2010-06-22  Jan Hubicka  <jh@suse.cz>
4832
4833         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
4834         enabled.
4835
4836 2010-06-22  Jan Hubicka  <jh@suse.cz>
4837
4838         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
4839         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
4840         Return true if something changed.
4841         * df.h (df_confluence_function_n): Return bool.
4842         * df-core.c (df_worklist_propagate_forward,
4843         df_worklist_propagate_backward): Track changes and ages.
4844         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
4845         track ages.
4846         * dse.c (dse_confluence_n): Return always true.
4847
4848 2010-06-22  Jan Hubicka  <jh@suse.cz>
4849
4850         * bitmap.c (bitmap_clear_bit): Micro optimize.
4851
4852 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
4853
4854         * config/i386/i386.md (SWI1248x): New mode iterator.
4855         (SWI48x): Ditto.
4856         (SWI12): Ditto.
4857         (SWI24): Ditto.
4858
4859         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
4860         SWI1248x mode iterator.
4861         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
4862         using SWI124 mode iterator.
4863         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
4864         mode iterator.
4865         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
4866         *pushdi2_prologue_rex64 using P mode iterator.
4867         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
4868         using SWI48 mode iterator.
4869         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
4870         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
4871         using SWI1248x mode iterator.
4872         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
4873         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
4874         SWI48 mode iterator.
4875         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
4876         iterator.
4877         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
4878         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
4879         SWI12 mode iterator.
4880         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
4881         SWI12 mode iterator.
4882         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
4883         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
4884         SWI24 mode iterator.
4885         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
4886         SWI48 mode iterator.
4887         (mov<mode>_insn_1): New expander.
4888         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
4889         using SWI48x mode iterator.
4890
4891         (*movoi_internal_avx): Rename from *movoi_internal.
4892         (*movti_internal_rex64): Rename from *movti_rex64.
4893         (*movti_internal_sse): Rename from *movti_sse.
4894         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
4895         (*movdi_internal): Rename from *movdi_2.
4896         (*movsi_internal): Rename from *movsi_1.
4897         (*movhi_internal): Rename from *movhi_1.
4898         (*movqi_internal): Rename from *movqi_1.
4899
4900         (insv): Update the call to gen_movsi_insv_1 for rename.
4901         * config/i386/i386.c (promote_duplicated_reg): Ditto.
4902
4903 2010-06-22  Jan Hubicka  <jh@suse.cz>
4904
4905         * passes.c (execute_function_todo): Move call of statistics_fini_pass
4906         to ...
4907         (execute_todo) ... this one.
4908
4909 2010-06-22  Alan Modra  <amodra@gmail.com>
4910
4911         PR target/44364
4912         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4913         * caller-save.c (insert_restore, insert_save): Use non-validate
4914         form of adjust_address.
4915
4916 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4917
4918         PR target/39690
4919         * config/pa/pa.c (override_options): Disable
4920         -freorder-blocks-and-partition.
4921
4922 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
4923
4924         PR target/44615
4925         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
4926
4927         * config/i386/i386.md (type): Add sseishft1
4928
4929         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
4930         (ppro_insn_load): Likewise.
4931         (ppro_insn_store): Likewise.
4932         (ppro_insn_both): Likewise.
4933
4934         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
4935         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
4936         for type.
4937         (*vec_extractv2di_1_avx): Likewise.
4938         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
4939         type.  Remove atom_unit.
4940         (*vec_extractv2di_1_sse2): Likewise.
4941
4942 2010-06-21  DJ Delorie  <dj@redhat.com>
4943
4944         * diagnostic.h (diagnostic_classification_change_t): New.
4945         (diagnostic_context): Add history and push/pop list.
4946         (diagnostic_push_diagnostics): Declare.
4947         (diagnostic_pop_diagnostics): Declare.
4948         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
4949         from pragmas in a history chain instead of the global table.
4950         (diagnostic_push_diagnostics): New.
4951         (diagnostic_pop_diagnostics): New.
4952         (diagnostic_report_diagnostic): Scan history chain to find state
4953         of diagnostics as of the diagnostic location.
4954         * opts.c (set_option): Pass UNKNOWN_LOCATION to
4955         diagnostic_classify_diagnostic.
4956         (enable_warning_as_error): Likewise.
4957         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
4958         use in the history chain.
4959         * doc/extend.texi: Document pragma GCC diagnostic changes.
4960
4961 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
4962
4963         * dwarf2out.c (add_linkage_name): New function.  Don't add
4964         anything to DW_TAG_member DIEs.
4965         (add_name_and_src_coords_attributes): Use it.
4966         (gen_variable_die): Call it for C++ static data members if
4967         specification is DW_TAG_member.
4968
4969         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
4970         C++ char16_t and char32_t.
4971
4972         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
4973         * genattrtab.c: Include vecprim.h.
4974         (cached_attrs, cached_attr_count, attrs_seen_once,
4975         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
4976         attrs_cached_after): New variables.
4977         (find_attrs_to_cache): New function.
4978         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
4979         (write_test_expr): Add attrs_cached argument, return it too,
4980         attempt to cache non-const attributes used more than once in
4981         a single case handling.
4982         (write_attr_get): Use find_attrs_to_cache, for caching candidates
4983         emit cached_* variables.  Adjust write_attr_set callers.
4984         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
4985         to find attributes that should be cached in this block.  Adjust
4986         write_test_expr callers.
4987         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
4988         callers.
4989         (make_automaton_attrs): Adjust write_test_expr caller.
4990
4991         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
4992         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
4993         (make_automaton_attrs): If find_tune_attr returns non-NULL,
4994         write separate internal_dfa_insn_code_* and insn_default_latency_*
4995         functions for each attribute's value and emit init_sched_attrs
4996         function and function pointers.
4997         * genattr.c (const_attrs, reservations): New variables.
4998         (gen_attr): Add const attributes to const_attrs vector.
4999         (check_tune_attr, find_tune_attr): New functions.
5000         (main): Add reservations to reservations vector.  If find_tune_attr
5001         returns true, add prototype for init_sched_attrs and make
5002         internal_dfa_insn_code and insn_default_latency function pointers,
5003         otherwise define init_sched_attrs as dummy macro.
5004         * cfgexpand.c: Include insn-attr.h.
5005         (gimple_expand_cfg): Call init_sched_attrs.
5006
5007         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
5008
5009         PR target/44575
5010         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
5011         va_arg from a set of register save slots into a temporary,
5012         if the container is bigger than type size, do the copying
5013         using smaller mode or using memcpy.
5014
5015         PR bootstrap/44426
5016         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
5017         prototype.
5018         (sel_print_to_dot): Remove macro.
5019         (sel_print): Likewise.  New prototype.
5020         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
5021         (sel_print): New function.
5022
5023 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5024
5025         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
5026         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
5027
5028 2010-06-21  Nick Clifton  <nickc@redhat.com>
5029
5030         * config/rx/rx.h (PTRDIFF_TYPE): Define.
5031         (SMALL_REGISTER_CLASS): Define (to zero).
5032         (PRINT_OPERAND): Delete.
5033         (PRINT_OPERAND_ADDRESS): Delete.
5034         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
5035         (rx_print_operand_address): Delete prototype.
5036         * config/rx/rx.c (rx_print_operand): Make static.
5037         Allow %H and %L to handle CONST_DOUBLEs.
5038         (rx_print_operand_address): Make static.
5039         (rx_gen_move_template): Rename local variable 'template' to
5040         out_template.
5041         (rx_function_arg): Do not pass unknown sized objects in registers.
5042         (TARGET_PRINT_OPERAND): Define.
5043         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5044
5045 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
5046
5047         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
5048
5049 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
5050
5051         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
5052         stack-alignment for simple leaf-functions.
5053
5054 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
5055
5056         * doc/install.texi: Document bootstrap-lto.
5057
5058 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
5059
5060         PR debug/44248
5061         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
5062         (input_function): Drop them here, if VTA is disabled.
5063
5064 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
5065
5066         PR target/44546
5067         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
5068         New predicate.
5069         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
5070         ix86_swapped_fp_comparsion_operator instead of
5071         ix86_fp_comparison_operator.
5072
5073         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
5074         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
5075         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
5076         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
5077         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
5078         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
5079
5080 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
5081
5082         PR other/32998
5083         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
5084         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
5085         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
5086         (decode_cmdline_option): Update for this return value.  Set
5087         orig_option_with_args_text field.  Set arg field for unknown
5088         options.  Make static.
5089         (decode_cmdline_options_to_array): New.
5090         (prune_options): Update handling of find_opt return value.
5091         * opts.c (read_cmdline_option): Take decoded option.  Return void.
5092         (read_cmdline_options): Take decoded options.
5093         (decode_options): Add parameters for decoded options.  Use
5094         decode_cmdline_options_to_array.  Use decoded options for -O
5095         scan.  Use integral_argument for -O parameters.  Update call to
5096         read_cmdline_options.
5097         (enable_warning_as_error): Update handling of find_opt return value.
5098         * opts.h: Update comment on unknown options.
5099         (struct cl_decoded_option): Update comments on opt_index and arg.
5100         Add orig_option_with_args_text.
5101         (decode_cmdline_option): Remove.
5102         (decode_cmdline_options_to_array): Declare.
5103         (decode_options): Update prototype.
5104         * toplev.c (save_argv): Remove.
5105         (save_decoded_options, save_decoded_options_count): New.
5106         (read_integral_parameter): Remove.
5107         (print_switch_values): Use decoded options.
5108         (toplev_main): Don't set save_argv.  Update call to decode_options.
5109         * toplev.h (read_integral_parameter): Remove.
5110         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
5111
5112 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
5113
5114         PR target/44072
5115         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
5116         immediate.
5117         * constraints.md (Pw, Px): New constraints.
5118         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
5119
5120 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
5121
5122         * config/i386/sse.md (fma4modesuffixf4): Removed.
5123         (ssemodesuffixf2s): Likewise.
5124         (ssemodesuffixf4): Likewise.
5125         (ssemodesuffixf2c): Likewise.
5126         (ssescalarmodesuffix2s): Likewise.
5127         (avxmodesuffixf2c): Likewise.
5128         (ssemodesuffix): New.
5129         (ssescalarmodesuffix): Likewise.
5130         Update patterns with ssemodesuffix and ssescalarmodesuffix.
5131
5132 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
5133
5134         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
5135
5136 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5137
5138         * stor-layout.c (debug_rli): Remove unused local variables.
5139
5140 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
5141
5142         PR rtl-optimization/40900
5143         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
5144         original expression for later reuse.
5145         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
5146         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
5147
5148 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
5149
5150         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
5151         double_int_fits_in_uhwi_p): Implement as static inline.
5152         (double_int_xor): New inline function.
5153         (double_int_lrotate, double_int_rrotate, double_int_max,
5154         double_int_umax, double_int_smax, double_int_min, double_int_umin,
5155         double_int_smin): Declare.
5156         (lrotate_double, rrotate_double): Remove declaration.
5157         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
5158         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
5159         (double_int_lrotate, double_int_rrotate, double_int_max,
5160         double_int_umax, double_int_smax, double_int_min, double_int_umin,
5161         double_int_smin): New function.
5162         * fold-const.c (int_const_binop): Clean up, use double_int_*
5163         functions.
5164         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
5165         double_int_* and immed_double_int_const functions.
5166
5167 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
5168
5169         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
5170         * function.c (types_used_by_cur_var_decl): Likewise.
5171         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
5172
5173 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
5174
5175         * tree.h (record_layout_info): Change type of pending_statics field
5176         to a VEC.
5177         * stor-layout.c (start_record_layout): Store NULL into
5178         pending_statics.
5179         (debug_rli): Call debug_vec_tree instead of debug_tree.
5180         (place_field): Likewise.
5181         (finish_record_layout): Likewise.
5182
5183 2010-06-18  Alan Modra  <amodra@gmail.com>
5184
5185         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
5186
5187 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5188
5189         PR target/43740
5190         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
5191         for SET source operand from SET destination operand.
5192
5193 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
5194
5195         PR rtl-optimization/39871
5196         * reload1.c (init_eliminable_invariants): For flag_pic, disable
5197         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
5198         (function_invariant_p): Rule out a plus of frame or arg pointer with
5199         a SYMBOL_REF.
5200         * ira.c (find_reg_equiv_invariant_const): Likewise.
5201
5202 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
5203
5204         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
5205         print_operand_address and puts to output the operand for CONST.
5206
5207 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR debug/44572
5210         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
5211         hook.
5212
5213 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5214
5215         * v850-protos.h (print_operand): Delete.
5216         (print_operand_address): Delete.
5217         * v850.h (PRINT_OPERAND): Delete.
5218         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5219         (PRINT_OPERAND_ADDRESS): Delete.
5220         * v850.c (print_operand_address): Rename to...
5221         (v850_print_operand_address): ...this.  Make static. Call
5222         v850_print_operand.
5223         (print_operand): Rename to...
5224         (v850_print_operand): ...this.  Make static.  Call
5225         v850_print_operand_address.
5226         (v850_print_operand_punct_valid_p): New function.
5227         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5228         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5229
5230 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5231
5232         * config/sh/sh-protos.h (print_operand): Delete.
5233         (print_operand_address): Delete.
5234         * config/sh/sh.h (PRINT_OPERAND): Delete.
5235         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5236         (PRINT_OPERAND_ADDRESS): Delete.
5237         * config/sh/sh.c (sh_print_operand_address): Make static.
5238         (sh_print_operand): Make static.  Call sh_print_operand_address
5239         and sh_print_operand.
5240         (sh_print_operand_punct_valid_p): New function.
5241         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5242         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5243
5244 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5245
5246         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
5247         (mcore_print_operand_address): Delete.
5248         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
5249         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5250         (PRINT_OPERAND_ADDRESS): Delete.
5251         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
5252         (mcore_print_operand): Make static.
5253         (mcore_print_operand_punct_valid_p): New function.
5254         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
5255         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5256
5257 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5258
5259         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
5260         (print_operand_address): Delete.
5261         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
5262         (PRINT_OPERAND_ADDRESS): Delete.
5263         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
5264         static.
5265         (m68hc11_print_operand): Make static.
5266         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5267
5268 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5269
5270         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
5271         (m32r_print_operand_address): Delete.
5272         * config/m32r/m32r.h (m32r_punct_chars): Delete.
5273         (PRINT_OPERAND): Delete.
5274         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5275         (PRINT_OPERAND_ADDRESS): Delete.
5276         * config/m32r/m32r.c (m32r_punct_chars): Make static.
5277         (m32r_print_operand_address): Make static.
5278         (m32r_print_operand): Make static.
5279         (m32r_print_operand_punct_valid_p): New function.
5280         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
5281         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5282
5283 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5284
5285         * config/iq2000/iq2000-protos.h (print_operand): Delete.
5286         (print_operand_address): Delete.
5287         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
5288         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5289         (PRINT_OPERAND_ADDRESS): Delete.
5290         (iq2000_print_operand_punct): Delete.
5291         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
5292         (iq2000_print_operand_address): Make static.
5293         (iq2000_print_operand): Make static.
5294         (iq2000_print_operand_punct_valid_p): New function.
5295         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
5296         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5297
5298 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5299
5300         * config/frv/frv-protos.h (frv_print_operand): Delete.
5301         (frv_print_operand_address): Delete.
5302         * config/frv/frv.h (PRINT_OPERAND): Delete.
5303         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5304         (PRINT_OPERAND_ADDRESS): Delete.
5305         * config/frv/frv.c (frv_print_operand_address): Make static.
5306         (frv_print_operand): Make static.
5307         (frv_print_operand_punct_valid_p): New function.
5308         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
5309         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5310
5311 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
5312
5313         * tree.h (vec_member): Declare.
5314         * tree.c (vec_member): Define.
5315
5316 2010-06-17  Richard Guenther  <rguenther@suse.de>
5317
5318         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
5319         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
5320
5321 2010-06-17  Richard Guenther  <rguenther@suse.de>
5322
5323         * tree-inline.c (declare_return_variable): Remove bogus code.
5324
5325 2010-06-17  Richard Guenther  <rguenther@suse.de>
5326
5327         * gimplify.c (gimplify_bind_expr): Always promote complex
5328         and vector variables to registers if possible.
5329
5330 2010-06-17  Richard Guenther  <rguenther@suse.de>
5331
5332         * expr.c (get_inner_reference): Use double_int for bit_offset
5333         calculation.
5334
5335 2010-06-16  DJ Delorie  <dj@redhat.com>
5336
5337         * common.opt (-fstrict-volatile-bitfields): new.
5338         * doc/invoke.texi: Document it.
5339         * fold-const.c (optimize_bit_field_compare): For volatile
5340         bitfields, use the field's type to determine the mode, not the
5341         field's size.
5342         * expr.c (expand_assignment): Likewise.
5343         (get_inner_reference): Likewise.
5344         (expand_expr_real_1): Likewise.
5345         * expmed.c (store_fixed_bit_field): Likewise.
5346         (extract_bit_field_1): Likewise.
5347         (extract_fixed_bit_field): Likewise.
5348
5349 2010-06-16  Richard Guenther  <rguenther@suse.de>
5350
5351         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
5352
5353 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
5354
5355         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
5356         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
5357         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
5358         * debug.c: Likewise.
5359         * sdbout.c: Likewise.
5360         * vmsdbgout.c: Likewise.
5361         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
5362         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
5363         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
5364         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
5365         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
5366         * dwarf2out.c (dw_fde_struct): New fields
5367         dw_fde_vms_{end,begin}_prologue.
5368         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
5369         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
5370         (dwarf2out_vms_end_prologue): New function.
5371         (dwarf2out_vms_begin_epilogue): New function.
5372         (dw_val_struct): New value dw_val_class_vms_delta.
5373         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
5374         begin_epilogue for VMS.
5375         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
5376         new static functions.
5377         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
5378         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
5379         static functions.
5380         (print_die): New case dw_val_class_vms_delta.
5381         (attr_checksum): Likewise.
5382         (same_dw_val_p: Likewise.
5383         (size_of_die): Likewise.
5384         (value_format): Likewise.
5385         (output_die): Likewise.
5386         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
5387         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
5388         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
5389         dwarf2out_cfi_begin_epilogue
5390         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
5391
5392 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
5393
5394         * config/cris/cris-protos.h (cris_print_operand): Delete.
5395         (cris_print_operand_address): Delete.
5396         * config/cris/cris.h (PRINT_OPERAND): Delete.
5397         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5398         (PRINT_OPERAND_ADDRESS): Delete.
5399         * config/cris/cris.c (cris_print_operand_address): Make static.
5400         (cris_print_operand): Make static.
5401         (cris_print_operand_punct_valid_p): New function.
5402         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
5403         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5404
5405 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
5406
5407         * config/arm/arm-protos.h (arm_print_operand): Delete.
5408         (arm_print_operand_address): Delete.
5409         * config/arm/arm.h (PRINT_OPERAND): Delete.
5410         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5411         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
5412         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
5413         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
5414         (arm_print_operand): Make static.
5415         (arm_print_operand_punct_valid_p): New function.
5416         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
5417         (TARGET_PRINT_OPERAND_ADDRESS): Define.
5418
5419 2010-06-16  Nick Clifton  <nickc@redhat.com>
5420
5421         * config/rx/constraints.md (NEGint4): New constraint.
5422         * config/rx/rx.md (attr cc): Add set_zsc.
5423         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
5424         initialised.
5425         (cmpsf): Likewise.
5426         (call_internal): Clobber the cc0 register.
5427         (call_value_internal): Likewise.
5428         (cstoresi4): Likewise.
5429         (movsieq): Likewise.
5430         (movsine): Likewise.
5431         (addsi3): Add alternative to handle small negative constants.
5432         (sunsi3): Likewise.
5433         (addsi3): Do not set the O bit in the cc0 register.
5434         (adddi3): Likewise.
5435         (subsi3): Likewise.
5436         (subdi3): Likewise.
5437         (andsi3): Reorder alternatives to prefer shorter forms.
5438         (mulsi3): Likewise.
5439         (iorsi3): Likewise.
5440         (negsi2): Note that the cc0 flags are set.
5441         (rotlsi3): Note that only the Z and S bits are set in cc0.
5442         (lshrsi3): Likewise.
5443         (ashlsi3): Likewise.
5444         (subsf3): Use %Q for the MEM operand.
5445         (fix_truncsfsi2): Likewise.
5446         (floatsisf2): Likewise.
5447         (bitset): Remove early clobber from destination.
5448         (bitset_in_memory): Likewise.
5449         (lrintsf2): Clobber the cc0 register.
5450         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
5451         (rx_print_operand): Handle %N.
5452
5453 2010-06-16  Jan Hubicka  <jh@suse.cz>
5454
5455         * df-core.c (df_compact_blocks): Free problem_temps vector.
5456
5457 2010-06-16  Martin Jambor  <mjambor@suse.cz>
5458
5459         PR tree-optimization/43905
5460         * tree-sra.c: Include tree-inline.h.
5461         (create_abstract_origin): Removed.
5462         (modify_function): Version the call graph node instead of creating
5463         abstract origins and dealing with same_body aliases.
5464         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
5465         function is versionable.
5466         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
5467
5468 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
5469
5470         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
5471         (CHOOSE_DYNAMIC_LINKER): Update.
5472
5473 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
5474
5475         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
5476         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
5477         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
5478         *prefetch_3dnow_rex.
5479
5480 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
5481
5482         * target.h (struct asm_out):Add declare_constant_name field.
5483         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
5484         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
5485         * output.h (default_asm_declare_constant_name): Declare.
5486         (assemble_label): Update prototype.
5487         * varasm.c (assemble_constant_contents): Use
5488         targetm.asm_out.declare_constant_name target hook.
5489         (assemble_label): Add 'file' argument.
5490         (default_asm_declare_constant_name): New function.
5491         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
5492         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
5493         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
5494
5495         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
5496         * config/darwin.c (darwin_asm_declare_constant_name): New function.
5497         (machopic_output_indirection): Update assemble_label argument list.
5498         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
5499         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
5500
5501 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
5502
5503         PR middle-end/44391
5504         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
5505         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
5506
5507 2010-06-15  Richard Guenther  <rguenther@suse.de>
5508
5509         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
5510
5511 2010-06-15  Paul Brook  <paul@codesourcery.com>
5512
5513         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
5514         hard-float ABI.
5515
5516 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
5517
5518         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
5519         don't get a vector type for output.
5520
5521 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
5522
5523         PR fortran/44536
5524         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
5525         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
5526         (LANG_HOOKS_DECLS): Add it.
5527         * gimplify.c (omp_notice_variable): Call
5528         lang_hooks.decls.omp_report_decl.
5529
5530 2010-06-15  Martin Jambor  <mjambor@suse.cz>
5531
5532         PR lto/44464
5533         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
5534         on the newly dead SSA name.
5535
5536 2010-06-15  Alan Modra  <amodra@gmail.com>
5537
5538         * doc/invoke.texi: Add mcmodel to powerpc options.
5539         * configure.ac: Add HAVE_LD_LARGE_TOC test.
5540         * configure: Regenerate.
5541         * config.in: Regenerate.
5542         * config/rs6000/linux64.opt (mcmodel): New.
5543         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
5544         (TARGET_CMODEL, SET_CMODEL): Define.
5545         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
5546         select CMODEL_MEDIUM default.
5547         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
5548         (TARGET_CMODEL): Define default.
5549         * config/rs6000/rs6000.c (cmodel): New variable.
5550         (rs6000_explicit_options): Add cmodel field.
5551         (rs6000_handle_option): Handle -mcmodel.
5552         (create_TOC_reference): Add largetoc_reg param.  Generate high,
5553         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
5554         (rs6000_delegitimize_address): Recognise new toc reference rtl
5555         and minimal-toc rtl.
5556         (rs6000_legitimize_reload_address): Handle new toc references.
5557         (print_operand_address): Handle legitimate_constant_pool_address_p
5558         match before lo_sum.
5559         (rs6000_eliminate_indexed_memrefs): Tidy.
5560         (rs6000_emit_move): Tweak threshold for inlining constants.
5561         Keep rs6000_emit_allocate_stack large stack frame offsets
5562         loaded into r0 inline.
5563         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
5564         (tocrel_base, tocrel_offset): New variables.
5565         (toc_relative_expr_p): Set them here.
5566         (print_operand_address): Skip over any offset on constant pool address.
5567         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
5568         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
5569         (offsettable_ok_by_alignment): New function.
5570         (rs6000_emit_move): Address suitably aligned local symbol_refs
5571         relative to the toc pointer for -mcmodel=medium.
5572         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
5573         strict param.  Allow lo_sum version of addressing.  Verify reg
5574         used for -mminimal-toc and -mcmodel != small.  Update all callers.
5575         * config/rs6000/constraints.md: Update for above change.
5576         * config/rs6000/predicates.md: Likewise.
5577         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
5578         code.
5579         (tls_gd): Split for -mcmodel=medium/large.
5580         (tls_gd_high, tls_gd_low): New.
5581         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
5582         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
5583         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
5584         (largetoc_high, largetoc_low): New.
5585         (cmptf_internal2): Add clobber.
5586         * config/rs6000/rs6000-protos.h: Update.
5587
5588 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
5589
5590         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
5591         true if no prefetch is going to be generated for a given group.
5592         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
5593         estimate the prefetch_count.
5594         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
5595         prefetch count by considering the unroll_factor and prefetch_mod
5596         for is_loop_prefetching_profitable.
5597
5598 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
5599
5600         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
5601         anything if the argument is not a MEM.
5602
5603 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
5604
5605         PR debug/43650
5606         PR debug/44181
5607         PR debug/44247
5608         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
5609         debug stmts.
5610         (canonicalize_loop_ivs): Likewise.
5611
5612 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
5613
5614         PR debug/43656
5615         * haifa-sched.c (setup_insn_reg_pressure_info,
5616         update_register_pressure): Reject debug insns.
5617         (ready_sort): Don't setup reg pressure for debug insns.
5618         (schedule_insn): Don't update reg pressure for debug insns.
5619
5620 2010-06-14  Richard Guenther  <rguenther@suse.de>
5621
5622         * lto-streamer.c (cached_bp): Remove.
5623         (bitpack_delete): Likewise.
5624         (bitpack_create): Likewise.
5625         (bp_get_next_word): Likewise.
5626         (bp_pack_value, bp_unpack_value): Move ...
5627         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
5628         Re-implement.
5629         (struct bitpack_d): Likewise.
5630         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
5631         New inline functions.
5632         * lto-streamer-out.c (lto_output_bitpack): Remove.
5633         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
5634         (pack_value_fields): Adjust.
5635         (lto_write_tree): Likewise.
5636         (output_gimple_stmt): Likewise.
5637         (output_function): Likewise.
5638         * lto-streamer-in.c (input_gimple_stmt): Adjust.
5639         (input_function): Likewise.
5640         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
5641         (lto_input_bitpack): Remove.
5642         (lto_materialize_tree): Adjust.
5643         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
5644         * lto-cgraph.c (lto_output_edge): Adjust.
5645         (lto_output_node): Likewise.
5646         (lto_output_varpool_node): Likewise.
5647         (lto_output_ref): Likewise.
5648         (input_node): Likewise.
5649         (input_varpool_node): Likewise.
5650         (input_ref): Likewise.
5651         (input_edge): Likewise.
5652         (output_node_opt_summary): Likewise.
5653         (input_node_opt_summary): Likewise.
5654         * ipa-pure-const.c (pure_const_write_summary): Likewise.
5655         (pure_const_read_summary): Likewise.
5656         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
5657         (ipa_read_indirect_edge_info): Likewise.
5658         (ipa_write_node_info): Likewise.
5659         (ipa_read_node_info): Likewise.
5660
5661 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
5662
5663         PR target/44534
5664         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
5665         (vec_extract_lo_v16hi): Likewise.
5666         (vec_extract_lo_v32qi): Likewise.
5667
5668 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
5669
5670         PR bootstrap/44426
5671         * tree.h (build_call_expr): Don't define as vararg macro, instead
5672         add a prototype.
5673         * builtins.c (build_call_nofold): Remove.
5674         (expand_builtin_int_roundingfn, expand_builtin_pow,
5675         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
5676         expand_builtin_memset_args, expand_builtin_strcmp,
5677         expand_builtin_strncmp, expand_builtin_memory_chk): Use
5678         build_call_nofold_loc instead of build_call_nofold.
5679         (build_call_expr): New function.
5680
5681         PR tree-optimization/44508
5682         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
5683         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
5684         don't eliminate trivially dead stmts.
5685         * tree-vrp.c (vrp_finalize): Pass false as last argument
5686         to substitute_and_fold.
5687         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
5688         to substitute_and_fold.
5689         * tree-ssa-ccp.c (ccp_finalize): Likewise.
5690
5691         PR bootstrap/44509
5692         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
5693
5694 2010-06-14  Ira Rosen  <irar@il.ibm.com>
5695
5696         PR tree-optimization/44507
5697         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
5698         to build initial vector for BIT_AND_EXPR.
5699         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5700
5701 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
5702
5703         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
5704         adjust z10prop set_attr.
5705
5706 2010-06-13  Jan Hubicka  <jh@suse.cz>
5707
5708         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
5709         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
5710         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
5711         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
5712         datastructure checks into checking asserts.
5713         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
5714         * tree-ssa-sccvn.c (VN_INFO): Likewise.
5715         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
5716         df_ref_create_structure): Likewise.
5717         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
5718         pool_free): Use gcc_checking_assert.
5719         * alias.c (get_alias_set): Likewise.
5720         * var-tracking.c (variable_htab_free, shared_hash_copy,
5721         canonicalize_values_mark, variable_merge_over_cur): Likewise.
5722         * lto-streamer.c (bp_unpack_value): Likewise.
5723
5724 2010-06-13  Richard Guenther  <rguenther@suse.de>
5725
5726         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
5727         Do not stream but initialize TYPE_CANONICAL to NULL.
5728         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
5729         * gimple.c (gimple_types_compatible_p): Disregard
5730         TYPE_STRUCTURAL_EQUALITY_P.
5731         (gimple_register_type): Use TYPE_CANONICAL as cache.
5732         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
5733         before registering common types.
5734         * config/i386/i386.c (ix86_function_arg_boundary): Do not
5735         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
5736         * tree.h (TYPE_CANONICAL): Clarify documentation.
5737
5738 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
5739
5740         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5741         LIBCALL_VALUE): Remove macros.
5742         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
5743         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5744         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5745         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
5746         (ia64_function_value): Make static. Handle receiving the function
5747         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
5748
5749 2010-06-12  Jan Hubicka  <jh@suse.cz>
5750
5751         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
5752         at correct place.
5753
5754 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
5755
5756         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
5757
5758 2010-06-12  Jan Hubicka  <jh@suse.cz>
5759
5760         * df-core.c (df_clear_bb_info): New function.
5761         (df_set_blocks): bb_info is always allocated.
5762         (df_get_bb_info): Use block_info_elt_size.
5763         (df_set_bb_info): Likewise.
5764         (df_compact_blocks): Update for new block_info.
5765         (grow_bb_info): New function.
5766         * df-problems.c (df_grow_bb_info): Move to df-core.c
5767         (df_rd_set_bb_info): Remove.
5768         (df_rd_free_bb_info): Do not free block pool.
5769         (df_rd_alloc): Do not create pool, use check for
5770         obstack presence instead of NULL pointer for new blocks.
5771         (df_rd_free): DO not free alloc pool; clear block_info.
5772         (problem_RD): Add size of block info structure.
5773         (df_lr_set_bb_info): Remove.
5774         (df_lr_free_bb_info): Do not free block pool.
5775         (df_lr_alloc): Do not create pool, use check for
5776         obstack presence instead of NULL pointer for new blocks.
5777         (df_lr_free): DO not free alloc pool; clear block_info.
5778         (problem_LR): Add size of block info structure.
5779         (df_live_set_bb_info): Remove.
5780         (df_live_free_bb_info): Do not free block pool.
5781         (df_live_alloc): Do not create pool, use check for
5782         obstack presence instead of NULL pointer for new blocks.
5783         (df_live_free): DO not free alloc pool; clear block_info.
5784         (problem_LIVE): Add size of block info structure.
5785         (problem_CHAIN): Add size of block info structure.
5786         (df_byte_lr_set_bb_info): Remove.
5787         (df_byte_lr_free_bb_info): Do not free block pool.
5788         (df_byte_lr_alloc): Do not create pool, use check for
5789         obstack presence instead of NULL pointer for new blocks.
5790         (df_byte_lr_free): DO not free alloc pool; clear block_info.
5791         (problem_BYTE_LR): Add size of block info structure.
5792         (problem_NOTE): Add size of block info structure.
5793         (df_byte_MD_set_bb_info): Remove.
5794         (df_byte_MD_free_bb_info): Do not free block pool.
5795         (df_byte_MD_alloc): Do not create pool, use check for
5796         obstack presence instead of NULL pointer for new blocks.
5797         (df_byte_MD_free): DO not free alloc pool; clear block_info.
5798         (problem_BD): Add size of block info structure.
5799         * df-scan.c (df_scan_free_internal): Free block pool.
5800         (df_scan_set_bb_info): Remove.
5801         (df_scan_free_bb_info): Check for artificial_defs instead
5802         of bb_info being non-NULL.
5803         (df_scan_alloc): DO not create df_scan_block pool.
5804         (problem_SCAN): Set size of block info.
5805         (df_bb_refs_record): Do not allocate bb_info.
5806         * df.h (df_problem): Add block_info_elt_size.
5807         (struct dataflow): Change block_info to void *.
5808         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
5809         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
5810         in-line structures.
5811
5812 2010-06-12  Jan Hubicka  <jh@suse.cz>
5813
5814         PR tree-optimize/44485
5815         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
5816         containing use of return value of noreturn function.
5817
5818 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
5819
5820         * targhooks.c (default_function_value): Don't use
5821         FUNCTION_OUTGOING_VALUE.
5822         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
5823         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
5824
5825 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
5826
5827         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
5828         Add crtfastmath.o to extra_parts.
5829         * config/mips/crtfastmath.c: New.
5830         * config/mips/linux.h (ENDFILE_SPEC): New.
5831
5832 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
5833
5834         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
5835         old_type in parameter.
5836         (gcc_type_for_value): Update call to gcc_type_for_interval.
5837         (compute_type_for_level_1): Renamed compute_type_for_level.
5838         Update call to gcc_type_for_interval.
5839
5840 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
5841
5842         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
5843         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
5844
5845 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
5846
5847         * opts-common.c: Include options.h.
5848         (integral_argument): Move from opts.c.
5849         (decode_cmdline_option): New.  Based on read_cmdline_option.
5850         * opts.c (integral_argument): Move to opts-common.c.
5851         (read_cmdline_option): Move most contents to
5852         decode_cmdline_option.  Use %qs in diagnostics.
5853         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
5854         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
5855         decode_cmdline_option): New.
5856
5857 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
5858
5859         PR target/44481
5860         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
5861         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
5862         (partiysi2_cmp): Ditto.
5863         (*partiyhi2_cmp): Ditto.
5864         (*parityqi2_cmp): Remove.
5865
5866 2010-06-11  Jan Hubicka  <jh@suse.cz>
5867
5868         * bitmap.h (bmp_iter_next_bit): New.
5869         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
5870
5871 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
5872             Eric Botcazou  <ebotcazou@adacore.com>
5873
5874         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
5875         computed cost.
5876
5877 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
5878
5879         * config/i386/i386.md (unspec): New define_c_enum.
5880         (unspecv): Ditto.
5881
5882 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
5883
5884         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
5885
5886 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
5887
5888         PR middle-end/44483
5889         * tree-if-conv.c (bb_predicate_s): New struct.
5890         (bb_predicate_p): New.
5891         (bb_has_predicate): New.
5892         (bb_predicate): New.
5893         (set_bb_predicate): New.
5894         (bb_predicate_gimplified_stmts): New.
5895         (set_bb_predicate_gimplified_stmts): New.
5896         (add_bb_predicate_gimplified_stmts): New.
5897         (init_bb_predicate): New.
5898         (free_bb_predicate): New.
5899         (is_predicated): Use bb_predicate.
5900         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
5901         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
5902         before processing their successors.
5903         (clean_predicate_lists): Removed.
5904         (find_phi_replacement_condition): Use bb_predicate.
5905         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
5906         computations.
5907         (insert_gimplified_predicates): New.
5908         (combine_blocks): Call insert_gimplified_predicates.
5909         (tree_if_conversion): Call free_bb_predicate instead of
5910         clean_predicate_lists.
5911
5912 2010-10-11  Paul Brook  <paul@codesourcery.com>
5913
5914         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
5915         * config/arm/arm.c (all_architectures): Change v7e-m default to
5916         cortexm4.
5917         * config/arm/arm-cores.def: Add cortex-m4.
5918         * config/arm/arm-tune.md: Regenerate.
5919
5920 2010-06-11  Jan Hubicka  <jh@suse.cz>
5921
5922         * ipa-pure-const.c (special_builtlin_state): New function.
5923         (check_call): Use it instead of special casign BUILT_IN_RETURN.
5924         (propagate_pure_const): Use it.
5925
5926 2010-06-11  Jan Hubicka  <jh@suse.cz>
5927
5928         * df-problems.c (df_live_scratch): Convert to bitmap_head.
5929         (df_live_alloc): Initialize df_live_scratch when initializing
5930         problem_data.
5931         (df_live_transfer_function): Update uses of df_live_scratch.
5932         (df_live_free): Free problem_data; clear df_live_scratch before
5933         releasing the obstack.
5934         (df_md_free): Free problem data.
5935
5936 2010-06-11  Jan Hubicka  <jh@suse.cz>
5937
5938         * doc/invoke.texi (Wsuggest-attribute): Document.
5939         (Wmissing-noreturn): Remove.
5940         * ipa-pure-const.c (warn_function_noreturn): New function.
5941         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
5942         warn_missing_noreturn.
5943         * common.opt (Wsuggest-attribute=noreturn): New.
5944         * tree-flow.h (warn_function_noreturn): Declare.
5945         * tree-cfg.c (execute_warn_function_noreturn): Use
5946         warn_function_noreturn.
5947         (gate_warn_function_noreturn): New.
5948         (pass_warn_function_noreturn): Update.
5949
5950 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5951
5952         * c-typeck.c (handle_warn_cast_qual): Add loc
5953         parameter. Improve warning message.
5954         (build_c_cast): Pass location to handle_warn_cast_qual.
5955
5956 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
5957
5958         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
5959         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
5960         insn mnemonic.
5961         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
5962
5963 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
5964
5965         Fix bootstap on mips
5966         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
5967         be naming typedefs.
5968
5969 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
5970
5971         * system.h (helper_const_non_const_cast): New inline for
5972         gcc version <= 4.0.
5973         (CONST_CAST2): For gcc version <= 4.0 use
5974         new helper to do const/non-const casting.
5975
5976 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
5977
5978         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
5979         * Makefile.in (OBJS-common): Include insn-enums.o.
5980         (insn-enums.o): New rule.
5981         (simple_generated_c): Add insn-enums.c.
5982         (build/genenums.o): New rule.
5983         (genprogmd): Add "enums".
5984         * genconstants.c (print_enum_type): Declare a C string array
5985         for each enum.
5986         * genenums.c: New file.
5987         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
5988         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
5989         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
5990
5991 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
5992
5993         * doc/md.texi (define_enum_attr): Document.
5994         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
5995         * read-md.h (lookup_enum_type): Declare.
5996         * read-md.c (lookup_enum_type): New function.
5997         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
5998         * genattrtab.c (attr_desc): Add an enum_name field.
5999         (evaluate_eq_attr): Take the associated attribute as argument.
6000         Get the enum prefix from the enum_name field, if defined.
6001         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
6002         (simplify_test_exp): Pass attr to evaluate_eq_attr.
6003         (add_attr_value): New function, split out from...
6004         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
6005         (write_test_expr): Pass attr to evaluate_eq_attr.
6006         (write_attr_get): Use the enum_name as the enum tag, if defined.
6007         (write_attr_valueq): Use the enum_name as a prefix, if defined.
6008         (find_attr): Initialize enum_name.
6009         (main): Handle DEFINE_ENUM_ATTR.
6010         * gensupport.c (process_rtx): Likewise.
6011         * config/mips/mips.h (mips_tune_attr): Delete.
6012         * config/mips/mips.md (cpu): Use define_attr_enum.
6013
6014 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6015
6016         * doc/md.texi (define_c_enum, define_enum): Document.
6017         * read-md.h (md_constant): Add a parent_enum field.
6018         (enum_value, enum_type): New structures.
6019         (upcase_string, traverse_enum_types): Declare.
6020         * read-md.c (enum_types): New variable.
6021         (upcase_string, add_constant): New functions.
6022         (handle_constants): Don't create the hash table here.
6023         Use add_constant.
6024         (traverse_md_constants): Don't check for a null md_constants.
6025         (decimal_string, handle_enum, traverse_enum_types): New functions.
6026         (read_md_files): Initialize md_constants and md_enums.
6027         * genconstants.c (print_md_constant): Ignore info argument.
6028         Only print constants that belong to no enum.
6029         (print_enum_type): New function.
6030         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
6031         for each defined enum type.
6032         * config/mips/mips.md (processor): New define_enum.
6033         (unspec): New define_c_enum.
6034         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
6035         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
6036         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
6037         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
6038         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
6039         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
6040         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
6041         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
6042         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
6043         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
6044         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
6045         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
6046         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
6047         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
6048         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
6049         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
6050         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
6051         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
6052         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
6053         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
6054         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
6055         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
6056         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
6057         (UNSPEC_RDDSP): Move to mips-dsp.md.
6058         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
6059         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
6060         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
6061         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
6062         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
6063         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
6064         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
6065         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
6066         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
6067         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
6068         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
6069         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
6070         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
6071         Moved to mips-dspr2.md.
6072         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
6073         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
6074         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
6075         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
6076         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
6077         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
6078         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
6079         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
6080         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
6081         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
6082         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
6083         UNSPEC_LOONGSON_PSADBH)
6084         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
6085         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
6086         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
6087         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6088         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6089         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6090         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
6091         (cpu): Update comment.
6092         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
6093         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
6094         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
6095         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
6096         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
6097         UNSPEC_LOONGSON_PCMPEQ)
6098         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
6099         UNSPEC_LOONGSON_PINSR_0)
6100         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
6101         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
6102         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
6103         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
6104         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
6105         UNSPEC_LOONGSON_PSADBH)
6106         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
6107         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
6108         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
6109         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6110         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6111         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6112         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
6113         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
6114         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
6115         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
6116         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
6117         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
6118         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
6119         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
6120         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
6121         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
6122         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
6123         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
6124         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
6125         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
6126         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
6127         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
6128         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
6129         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
6130         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
6131         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
6132         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
6133         (UNSPEC_RDDSP): Moved from mips.md.
6134         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
6135         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
6136         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
6137         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
6138         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
6139         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
6140         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
6141         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
6142         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
6143         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
6144         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
6145         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
6146         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
6147         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
6148         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
6149         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
6150         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
6151         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
6152         (UNSPEC_SCC): Moved from mips.md.
6153         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
6154         "processor_type" to "processor".
6155         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
6156         * config/mips/mips.h (processor_type): Delete.
6157         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
6158         "processor_type" to "processor".
6159
6160 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6161
6162         * configure.ac (tm_include_list): Add insn-constants.h.
6163         * configure: Regenerate.
6164         * Makefile.in (GTM_H): Move insn-constants.h here from...
6165         (TM_H): ...here.
6166         * mkconfig.sh: Remove special handling for insn-constants.h.
6167
6168 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6169
6170         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
6171         (BUILD_MD): ...this new variable.
6172         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
6173         that include the old contents of simple_generated_h and
6174         simple_generated_c.
6175         (simple_generated_h, simple_generated_c): Include them.  Add
6176         insn-constants.h.
6177         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
6178         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
6179         Remove these dependencies from the main rule and include
6180         insn-conditions.md in the command line only if it appears
6181         in the dependency list.
6182         (insn-constants.h, s-constants): Delete.
6183         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
6184         or gensupport.h.
6185         (build/genmddeps.o): Likewise.
6186         (genprogrtl): New variable that contains everything from genprogmd
6187         except mddeps and constants.
6188         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
6189         depend on $(BUILD_MD)
6190         (genprog): New variable.  Make these programs depend on
6191         $(BUILD_ERRORS).
6192         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
6193         (main): Use read_md_files instead of init_rtx_reader_args.
6194         * genconstants.c: As for genmddeps.c.
6195         * read-md.h (read_skip_construct): Declare.
6196         * read-md.c (read_skip_construct): New function.
6197         (handle_file): Allow a null handle_directive, skipping the
6198         construct if so.
6199         (parse_include): Update the comment accordingly.
6200
6201 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6202
6203         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
6204         * genmddeps.c: Include read-md.h.
6205         (main): Call init_rtx_reader_args instead of init_md_reader_args.
6206         * genattr.c (main): Likewise.
6207         * genattrtab.c (main): Likewise.
6208         * genautomata.c (main): Likewise.
6209         * gencodes.c (main): Likewise.
6210         * genconditions.c (main): Likewise.
6211         * genconfig.c (main): Likewise.
6212         * genconstants.c (main): Likewise.
6213         * genemit.c (main): Likewise.
6214         * genextract.c (main): Likewise.
6215         * genflags.c (main): Likewise.
6216         * genopinit.c (main): Likewise.
6217         * genoutput.c (main): Likewise.
6218         * genpeep.c (main): Likewise.
6219         * genrecog.c (main): Likewise.
6220         * genpreds.c (main): Likewise.
6221         * gensupport.h (in_fname): Move to read-md.h.
6222         (init_md_reader_args_cb): Rename to...
6223         (init_rtx_reader_args_cb): ...this and return a bool.
6224         (init_md_reader_args): Rename to...
6225         (init_rtx_reader_args): ...this and return a bool.
6226         (include_callback): Move to read-md.h.
6227         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
6228         (file_name_list, first_dir_md_include): Move to read-md.c
6229         (first_bracket_include): Delete unused variable.
6230         (last_dir_md_include): Move to read-md.c.
6231         (process_include): Delete, moving code to read-md.c:handle_include.
6232         (process_rtx): Don't handle INCLUDE.
6233         (save_string): Delete.
6234         (rtx_handle_directive): New function.
6235         (init_md_reader_args_cb): Rename to...
6236         (init_rtx_reader_args_cb): ...this and return a boolean success value.
6237         Use read_md_args.
6238         (init_md_reader_args): Rename to...
6239         (init_rtx_reader_args): ...this and return a boolean success value.
6240         * rtl.def (INCLUDE): Delete.
6241         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
6242         argument.
6243         * read-rtl.c (read_conditions): Don't gobble ')' here.
6244         (read_mapping): Likewise.
6245         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
6246         Handle top-level non-rtx constructs here rather than in read_rtx_1.
6247         Store the whole queue in *X.  Remove call to init_md_reader.
6248         (read_rtx_1): Rename to...
6249         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
6250         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
6251         here.
6252         (read_nested_rtx): New function.  Handle (nil) here rather than
6253         in read_rtx_code.
6254         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
6255         gobble ')' here.
6256         * read-md.h (directive_handler_t): New type.
6257         (in_fname, include_callback): Moved from read-md.h.
6258         (read_constants, init_md_reader): Delete.
6259         (read_md_files): Declare.
6260         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
6261         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
6262         from gensupport.c.
6263         (read_constants): Rename to...
6264         (handle_constants): ...this.  Don't gobble ')' here.
6265         (handle_include, handle_file, handle_toplevel_file)
6266         (parse_include): New functions, mostly taken from gensupport.c.
6267         (init_md_reader): Subsume into...
6268         (read_md_files): ...this new function.
6269
6270 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6271
6272         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
6273         (unread_char): Decrement read_md_lineno after putting back '\n'.
6274         * read-md.c (fatal_with_file_and_line): Push back any characters
6275         that we decide not to add to the context.
6276         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
6277         fatal_expected_char in cases where '/' ends a line (for example).
6278         (read_name): Don't increment read_md_lineno here.
6279         (read_escape): Likewise.
6280         (read_quoted_string): Likewise.
6281         (read_braced_string): Likewise.
6282
6283 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6284
6285         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
6286         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
6287         * genconstants.c: Include read-md.h.
6288         * read-rtl.c (md_constants): Move to read-md.c.
6289         (md_name): Move to read-md.h.
6290         (initialize_iterators): Use leading_string_hash instead of def_hash
6291         and leading_string_eq_p instead of def_name_eq_p.
6292         (read_name): Move to read-md.c.
6293         (def_hash, def_name_eq_p): Delete.
6294         (read_constants, traverse_md_constants): Move to read-md.c.
6295         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
6296         * read-md.h: Include hashtab.h.
6297         (md_name): Moved from read-rtl.c.
6298         (md_constant): Moved from read-md.h.
6299         (leading_string_hash, leading_string_eq_p, read_name)
6300         (read_constants, traverse_md_constants): Declare.
6301         * read-md.c (md_constants): Moved from read-rtl.c.
6302         (leading_string_hash, leading_string_eq_p): New functions.
6303         (read_name, read_constants, traverse_md_constants): Moved from
6304         read-rtl.c.
6305
6306 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6307
6308         * read-rtl.c (md_name): New structure.
6309         (read_name): Take an md_name instead of a buffer pointer.
6310         Use the "string" field instead of strcpy when expanding constants.
6311         (read_constants): Remove the tmp_char argument.  Update the calls
6312         to read_name, using two local name buffers instead of the tmp_char
6313         argument.  Merge the constant-creation code.
6314         (read_conditions): Remove the tmp_char argument.  Update the calls
6315         to read_name, using a local name buffer instead of the tmp_char
6316         argument.
6317         (read_mapping): Replace tmp_char variable with a local name buffer.
6318         Update the calls to read_name.
6319         (read_rtx_1): Likewise.  Update the calls to read_constants and
6320         read_conditions.
6321
6322 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6323
6324         * Makefile.in (build/read-md.o): Depend on errors.h.
6325         * read-md.h (error_with_line): Declare.
6326         * read-md.c: Include errors.h.
6327         (message_with_line_1): New function, extracted from...
6328         (message_with_line): ...here.
6329         (error_with_line): New function.
6330         * genattrtab.c: If a call to message_with_line is followed by
6331         "have_error = 1;", replace both statements with a call to
6332         error_with_line.
6333         * genoutput.c: Likewise.
6334         * genpreds.c: Likewise.
6335         * genrecog.c: If a call to message_with_line is followed by
6336         "error_count++;", replace both statements with a call to
6337         error_with_line.
6338         (errorcount): Delete.
6339         (main): Don't check it.
6340         * gensupport.c: If a call to message_with_line is followed by
6341         "errors = 1;", replace both statements with a call to error_with_line.
6342         (errors): Delete.
6343         (process_define_cond_exec): Check have_error instead of errors.
6344         (init_md_reader_args_cb): Likewise.  Don't set errors.
6345
6346 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6347
6348         * read-md.h (read_md_file): Declare.
6349         (read_char, unread_char): New functions.
6350         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
6351         (read_quoted_string, read_string): Remove FILE * argument.
6352         * read-md.c (read_md_file): New variable.
6353         (read_md_filename, read_md_lineno): Update comments and remove
6354         unnecessary initialization.
6355         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
6356         (read_escape, read_quoted_string, read_braced_string, read_string):
6357         Remove FILE * argument.  Update calls accordingly, using read_char
6358         and unread_char instead of getc and ungetc.
6359         * rtl.h (read_rtx): Remove FILE * argument.
6360         * read-rtl.c (iterator_group): Remove FILE * argument from
6361         "find_builtin".
6362         (iterator_traverse_data): Remove "infile" field.
6363         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
6364         (add_mapping, read_name, read_constants, read_conditions)
6365         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
6366         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
6367         Remove file arguments from all calls, using read_char and unread_char
6368         instead of getc and ungetc.
6369         * gensupport.c (process_include): Preserve read_md_file around
6370         the include.  Set read_md_file to the handle of the included file.
6371         Update call to read_rtx.
6372         (init_md_reader_args_cb): Set read_md_file to the handle of the file
6373         and remove local FILE *.  Update calls to read_rtx.
6374
6375 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6376
6377         * read-md.h (read_rtx_lineno): Rename to...
6378         (read_md_lineno): ...this.
6379         (read_rtx_filename): Rename to...
6380         (read_md_filename): ...this.
6381         (copy_rtx_ptr_loc): Rename to...
6382         (copy_md_ptr_loc): ...this.
6383         (print_rtx_ptr_loc): Rename to...
6384         (print_md_ptr_loc): ...this.
6385         * read-md.c: Likewise.  Update references after renaming.
6386         (string_obstack): Replace RTL with MD in comment.
6387         (set_rtx_ptr_loc): Rename to...
6388         (set_md_ptr_loc): ...this.
6389         (get_rtx_ptr_loc): Rename to...
6390         (get_md_ptr_loc): ...this.
6391         * genconditions.c: Update references after renaming.
6392         * genemit.c: Likewise.
6393         * genoutput.c: Likewise.
6394         * genpreds.c: Likewise.
6395         * gensupport.c: Likewise.
6396         * read-rtl.c: Likewise.
6397
6398 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
6399
6400         * Makefile.in (READ_MD_H): New variable.
6401         (BUILD_RTL): Add build/read-md.o.
6402         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
6403         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
6404         (build/genattrtab.o, build/genconditions.o build/genemit.o)
6405         (build/genextract.o, build/genflags.o, build/genoutput.o)
6406         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
6407         (build/read-md.o): New rule.
6408         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
6409         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
6410         * coretypes.h: ...here.
6411         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
6412         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
6413         * genattr.c: Include read-md.h.
6414         * genattrtab.c: Likewise.
6415         * genconditions.c: Likewise.
6416         * genemit.c: Likewise.
6417         * genextract.c: Likewise.
6418         * genflags.c: Likewise.
6419         * genoutput.c: Likewise.
6420         * genpreds.c: Likewise.
6421         * genrecog.c: Likewise.
6422         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
6423         (join_c_conditions, print_c_condition, read_rtx_filename)
6424         (read_rtx_lineno): Move to read-md.h.
6425         * read-rtl.c: Include read-md.h.
6426         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
6427         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
6428         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
6429         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
6430         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
6431         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
6432         (read_braced_string, read_string): Move to read-md.c.
6433         (read_rtx): Move some initialization to init_md_reader and call
6434         init_md_reader here.
6435         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
6436         Move to read-md.h.
6437         * gensupport.c: Include read-md.h.
6438         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
6439         * read-md.h, read-md.c: New files.
6440
6441 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
6442
6443         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6444         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6445         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
6446         * config/moxie/moxie.c (moxie_function_value): Make static.
6447         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
6448         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
6449
6450 2010-06-10  Martin Jambor  <mjambor@suse.cz>
6451
6452         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
6453         * dbgcnt.def (tree_sra): New counter.
6454         * tree-sra.c: Include dbgcnt.h.
6455         (gate_intra_sra): Check tree_sra debug counter.
6456
6457 2010-06-10  Martin Jambor  <mjambor@suse.cz>
6458
6459         PR tree-optimization/44258
6460         * tree-sra.c (build_access_subtree): Return false iff there is a
6461         partial overlap.
6462         (build_access_trees): Likewise.
6463         (analyze_all_variable_accesses): Disqualify candidates if
6464         build_access_trees returns true for them.
6465
6466 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
6467
6468         PR debug/41371
6469         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
6470         tail-recurse into canonical node.  Fast-forward over
6471         non-canonical VALUEs.
6472
6473 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
6474
6475         PR boostrap/44470
6476         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
6477         (*addsi_1_zext) <TYPE_LEA>: Likewise.
6478         (add lea splitter): Likewise.
6479         (add_zext lea splitter): Likewise.
6480
6481 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
6482
6483         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
6484
6485 2010-06-10  Jan Hubicka  <jh@suse.cz>
6486
6487         * df-problems.c (df_live_problem_data): Add live_bitmaps.
6488         (df_live_alloc): Initialize problem data and live_osbtacks.
6489         (df_live_finalize): Remove obstack, problem data; do not
6490         clear all bitmaps.
6491         (df_live_top_dump, df_live_bottom_dump): Do not dump old
6492         data when not allocated.
6493         (df_live_verify_solution_start): Do not allocate problem data.
6494         (df_live_verify_solution_end): Check if out is allocated.
6495         (struct df_md_problem_data): New structure.
6496         (df_md_alloc): Allocate problem data.
6497         (df_md_free): Free problem data; do not clear bitmaps.
6498
6499 2010-06-10  Jan Beulich  <jbeulich@novell.com>
6500
6501         PR bootstrap/37304
6502         * configure.ac: Replace $() with ${} when intending to expand
6503         variables rather than invoking commands.
6504         * configure: Re-generate.
6505
6506 2010-06-10  Jan Hubicka  <jh@suse.cz>
6507
6508         PR rtl-optimization/44460
6509         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
6510         TYPE_NEEDS_CONSTRUCTING sanity check.
6511
6512 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
6513
6514         * doc/include/fdl.texi: Move to GFDL version 1.3.
6515
6516         * doc/cpp.texi: Move to GFDL version 1.3.
6517         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
6518         * doc/gccint.texi: Move to GFDL version 1.3.
6519         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
6520         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
6521         * doc/invoke.texi: Move to GFDL version 1.3.
6522
6523 2010-06-09  Jan Hubicka  <jh@suse.cz>
6524
6525         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
6526         Break out from ...
6527         (propagate) ... here; swap the order.
6528
6529 2010-06-09  Jan Hubicka  <jh@suse.cz>
6530
6531         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
6532         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
6533         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
6534         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
6535
6536 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
6537
6538         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
6539         Do not the gather memory reference in the outer loop if the step
6540         is not a constant.
6541
6542 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
6543
6544         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
6545         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
6546         8 to 4.  Minor change of the related comments.
6547
6548 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
6549
6550         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
6551         the scev analysis when the variable is not used outside the loop
6552         in a close phi node: call compute_overall_effect_of_inner_loop.
6553
6554 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
6555
6556         * graphite-sese-to-poly.c (single_pred_cond): Renamed
6557         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
6558         (build_sese_conditions_before): Renamed call to single_pred_cond.
6559         (build_sese_conditions_after): Same.
6560
6561 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
6562
6563         * graphite-poly.h: Fix comments and indentation.
6564         * graphite-sese-to-poly.c: Same.
6565         (build_sese_conditions_before): Compute stmt and gbb only when needed.
6566         * tree-chrec.c: Fix comments and indentation.
6567         (tree-ssa-loop-niter.c): Same.
6568
6569 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
6570
6571         PR rtl-optimization/42461
6572         * dce.c (deletable_insn_p): Return true for const or pure calls again.
6573         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
6574
6575 2010-06-09  Jan Hubicka  <jh@suse.cz>
6576
6577         * bitmap.c (bitmap_and): Walk array forward.
6578         (bitmap_and_compl_into): Likewise.
6579         (bitmap_xor): Likewise.
6580         (bitmap_xor_into):  Likewise.
6581         (bitmap_equal_p): Likewise.
6582         (bitmap_intersect_p): Likewise.
6583         (bitmap_intersect_compl_p): Likewise.
6584         (bitmap_ior_and_into): Likewise.
6585         (bitmap_elt_copy): Likewise.
6586         (bitmap_and_compl): Likewise.
6587         (bitmap_elt_ior): Likewise.
6588
6589 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
6590
6591         * opts-common.c (prune_options): Ensure replacement argv array
6592         is correctly terminated by a NULL entry.
6593
6594 2010-06-09  Jan Hubicka  <jh@suse.cz>
6595
6596         * cgraph.h (varpool_first_static_initializer,
6597         varpool_next_static_initializer): Make checking only when
6598         checking enabled.
6599         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
6600         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
6601         gcc_assert to gcc_checking_assert.
6602         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
6603         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
6604         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
6605         op_iter_init_phiuse, op_iter_init_phidef,
6606         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
6607         gcc_checking_assert.
6608         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
6609         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
6610         partition_is_global, live_on_entry, live_on_exit,
6611         live_merge_and_clear): Likewise.
6612         * system.h (gcc_checking_assert): New macro.
6613         * gimple.h (set_bb_seq): Use gcc_checking_assert.
6614
6615 2010-06-09  Jason Merrill  <jason@redhat.com>
6616
6617         * Makefile.in (TAGS): Collect tags info from c-family.
6618
6619 2010-06-09  Jan Hubicka  <jh@suse.cz>
6620
6621         * gimple.h (gcc_gimple_checking_assert): New macro.
6622         (gimple_set_def_ops, gimple_set_use_ops,
6623         gimple_set_vuse, gimple_set_vdef,
6624         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
6625         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
6626         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
6627         gimple_asm_output_op, gimple_asm_output_op_ptr,
6628         gimple_asm_set_output_op, gimple_asm_clobber_op,
6629         gimple_asm_set_clobber_op, gimple_asm_label_op,
6630         gimple_asm_set_label_op, gimple_try_set_kind,
6631         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
6632         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
6633         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
6634         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
6635         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
6636         gimple_omp_for_set_initial, gimple_omp_for_final,
6637         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
6638         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
6639         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
6640         conditional with ENABLE_GIMPLE_CHECKING.
6641         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
6642
6643 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
6644
6645         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
6646         (get_computation_cost_at): Use it.
6647         (determine_use_iv_cost_condition): Likewise.
6648         (determine_iv_cost): Likewise.
6649
6650 2010-06-09  Richard Guenther  <rguenther@suse.de>
6651
6652         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
6653         replace constants.
6654
6655 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
6656
6657         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
6658
6659 2010-06-09  Martin Jambor  <mjambor@suse.cz>
6660
6661         PR tree-optimization/44423
6662         * tree-sra.c (dump_access): Dump also grp_assignment_read.
6663         (analyze_access_subtree): Pass negative allow_replacements to children
6664         if the current type is scalar.
6665
6666 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6667
6668         PR testsuite/42843
6669         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
6670         * doc/plugins.texi (Plugin license check): Update information
6671         on type of plugin_is_GPL_compatible.
6672         * Makefile.in (PLUGINCC): Define as $(COMPILER).
6673         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
6674
6675 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
6676
6677         * config/arm/arm.c (thumb2_reorg): New function.
6678         (arm_reorg): Call it.
6679         * config/arm/thumb2.md (define_peephole2 for flag clobbering
6680         arithmetic operations): Delete.
6681
6682 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
6683
6684         PR target/44067
6685         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
6686         e500v2 target.
6687
6688 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6689
6690         PR plugins/44459
6691         * gcc-plugin.h: Encapsulate all declarations in extern "C".
6692
6693 2010-06-08  Jan Hubicka  <jh@suse.cz>
6694
6695         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
6696         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
6697
6698 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
6699
6700         PR tree-optimization/39874
6701         PR middle-end/28685
6702         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
6703         Declare.
6704         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
6705         same_bool_result_p): New.
6706         (and_var_with_comparison, and_var_with_comparison_1,
6707         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
6708         (or_var_with_comparison, or_var_with_comparison_1,
6709         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
6710         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
6711         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
6712         of combine_comparisons.
6713         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
6714
6715 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
6716
6717         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6718         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6719         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
6720         pdp11_function_value_regno_p): New functions.
6721         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6722         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6723
6724 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
6725
6726         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
6727         Thumb-2 in the MINUS case.
6728
6729 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6730
6731         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
6732
6733         * doc/gty.texi (GTY Options): Document typed GC allocation and
6734         variable_size GTY option.
6735
6736         * ggc-internal.h: New.
6737
6738         * ggc.h: Update copyright year.
6739         (digit_string): Move to stringpool.c.
6740         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
6741         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
6742         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
6743         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
6744         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
6745         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
6746         (ggc_force_collect, ggc_get_size, ggc_statistics)
6747         (ggc_print_common_statistics): Move to ggc-internal.h.
6748         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
6749         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
6750         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
6751         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
6752         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
6753         (ggc_alloc_zone_pass_stat): Remove.
6754         (ggc_internal_alloc_stat, ggc_internal_alloc)
6755         (ggc_internal_cleared_alloc_stat): New.
6756         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
6757         (ggc_internal_vec_alloc_stat)
6758         (ggc_internal_cleared_vec_alloc_stat)
6759         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
6760         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
6761         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
6762         (ggc_cleared_alloc_ptr_array_two_args): New.
6763         (htab_create_ggc, splay_tree_new_ggc): Redefine.
6764         (ggc_splay_alloc): Change the type of the first argument to
6765         enum gt_types_enum.
6766         (ggc_alloc_string): Make macro.
6767         (ggc_alloc_string_stat): New.
6768         (ggc_strdup): Redefine.
6769         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
6770         (ggc_alloc_rtvec_sized): New.
6771         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
6772         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
6773         (ggc_internal_cleared_alloc_zone_stat)
6774         (ggc_internal_zone_alloc_stat)
6775         (ggc_internal_zone_cleared_alloc_stat)
6776         (ggc_internal_zone_vec_alloc_stat)
6777         (ggc_alloc_zone_rtx_def_stat)
6778         (ggc_alloc_zone_tree_node_stat)
6779         (ggc_alloc_zone_cleared_tree_node_stat)
6780         (ggc_alloc_cleared_gimple_statement_d_stat): New.
6781
6782         * ggc-common.c: Include ggc-internal.h.
6783         (ggc_internal_cleared_alloc_stat): Rename from
6784         ggc_alloc_cleared_stat.
6785         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
6786         (ggc_calloc): Remove.
6787         (ggc_cleared_alloc_htab_ignore_args): New.
6788         (ggc_cleared_alloc_ptr_array_two_args): New.
6789         (ggc_splay_alloc): Add obj_type parameter.
6790         (init_ggc_heuristics): Formatting fixes.
6791
6792         * ggc-none.c: Update copyright year.
6793         (ggc_alloc_stat): Rename to ggc_alloc_stat.
6794         (ggc_alloc_cleared_stat): Rename to
6795         ggc_internal_cleared_alloc_stat.
6796         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
6797
6798         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
6799         Remove references to ggc_alloc in comments.
6800         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
6801         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
6802         (new_ggc_zone, destroy_ggc_zone): Remove.
6803         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
6804
6805         * ggc-zone.c: Include ggc-internal.h.  Remove references to
6806         ggc_alloc in comments.
6807         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
6808         (ggc_internal_alloc_zone_pass_stat): New.
6809         (ggc_internal_cleared_alloc_zone_stat): New.
6810         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
6811         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
6812         (new_ggc_zone, destroy_ggc_zone): Remove.
6813
6814         * stringpool.c: Update copyright year.  Include ggc-internal.h
6815         (digit_vector): Make static.
6816         (digit_string): Moved from ggc.h.
6817         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
6818         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
6819
6820         * Makefile.in (GGC_INTERNAL_H): New.
6821         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
6822         $(GGC_INTERNAL_H) to dependencies.
6823
6824         * gentype.c: Update copyright year.
6825         (walk_type): Accept variable_size GTY option.
6826         (USED_BY_TYPED_GC_P): New macro.
6827         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
6828         whitespace at the end of strings.
6829         (get_type_specifier, variable_size_p): New functions.
6830         (alloc_quantity, alloc_zone): New enums.
6831         (write_typed_alloc_def): New function.
6832         (write_typed_struct_alloc_def): Likewise.
6833         (write_typed_typed_typedef_alloc_def): Likewise.
6834         (write_typed_alloc_defns): Likewise.
6835         (output_typename, write_splay_tree_allocator_def): Likewise.
6836         (write_splay_tree_allocators): Likewise.
6837         (main): Call write_typed_alloc_defns and
6838         write_splay_tree_allocators.
6839
6840         * lto-streamer.h (lto_file_decl_data_ptr): New.
6841
6842         * passes.c (order): Define using cgraph_node_ptr.
6843
6844         * strinpool.c (struct string_pool_data): Declare nested_ptr using
6845         ht_identifier_ptr.
6846
6847         * gimple.h (union gimple_statement_d): Likewise.
6848
6849         * rtl.h (struct rtx_def): Likewise.
6850         (struct rtvec_def): Likewise.
6851
6852         * tree.h (union tree_node): Likewise.
6853
6854         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
6855
6856         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
6857
6858         * tree-scalar-evolution.c (scev_initialize): Likewise.
6859
6860         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
6861
6862         * dwarf2asm.c (dw2_force_const_mem): Likewise.
6863
6864         * omp-low.c (lower_omp_critical): Likewise.
6865
6866         * bitmap.h (struct bitmap_head_def): Update comment to not
6867         reference ggc_alloc.
6868
6869         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
6870
6871         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
6872
6873         * ipa-prop.c (duplicate_ggc_array): Rename to
6874         duplicate_ipa_jump_func_array.  Use typed GC allocation.
6875         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
6876
6877         * gimple.c (gimple_alloc_stat): Use
6878         ggc_alloc_cleared_gimple_statement_d_stat.
6879
6880         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
6881
6882         * tree.c (make_node_stat): Use
6883         ggc_alloc_zone_cleared_tree_node_stat.
6884         (make_tree_vec_stat): Likewise.
6885         (build_vl_exp_stat): Likewise.
6886         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
6887         (make_tree_binfo_stat): Likewise.
6888         (tree_cons_stat): Likewise.
6889
6890         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
6891         (shallow_copy_rtx_stat): Likewise.
6892         (make_node_stat): Likewise.
6893
6894         * lto-symtab.c: Fix comment.
6895
6896         * tree-cfg.c (create_bb): Update comment to not reference
6897         ggc_alloc_cleared.
6898         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
6899
6900         * varpool.c (varpool_node): Use typed GC allocation.
6901         (varpool_extra_name_alias): Likewise.
6902
6903         * varasm.c (emutls_decl): Likewise.
6904         (get_unnamed_section): Likewise.
6905         (get_noswitch_section): Likewise.
6906         (get_section): Likewise.
6907         (get_block_for_section): Likewise.
6908         (build_constant_desc): Likewise.
6909         (create_constant_pool): Likewise.
6910         (force_const_mem): Likewise.
6911
6912         * tree.c (build_vl_exp_stat): Likewise.
6913         (build_real): Likewise.
6914         (build_string): Likewise.
6915         (decl_debug_expr_insert): Likewise.
6916         (decl_value_expr_insert): Likewise.
6917         (type_hash_add): Likewise.
6918         (build_omp_clause): Likewise.
6919
6920         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
6921
6922         * tree-ssa.c (init_tree_ssa): Likewise.
6923
6924         * tree-ssa-structalias.c (heapvar_insert): Likewise.
6925
6926         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
6927
6928         * tree-ssa-loop-niter.c (record_estimate): Likewise.
6929
6930         * tree-ssa-alias.c (get_ptr_info): Likewise.
6931
6932         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
6933
6934         * tree-phinodes.c (allocate_phi_node): Likewise.
6935
6936         * tree-iterator.c (tsi_link_before): Likewise.
6937         (tsi_link_after): Likewise.
6938
6939         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
6940
6941         * tree-dfa.c (create_var_ann): Likewise.
6942
6943         * tree-cfg.c (create_bb): Likewise.
6944
6945         * toplev.c (alloc_for_identifier_to_locale): Likewise.
6946         (general_init): Likewise.
6947
6948         * stringpool.c (stringpool_ggc_alloc): Likewise.
6949         (gt_pch_save_stringpool): Likewise.
6950
6951         * sese.c (if_region_set_false_region): Likewise.
6952
6953         * passes.c (do_per_function_toporder): Likewise.
6954
6955         * optabs.c (set_optab_libfunc): Likewise.
6956         (set_conv_libfunc): Likewise.
6957
6958         * lto-symtab.c (lto_symtab_register_decl): Likewise.
6959
6960         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
6961         (input_eh_region): Likewise.
6962         (input_eh_lp): Likewise.
6963         (make_new_block): Likewise.
6964         (unpack_ts_real_cst_value_fields): Likewise.
6965
6966         * lto-section-in.c (lto_new_in_decl_state): Likewise.
6967
6968         * lto-cgraph.c (input_node_opt_summary): Likewise.
6969
6970         * loop-init.c (loop_optimizer_init): Likewise.
6971
6972         * lambda.h (lambda_vector_new): Likewise.
6973
6974         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
6975
6976         * ira.c (update_equiv_regs): Likewise.
6977
6978         * ipa.c (cgraph_node_set_new): Likewise.
6979         (cgraph_node_set_add): Likewise.
6980         (varpool_node_set_new): Likewise.
6981         (varpool_node_set_add): Likewise.
6982
6983         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
6984         (duplicate_ipa_jump_func_array): Likewise.
6985         (ipa_read_node_info): Likewise.
6986
6987         * ipa-cp.c (ipcp_create_replace_map): Likewise.
6988
6989         * integrate.c (get_hard_reg_initial_val): Likewise.
6990
6991         * gimple.c (gimple_alloc_stat): Likewise.
6992         (gimple_build_omp_for): Likewise.
6993         (gimple_seq_alloc): Likewise.
6994         (gimple_copy): Likewise.
6995
6996         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
6997         (gsi_insert_after_without_update): Likewise.
6998
6999         * function.c (add_frame_space): Likewise.
7000         (insert_temp_slot_address): Likewise.
7001         (assign_stack_temp_for_type): Likewise.
7002         (allocate_struct_function): Likewise.
7003         (types_used_by_var_decl_insert): Likewise.
7004
7005         * except.c (init_eh_for_function): Likewise.
7006         (gen_eh_region): Likewise.
7007         (gen_eh_region_catch): Likewise.
7008         (gen_eh_landing_pad): Likewise.
7009         (add_call_site): Likewise.
7010
7011         * emit-rtl.c (get_mem_attrs): Likewise.
7012         (get_reg_attrs): Likewise.
7013         (start_sequence): Likewise.
7014         (init_emit): Likewise.
7015
7016         * dwarf2out.c (new_cfi): Likewise.
7017         (queue_reg_save): Likewise.
7018         (dwarf2out_frame_init): Likewise.
7019         (new_loc_descr): Likewise.
7020         (find_AT_string): Likewise.
7021         (new_die): Likewise.
7022         (add_var_loc_to_decl): Likewise.
7023         (clone_die): Likewise.
7024         (clone_as_declaration): Likewise.
7025         (break_out_comdat_types): Likewise.
7026         (new_loc_list): Likewise.
7027         (loc_descriptor): Likewise.
7028         (add_loc_descr_to_each): Likewise.
7029         (add_const_value_attribute): Likewise.
7030         (tree_add_const_value_attribute): Likewise.
7031         (add_comp_dir_attribute): Likewise.
7032         (add_name_and_src_coords_attributes): Likewise.
7033         (lookup_filename): Likewise.
7034         (store_vcall_insn): Likewise.
7035         (dwarf2out_init): Likewise.
7036
7037         * dbxout.c (dbxout_init): Likewise.
7038
7039         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
7040
7041         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
7042
7043         * config/score/score7.c (score7_output_external): Likewise.
7044
7045         * config/score/score3.c (score3_output_external): Likewise.
7046
7047         * config/s390/s390.c (s390_init_machine_status): Likewise.
7048
7049         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
7050         (rs6000_init_machine_status): Likewise.
7051         (output_toc): Likewise.
7052
7053         * config/pa/pa.c (pa_init_machine_status): Likewise.
7054         (get_deferred_plabel): Likewise.
7055
7056         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
7057
7058         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
7059
7060         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
7061
7062         * config/mep/mep.c (mep_init_machine_status): Likewise.
7063         (mep_note_pragma_flag): Likewise.
7064
7065         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
7066
7067         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
7068
7069         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
7070
7071         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
7072         (i386_pe_maybe_record_exported_symbol): Likewise.
7073
7074         * config/i386/i386.c (get_dllimport_decl): Likewise.
7075         (ix86_init_machine_status): Likewise.
7076         (assign_386_stack_local): Likewise.
7077
7078         * config/frv/frv.c (frv_init_machine_status): Likewise.
7079
7080         * config/darwin.c (machopic_indirection_name): Likewise.
7081
7082         * config/cris/cris.c (cris_init_machine_status): Likewise.
7083
7084         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
7085
7086         * config/avr/avr.c (avr_init_machine_status): Likewise.
7087
7088         * config/arm/arm.c (arm_init_machine_status): Likewise.
7089
7090         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
7091         (alpha_need_linkage): Likewise.
7092         (alpha_use_linkage): Likewise.
7093
7094         * cgraph.c (cgraph_allocate_node): Likewise.
7095         (cgraph_create_edge_1): Likewise.
7096         (cgraph_create_indirect_edge): Likewise.
7097         (cgraph_add_asm_node): Likewise.
7098
7099         * cfgrtl.c (init_rtl_bb_info): Likewise.
7100
7101         * cfgloop.c (alloc_loop): Likewise.
7102         (rescan_loop_exit): Likewise.
7103
7104         * cfg.c (init_flow): Likewise.
7105         (alloc_block): Likewise.
7106         (unchecked_make_edge): Likewise.
7107
7108         * c-parser.c (c_parse_init): Likewise.
7109         (c_parse_file): Likewise.
7110
7111         * c-decl.c (bind): Likewise.
7112         (record_inline_static): Likewise.
7113         (push_scope): Likewise.
7114         (make_label): Likewise.
7115         (lookup_label_for_goto): Likewise.
7116         (finish_struct): Likewise.
7117         (finish_enum): Likewise.
7118         (c_push_function_context): Likewise.
7119
7120         * bitmap.c (bitmap_element_allocate): Likewise.
7121         (bitmap_gc_alloc_stat): Likewise.
7122
7123         * alias.c (record_alias_subset): Likewise.
7124         (init_alias_analysis): Likewise.
7125
7126 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
7127
7128         * fold-const.c (fold_comparison): Remove redundant parenthesis.
7129         * tree-inline.c (expand_call_inline): Pass translated return value of
7130         cgraph_inline_failed_string to diagnostic function.
7131
7132 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
7133             Shujing Zhao  <pearly.zhao@oracle.com>
7134
7135         PR c/37724
7136         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
7137         implicit bad conversions is initialization.
7138         (error_init): Use gmsgid instead of msgid for argument name and change
7139         the call for error.
7140         (pedwarn_init): Use gmsgid instead of msgid for argument name and
7141         change the call for pedwarn.
7142         (warning_init): Use gmsgid instead of msgid for argument name and
7143         change the call for warning.
7144
7145 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
7146
7147         * config/mips/mips-protos.h (mips_print_operand): Delete.
7148         (mips_print_operand_address): Delete.
7149         * config/mips/mips.h (mips_print_operand_punct): Delete.
7150         (PRINT_OPERAND): Delete.
7151         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7152         (PRINT_OPERAND_ADDRESS): Delete.
7153         * config/mips/mips.c (mips_print_operand_punct): Make static.
7154         (mips_print_operand_address): Make static.
7155         (mips_print_operand): Make static.  Call
7156         mips_print_operand_punct_valid_p.
7157         (mips_print_operand_punct_valid_p): New function.
7158         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7159         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7160
7161 2010-06-07  Jan Hubicka  <jh@suse.cz>
7162
7163         PR middle-end/44454
7164         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
7165         are allocated.
7166
7167 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
7168
7169         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
7170         name of RECORD.
7171
7172 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7173
7174         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7175         attributes): Document gas.
7176
7177 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
7178
7179         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
7180         <TYPE_LEA>: Split instruction.
7181         <default>: Remove alternative 2 handling.
7182         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
7183         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
7184         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
7185
7186         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
7187         (ashift_zext lea splitter): Use DImode for multiplication.
7188
7189         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
7190         to generate addition.
7191
7192 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
7193
7194         * common.opt (fira-verbose): Use Var.
7195         (fpcc-struct-return): Use Init instead of VarExists.
7196         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
7197         toplev.c.
7198         * flags.h (flag_signed_char, flag_short_enums,
7199         flag_pcc_struct_return, flag_ira_verbose,
7200         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
7201         * toplev.c (flag_detailed_statistics, flag_signed_char,
7202         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
7203         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
7204         * toplev.h (flag_crossjumping, flag_if_conversion,
7205         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
7206         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
7207         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
7208         flag_cprop_registers, time_report, flag_ira_loop_pressure,
7209         flag_ira_coalesce, flag_ira_move_spills,
7210         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
7211
7212 2010-06-07  Jan Hubicka  <jh@suse.cz>
7213
7214         * df-core.c (df_analyze_problem): Do verification after allocation.
7215
7216         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
7217         (df_lr_alloc): Initialize problem data; move bitmaps to
7218         lr_bitmaps obstack.
7219         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
7220         (df_lr_verify_solution_start): Do not initialize problem data;
7221         allocate bitmaps in lr_bitmaps.
7222         (df_lr_verify_solution_end): Do not free problem data.
7223
7224 2010-06-07  Jan Hubicka  <jh@suse.cz>
7225
7226         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
7227         if caller is noreturn.
7228         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
7229         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
7230         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
7231         * ipa-pure-const.c (check_decl): Add IPA parameter.
7232         (state_from_flags): New function.
7233         (better_state, worse_state): New functions.
7234         (check_call): When in IPA mode, do not care about callees.
7235         (check_load, check_store): Update.
7236         (check_ipa_load, check_ipa_store): New.
7237         (check_stmt): When in IPA mode, use IPA checkers.
7238         (analyze_function): Use state_from_flags.
7239         (propagate): Check indirect edges and references.
7240
7241 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
7242
7243         PR rtl-optimization/44404
7244         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
7245         of count_occurrences to see if it's safe to modify mem_insn.
7246
7247 2010-06-07  Richard Guenther  <rguenther@suse.de>
7248
7249         * gimplify.c (gimplify_cleanup_point_expr): For empty body
7250         and EH-only cleanup drop the cleanup instead of inserting it
7251         unconditionally.
7252
7253 2010-06-07  Ira Rosen  <irar@il.ibm.com>
7254
7255         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
7256         documentation.
7257         * targhooks.c (default_builtin_vectorization_cost): New function.
7258         * targhooks.h (default_builtin_vectorization_cost): Declare.
7259         * target.h (enum vect_cost_for_stmt): Define.
7260         (builtin_vectorization_cost): Change argument and comment.
7261         * tree-vectorizer.h: Remove cost model macros.
7262         * tree-vect-loop.c: Include target.h.
7263         (vect_get_cost): New function.
7264         (vect_estimate_min_profitable_iters): Replace cost model macros with
7265         calls to vect_get_cost.
7266         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
7267         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
7268         default implementation.
7269         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
7270         calls to target hook builtin_vectorization_cost.
7271         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
7272         Likewise.
7273         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
7274         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
7275         implementation to return costs.
7276         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
7277         * config/spu/spu.h: Remove vectorizer cost model macros.
7278         * config/i386/i386.h: Likewise.
7279         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
7280         a call to target hook builtin_vectorization_cost.
7281
7282 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
7283
7284         PR target/44319
7285         * config/i386/i386.c (override_options): Turn zee pass on for level 2
7286         and above and defer till target is known.
7287         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
7288         turn off otherwise.
7289
7290 2010-05-25  Jan Hubicka  <jh@suse.cz>
7291
7292         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
7293         (df_compact_blocks): Likewise.
7294         * df.h (struct df): Turn hardware_regs_used,
7295         regular_block_artificial_uses, eh_block_artificial_uses,
7296         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
7297         bitmap_head.
7298         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
7299         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
7300         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
7301         df_scan_blocks, df_insn_delete, df_insn_rescan,
7302         df_insn_rescan_debug_internal, df_insn_rescan_all,
7303         df_process_deferred_rescans, df_process_deferred_rescans,
7304         df_notes_rescan, df_get_call_refs, df_get_call_refs,
7305         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
7306         df_record_entry_block_defs, df_record_exit_block_uses,
7307         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
7308         df_scan_verify): Update.
7309
7310 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
7311
7312         PR c++/44188
7313         * c-common.c (is_typedef_decl): Move this definition ...
7314         * tree.c (is_typedef_decl): ... here.
7315         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
7316         * c-common.h (is_typedef_decl): Move this declaration ...
7317         * tree.h (is_typedef_decl): ... here.
7318         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
7319         * dwarf2out.c (is_naming_typedef_decl): New function.
7320         (gen_tagged_type_die): Split out of ...
7321         (gen_type_die_with_usage): ... this function. When an anonymous
7322         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
7323         is emitted for the typedef.
7324         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
7325         anonymous tagged types.
7326
7327 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7328
7329         PR c/20000
7330         * c-decl.c (grokdeclarator): Delete warning.
7331
7332 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7333
7334         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
7335         newly built CALL_EXPR.
7336         * tree-profile.c (tree_profiling): Don't profile functions produced
7337         for built-in stuff.
7338
7339 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
7340
7341         PR bootstrap/44427
7342         PR bootstrap/44428
7343         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
7344         endianness-independent.
7345
7346 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
7347
7348         * c-common.c: Move to c-family/.
7349         * c-common.def: Likewise.
7350         * c-common.h: Likewise.
7351         * c-cppbuiltin.c: Likewise.
7352         * c-dump.c: Likewise.
7353         * c-format.c: Likewise.
7354         * c-format.h : Likewise.
7355         * c-gimplify.c: Likewise.
7356         * c-lex.c: Likewise.
7357         * c-omp.c: Likewise.
7358         * c.opt: Likewise.
7359         * c-opts.c: Likewise.
7360         * c-pch.c: Likewise.
7361         * c-ppoutput.c: Likewise.
7362         * c-pragma.c: Likewise.
7363         * c-pragma.h: Likewise.
7364         * c-pretty-print.c: Likewise.
7365         * c-pretty-print.h: Likewise.
7366         * c-semantics.c: Likewise.
7367         * stub-objc.c: Likewise.
7368
7369         * gengtype.c (get_file_langdir): Special-case files in c-family/.
7370         (get_output_file_with_visibility): Fix name for c-common.h.
7371         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
7372
7373         * c-tree.h: Update include path for moved files.
7374         * c-lang.c: Likewise.
7375         * c-lang.h: Likewise.
7376         * c-parser.c: Likewise.
7377         * c-convert.c: Likewise.
7378         * c-decl.c: Likewise.
7379         * c-objc-common.c: Likewise.
7380         * configure.ac: Make sure c-family/ exists in the build directory.
7381         * configure: Regenerate.
7382         * Makefile.in: Update paths for moved files.  Regroup files per
7383         location and update dependencies.  Move generated_files down after
7384         ALL_GTFILES_H.
7385
7386         * config/spu/spu-c.c: Update paths for moved files.
7387         * config/mep/mep-pragma.c: Likewise.
7388         * config/darwin-c.c: Likewise.
7389         * config/i386/msformat-c.c: Likewise.
7390         * config/i386/i386-c.c: Likewise.
7391         * config/avr/avr-c.c: Likewise.
7392         * config/sol2-c.c: Likewise.
7393         * config/ia64/ia64-c.c: Likewise.
7394         * config/rs6000/rs6000-c.c: Likewise.
7395         * config/arm/arm.c: Likewise.
7396         * config/arm/arm-c.c: Likewise.
7397         * config/h8300/h8300.c: Likewise.
7398         * config/v850/v850-c.c: Likewise.
7399
7400         * config/t-darwin: Fix dependencies for moved files.
7401         * config/t-sol2: Fix dependencies for moved files.
7402         * config/mep/t-mep: Fix dependencies for moved files.
7403         * config/ia64/t-ia64: Fix dependencies for moved files.
7404         * config/rs6000/t-rs6000: Fix dependencies for moved files.
7405         * config/v850/t-v850: Fix dependencies for moved files.
7406         * config/v850/t-v850e: Fix dependencies for moved files.
7407
7408         * config/m32c/m32c-pragma.c
7409
7410         * po/exgettext: Look in c-family/ also.
7411
7412 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
7413
7414         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
7415         (mark_control_dependent_edges_necessary): Call it instead of marking
7416         the last statement manually.
7417         (propagate_necessity): Likewise.
7418
7419 2010-06-05  Jan Hubicka  <jh@suse.cz>
7420
7421         * basic-block.h (compute_dominance_frontiers): Updated.
7422         (compute_idf): Likewise.
7423
7424         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
7425         for dominance frontiers.
7426         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
7427         (insert_updated_phi_nodes_for): Likewise.
7428         (update_ssa): Likewise.
7429         * cfganal.c (compute_dominance_frontiers_1): Likewise.
7430         (compute_dominance_frontiers): Likewise.
7431         (compute_idf): Likewise.
7432         * df-problems.c (df_md_local_compute): Likewise.
7433
7434 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
7435
7436         * target.h (struct gcc_target): Add memory_move_cost field.
7437         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
7438         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
7439         * targhooks.c (default_memory_move_cost): New function.
7440         * targhooks.h (default_memory_move_cost): Declare function.
7441         * reload.h (memory_move_cost): Declare.
7442         (memory_move_secondary_cost): Change type of 'in' argument to bool.
7443         * reginfo.c (memory_move_cost): New function.
7444         (memory_move_secondary_cost): Change type of 'in' argument to bool.
7445         * ira.h (ira_memory_move_cost): Update comment.
7446         * ira.c: (ira_memory_move_cost): Update comment.
7447         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
7448         with memory_move_cost.
7449         * postreload.c (reload_cse_simplify_set): (Ditto.).
7450         * reload1.c (choose_reload_regs): (Ditto.).
7451         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
7452         (MEMORY_MOVE_COST):  Revise documentation.
7453
7454         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
7455         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
7456         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
7457         type of 'in' argument to bool.
7458         (TARGET_MEMORY_MOVE_COST): Define.
7459
7460 2010-06-05  Jan Hubicka  <jh@suse.cz>
7461
7462         * ipa-pure-const.c (propagate): Fix typo in handling of functions
7463         that cannot return.  Be more careful when merging the results with
7464         previously known ones.
7465
7466 2010-06-05  Matthias Klose  <doko@ubuntu.com>
7467
7468         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
7469         function to add the -iplugindir option.
7470         (find_plugindir_spec_function): Add new declaration and function.
7471         (static_spec_func): Use it for "find-plugindir".
7472
7473 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
7474
7475         PR c++/44361
7476         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
7477         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
7478         statement expression.
7479
7480 2010-06-05  Jan Hubicka  <jh@suse.cz>
7481
7482         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
7483         (df_rd_problem_data): Convert sparse_invalidated_by_call,
7484         dense_invalidated_by_call to bitmap head.
7485         (df_rd_alloc, df_rd_bb_local_compute_process_def,
7486         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
7487         df_rd_start_dump, df_lr_verify_transfer_functions,
7488         df_live_verify_transfer_functions, df_chain_create_bb,
7489         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
7490         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
7491         df_simulate_one_insn_forwards, df_md_alloc,
7492         df_md_bb_local_compute_process_def,
7493         df_md_bb_local_compute_process_def, df_md_local_compute,
7494         df_md_transfer_function df_md_free): Update.
7495
7496 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
7497
7498         PR c/44322
7499         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
7500         target type for ADDR_EXPR; require no changes to qualifiers except
7501         for function types.
7502         * c-tree.h (c_build_type_variant): Remove.
7503
7504 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
7505
7506         * genautomata.c (get_excl_set): Do work per element, not per char.
7507         (check_presence_pattern_sets): Similar.
7508         (check_absence_pattern_sets): Similar.
7509
7510 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
7511
7512         * genautomata.c (curr_state_pass_num): Delete.
7513         (min_issue_delay_pass_states): Delete.
7514         (min_issue_delay): Delete.
7515         (initiate_min_issue_delay_pass_states): Delete.
7516         (output_min_issue_delay_table): Compute min_issue_delay_vect
7517         using a breadth-first search variant.
7518         (output_tables): Don't call initiate_min_issue_delay_pass_states.
7519
7520 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
7521
7522         PR boostrap/44421
7523         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
7524         (df_byte_lr_bb_local_compute): Likewise.
7525
7526 2010-06-03  Jason Merrill  <jason@redhat.com>
7527
7528         Implement noexcept operator (5.3.7)
7529         * c-common.c (c_common_reswords): Add noexcept.
7530         * c-common.h (enum rid): Add RID_NOEXCEPT.
7531
7532 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
7533
7534         * config/darwin-driver.c (darwin_default_min_version): Use
7535         GCC-specific formats in diagnostics.
7536         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
7537         diagnostics.
7538         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
7539         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
7540         eval_spec_function, handle_braces, process_brace_body, main,
7541         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
7542         getenv_spec_function, compare_version_strings,
7543         version_compare_spec_function): Use GCC-specific formats in
7544         diagnostics.
7545
7546 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
7547
7548         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
7549         that operand 0 and operand 1 are equal.
7550         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
7551         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
7552         and operand 1 are equal.
7553         <default>: Ditto.  Remove ??? comment.
7554         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
7555         and operand 1 are equal.
7556         <default>: Ditto.  Remove ??? comment.
7557         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
7558         are equal.
7559         (*add<mode>_4) <default>: Ditto.
7560         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
7561
7562 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
7563
7564         * config/i386/i386-protos.h (ix86_print_operand): Declare.
7565         * config/i386/i386.c (ix86_print_operand): Make non-static.
7566         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
7567         * output.h (output_operand): Declare.
7568         * final.c (output_operand): Make non-static.
7569
7570 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
7571
7572         PR rtl-optimization/44013
7573         * sched-deps.c (add_dependence_list_and_free): Don't free lists
7574         when processing debug insns.
7575
7576         PR debug/41371
7577         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
7578         recursing.  Check that recursion is bounded.  Rename inner var
7579         to avoid hiding incoming argument.
7580
7581 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
7582
7583         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
7584         operands[2] == 255.
7585         (*addqi_3): Ditto.
7586         (*addqi_4): Ditto.
7587         (*addqi_5): Ditto.
7588         (*addqi_ext_1_rex64): Ditto.
7589         (*addqi_ext_1): Ditto.
7590
7591         (*addqi_4): Check for incdec_operand in QImode.
7592
7593         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
7594         using SWI mode iterator.
7595         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
7596         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
7597         mode iterator.
7598         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
7599         using SWI mode iterator.
7600
7601 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7602
7603         PR c/25880
7604         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
7605         * c-format.c (gcc_diag_flag_specs): Add hash.
7606         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
7607         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
7608         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
7609         pp_c_cv_qualifiers. Handle qualifiers spelling here.
7610         (pp_c_type_qualifier_list): Call the function above.
7611         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
7612         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
7613         (WARN_FOR_QUALIFIERS): New macro.
7614         (convert_for_assignment): Use it.
7615
7616 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
7617
7618         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
7619
7620 2010-06-04  Jan Hubicka  <jh@suse.cz>
7621
7622         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
7623         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
7624         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
7625         DF_BYTE_LR_OUT): Update for embedded bitmaps.
7626         * fwprop.c (single_def_use_enter_block): Likewise.
7627         * ddg.c (create_ddg_dep_from_intra_loop_link,
7628         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
7629         * loop-iv.c (latch_dominating_def): Likewise.
7630         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
7631         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
7632         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
7633         df_rd_transfer_function, df_rd_top_dump,
7634         df_rd_bottom_dump): Update.
7635         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
7636         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
7637         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
7638         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
7639         df_lr_verify_solution_start, df_lr_verify_solution_end,
7640         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
7641         df_live_free_bb_info, df_live_alloc, df_live_reset,
7642         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
7643         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
7644         df_live_verify_solution_start, df_live_verify_solution_end,
7645         df_live_verify_transfer_functions, df_chain_create_bb,
7646         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
7647         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
7648         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
7649         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
7650         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
7651         df_byte_lr_transfer_function, df_byte_lr_top_dump,
7652         df_byte_lr_bottom_dump, df_create_unused_note,
7653         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
7654         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
7655         df_md_transfer_function, df_md_init, df_md_confluence_0,
7656         df_md_confluence_n,
7657         df_md_top_dump, df_md_bottom_dump): Update.
7658         (struct df_lr_problem_data): Embedd bitmap headers.
7659
7660 2010-06-04  Jan Hubicka  <jh@suse.cz>
7661
7662         * dce.c (dce_process_block): Do not re-scan already marked
7663         instructions.
7664
7665 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
7666
7667         PR rtl-optimization/39871
7668         PR rtl-optimization/40615
7669         PR rtl-optimization/42500
7670         PR rtl-optimization/42502
7671         * ira.c (init_reg_equiv_memory_loc: New function.
7672         (ira): Call it twice.
7673         * reload.h (calculate_elim_costs_all_insns): Declare.
7674         * ira-costs.c: Include "reload.h".
7675         (regno_equiv_gains): New static variable.
7676         (init_costs): Allocate it.
7677         (finish_costs): Free it.
7678         (ira_costs): Call calculate_elim_costs_all_insns.
7679         (find_costs_and_classes): Take estimated elimination costs
7680         into account.
7681         (ira_adjust_equiv_reg_cost): New function.
7682         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
7683         * reload1.c (init_eliminable_invariants, free_reg_equiv,
7684         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
7685         (elim_bb): New static variable.
7686         (reload): Move code out of here into init_eliminable_invariants and
7687         free_reg_equiv.  Call them.
7688         (calculate_elim_costs_all_insns): New function.
7689         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
7690         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
7691         but call note_reg_elim_costly if we turned a valid memory address
7692         into an invalid one.
7693         * Makefile.in (ira-costs.o): Depend on reload.h.
7694
7695 2010-06-04  Julian Brown  <julian@codesourcery.com>
7696
7697         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
7698         for pool ranges.
7699
7700 2010-06-04  Richard Guenther  <rguenther@suse.de>
7701
7702         PR lto/41584
7703         * cgraph.h (struct varpool_node): Add lto_file_data field.
7704         * lto-cgraph.c (input_varpool_node): Initialize it.
7705
7706 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
7707
7708         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
7709         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
7710         predicate in "type" attribute calculation.
7711         (*addsi_1_zext): Ditto.
7712         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
7713         (*addsi_2_zext): Ditto.
7714         (*add<mode>_3): Ditto.
7715         (*addsi_3_zext): Ditto.
7716         (*add<mode>_5): Ditto.
7717
7718 2010-06-03  Jan Hubicka  <jh@suse.cz>
7719
7720         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
7721         of bitmap_bit_p.
7722         * cfganal.c (compute_dominance_frontiers_1): Likewise.
7723
7724 2010-06-03  Jan Hubicka  <jh@suse.cz>
7725
7726         * df-problems.c (df_create_unused_note, df_note_bb_compute):
7727         micro-optimize the checks when to add new note.
7728
7729 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
7730
7731         * final.c (output_asm_insn): Call
7732         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
7733         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
7734         (output_address): Call targetm.asm_out.print_operand_address.
7735         Update comments.
7736         * target.h (struct gcc_target): Add print_operand,
7737         print_operand_address, and print_operand_punct_valid_p fields.
7738         * targhooks.h (default_print_operand): Declare.
7739         (default_print_operand_address): Declare.
7740         (default_print_operand_punct_valid_p): Declare.
7741         * targhooks.c (default_print_operand): Define.
7742         (default_print_operand_address): Define.
7743         (default_print_operand_punct_valid_p): Define.
7744         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
7745         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
7746         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
7747         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
7748         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
7749         * vmsdbgout.c (addr_const_to_string): Update comment.
7750         * config/i386/i386.c (print_operand): Rename to...
7751         (ix86_print_operand): ...this.  Make static.
7752         (print_operand_address): Rename to...
7753         (ix86_print_operand_address): ...this.  Make static.  Call
7754         ix86_print_operand instead of PRINT_OPERAND.
7755         (ix86_print_operand_punct_valid_p): New function.
7756         (TARGET_PRINT_OPERAND): Define.
7757         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7758         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7759         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
7760         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7761         (PRINT_OPERAND): Delete.
7762         (PRINT_OPERAND_ADDRESS): Delete.
7763         * config/i386/i386-protos.h (print_operand): Delete prototype.
7764         (print_operand_address): Delete prototype.
7765
7766 2010-06-03  Richard Guenther  <rguenther@suse.de>
7767
7768         PR tree-optimization/44403
7769         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
7770         Preserve pointer qualifiers.
7771         (vect_create_data_ref_ptr): Likewise.
7772
7773 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
7774
7775         PR c++/44294
7776         * defaults.h (MAX_FIXED_MODE_SIZE): New.
7777
7778         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
7779
7780 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
7781
7782         PR debug/44375
7783         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
7784         return false if merging the bbs would lead to goto_locus
7785         location being lost from the IL.
7786
7787 2010-06-03  Jan Hubicka  <jh@suse.cz>
7788             Jakub Jelinek  <jakub@redhat.com>
7789
7790         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
7791         set->regs[i] is NULL or has just one entry.
7792
7793 2010-06-03  Jan Hubicka  <jh@suse.cz>
7794
7795         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
7796         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
7797
7798 2010-06-03  Paul Brook  <paul@codesourcery.com>
7799
7800         * config/arm/arm.c (FL_TUNE): Define.
7801         (arm_default_cpu, arm_cpu_select): Remove.
7802         (all_cores): Populate core field.
7803         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
7804         (arm_find_cpu): New function.
7805         (arm_handle_option): Lookup cpu/architecture names.
7806         (arm_override_options): Cleanup mcpu/march/mtune handling.
7807         (arm_file_start): Ditto.
7808
7809 2010-06-03  Alan Modra  <amodra@gmail.com>
7810
7811         PR target/44169
7812         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
7813         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
7814         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
7815         (rs6000_emit_load_toc_table): Likewise.
7816
7817 2010-06-02  Jan Hubicka  <jh@suse.cz>
7818
7819         * passes.c (init_optimization_passes): Put ipa reference
7820         after ipa pure-const.
7821
7822 2010-06-02  Jan Hubicka  <jh@suse.cz>
7823
7824         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
7825         calls_read_all and calls_write_all.
7826         (get_reference_optimization_summary): Fix formatting.
7827         (is_proper_for_analysis): Check that decl is not readonly.
7828         (propagate_bits): Check CONST/PURE/noreturn flags.
7829         (ipa_init): Move all_module_statics to optimization_summary_obstack.
7830         (analyze_function): Ignore indirect edges.
7831         (copy_global_bitmap): For all module statics, do nothing.
7832         (generate_summary): Do not print calls_read_all/calls_write_all.
7833         (read_write_all_from_decl): Take node as argument; check
7834         cgraph_node_cannot_return.
7835         (propagate): Reorganize read_all/write_all computation;
7836         check indirect edges; check ecf flags; use all_module_statics
7837         in the results; do not free all_module_statics.
7838         (stream_out_bitmap): Handle all_module_statics.
7839         (ipa_reference_write_optimization_summary): Likewise; use
7840         varpool/cgraph encoders to get boundaries.
7841         (ipa_reference_read_optimization_summary): Read in all_module_statics;
7842         use it when possible.
7843
7844 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7845
7846         PR target/44218
7847         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
7848         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
7849
7850         * doc/extend.texi (powerpc builtins): Document vec_recip,
7851         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
7852
7853         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
7854         (rs6000_emit_swrsqrt): Ditto.
7855         (rs6000_emit_swdivsf): Delete.
7856         (rs6000_emit_swdivdf): Ditto.
7857         (rs6000_emit_swrsqrtsf): Ditto.
7858
7859         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
7860         describe the reciprocal estimate support for each type.
7861         (recip_options): Map -mrecip=<opt> into option bits.
7862         (gen_2arg_fn_t): New typedef for binary rtx gen function.
7863         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
7864         reciprocal estimate instructions.
7865         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
7866         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
7867         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
7868         cost information if -mdebug=cost or -mdebug=reg.
7869         (rs6000_override_options): Set -mrecip-precision for power6, and
7870         power7 machines.  If -mvsx or -mdfp, enable various options that
7871         came in previous instruction set ISAs, unless the option was
7872         explicitly disabled by the command line option.  Parse
7873         -mrecip=<opt> options.
7874         (rs6000_builtin_vectorized_function): Add support for vectorizing
7875         the reciprocal estimate builtins and expansions.
7876         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
7877         (bdesc_2arg): Add reciprocal estimate builtins.
7878         (bdesc_1arg): Add reciprocal square root estimate builtins.
7879         (rs6000_expand_builtin): Rewrite to use a switch statement,
7880         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
7881         (rs6000_init_builtins): Create declarations for reciprocal
7882         estimate builtins.
7883         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
7884         sized, prefer traditional floating point registers, if integer
7885         vector types, prefer altivec registers.  Don't actually look at
7886         the memory address any more.
7887         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
7888         builtins.
7889         (rs6000_load_constant_and_splat): New helper function to load up
7890         the constant for reciprocal estimate instructions.
7891         (rs6000_emit_madd): New helper function for generating
7892         multiply/add type instructions, based on the current switches.
7893         (rs6000_emit_msub): Ditto.
7894         (rs6000_emit_mnsub): Ditto.
7895         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
7896         replace a divide with a reciprocal estimate and fixup, adding
7897         support for machines with high precision and vectors.
7898         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
7899         low precision machines.
7900         (rs6000_emit_swdiv): New common function to be called to replace a
7901         division with reciprocal estimate and fixup.
7902         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
7903         for double and vector types.  Add support for high precision machines.
7904
7905         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
7906         the reciprocal estimate instructions can be generated.
7907         (TARGET_FRE): Ditto.
7908         (TARGET_FRSQRTES): Ditto.
7909         (TARGET_FRSQRTE): Ditto.
7910         (RS6000_RECIP_*): New macros for reciprocal estimate support.
7911
7912         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
7913         square root estimate on vectors.
7914         (re<mode>2): New insn for reciprocal division estimate on vectors.
7915
7916         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
7917         New builtin.
7918         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
7919         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
7920         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
7921         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
7922         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
7923         (RS6000_BUILTIN_RSQRT): Ditto.
7924         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
7925         floating point builtin.
7926
7927         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7928         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
7929         __RECIP_PRECISION__ based on the command line switches.
7930         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
7931
7932         * config/rs6000/rs6000.opt (-mrecip): Document add support for
7933         replacing division instructions with reciprocal estimate and fixup.
7934         (-mrecip=<opt>): New option.
7935         (-mrecip-precision): Ditto.
7936
7937         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
7938         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
7939         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
7940         precision scalar.
7941
7942         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
7943         (UNSPEC_VREFP): Ditto.
7944         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
7945         conterparts with regard to support of -mno-fused-madd and -ffast-math.
7946         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
7947         reciprocal estimate instructions to be generated.
7948         (altivec_vrefp): Ditto.
7949
7950         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
7951         estimate support.
7952         (rreg): New mode attribute for reciprocal estimate support.
7953         (recip<mode>3): New insn for division using reciprocal estimate
7954         and fixup builtins.
7955         (divide define_split): New define_split to convert floating point
7956         division to use reciprocal estimate if the user used the
7957         appropriate options and the split is run when we can add new
7958         pseudo registers for the fixup.
7959         (rsqrt<mode>2): New insn for reciprocal square root support.
7960         (recipsf3): Move into recip<mode>3.
7961         (recipdf3): Ditto.
7962         (fres): Use TARGET_FRES.
7963         (rsqrtsf2): Move into rsqrt<mode>2.
7964         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
7965         (copysignsf3): Add support for VSX.
7966         (fred): Use TARGET_FRE.
7967         (fred_fpr): Ditto.
7968         (rsqrtdf_internal1): New function for frsqrte instruciton.
7969
7970         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
7971         (vec_rsqrt): Ditto.
7972
7973 2010-06-03  Richard Guenther  <rguenther@suse.de>
7974
7975         PR middle-end/44291
7976         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
7977         (set_user_assembler_libfunc): Likewise.
7978
7979 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
7980
7981         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
7982         defaults.h.
7983         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
7984         to defaults.h
7985         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
7986         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
7987         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
7988         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
7989         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
7990         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
7991         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
7992         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
7993         * defaults.h: Updated for above mentioned changes.
7994
7995 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
7996
7997         * c-common.c: Remove header include of tm_p.h.
7998         * Makefile.in (c-common.o): Remove TM_P_H dependency.
7999
8000 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
8001
8002         * tree.h (struct tree_decl_map): New type.
8003         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
8004         (tree_decl_map_hash): New prototype.
8005         (debug_expr_for_decl, value_expr_for_decl): Change into
8006         tree_decl_map hashtab from tree_map.
8007         (init_ttree): Adjust initialization.
8008         (tree_decl_map_hash): New function.
8009         (decl_debug_expr_lookup, decl_debug_expr_insert,
8010         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
8011
8012 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8013
8014         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
8015         linker emulations.
8016         * configure: Regenerate.
8017         * config.in: Regenerate.
8018
8019         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
8020         (X86_64_EMULATION): Define.
8021         (TARGET_LD_EMULATION): Use them.
8022
8023         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
8024         (SPARC64_EMULATION): Define.
8025         (LINK_ARCH_SPEC): Use them.
8026
8027 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
8028
8029         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
8030         smallest_mode_for_size for computing the precision types of new
8031         graphite IVs.  Do not call lang_hooks.types.type_for_size.
8032
8033 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
8034
8035         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
8036         information.
8037         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
8038
8039 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
8040
8041         PR middle-end/44363
8042         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
8043         return false instead.
8044
8045 2010-06-02  Jan Hubicka  <jh@suse.cz>
8046
8047         PR middle-end/44295
8048         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
8049         create new cgraph node to check callee.
8050
8051 2010-06-02  Richard Guenther  <rguenther@suse.de>
8052
8053         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
8054
8055 2010-06-02  Richard Guenther  <rguenther@suse.de>
8056
8057         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
8058         (lto_wrapper_cleanup): ... this.  Do not exit.
8059         (fatal): Adjust.  Exit here.
8060         (fatal_perror): Likewise.
8061         (fatal_signal): New function.
8062         (main): Set up signal handlers to cleanup temporary files.
8063         * Makefile.in (lto-wrapper.o): Adjust dependencies.
8064
8065 2010-06-02  Richard Guenther  <rguenther@suse.de>
8066
8067         PR tree-optimization/44377
8068         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
8069
8070 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8071
8072         * config/s390/2097.md (z10_fhex): Remove insn reservation.
8073         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
8074         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
8075         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
8076         instruction.
8077         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
8078
8079 2010-06-02  Jan Hubicka  <jh@suse.cz>
8080
8081         * bitmap.c (bitmap_descriptor): Add search_iter.
8082         (bitmap_find_bit): Increment it.
8083         (print_statistics): Print it.
8084
8085 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
8086
8087         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
8088         instead of gimple_build_call_vec.  Delete unnecessary local variable.
8089
8090 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
8091
8092         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
8093         change from yesterday.
8094
8095 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
8096
8097         * c-ada-spec.c: Clean up redundant includes.
8098
8099 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
8100
8101         * gimplify.c: Do not include except.h and optabs.h.
8102         (gimplify_body): Do not initialize RTL profiling.
8103         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
8104         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
8105         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
8106         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
8107         langhooks.h.
8108
8109         * tree-pretty-print.h: Include pretty-print.h.
8110         * gimple-pretty-print.h: Include pretty-print.h.
8111
8112         * tree-pretty-print.c: Do not include diagnostic.h.
8113         * tree-vrp.c: Likewise.
8114         * tree-tailcall.c: Likewise
8115         * tree-scalar-evolution.c: Likewise
8116         * tree-ssa-dse.c: Likewise
8117         * tree-chrec.c: Likewise
8118         * tree-ssa-sccvn.c: Likewise
8119         * tree-ssa-copyrename.c: Likewise
8120         * tree-nomudflap.c: Likewise
8121         * tree-call-cdce.c: Likewise
8122         * tree-stdarg.c: Likewise
8123         * tree-ssa-math-opts.c: Likewise
8124         * tree-nrv.c: Likewise
8125         * tree-ssa-sink.c: Likewise
8126         * tree-browser.c: Likewise
8127         * tree-ssa-loop-ivcanon.c: Likewise
8128         * tree-ssa-loop.c: Likewise
8129         * tree-parloops.c: Likewise
8130         * tree-ssa-address.c: Likewise
8131         * tree-ssa-ifcombine.c: Likewise
8132         * tree-if-conv.c: Likewise
8133         * tree-data-ref.c: Likewise
8134         * tree-affine.c: Likewise
8135         * tree-ssa-phiopt.c: Likewise
8136         * tree-ssa-coalesce.c: Likewise
8137         * tree-ssa-pre.c: Likewise
8138         * tree-ssa-live.c: Likewise
8139         * tree-predcom.c: Likewise
8140         * tree-ssa-forwprop.c: Likewise
8141         * tree-ssa-dce.c: Likewise
8142         * tree-ssa-ter.c: Likewise
8143         * tree-ssa-loop-prefetch.c: Likewise
8144         * tree-optimize.c: Likewise
8145         * tree-ssa-phiprop.c: Likewise
8146         * tree-object-size.c: Likewise
8147         * tree-outof-ssa.c: Likewise
8148         * tree-ssa-structalias.c: Likewise
8149         * tree-switch-conversion.c: Likewise
8150         * tree-ssa-reassoc.c: Likewise
8151         * tree-ssa-operands.c: Likewise
8152         * tree-vectorizer.c: Likewise
8153         * tree-vect-data-refs.c: Likewise
8154         * tree-vect-generic.c: Likewise
8155         * tree-vect-stmts.c: Likewise
8156         * tree-vect-patterns.c: Likewise
8157         * tree-vect-slp.c: Likewise
8158         * tree-vect-loop.c: Likewise
8159         * tree-ssa-loop-ivopts.c: Likewise
8160         * tree-ssa-loop-im.c: Likewise
8161         * tree-ssa-loop-niter.c: Likewise
8162         * tree-ssa-loop-unswitch.c: Likewise
8163         * tree-ssa-loop-manip.c: Likewise
8164         * tree-ssa-loop-ch.c: Likewise
8165         * tree-dump.c: Likewise
8166         * tree-complex.c: Likewise
8167
8168         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
8169         * tree-ssa-uninit.c: Likewise
8170         * tree-ssa-threadupdate.c: Likewise
8171         * tree-ssa-uncprop.c: Likewise
8172         * tree-ssa-ccp.c: Likewise
8173         * tree-ssa-dom.c: Likewise
8174         * tree-ssa-propagate.c: Likewise
8175         * tree-ssa-alias.c: Likewise
8176         * tree-dfa.c: Likewise
8177         * tree-cfgcleanup.c: Likewise
8178         * tree-sra.c: Likewise
8179         * tree-ssa-copy.c: Likewise
8180         * tree-ssa.c: Likewise
8181         * tree-profile.c: Likewise
8182         * tree-cfg.c: Likewise
8183         * tree-ssa-threadedge.c: Likewise
8184         * tree-vect-loop-manip.c: Likewise
8185
8186         * tree-inline.c: Do not include diagnostic.h and expr.h.
8187         Include rtl.h.
8188         (copy_decl_for_dup_finish): Do not use NULL_RTX.
8189
8190         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
8191         * tree-loop-distribution.c: Likewise.
8192
8193 2010-06-01  Jan Hubicka  <jh@suse.cz>
8194
8195         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
8196
8197 2010-06-01  Jan Hubicka  <jh@suse.cz>
8198
8199         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
8200         remove return value.
8201         (split_bbs_on_noreturn_calls) .... here.
8202         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
8203         * tree-flow.h (fixup_noreturn_call): New.
8204
8205 2010-06-01  Jan Hubicka  <jh@suse.cz>
8206
8207         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
8208
8209 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
8210
8211         * tree.h (build_nt_call_list): Delete.
8212         * tree.c (build_nt_call_list): Delete.
8213
8214 2010-06-01  Jan Hubicka  <jh@suse.cz>
8215
8216         * fwprop.c: Make emit-rtl.h include last.
8217         * rtlanal.c: Include emit-rtl.h.
8218         * genautomata.c: Output emit-rtl include into insn-automata.c
8219         * df-scan.c: Include emit-rtl.h.
8220         * haifa-sched.c: Indlude emit-rtl.h.
8221         * mode-switching.c: Indlude emit-rtl.h.
8222         * graph.c: Indlude emit-rtl.h.
8223         * sel-sched.c: Include emit-rtl.h.
8224         * sel-sched-ir.c: Include emit-rtl.h.
8225         * ira-build.c: Include emit-rtl.h.
8226         * emit-rtl.c: (first_insn, last_insn): Remove defines.
8227         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
8228         Move to emit-rtl.h.
8229         (set_new_first_and_last_insn, get_last_insn_anywhere,
8230         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
8231         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
8232         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
8233         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
8234         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
8235         Use accessor functions.
8236         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
8237          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
8238         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
8239         mem_expr_equal_p): Move here from rtl.h.
8240         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
8241         Move here from emit-rtl.c; make inline.
8242         * cfglayout.h: Include emit-rtl.h.
8243         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
8244          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
8245         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
8246         mem_expr_equal_p, get_insns, set_first-insn,
8247         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
8248         * reg-stack.c: Include emit-rtl.h.
8249         * dce.c: Likewise.
8250
8251 2010-06-01  Jan Hubicka  <jh@suse.cz>
8252
8253         * cgraph.h (tree_function_versioning): Update prototype.
8254         (cgraph_function_versioning): Update prototype.
8255         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
8256         bitmap.
8257         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
8258         (cgraph_materialize_clone, save_inline_function_body): Update use of
8259         tree_function_versioning.
8260         * tree-inline.c (copy_bb): Look for previous copied block to link
8261         after; fix debug output.
8262         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
8263         (copy_body): Likewise.
8264         (expand_call_inline): Update use of copy_body.
8265         (tree_function_versioning): Update use of copy body; accept
8266         blocks_to_copy and new_entry.
8267
8268 2010-06-01  Jan Hubicka  <jh@suse.cz>
8269
8270         * gegenrtl.c: Remove unnecesary prototypes.
8271         (gendecl): Remove.
8272         (gendef): Produce static inline.
8273         (gencode): Remove.
8274         (main): Do not decode parameters; generate header only.
8275         * Makefile.in (genrtl.c): Remove.
8276
8277 2010-06-01  Jan Hubicka  <jh@suse.cz>
8278
8279         * tree-switch-conversion.c (build_one_array): Make it readonly.
8280
8281 2010-06-01  Richard Guenther  <rguenther@suse.de>
8282
8283         * optabs.c (init_optabs): Guard all accesses to reinit.
8284         * ipa-pure-const.c (propagate): Fix another typo.
8285         * opts.c (common_handle_option): Split assignment to bool.
8286         * c-opts.c (c_common_handle_option): Likewise.
8287
8288 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
8289             Matthew Gingell  <gingell@adacore.com>
8290
8291         * doc/invoke.texi: Mention -fdump-ada-spec.
8292         * tree-dump.c (dump_files): Add ada-spec.
8293         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
8294         * tree-pass.h (tree_dump_index): Add TDI_ada.
8295         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
8296         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
8297         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
8298         * c-decl.c: Include c-ada-spec.h.
8299         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
8300         functions.
8301         (c_write_global_declarations): Add handling of -fdump-ada-spec.
8302         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
8303         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
8304         * c-ada-spec.h, c-ada-spec.c: New files.
8305
8306 2010-06-01  Richard Guenther  <rguenther@suse.de>
8307
8308         PR lto/43853
8309         * ipa-pure-const.c (get_function_state): Hand back varying state
8310         if we do not have one.
8311         (has_function_state): New function.
8312         (duplicate_node_data): Adjust.
8313         (remove_node_data): Likewise.
8314         (pure_const_write_summary): Likewise.
8315         (propagate): Likewise.  Fix typo.
8316
8317 2010-06-01  Jan Hubicka  <jh@suse.cz>
8318
8319         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
8320         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
8321         (execute_all_ipa_transforms): Do not play with the states.
8322
8323 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
8324
8325         * config/arm/t-linux-androideabi: New.
8326         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
8327
8328 2010-06-01  Jan Hubicka  <jh@suse.cz>
8329
8330         * tree-inline.c (estimate_num_insns): For stdarg functions look
8331         into call statement to count cost of argument passing.
8332
8333 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
8334
8335         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
8336         argument for fprintf.
8337         (ix86_output_addr_diff_elt): Likewise.
8338         (x86_function_profiler): Likewise.
8339         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
8340         (LPREFIX): Likewise.
8341         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8342
8343 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
8344
8345         PR target/44338
8346         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
8347         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
8348         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
8349         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
8350         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
8351         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
8352         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
8353         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
8354         TARGET_FUSED_MADD.
8355
8356 2010-05-31  Jan Hubicka  <jh@suse.cz>
8357
8358         * tree.h (tree_range_check_failed): Declare noreturn.
8359
8360 2010-05-31  Jan Hubicka  <jh@suse.cz>
8361
8362         * gimple.c (gimple_call_builtin_p): New function.
8363         * gimple.h (gimple_call_builtin_p): Declare.
8364         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
8365         to exit.
8366         (execute_warn_function_return): BUILT_IN_RETURN is return.
8367         (split_critical_edges): Return edges are not critical.
8368         (is_ctrl_altering_stmt): Builtin_in_return is altering.
8369         (gimple_verify_flow_info): Handle built_in_return.
8370         (execute_warn_function_return): Handle built_in_return.
8371         * ipa-pure-const.c (check_call): Ignore builtin_return.
8372
8373 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
8374
8375         PR middle-end/44337
8376         * expr.c (expand_assignment): Don't store anything for out-of-bounds
8377         array accesses with non-MEM.
8378
8379         PR tree-optimization/44182
8380         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
8381         newly needs to end a bb is followed by debug stmts, instead return
8382         true from the function at the end.
8383         (maybe_move_debug_stmts_to_successors): New function.
8384         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
8385
8386 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
8387
8388         PR target/44161
8389         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
8390
8391 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
8392
8393         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
8394         for nested functions in non-optimized compilation.
8395
8396 2010-05-31  Richard Guenther  <rguenther@suse.de>
8397
8398         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
8399
8400 2010-05-30  Jan Hubicka  <jh@suse.cz>
8401
8402         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
8403
8404 2010-05-30  Richard Guenther  <rguenther@suse.de>
8405
8406         PR lto/42975
8407         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
8408         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
8409         no longer needed.
8410
8411 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
8412
8413         * config/darwin.c (output_objc_section_asm_op): Add comment.
8414         (name_needs_quotes): Add '_' to list of valid comment chars.
8415         (machopic_output_function_base_name): Remove unneeded quotes.
8416         (darwin_encode_section_info): Adjust asm whitespace.
8417         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
8418         (ASM_OUTPUT_LOCAL): Ditto.
8419         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
8420         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
8421         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
8422
8423 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
8424
8425         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
8426         RS6000_OUTPUT_BASENAME unconditionally.
8427         (rs6000_output_function_epilogue): Likewise.
8428
8429 2010-05-30  Jan Hubicka  <jh@suse.cz>
8430
8431         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
8432         nodes.
8433
8434 2010-05-30  Richard Guenther  <rguenther@suse.de>
8435
8436         * tree-cfg.c (verify_gimple_assign_single): Implement
8437         verification for COND_EXPR rhs.
8438
8439 2010-05-30  Jan Hubicka  <jh@suse.cz>
8440
8441         * cgraph.h (cgraph_dump_file): Declare.
8442         * cgraphunit.c (cgraph_dump_file): Export.
8443         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
8444
8445 2010-05-30  Jan Hubicka  <jh@suse.cz>
8446
8447         * dwarf2out.c (reference_to_unused,
8448         premark_types_used_by_global_vars_helper): Avoid creation of new
8449         varpool nodes.
8450
8451 2010-05-30  Jan Hubicka  <jh@suse.cz>
8452
8453         * cgraph.h (cgraph_node_cannot_return,
8454         cgraph_edge_cannot_lead_to_return): New functions.
8455         * cgraph.c (cgraph_node_cannot_return,
8456         cgraph_edge_cannot_lead_to_return): Use them.
8457         * ipa-pure-const.c (pure_const_names): New static var.
8458         (check_call): Handle calls not leading to return.
8459         (pure_const_read_summary): Dump info read.
8460         (propagate): Dump info about propagation process; ignore side effects
8461         of functions not leading to exit; fix handling of pure functions.
8462
8463 2010-05-30  Jan Hubicka  <jh@suse.cz>
8464
8465         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
8466         for tail call epilogues.
8467
8468 2010-05-30  Jan Hubicka  <jh@suse.cz>
8469
8470         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
8471         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
8472         dump files.
8473
8474 2010-05-29  Jan Hubicka  <jh@suse.cz>
8475
8476         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
8477         node; remove references in node we no longer keep in cgrpah but need
8478         body of.
8479
8480 2010-05-29  Jan Hubicka  <jh@suse.cz>
8481
8482         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
8483
8484 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8485
8486         PR target/44165
8487         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
8488
8489 2010-05-29  Jan Hubicka  <jh@suse.cz>
8490
8491         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
8492         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
8493         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
8494         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
8495         debug_names_replaced_by, debug_update_ssa): Likewise.
8496         * sbitmap.c (debug_sbitmap): Likewise.
8497         * genrecog.c (debug_decision, debug_decision_list): Likewise.
8498         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
8499         debug_tree_chain): Likewise.
8500         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
8501         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
8502         * optabs.c  (debug_optab_libfuncs): Likewise.
8503         (verify_loop_closed_ssa): Likewise.
8504         * value-prof.c (verify_histograms): Likewise.
8505         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
8506         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
8507         * cfghooks.c (verify_flow_info): Likewise.
8508         * fold-const.c (debug_fold_checksum): Likewise.
8509         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
8510         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
8511         Likewise.
8512         * omega.c (debug_omega_problem): Likewise.
8513         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
8514         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
8515         * dominance.c (verify_dominators, debug_dominance_info,
8516         debug_dominance_tree): Likewise.
8517         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
8518         * df_regno_debug, df_ref_debug,
8519         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
8520         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
8521         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
8522         * sel-sched.c (debug_state): Likewise.
8523         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
8524         Likewise.
8525         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
8526         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
8527         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
8528         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
8529         Likewise.
8530         * c-pretty-print.c (debug_c_tree): Likewise.
8531         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
8532         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
8533         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
8534         * ebitmap.c (debug_ebitmap): Likewise.
8535         * function.c (debug_find_var_in_block_tree): Likewise.
8536         * print-rtl.c (debug_rtx): Likewise.
8537         (debug_rtx_count): Likewise.
8538         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
8539         * stor-layout.c (debug_rli): Likewise.
8540         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
8541         * tree-data-ref.c (debug_data_references,
8542         debug_data_dependence_relations, debug_data_reference,
8543         debug_data_dependence_relation, debug_rdg_vertex,
8544         debug_rdg_component, debug_rdg): Likewise.
8545         * tree-affine.c (debug_aff): Likewise.
8546         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
8547         Likewise.
8548         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
8549         * emit-rtl.c (verify_rtl_sharing): Likewise.
8550         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
8551         debug_value_expressions): Likewise.
8552         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
8553         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
8554         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
8555         * cfglayout.c (verify_insn_chain): Likewise.
8556         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
8557         debug_clast_stmt, debug_generated_program): Likewise.
8558         * ggc-page.c (debug_print_page_list): Likewise.
8559         * tree-ssa-ter.c (debug_ter): Likewise.
8560         * graphite-dependences.c (debug_pddr): Likewise.
8561         * sched-deps.c (debug_ds): Likewise.
8562         * tree-ssa.c (verify_ssa): Likewise.
8563         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
8564         debug_scattering_functions, debug_iteration_domains, debug_pdr,
8565         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
8566         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
8567         * tree-inline.c (debug_find_tree): Likewise.
8568         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
8569         debug_ppl_powerset_matrix): Likewise.
8570         * var-tracking.c (debug_dv): Likewise.
8571         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
8572         * cfgloop.c (verify_loop_structure): Likewise.
8573         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
8574         * c-common.c (verify_sequence_points): Likewise.
8575         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
8576         debug_candidates, debug_rgn_dependencies): Likewise.
8577         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
8578         * debug_constraint_graph, debug_solution_for_var,
8579         debug_sa_points_to_info): Likewise.
8580         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
8581         Likewie.
8582         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
8583         debug_loops, debug_loop, debug_loop_num): Likewise.
8584         * passes.c (debug_pass): Likewise.
8585         (dump_properties): Likewise; add cfglayout property.
8586         (debug_properties): Likewise.
8587         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
8588         * varpool.c (debug_varpool): Likewise.
8589         * regcprop.c (debug_value_data): Likewise.
8590         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
8591         debug_immediate_uses_for): Likewise.
8592
8593 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
8594
8595         PR bootstrap/44315
8596         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
8597         Filter out insn-flags.h.
8598
8599 2010-05-29  Jan Hubicka  <jh@suse.cz>
8600
8601         * cgraph.h (struct varpool_node_set_def,
8602         struct cgraph_node_set_def): Remove unused AUX pointer.
8603         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
8604         VEC_empty macro.
8605
8606 2010-05-29  Jan Hubicka  <jh@suse.cz>
8607
8608         PR middle-end/44324
8609         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
8610
8611 2010-05-29  Richard Guenther  <rguenther@suse.de>
8612
8613         * lto-streamer.c (cached_bp): New global variable.
8614         (bitpack_create): Return the cached bitpack, if available.
8615         (bitpack_delete): Clear and cache the bitpack, if appropriate.
8616         (bp_pack_value): Remove redundant asserts.
8617
8618 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
8619
8620         PR middle-end/44306
8621         * tree-if-conv.c (is_true_predicate): New.
8622         (is_predicated): Use is_true_predicate.
8623         (add_to_predicate_list): Same.  Do not use unshare_expr.
8624         (add_to_dst_predicate_list): Same.
8625
8626 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
8627
8628         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
8629         field on edges.
8630         (predicate_bbs): Same.
8631         (clean_predicate_lists): Same.
8632         (find_phi_replacement_condition): Do not AND the predicate from
8633         edge->aux.
8634
8635 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
8636
8637         PR bootstrap/44315
8638         * Makefile.in (build/gencondmd.o): Add a missing `\'.
8639
8640 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8641
8642         PR target/44261
8643         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
8644         (negdf2): Adjust expander pattern and use negdf2_slow.
8645         (negsf2): Likewise.
8646
8647 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
8648
8649         * basic-block.h (struct control_flow_graph): Move last_label_uid field
8650         up.
8651         * df.h (struct df_base_ref): Move regno field up.
8652         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
8653         * expr.h (struct separate_ops): Move location field up.
8654         * optabs.h (struct optab_d): Move libcall_basename field down.
8655         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
8656         * config/i386/i386.h (struct machine_function): Convert call_abi field
8657         into a bitfield.  Move cfa field to the end of the structure.
8658
8659 2010-05-29  Jan Hubicka  <jh@suse.cz>
8660
8661         * varpool.c (varpool_get_node): Fix lookup.
8662
8663 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
8664
8665         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
8666         RTL specific prototypes with #ifdef RTX_CODE.
8667         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
8668         * config/spu/t-spu-elf: Fix dependencies.
8669
8670         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
8671
8672 2010-05-29  Mike Stump  <mikestump@comcast.net>
8673
8674         PR bootstrap/44315
8675         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
8676         TM_H when building to avoid dependency loops.
8677
8678 2010-05-29  Jan Hubicka  <jh@suse.cz>
8679
8680         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
8681         refs and body; not the whole node for masters of materialized clones.
8682
8683 2010-05-29  Mike Stump  <mikestump@comcast.net>
8684
8685         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
8686
8687 2010-05-29  Jan Hubicka  <jh@suse.cz>
8688
8689         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
8690         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
8691         use of clone_function_name.
8692         * cgraph.h (cgraph_create_virtual_clone,
8693         cgraph_function_versioning): update prototypes.
8694         (clone_function_name): Declare.
8695         * ipa-cp.c (ipcp_insert_stage): Update call of
8696         cgraph_create_virtual_clone.
8697         * omp-low.c (create_omp_child_function_name): Use
8698         cgraph_create_virtual_clone.
8699         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
8700         (cgraph_function_versioning): Take SUFFIX argument; produce new name
8701         and make decl local.
8702
8703 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
8704
8705         * vec.h: Include statistics.h
8706         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
8707         with VEC_H.
8708
8709 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
8710
8711         * c-lex.c: Do not include c-tree.h.
8712         * c-pretty-print.c: Likewise.
8713         * c-opts.c: Likewise.
8714         * c-gimplify.c: Likewise.
8715         * c-common.c: Likewise.
8716         * c-dump.c: Likewise.  Include c-common.h.
8717
8718 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
8719
8720         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
8721         before including diagnostic-core.h.
8722         (c_cpp_error): New prototype moved from c-tree.h.
8723         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
8724         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
8725         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
8726         (c_cpp_error): Prototype moved to c-common.h.
8727         * Makefile.in: Update dependency for C_COMMON_H.
8728
8729 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
8730
8731         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
8732         * c-common.c (c_register_addr_space): Remove here.
8733         * c-decl.c (c_register_addr_space): Re-add here.
8734
8735 2010-05-28  Mike Stump  <mikestump@comcast.net>
8736
8737         * config/darwin-c.c: Remove c-tree.h include.
8738
8739 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
8740
8741         * gcc.c: Include diagnostic.h.
8742         (error_count): Remove.  All users changed to use errorcount.
8743         (programname): Remove.  All users changed to use progname.
8744         (fancy_abort, internal_error, fatal_error, error, warning, inform,
8745         fnotice): Remove.
8746         (execute): Don't include "Internal error" and bug reporting
8747         information in argument of internal_error call.
8748         (process_command): Don't increment error_count after calling
8749         perror_with_name.
8750         (input_filename): Rename to gcc_input_filename.  All users
8751         changed.
8752         (main): Call diagnostic_initialize.  Register delete_temp_files
8753         with atexit.  Use seen_error to test for errors.
8754         * gcc.h: Include diagnostic-core.h.
8755         (fatal_error, error, warning): Remove.
8756         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
8757         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
8758         (gcc.o): Update dependencies.
8759
8760 2010-05-28  Jeff Law  <law@redhat.com>
8761
8762         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
8763         functions.
8764         * ira.h (ira_bad_reload_regno): Declare
8765         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
8766
8767         * ira-color.c (update_curr_costs): Free updated hard reg costs.
8768         (ira_reassign_conflict_allocnos): Remove bogus asserts.
8769         (allocno_reload_assign): Likewise.
8770
8771 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
8772
8773         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
8774         build1_stat.
8775
8776 2010-05-28  Richard Guenther  <rguenther@suse.de>
8777
8778         PR lto/44312
8779         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
8780         Stream fixed-point constants mode.
8781         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
8782         and TYPE_PRECISION.
8783         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
8784         Stream fixed-point constants mode.
8785         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
8786         and TYPE_PRECISION.
8787
8788 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
8789
8790         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
8791         only place it was called from.
8792         (number_of_latch_executions): Do not return chrec_dont_know when the
8793         may_be_zero is a runtime condition: instead, return a COND_EXPR
8794         including the may_be_zero condition.
8795         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
8796         of nb_iterations.
8797         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
8798         COND_EXPRs.
8799
8800 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
8801
8802         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
8803         generate COND_EXPRs for degenerate_phi_result.
8804
8805 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
8806
8807         PR middle-end/44293
8808         * tree-if-conv.c (if_convertible_loop_p): Check the
8809         if-convertibility of phi nodes in non predicated BBs.
8810
8811 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
8812
8813         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
8814
8815 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
8816
8817         PR driver/15303
8818         * gcc.c (inform, warning, inform): New functions.
8819         (fatal_ice): Rename to internal_error; change cmsgid parameter to
8820         gmsgid.  All callers changed.
8821         (notice): Rename to fnotice; add parameter fp.  All callers changed.
8822         (fatal_error): Rename to fatal_signal.  All users changed.
8823         (fatal): Rename to fatal_error; change cmsgid parameter to
8824         gmsgid.  All callers changed.
8825         (process_command): Use warning instead of error for warnings.
8826         (end_going_arg): Don't use _() around argument of error.
8827         (do_spec_1): Use inform for message from %n specs.  Use warning
8828         instead of error for warnings.
8829         (main): Use inform for comparison messages.  Use warning for
8830         message about unused linker input.
8831         (error): Increment error_count.  Print "error: ".
8832         * gcc.h (fatal): Change to fatal_error.
8833         (warning): Declare.
8834         * config/darwin-driver.c (darwin_default_min_version): Use warning
8835         instead of fprintf for warnings.
8836         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
8837
8838 2010-05-28  Julian Brown  <julian@codesourcery.com>
8839
8840         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
8841         (*thumb2_addsi3_compare0_scratch): New.
8842         * config/arm/constraints.md (Pv): New.
8843         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
8844         for ARM mode only.
8845         (*addsi3_compare0_scratch): Likewise.
8846
8847 2010-05-28  Jan Hubicka  <jh@suse.cz>
8848
8849         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
8850         check.
8851         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
8852         only on local statics.
8853
8854 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
8855
8856         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
8857
8858 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
8859
8860         PR bootstrap/44314
8861         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
8862         (OPTION_GLIBC): Define.
8863
8864 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
8865
8866         PR debug/41048
8867         * dwarf2out.c (double_int_type_size_in_bits): New function.
8868         (round_up_to_align): Change first argument and return value to
8869         double_int.
8870         (field_byte_offset): Work internally on double_ints.
8871
8872         PR target/43636
8873         * builtins.c (expand_movstr): Use a temporary pseudo instead
8874         of target even when target is not NULL and not const0_rtx, but
8875         fails movstr predicate.
8876         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
8877
8878 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
8879
8880         * final.c (rest_of_clean_state): Use %m in errors instead of
8881         strerror (errno).
8882         * gengtype.c (read_input_list, close_output_files): Use xstrerror
8883         instead of strerror.
8884         * toplev.c (process_options): Use %m in errors instead of strerror
8885         (errno).
8886         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
8887         (errno).
8888
8889 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
8890
8891         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
8892         (ix86_canonical_va_list_type): Make static.  Add declaration.
8893         (ix86_enum_va_list): Make static.  Reindent.
8894         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
8895         (ix86_canonical_va_list_type): Ditto.
8896         (ix86_enum_va_list): Ditto.
8897
8898 2010-05-28  Richard Guenther  <rguenther@suse.de>
8899
8900         * lto-wrapper.c (run_gcc): With -save-temps generate a
8901         user-visible ltrans filename.  Fixup ltrans unit numbering.
8902
8903 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
8904
8905         * c-common.c (c_common_nodes_and_builtins): Replace use
8906         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
8907         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
8908         to ix86_enum_va_list.
8909         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
8910         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
8911         (TARGET_ENUM_VA_LIST_P): Add hook description.
8912         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
8913         * target.h (gcc_target): Add enum_va_list hook.
8914
8915         PR bootstrap/44299
8916         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
8917         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
8918         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
8919
8920 2010-05-28  Alan Modra  <amodra@gmail.com>
8921
8922         PR target/44266
8923         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
8924         emit_library_call machinery to set up __tls_get_addr calls.
8925
8926 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8927
8928         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
8929
8930 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
8931
8932         Revert fix for PR c++/44188
8933         * c-common.c (is_typedef_decl): Revert the moving of  this
8934         definition ...
8935         * tree.c (is_typedef_decl): ... here.
8936         (typdef_variant_p): Revert the moving of this  definition
8937         here from gcc/cp/tree.c.
8938         * c-common.h (is_typedef_decl): Revert the moving of this
8939         declaration ...
8940         * tree.h (is_typedef_decl): ... here.
8941         (typedef_variant_p): Revert the moving of this  declaration here
8942         from gcc/cp/cp-tree.h
8943         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
8944         (gen_tagged_type_die): Revert the splitting out of ...
8945         (gen_type_die_with_usage): ... this function. Revert the anonymous
8946         tagged type handling.
8947         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
8948         typedefs naming anonymous tagged types.
8949
8950 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
8951
8952         * config/rs6000/rs6000-modes.def (PSImode): Delete.
8953
8954 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
8955
8956         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
8957         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
8958         throughout.
8959         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
8960         "xer" to "ca".
8961         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
8962         XER_REGS to CA_REGS throughout.
8963         * config/rs6000/rs6000.h: Same.
8964         (ADDITIONAL_REGISTER_NAMES): Add "xer".
8965         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
8966         that mode_iterator "P" is the size for arithmetic carries as well.
8967         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
8968
8969 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
8970
8971         PR bootstrap/44255
8972         * combine.c (struct rtx_subst_pair): Define unconditionally.
8973         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
8974         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
8975         Call make_compound_operation on pair->to.
8976         (propagate_for_debug): Don't call make_compound_operation here.
8977         Always use simplify_replace_fn_rtx.
8978
8979 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
8980
8981         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
8982         * config/xtensa/xtensa.c (override_options): Check
8983           TARGET_FORCE_NO_PIC and set flag_pic.
8984         * config/xtensa/xtensa.opt: Document -mforce-no-pic
8985
8986 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
8987
8988         PR bootstrap/44299
8989         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
8990         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
8991
8992 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
8993
8994         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
8995         toplev.h.
8996         * diagnostic.c: Don't include toplev.h.
8997         (progname): Define.  Moved from toplev.c.
8998         (seen_error): New function.
8999         * diagnostic.h: Include diagnostic-core.h.
9000         (diagnostic_t, emit_diagnostic): Don't declare here.
9001         * toplev.c (progname): Move to toplev.c.
9002         (emit_debug_global_declarations, compile_file, finalize,
9003         do_compile, toplev_main): Use seen_error.
9004         * toplev.h: Include diagnostic-core.h.
9005         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
9006         internal_error, warning, warning_at, error, error_n, error_at,
9007         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
9008         verbatim, fnotice, progname): Move to diagnostic-core.h.
9009         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
9010         (expand_builtin_expect): Use seen_error.
9011         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
9012         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
9013         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
9014         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
9015         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
9016         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
9017         errorcount for errors.
9018         * c-opts.c (c_common_finish): Use seen_error.
9019         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
9020         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
9021         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
9022         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
9023         (get_coverage_counts): Use seen_error.
9024         * dwarf2out.c (dwarf2out_finish): Use seen_error.
9025         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
9026         gimplify_body): Use seen_error.
9027         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
9028         * ipa-pure-const.c (gate_pure_const): Use seen_error.
9029         * ipa-reference.c (gate_reference): Use seen_error.
9030         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
9031         * lambda-code.c: Include diagnostic-core.h instead of
9032         diagnostic.h.
9033         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
9034         * lto-compress.c: Include diagnostic-core.h instead of
9035         diagnostic.h.
9036         * lto-section-in.c: Include diagnostic-core.h instead of
9037         diagnostic.h.
9038         * lto-streamer-out.c: Include diagnostic-core.h instead of
9039         diagnostic.h.
9040         * lto-streamer.c: Include diagnostic-core.h instead of
9041         diagnostic.h.
9042         (gate_lto_out): Use seen_error.
9043         * matrix-reorg.c: Include diagnostic-core.h instead of
9044         diagnostic.h.
9045         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
9046         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
9047         (gate_expand_omp, lower_omp_1): Use seen_error.
9048         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
9049         (rest_of_decl_compilation, rest_of_type_compilation,
9050         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
9051         * tree-cfg.c (label_to_block_fn): Use seen_error.
9052         * tree-inline.c (optimize_inline_calls): Use seen_error.
9053         * tree-mudflap.c (mudflap_finish_file): Use
9054         seen_error.
9055         * tree-optimize.c (gate_all_optimizations,
9056         gate_all_early_local_passes, gate_all_early_optimizations): Use
9057         seen_error.
9058         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
9059         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
9060         (varpool_remove_unreferenced_decls,
9061         varpool_assemble_pending_decls): Use seen_error.
9062         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
9063         (TOPLEV_H, DIAGNOSTIC_H): Update.
9064         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
9065         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
9066         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
9067         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
9068         coverage.o, lambda-code.o): Update dependencies.
9069
9070 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
9071
9072         PR c++/44188
9073         * c-common.c (is_typedef_decl): Move this definition ...
9074         * tree.c (is_typedef_decl): ... here.
9075         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
9076         * c-common.h (is_typedef_decl): Move this declaration ...
9077         * tree.h (is_typedef_decl): ... here.
9078         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
9079         * dwarf2out.c (is_naming_typedef_decl): New function.
9080         (gen_tagged_type_die): Split out of ...
9081         (gen_type_die_with_usage): ... this function. When an anonymous
9082         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
9083         is emitted for the typedef.
9084         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
9085         anonymous tagged types.
9086
9087 2010-05-27  Jason Merrill  <jason@redhat.com>
9088
9089         * print-tree.c (debug_vec_tree): New fn.
9090         (print_vec_tree): New fn.
9091         * tree.h: Declare them.
9092         * gdbinit.in (pvt): New command.
9093
9094         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
9095
9096         * gdbinit.in (pdd): New command.
9097
9098 2010-05-27  Jan Hubicka  <jh@suse.cz>
9099
9100         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
9101         (update_caller_keys): Return early if there are no callers;
9102         only update fibheap when decresing the key.
9103         (update_callee_keys): Avoid recursion.
9104         (decide_inlining_of_small_functions): When badness does not match;
9105         re-insert into fibheap.
9106
9107 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
9108
9109         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
9110         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
9111         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
9112         (ALL_HOST_OBJS): Now a union of the above two.
9113         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
9114         all files in ALL_HOST_FRONTEND_OBJS.
9115         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
9116
9117         * c-common.c: Pretend to be a backend file by undefining
9118         IN_GCC_FRONTEND (still need rtl.h here).
9119
9120 2010-05-27  Jan Hubicka  <jh@suse.cz>
9121
9122         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
9123         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
9124
9125 2010-05-27  Jan Hubicka  <jh@suse.cz>
9126
9127         * sched-ebb.c: Rename struct deps to struct deps_desc.
9128         * ddg.c: Likewise.
9129         * sel-sched-ir.c: Likewise.
9130         * sched-deps.c: Likewise.
9131         * sched-int.h: Likewise.
9132         * sched-rgn.c: Likewise.
9133
9134 2010-05-27  Jon Beniston  <jon@beniston.com>
9135
9136         PR 43726
9137         * config/lm32/lm32.h: Remove definition of
9138         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
9139
9140 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9141
9142         PR lto/44230
9143         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
9144
9145 2010-05-27  Richard Guenther  <rguenther@suse.de>
9146
9147         PR tree-optimization/44284
9148         * tree-vect-stmts.c (vectorizable_assignment): Handle
9149         sign-changing conversions as simple copy.
9150
9151 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9152
9153         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
9154         Bionic C library.
9155         (__gthread_active_p): Check for pthread_create if compiling against
9156         Bionic C library.
9157
9158 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9159
9160         Support compilation for Android platform.  Reimplement -mandroid.
9161
9162         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
9163         (*android*): Set ANDROID_DEFAULT.
9164         (arm*-*-linux*): Include linux-android.h.
9165         (arm*-*-eabi*): Don't include previous -mandroid implementation.
9166         * config/arm/eabi.h: Remove, move Android-specific parts ...
9167         * config/linux-android.h: ... here.  New file.
9168         * config/arm/eabi.opt: Rename to ...
9169         * config/linux-android.opt: ... this.
9170         (mandroid): Allow -mno-android option.  Initialize based on
9171         ANDROID_DEFAULT.
9172         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
9173         Move logic to corresponding LINUX_TARGET_* macros.
9174         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
9175         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
9176         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
9177         Android definitions.
9178         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
9179         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
9180         Document.
9181
9182 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9183
9184         Add support for Bionic C library
9185
9186         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
9187         macro.
9188         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
9189         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
9190
9191         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
9192         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
9193         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
9194         to support multiple C libraries.  Handle Bionic.
9195         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
9196         (BIONIC_DYNAMIC_LINKER64): Define.
9197         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
9198         Update.
9199         (TARGET_HAS_SINCOS): Enable for Bionic.
9200
9201         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
9202         the last option specified on command line take effect.
9203         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
9204         (mbionic): New.
9205         (mglibc, muclibc): Update.
9206
9207         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
9208         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
9209         DEFAULT_LIBC.
9210
9211         * doc/invoke.texi (-mglibc, -muclibc): Update.
9212         (-mbionic): Document.
9213
9214 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9215
9216         * c-common.h (c_register_addr_space): Add prototype.
9217         (ADDR_SPACE_KEYWORD): Remove.
9218         * c-common.c (c_register_addr_space): New function.
9219         (c_addr_space_name): Reimplement.
9220         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
9221
9222         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
9223         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
9224
9225         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
9226         Remove TARGET_ADDR_SPACE_KEYWORDS.
9227
9228 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
9229
9230         * input.c: New file.
9231         * input.h (main_input_filename): Move declaration to toplev.h.
9232         * toplev.c (input_location, line_table): Move to input.c
9233         * toplev.h (main_input_filename): Move declaration from input.h.
9234         * tree.c (expand_location): Move to input.c.
9235         * Makefile.in (OBJS-common): Add input.o.
9236         (input.o): Add dependencies.
9237
9238 2010-05-27  Richard Guenther  <rguenther@suse.de>
9239
9240         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
9241         for non-existant files.
9242         (fork_execute): Mark args_name file as deleted.
9243
9244 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
9245
9246         PR bootstrp/44287
9247         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
9248         (narrow_signed_type): Likewise.
9249
9250 2010-05-26  Jan Hubicka  <jh@suse.cz>
9251
9252         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
9253         edge only when checking is enabled; check using former_clone_of;
9254         check inline clones too.
9255         (cgraph_materialize_clone): Record former_clone_of pointer.
9256         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
9257         combining redirections; dump args_to_skip bitmap
9258         (cgraph_materialize_all_clones): Do no redirection here.
9259         * ipa-inline.c (inline_transform): Do redirection here.
9260         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
9261         cheking only).
9262
9263 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9264
9265         * config/avr/avr-c.c: Do not include regs.h.
9266         Include cpplib.h for cpp_define and tree.h for c-common.h.
9267         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
9268         * config/avr/t-avr: Fix dependencies for avr-c.o.
9269
9270 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9271
9272         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
9273         string instead of SYMBOL_REF rtx.
9274         * rtl.h (set_stack_check_libfunc): Move prototype from here...
9275         * libfuncs.h: ...to here.  Adjust for explow.c change.
9276
9277 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
9278
9279         * pretty-print.c: Don't include ggc.h.
9280         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
9281         (identifier_to_locale): Use them for allocation.
9282         * pretty-print.h (identifier_to_locale_alloc,
9283         identifier_to_locale_free): Declare.
9284         * toplev.c (alloc_for_identifier_to_locale): New.
9285         (general_init): Set identifier_to_locale_alloc and
9286         identifier_to_locale_free.
9287         * Makefile.in (pretty-print.o): Update dependencies.
9288
9289 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9290
9291         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
9292         pointer types if they have different alignment or mode.
9293
9294 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
9295
9296         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9297         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9298         * config/sparc/sparc-protos.h (function_value): Remove declaration.
9299         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
9300         sparc_function_value_regno_p): New functions.
9301         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9302         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9303         (function_value): Rename to...
9304         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
9305         argument to 'outgoing'.
9306         (function_arg_record_value, function_arg_union_value,
9307         function_arg_vector_value): Update comment.
9308
9309 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9310
9311         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
9312         (fde_needed_for_eh_p): New predicate.
9313         (output_call_frame_info): Use it throughout to decide whether FDEs
9314         are needed for EH purpose.
9315         (dwarf2out_begin_prologue): Reorder assignments.
9316
9317 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9318
9319         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
9320         special case loop->header.
9321         (is_predicated): New.
9322         (if_convertible_loop_p): Call it.
9323
9324 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9325
9326         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
9327         iterator in parameter.  Do not generate code during the analysis.
9328         (tree_if_convert_cond_stmt): Removed.
9329         (tree_if_convert_stmt): Removed.
9330         (predicate_bbs): New.
9331         (if_convertible_loop_p): Call predicate_bbs.
9332         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
9333         now contains all the analysis part.
9334
9335 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9336
9337         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
9338         statements in the analysis part.
9339         (tree_if_convert_stmt): Update comment.
9340         (remove_conditions_and_labels): New.
9341         (combine_blocks): Call remove_conditions_and_labels.
9342         (tree_if_conversion): Update comment.
9343
9344 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9345
9346         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
9347         than 2 predecessors or more than 2 successors.
9348
9349 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9350
9351         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
9352         of loops in which the data dependence analysis fails.
9353
9354 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9355
9356         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
9357         CDI_POST_DOMINATORS.
9358         (tree_if_conversion): Same.
9359
9360 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9361
9362         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
9363
9364 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
9365
9366         * tree-if-conv.c: Update copyright years.  Fix comments.
9367         Fix indentation.
9368
9369 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
9370
9371         * builtin-types.def (BT_INT128): New primitive type.
9372         (BT_UINT128): Likewise.
9373         * c-common.c (c_common_r): Add __int128 keyword.
9374         (c_common_type_for_size): Handle __int128.
9375         (c_common_type_for_mode): Likewise.
9376         (c_common_signed_or_unsigned_type): Likewise.
9377         (c_common_nodes_and_builtins): Add builtin type
9378         if target supports 128-bit integer scalar.
9379         * c-common.h (enum rid): Add RID_INT128.
9380         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
9381         if target supports 128-bit integer scalar.
9382         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
9383         (finish_declspecs): Likewise.
9384         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
9385         (c_token_starts_declspecs): Likewise.
9386         (c_parser_declspecs): Likewise.
9387         (c_parser_attributes): Likewise.
9388         (c_parser_objc_selector): Likewise.
9389         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
9390         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
9391         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
9392         * tree.c (make_or_reuse_type): Likewise.
9393         (make_unsigned_type): Likewise.
9394         (build_common_tree_nodes_2): Likewise.
9395         * tree.h (enum integer_type_kind): Add itk_int128 and
9396         itk_unsigned_int128.
9397         (int128_integer_type_node): New define.
9398         (int128_unsigned_type_node): New define.
9399         * doc/extend.texi: Add documentation about __int128 type.
9400
9401 2010-05-26  Richard Guenther  <rguenther@suse.de>
9402
9403         * tree-ssa-sccvn.c (copy_nary): Adjust.
9404         (copy_phis): Rename to ...
9405         (copy_phi): ... this.  Adjust.
9406         (copy_references): Rename to ...
9407         (copy_reference): ... this.  Adjust.
9408         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
9409         result into the valid table.
9410
9411 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9412
9413         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
9414         insn-config.h, insn-codes.h, recog.h, and optabs.h.
9415
9416 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9417
9418         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
9419
9420 2010-05-26  Richard Guenther  <rguenther@suse.de>
9421
9422         * opts.c (common_handle_option): Handle OPT_Ofast.
9423
9424 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
9425
9426         * diagnostic.c: Don't include opts.h.
9427         (permissive_error_option): Define.
9428         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
9429         for classify_diagnostic.  Don't use memset for
9430         classify_diagnostic.  Initialize new and recently added fields.
9431         (diagnostic_classify_diagnostic): Use context->n_opts instead of
9432         N_OPTS.
9433         (diagnostic_report_diagnostic): Pass context parameter to
9434         diagnostic_report_warnings_p.  Use option_enabled and option_name
9435         hooks from context.
9436         (emit_diagnostic): Use permissive_error_option.
9437         (permerror): Likewise.
9438         * diagnostic.h: Don't include options.h.
9439         (struct diagnostic_context): Add n_opts, opt_permissive,
9440         inhibit_warnings, warn_system_headers, option_enabled and
9441         option_name fields.  Change classify_diagnostic to a pointer.
9442         * opts-diagnostic.h: New file.
9443         * opts.c: Include opts-diagnostic.h.
9444         (common_handle_option): Set global_dc fields for -Wfatal-errors,
9445         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
9446         (option_name): New function.
9447         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
9448         (c_common_handle_option): Set global_dc->permissive for
9449         -fpermissive.
9450         * c-common.c (c_cpp_error): Save and restore
9451         global_dc->warn_system_headers, not variable warn_system_headers.
9452         * toplev.c: Include opts-diagnostic.h.
9453         (general_init): Update call to diagnostic_initialize.  Set
9454         global_dc->show_column, global_dc->option_enabled and
9455         global_dc->option_name.
9456         (process_options): Don't set global_dc fields here.
9457         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
9458         (diagnostic.o, opts.o, toplev.o): Update dependencies.
9459
9460 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9461
9462         * config/picochip/picochip.md (movsi): Split a movsi from a
9463         const after reload.
9464
9465 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9466
9467         * ggc-zone.c: Update copyright year.
9468         (poison_region): Mark memory for Valgrind as undefined before
9469         memset () call and inaccessible afterwards.
9470         (ggc_pch_total_size): Change type of i to int.
9471
9472 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9473
9474         * ggc-common.c (ggc_free_overhead): Allow empty slot.
9475
9476 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9477
9478         * ggc-common.c: Update copyright year.
9479         (ggc_rlimit_bound): Remove prototype.  Compile only if
9480         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
9481         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
9482         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
9483         (ggc_min_heapsize_heuristic): Likewise.
9484
9485 2010-05-26  Richard Guenther  <rguenther@suse.de>
9486
9487         PR rtl-optimization/44164
9488         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
9489         no-common access-path disambiguation.
9490         (indirect_ref_may_alias_decl_p): Adjust.
9491         (indirect_refs_may_alias_p): Likewise.
9492         (refs_may_alias_p_1): Likewise.
9493
9494 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9495
9496         * c-typeck.c: Do not include expr.h.
9497
9498 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
9499
9500         * rtl.h (decl_default_tls_model): Move prototype from here...
9501         * output.h: ...to here.
9502         * c-decl.c: Do not include rtl.h.
9503         * c-pragma.c: Likewise.
9504         * c-parser.c: Likewise.
9505         * c-gimplify.c: Likewise.  And also not hard-reg-set.
9506         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
9507         FIXME note for it.  Add a FIXME note for expr.h.
9508         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
9509         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
9510         defined.
9511
9512 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
9513
9514         PR target/44199
9515         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
9516         or total_size is larger than red zone size for non-V4 ABI, emit a
9517         stack_tie resp. frame_tie insn before stack pointer restore.
9518         * config/rs6000/rs6000.md (frame_tie): New insn.
9519
9520 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9521
9522         * function.h (struct function): Add can_throw_non_call_exceptions bit.
9523         * lto-streamer-in.c (input_function): Stream it in.
9524         * lto-streamer-out.c (output_function): Stream it out.
9525         * function.c (allocate_struct_function): Set it.
9526         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
9527         for flag_non_call_exceptions.
9528         * cfgbuild.c (control_flow_insn_p): Likewise.
9529         (make_edges): Likewise.
9530         * cfgexpand.c (expand_stack_alignment): Likewise.
9531         * combine.c (distribute_notes): Likewise.
9532         * cse.c (cse_extended_basic_block): Likewise.
9533         * except.c (insn_could_throw_p): Likewise.
9534         * gcse.c (simple_mem): Likewise.
9535         * ipa-pure-const.c (check_call): Likewise.
9536         (check_stmt ): Likewise.
9537         * lower-subreg.c (lower-subreg.c): Likewise.
9538         * optabs.c (emit_libcall_block): Likewise.
9539         (prepare_cmp_insn): Likewise.
9540         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
9541         * postreload.c (rest_of_handle_postreload): Likewise.
9542         * reload1.c (reload_as_needed): Likewise.
9543         (emit_input_reload_insns): Likewise.
9544         (emit_output_reload_insns): Likewise.
9545         (fixup_abnormal_edges): Likewise.
9546         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
9547         * store-motion.c (find_moveable_store): Likewise.
9548         * tree-eh.c (stmt_could_throw_p): Likewise.
9549         (tree_could_throw_p): Likewise.
9550         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9551         * config/arm/arm.c (arm_expand_prologue): Likewise.
9552         (thumb1_expand_prologue): Likewise.
9553         * config/rx/rx.md (cbranchsf4): Likewise.
9554         (cmpsf): Likewise.
9555         * config/s390/s390.c (s390_emit_prologue): Likewise.
9556         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
9557         (inline_forbidden_into_p): New predicate.
9558         (expand_call_inline): Use it to forbid inlining.
9559         (tree_can_inline_p): Likewise.
9560
9561 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
9562
9563         * config/i386/i386-c.c: Do not include rtl.h.
9564         * config/i386/t-i386: Update dependencies.
9565
9566 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
9567
9568         * attribs.c: Do not include rtl.h.
9569         * Makefile.in: Update dependencies.
9570
9571 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
9572
9573         * double-int.h (double_int_and): New.
9574         * combine.c (try_combine): Clean up, use double_int_* and
9575         immed_double_int_const functions.
9576
9577 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9578
9579         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
9580         stderr to /dev/null instead of grep -q.
9581         * configure: Regenerate.
9582
9583 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
9584
9585         * Makefile.in (EXCEPT_H): Fix typo.
9586
9587 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
9588
9589         * ira-build.c (update_conflict_hard_reg_costs): New.
9590         (ira_build): Call update_conflict_hard_reg_costs.
9591
9592 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
9593
9594         PR debug/41371
9595         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
9596         ENABLE_CHECKING.
9597         (intersect_loc_chains): Walk the s2var's loc_chain together
9598         with s1node chain as long as the locations are equal, don't
9599         call find_loc_in_1pdv in that case.
9600
9601         PR debug/42801
9602         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
9603         (copy_bind_expr): ... instead of here.
9604         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
9605         if the block hasn't been remapped.
9606         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
9607         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
9608
9609 2010-05-25  Richard Guenther  <rguenther@suse.de>
9610
9611         PR middle-end/44069
9612         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
9613         out-of-bounds array accesses.
9614
9615 2010-05-25  Richard Guenther  <rguenther@suse.de>
9616
9617         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
9618         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
9619         (run_gcc): Re-organize to make cleanup easier.
9620
9621 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9622
9623         * config/s390/s390.c (optimization_options): Fix and move the
9624         flag_prefetch_loop_arrays override ...
9625         (override_options): ... here.
9626
9627 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
9628
9629         * diagnostic.c: Don't include plugin.h.
9630         (diagnostic_report_diagnostic): Don't handle plugins specially
9631         here.  Pass context to internal_error callback.
9632         * diagnostic.h (struct diagnostic_context): Add context parameter
9633         to internal_error callback.
9634         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
9635         * plugin.h (struct diagnostic_context): Declare.
9636         (warn_if_plugins, plugins_internal_error_function): Declare.
9637         * toplev.c (general_init): Set global_dc->internal_error.
9638         * Makefile.in (diagnostic.o): Update dependencies.
9639
9640 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
9641
9642         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
9643         * config/rs6000/t-darwin64: New.
9644         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
9645         build crt2.
9646
9647 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
9648
9649         PR 44203
9650         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
9651         match the original (and intended) behaviour before r159557.  This
9652         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
9653         in two ways.
9654
9655 2010-05-25  Richard Guenther  <rguenther@suse.de>
9656
9657         * doc/invoke.texi: Document -Ofast.
9658         * target.h (struct gcc_target): Add handle_ofast.
9659         * target-def.h (TARGET_HANDLE_OFAST): Add.
9660         (TARGET_INITIALIZER): Adjust.
9661         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
9662         * common.opt (Ofast): Add.
9663
9664 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
9665
9666         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
9667         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
9668
9669 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
9670
9671         PR target/43610
9672         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
9673         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
9674         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
9675         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
9676
9677 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
9678
9679         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
9680         DW_OP_minus with negated offset instead of DW_OP_plus.
9681         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
9682
9683 2010-05-25  Wei Guozhi  <carrot@google.com>
9684
9685         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
9686         tst instruction and a new alternative.
9687         * config/arm/constraints.md (Pu): New constraint.
9688
9689 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
9690
9691         * function.c (assign_stack_local_1): Initialize variable
9692         to avoid warning when bootstrapping at -O3.
9693
9694 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
9695
9696         * configure.ac (all_lang_makefiles): Remove everything related to it.
9697         * configure: Regenerate.
9698         * Makefile.in: Fix reference to ada Make-lang.in.
9699         Remove support for LANG_MAKEFILES.
9700
9701 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
9702             Sandra Loosemore  <sandra@codesourcery.com>
9703
9704         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
9705         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
9706         description.  Add arm_neon_fp16_ok.
9707         (Add Options): Add arm_neon and arm_neon_fp16.
9708
9709 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
9710
9711         * diagnostic.c: Don't include flags.h.
9712         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
9713         context parameters.  Check flags in the context passed as a parameter.
9714         (diagnostic_build_prefix): Add context parameter.  Check
9715         show_column flag in context.
9716         (diagnostic_action_after_output): Check fatal_errors flag in context.
9717         (diagnostic_report_current_module): Check show_column flag in context.
9718         (default_diagnostic_starter): Update call to
9719         diagnostic_build_prefix.
9720         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
9721         (emit_diagnostic): Pass context to permissive_error_kind.
9722         (permerror): Pass context to permissive_error_kind.
9723         * diagnostic.h (struct diagnostic_context): Add show_column,
9724         pedantic_errors, permissive and fatal_errors fields.
9725         (diagnostic_build_prefix): Update prototype.
9726         * langhooks.c
9727         * toplev.c (process_options): Set flags in global_dc from
9728         flag_show_column, flag_pedantic_errors, flag_permissive,
9729         flag_fatal_errors.
9730         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
9731         to diagnostic_build_prefix.
9732         * Makefile.in (diagnostic.o): Update dependencies.
9733
9734 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
9735
9736         * config/i386/ia32intrin.h (__crc32q): Define only if
9737         __SSE4_2__ is defined.
9738
9739 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
9740
9741         PR target/44132
9742         PR middle-end/43602
9743         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
9744         DECL_VISIBILITY_SPECIFIED.
9745         (emutls_decl): Set DECL_PRESERVE_P and copy
9746         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
9747         (emutls_finalize_control_var): New callback.
9748         (emutls_finish): Finalize emutls control variables.
9749         * toplev.c (compile_file): Move the call to emutls_finish ()
9750         before varpool_assemble_pending_decls ().
9751
9752 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
9753
9754         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
9755         added to the preprocessor condition.
9756
9757 2010-05-24  Paul Brook  <paul@codesourcery.com>
9758
9759         * gengtype-lex.l: Add HARD_REG_SET.
9760         * expr.c (expand_expr_real_1): Record writes to hard registers.
9761         * function.c (rtl_data): Add asm_clobbers.
9762         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
9763         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
9764         Use crtl->asm_clobbers.
9765
9766 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9767
9768         * doc/makefile.texi (Makefile): Mention stages 'profile'
9769         and 'feedback' for profiledbootstrap.
9770
9771 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
9772
9773         PR target/44245
9774         * config/i386/i386.c (def_builtin): Properly check
9775         OPTION_MASK_ISA_64BIT.
9776
9777 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
9778
9779         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
9780         typedefs with different but compatible types.  Allow duplicate
9781         typedefs with the same type except for pedantic non-C1X, but give
9782         warning for variably modified types.
9783         * c-typeck.c (tagged_types_tu_compatible_p,
9784         function_types_compatible_p, type_lists_compatible_p,
9785         comptypes_internal): Add parameter different_types_p; set
9786         *different_types_p for different but compatible types.  All
9787         callers changed.
9788         (comptypes_check_different_types): New.
9789         * c-tree.h (comptypes_check_different_types): Declare.
9790
9791 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
9792
9793         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
9794         * jump.c: Include basic-block.h.
9795         * profile.c: Likewise.
9796         * tree-profile.c: Likewise.
9797         * coverage.c: Likewise.
9798         * basic-block.h (optimize_function_for_size_p): Move to function.h.
9799         (optimize_function_for_speed_p): Likewise.
9800         * function.h (optimize_function_for_size_p,
9801         optimize_function_for_speed_p): Moved here from basic-block.h.
9802         * Makefile.in: Update dependencies.
9803
9804 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9805
9806         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
9807         before calling make; allow override through $MAKE.
9808         * doc/invoke.texi (Optimize Options): Document override.
9809
9810 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
9811
9812         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
9813         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9814         (rs6000_mode_dependent_address_ptr): Make static.
9815         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9816         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
9817         Remove.
9818
9819 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
9820
9821         PR target/43869
9822         * config/i386/i386.c: Make sure that the correct regparm is passed.
9823
9824 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
9825
9826         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
9827         * sbitmap.c: ...to here to internalize sbitmap element access.
9828         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
9829         Explain why basic-block.h is included.
9830         * function.h: Include tm.h for CUMULATIVE_ARGS.
9831         * Makefile.in: Update dependencies.
9832
9833 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
9834
9835         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
9836         New core types.
9837         * sbitmap.h (struct sbitmap_def): Do not typedef here.
9838         * sbitmap.c: Include sbitmap.h.
9839         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
9840         hard-reg-set.h.  Split everything related to regsets out from here...
9841         * regset.h: ...to here.  New file.
9842         * df.h: Include regset.h and sbitmap.h.
9843         * tree-flow.h: Likewise.
9844         * cfgloop.h: Likewise.
9845         * except.h: Do not include sbitmap.h.  Include hashtab.h.
9846         * cgraph.h: Include vec.h and function.h.
9847         * reload.h (struct insn_chain): Change types of live_throughout
9848         and dead_or_set from regset_head to bitmap_head.
9849         (compute_use_by_pseudos): Be defined also if regset.h is not included.
9850         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
9851         spilled_regs from regset_head to bitmap_head to avoid dependency
9852         in regset.h.
9853         * sel-sched-ir.h: Include regset.h.
9854         * reload.c: Include df.h before reload.h.
9855         * caller-save.c: Likewise.
9856         * reload1.c: Likewise.
9857         * ira.c: Likewise.
9858         (mark_elimination): Update type of r to bitmap, consistent with
9859         DF_LR_IN.
9860         * dominance.c: Include bitmap.h.
9861         * modulo-sched.c: Include df.h.
9862         * cfganal.c: Include bitmap.h and sbitmap.h.
9863         * cfgbuild.c: Include sbitmap.h.
9864         * lcm.c: Include sbitmap.h.
9865         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
9866         * domwalk.c: Include sbitmap.h, exclude ggc.h.
9867         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
9868         * cselib.c: Include bitmap.h.
9869         * tree-optimize.c: Include regset.h.
9870         * stmt.c: Include bitmap.h.
9871         * Makefile.in: Update dependencies.
9872
9873 2010-05-22  Jan Hubicka  <jh@suse.cz>
9874
9875         * cgraph.h (struct varpool_node): Add same_comdat_group.
9876         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
9877         pointer.
9878         (output_varpool): Update call of lto_output_varpool_node.
9879         (input_varpool): Read same_comdat_group pointer.
9880         (input_varpool_1): Fixup same_comdat_group pointer.
9881         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
9882         group is needed, all are.
9883         * varpool.c (varpool_remove_node): Remove node from same comdat group
9884         linklist too.
9885         (varpool_analyze_pending_decls): Walk same comdat groups.
9886
9887 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
9888
9889         * rtl.h (union rtunion_def): Remove rt_bit member.
9890         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
9891         * print-rtl (print_rtx): Do not print the member.
9892         * gengtype.c (adjust_field_rtx_def): Do not handle it.
9893         * gengenrtl.c (type_from_format): Likewise.
9894         (accessor_from_format): Likewise.
9895
9896 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
9897
9898         * dbgcnt.c: Include toplev.h instead of errors.h.
9899         * ira-emit.c: Don't include errors.h.
9900         * ira.c: Include toplev.h instead of errors.h.
9901         * lto-compress.c: Include toplev.h instead of errors.h.
9902         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
9903         ira.o, dbgcnt.o): Update dependencies.
9904
9905 2010-05-22  Richard Guenther  <rguenther@suse.de>
9906
9907         * gimple.c (gimple_types_compatible_p): Check type qualifications
9908         before merging pointer to complete and pointer to incomplete type.
9909         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
9910         we use our own resolution algorithm.  The gold linker plugin
9911         doesn't do the job we want it to do here.
9912
9913 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
9914
9915         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9916         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9917         (sparc_mode_dependent_address_p): New function.
9918
9919 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
9920
9921         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
9922
9923         * timevar.c: Do not include any core headers.
9924         (timevar_print): De-i18n-ize.
9925         (print_time): Likewise.
9926         * timevar.h (timevar_push, timevar_pop): Make inline functions.
9927
9928 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
9929
9930         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
9931         langhooks-def.h.
9932         (diagnostic_initialize): Initialize x_data not last_function.
9933         (diagnostic_report_current_function): Move to tree-diagnostic.c.
9934         (default_diagnostic_starter): Call
9935         diagnostic_report_current_module not
9936         diagnostic_report_current_function.
9937         (diagnostic_report_diagnostic): Initialize x_data not
9938         abstract_origin.
9939         (verbatim): Likewise.
9940         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
9941         x_data.
9942         (struct diagnostic_context): Change last_function to x_data.
9943         (diagnostic_auxiliary_data): Replace with
9944         diagnostic_context_auxiliary_data and
9945         diagnostic_info_auxiliary_data.
9946         (diagnostic_last_function_changed, diagnostic_set_last_function,
9947         diagnostic_report_current_function): Move to tree-diagnostic.h.
9948         (print_declaration, dump_generic_node, print_generic_stmt,
9949         print_generic_stmt_indented, print_generic_expr,
9950         print_generic_decl, debug_c_tree, dump_omp_clauses,
9951         print_call_name, debug_generic_expr, debug_generic_stmt,
9952         debug_tree_chain, default_tree_printer): Move to
9953         tree-pretty-print.h.
9954         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
9955         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
9956         gimple-pretty-print.h.
9957         * pretty-print.c: Don't include tree.h
9958         (pp_base_format): Don't handle %K here.
9959         (pp_base_tree_identifier): Move to tree-pretty-print.c.
9960         * pretty-print.h (text_info): Change abstract_origin to x_data.
9961         (pp_tree_identifier, pp_unsupported_tree,
9962         pp_base_tree_identifier): Move to tree-pretty-print.h.
9963         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
9964         tree-pretty-print.h: New files.
9965         * tree-pretty-print.c: Include tree-pretty-print.h.
9966         (percent_K_format): New.  Moved from pretty-print.c.
9967         (pp_base_tree_identifier): Move from pretty-print.c.
9968         * c-objc-common.c: Include tree-pretty-print.h.
9969         (c_tree_printer): Handle %K here.
9970         * langhooks.c: Include tree-diagnostic.h.
9971         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
9972         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
9973         (default_tree_printer): Handle %K using percent_K_format.
9974         (general_init): Use default_tree_diagnostic_starter.
9975         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
9976         (free_lang_data): Use default_tree_diagnostic_starter.
9977         * c-pretty-print.c: Include tree-pretty-print.h.
9978         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9979         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9980         * dwarf2out.c: Include tree-pretty-print.h.
9981         * except.c: Include tree-pretty-print.h.
9982         * gimple-pretty-print.c: Include tree-pretty-print.h and
9983         gimple-pretty-print.h.
9984         * gimplify.c: Include tree-pretty-print.h.
9985         * graphite-poly.c: Include tree-pretty-print.h and
9986         gimple-pretty-print.h.
9987         * ipa-cp.c: Include tree-pretty-print.h.
9988         * ipa-inline.c: Include gimple-pretty-print.h.
9989         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
9990         * ipa-pure-const.c: Include gimple-pretty-print.h.
9991         * ipa-struct-reorg.c: Include tree-pretty-print.h and
9992         gimple-pretty-print.h.
9993         * ipa-type-escape.c: Include tree-pretty-print.h.
9994         * print-rtl.c: Include tree-pretty-print.h.
9995         * print-tree.c: Include gimple-pretty-print.h.
9996         * sese.c: Include tree-pretty-print.h.
9997         * tree-affine.c: Include tree-pretty-print.h.
9998         * tree-browser.c: Include tree-pretty-print.h.
9999         * tree-call-cdce.c: Include gimple-pretty-print.h.
10000         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
10001         * tree-chrec.c: Include tree-pretty-print.h.
10002         * tree-data-ref.c: Include tree-pretty-print.h and
10003         gimple-pretty-print.h.
10004         * tree-dfa.c: Include tree-pretty-print.h.
10005         * tree-if-conv.c: Include tree-pretty-print.h and
10006         gimple-pretty-print.h.
10007         * tree-inline.c: Include tree-pretty-print.h.
10008         * tree-into-ssa.c: Include tree-pretty-print.h and
10009         gimple-pretty-print.h.
10010         * tree-nrv.c: Include tree-pretty-print.h.
10011         * tree-object-size.c: Include tree-pretty-print.h and
10012         gimple-pretty-print.h.
10013         * tree-outof-ssa.c: Include tree-pretty-print.h and
10014         gimple-pretty-print.h.
10015         * tree-parloops.c: Include tree-pretty-print.h and
10016         gimple-pretty-print.h.
10017         * tree-predcom.c: Include tree-pretty-print.h and
10018         gimple-pretty-print.h.
10019         * tree-scalar-evolution.c: Include tree-pretty-print.h and
10020         gimple-pretty-print.h.
10021         * tree-sra.c: Include tree-pretty-print.h.
10022         * tree-ssa-address.c: Include tree-pretty-print.h.
10023         * tree-ssa-alias.c: Include tree-pretty-print.h.
10024         * tree-ssa-ccp.c: Include tree-pretty-print.h and
10025         gimple-pretty-print.h.
10026         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
10027         * tree-ssa-copy.c: Include tree-pretty-print.h and
10028         gimple-pretty-print.h.
10029         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
10030         * tree-ssa-dce.c: Include tree-pretty-print.h and
10031         gimple-pretty-print.h.
10032         * tree-ssa-dom.c: Include tree-pretty-print.h and
10033         gimple-pretty-print.h.
10034         * tree-ssa-dse.c: Include gimple-pretty-print.h.
10035         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
10036         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
10037         * tree-ssa-live.c: Include tree-pretty-print.h and
10038         gimple-pretty-print.h.
10039         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
10040         gimple-pretty-print.h.
10041         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
10042         gimple-pretty-print.h.
10043         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
10044         gimple-pretty-print.h.
10045         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
10046         gimple-pretty-print.h.
10047         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
10048         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
10049         * tree-ssa-operands.c: Include tree-pretty-print.h and
10050         gimple-pretty-print.h.
10051         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
10052         gimple-pretty-print.h.
10053         * tree-ssa-pre.c: Include tree-pretty-print.h and
10054         gimple-pretty-print.h.
10055         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
10056         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
10057         gimple-pretty-print.h.
10058         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
10059         gimple-pretty-print.h.
10060         * tree-ssa-sink.c: Include gimple-pretty-print.h.
10061         * tree-ssa-ter.c: Include tree-pretty-print.h and
10062         gimple-pretty-print.h.
10063         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
10064         * tree-ssa.c: Include tree-pretty-print.h and
10065         gimple-pretty-print.h.
10066         * tree-stdarg.c: Include gimple-pretty-print.h.
10067         * tree-switch-conversion.c: Include gimple-pretty-print.h.
10068         * tree-tailcall.c: Include tree-pretty-print.h and
10069         gimple-pretty-print.h.
10070         * tree-vect-data-refs.c: Include tree-pretty-print.h and
10071         gimple-pretty-print.h.
10072         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
10073         gimple-pretty-print.h.
10074         * tree-vect-loop.c: Include tree-pretty-print.h and
10075         gimple-pretty-print.h.
10076         * tree-vect-patterns.c: Include gimple-pretty-print.h.
10077         * tree-vect-slp.c: Include tree-pretty-print.h and
10078         gimple-pretty-print.h.
10079         * tree-vect-stmts.c: Include tree-pretty-print.h and
10080         gimple-pretty-print.h.
10081         * tree-vectorizer.c: Include tree-pretty-print.h.
10082         * tree-vrp.c: Include tree-pretty-print.h and
10083         gimple-pretty-print.h.
10084         * value-prof.c: Include tree-pretty-print.h and
10085         gimple-pretty-print.h.
10086         * var-tracking.c: Include tree-pretty-print.h.
10087         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
10088         (tree-diagnostic.o): New dependencies.
10089         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
10090         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
10091         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
10092         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
10093         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
10094         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
10095         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
10096         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
10097         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
10098         tree-ssa-address.o, tree-ssa-loop-niter.o,
10099         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
10100         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
10101         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
10102         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
10103         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
10104         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
10105         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
10106         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
10107         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
10108         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
10109         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
10110         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
10111         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
10112         tree-switch-conversion.o, var-tracking.o, value-prof.o,
10113         cfgexpand.o, pretty-print.o): Update dependencies.
10114
10115 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
10116
10117         * tree-ssa-structalias.c: Remove tm_p.h from include.
10118
10119 2010-05-21  Jeff Law  <law@redhat.com>
10120
10121         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
10122
10123 2010-05-21  Jason Merrill  <jason@redhat.com>
10124
10125         * tree-eh.c (cleanup_is_dead_in): New.
10126         (lower_try_finally): Don't generate a dead cleanup region.
10127         (lower_cleanup): Likewise.
10128
10129 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
10130
10131         PR debug/44223
10132         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
10133         unchain each use from the cyclic next_regno_use chain first.
10134
10135 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
10136
10137         * real: Do not include gmp.h, mpfr.h, and mpc.h.
10138         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
10139         (real_value_negate, real_value_abs): New prototypes.
10140         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
10141         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
10142         new include file for interface between MPFR and REAL_VALUE_TYPE.
10143         * real.c: Include realmpfr.h.
10144         (real_arithmetic2): Remove legacy function.
10145         (real_value_negate): New.
10146         (real_value_abs): New.
10147         (mfpr_from_real, real_from_mpfr): Move from here...
10148         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
10149         * builtins.c: Include realmpfr.h.
10150         * fold-const.c: Include realmpfr.h.
10151         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
10152         (fold_negate_const): Likewise.
10153         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
10154         * toplev.c: Include realmpfr.h.
10155         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
10156         and real_value_negate.
10157         * fixed-value.c (check_real_for_fixed_mode): Likewise.
10158         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
10159         (vfp3_const_double_index): Likewise.
10160         (arm_print_operand): Likewise.
10161         * Makefile.in: Update dependencies.
10162
10163 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10164
10165         * config/s390/s390.c (override_options): Increase the default
10166         of max-completely-peel-times.
10167
10168 2010-05-21  Julian Brown  <julian@codesourcery.com>
10169             Mark Mitchell  <mark@codesourcery.com>
10170
10171         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
10172         sibling calls for Thumb-1.
10173         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
10174         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
10175         Thumb-2.
10176         (*call_insn, *call_value_insn): Don't use for Thumb-2.
10177         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
10178         for Thumb-2.
10179         (return): New expander.
10180         (*arm_return): New name for ARM return insn.
10181         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
10182
10183 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
10184
10185         * config.gcc (sparc64-*-rtems*): New target.
10186
10187 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
10188
10189         * tree.c (build_function_decl_skip_args): Fix grammar.
10190         (build_function_type_list_1): Fix typos, adjust formatting.
10191
10192 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
10193
10194         * tree.h: Include real.h and fixed-value.h as basic datatypes.
10195         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
10196         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
10197         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
10198         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
10199         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
10200         tree-pretty-print.c, tree-loop-distribution.c,
10201         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
10202         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
10203         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
10204         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
10205         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
10206         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
10207         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
10208         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
10209         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
10210         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
10211         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
10212         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
10213         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
10214         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
10215         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
10216         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
10217         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
10218         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
10219         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
10220         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
10221         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
10222         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
10223         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
10224         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
10225         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
10226         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
10227         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
10228         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
10229         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
10230         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
10231         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
10232         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
10233         config/score/score7.c, config/score/score.c, config/arm/arm.c,
10234         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
10235         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
10236         config/bfin/bfin.c: Clean up redundant includes.
10237         * Makefile.in: Update accordingly.
10238
10239 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
10240
10241         PR middle-end/44204
10242         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
10243         statement has no arguments.
10244
10245 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
10246
10247         PR/44139
10248         * varasm.c (emutls_decl): Merge attributes to new decl.
10249
10250 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10251
10252         PR middle-end/44101
10253         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
10254         around the uniquized constructor if its type requires a conversion.
10255
10256 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
10257
10258         PR debug/44205
10259         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
10260         at -O0 goto_locus of any of the incoming edges differs from
10261         goto_locus of outgoing edge, or gimple_location of any of the
10262         labels differs.
10263
10264 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
10265
10266         * ira.c (ira_non_ordered_class_hard_regs): Define.
10267         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
10268         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
10269         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
10270         cost of unaligned hard regs when allocating multi-reg pseudos.
10271
10272 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
10273
10274         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
10275         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
10276         for TARGET_NO_FLOAT.
10277         * config/mips/mips.c (mips_file_start): Expand conditional expression
10278         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
10279         (mips_override_options): Move -mno-float override -msoft-float and
10280         -mhard-float.
10281         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
10282         Condition(TARGET_SUPPORTS_NO_FLOAT).
10283         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
10284         __mips_no_float here.
10285         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
10286         (TARGET_SUPPORTS_NO_FLOAT): Define.
10287         * config/mips/sdemtk.opt: Delete.
10288
10289 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
10290
10291         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
10292
10293 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
10294
10295         PR target/43733
10296         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
10297         * configure: Regenerate.
10298         * config.in: Regenerate.
10299         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
10300         instead of sahf only for 64bit targets.
10301
10302 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
10303
10304         PR debug/44178
10305         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
10306         setup_ref_regs for DEBUG_INSNs.
10307
10308 2010-05-20  Jan Hubicka  <jh@suse.cz>
10309
10310         PR middle-end/44197
10311         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
10312
10313 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10314
10315         PR bootstrap/43870
10316         * df-scan.c (df_ref_compare): Stabilize sort.
10317
10318 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
10319
10320         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
10321         argument.  Don't use DW_OP_piece if offset is non-zero,
10322         put offset into second DW_OP_bit_piece argument.
10323         (dw_sra_loc_expr): Adjust callers.  For memory expressions
10324         compute offset.
10325
10326 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
10327
10328         PR target/44202
10329         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
10330         settings for 16-bit-constant "addo" alternative.
10331
10332 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
10333
10334         * config/mips/mips-dsp.md (add<DSPV:mode>3,
10335         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
10336
10337         PR target/43764
10338         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
10339         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
10340         Use it.
10341
10342 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
10343
10344         * diagnostic.c (FLOAT, FFS): Don't undefine.
10345         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
10346         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
10347         include ordering.
10348
10349 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
10350
10351         * combine.c (propagate_for_debug): Call make_compound_operation
10352         on the source value.
10353         (try_combine): When implementing a split chosen by find_split_point,
10354         either copy i2src or set it to null.  Assert that i2src is not null
10355         before substituting into CALL_INSN_FUNCTION_USAGE.
10356
10357 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
10358
10359         * double-int.h (double_int_ior): New function.
10360         * tree.h (build_int_cst_wide_type): Remove.
10361         * tree.c (build_int_cst_wide_type): Remove.
10362         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
10363         of build_int_cst_wide_type.
10364         * stor-layout.c (set_sizetype): (Ditto.).
10365         * dojump.c (do_jump): Use build_int_cstu instead of
10366         build_int_cst_wide_type.
10367
10368 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10369
10370         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
10371         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
10372         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
10373         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
10374         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
10375         propagate the 'data' argument to copy_tree_r.
10376         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
10377         Propagate 'data' argument to walk_tree.
10378         (copy_if_shared): New function.
10379         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
10380         (unmark_visited): New function.
10381         (unshare_body): Call copy_if_shared instead of doing it manually.
10382         (unvisit_body): Call unmark_visited instead of doing it manually.
10383
10384 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
10385
10386         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
10387         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
10388         * hooks.c: Likewise.
10389         * target-def.h (TARGET_FOLD_BUILTIN): Define to
10390         hook_tree_tree_int_treep_bool_null.
10391         * target.h (struct gcc_target): Update signature of fold_builtin
10392         field.
10393         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
10394         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
10395         instead of the call expression.
10396         (fold_builtin_call_array): Pass n and argarray directly.
10397         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
10398         consing a list.
10399         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
10400         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
10401         `i' and use it in place of `arity'.
10402         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
10403         Dereference `args' directly.
10404         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
10405
10406 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10407
10408         * doc/sourcebuild.texi (Effective-Target Keywords): Document
10409         3dnow, sse3, sse2.
10410         (Directives): Document optional dg-require-effective-target
10411         selector.
10412
10413 2010-05-19  Richard Guenther  <rguenther@suse.de>
10414
10415         PR lto/44196
10416         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
10417
10418 2010-05-19  Richard Guenther  <rguenther@suse.de>
10419
10420         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
10421         * common.opt (fwhopr=): New.
10422         * opts.c (common_handle_option): Handle OPT_fwhopr.
10423         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
10424         * collect2.c (main): Match -fwhopr*.
10425         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
10426         Execute ltrans stage in parallel when jobs is bigger than 1.
10427
10428 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10429
10430         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
10431         pentiumpro on Solaris 8/x86 with Sun as.
10432         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
10433         hidden alias bug.
10434         (gcc_cv_as_ix86_quad): Check for .quad directive.
10435         * configure: Regenerate.
10436         * config.in: Regenerate.
10437         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
10438
10439 2010-05-19  Martin Jambor  <mjambor@suse.cz>
10440
10441         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
10442         also for indirect edges.  Actual printing moved...
10443         (ipa_print_node_jump_functions_for_edge): ...here.
10444         (ipa_compute_jump_functions): Renamed to
10445         ipa_compute_jump_functions_for_edge and made static.
10446         (ipa_compute_jump_functions): New function.
10447         (make_edge_direct_to_target): Check if the number of arguments on
10448         the newly direct edge is the same as the number of parametrs of
10449         the callee.
10450         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
10451         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
10452         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10453         analysis functions unconditionally, call the new
10454         ipa_analyze_params_uses on the node instead of every edge.
10455
10456 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
10457
10458         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
10459         to tree.
10460         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
10461         also checks for a constant int vs.  non-constant but
10462         loop-invariant steps.
10463         (find_or_create_group): Change the sort algorithm to only consider
10464         steps that are constant ints.
10465         (idx_analyze_ref): Adopt code to handle a tree instead of a
10466         HOST_WIDE_INT for step.
10467         (gather_memory_references_ref): Handle tree instead of int and be
10468         prepared to see a NULL_TREE.
10469         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
10470         prefetches if the step cannot be calculated at compile time.
10471         (issue_prefetch_ref): Issue prefetches for non-constant but
10472         loop-invariant steps.
10473
10474 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
10475
10476         Revert:
10477         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
10478
10479         * tree.h (build_call_list): Remove.
10480         * tree.c (build_call_list): Remove.
10481
10482 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
10483
10484         * tree.h (build_call_list): Remove.
10485         * tree.c (build_call_list): Remove.
10486
10487 2010-05-18  Jan Hubicka  <jh@suse.cz>
10488
10489         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
10490
10491 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
10492
10493         PR rtl-optimization/43332
10494         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
10495
10496 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
10497
10498         * tree.h (build_int_cstu): Implement as static inline.
10499         * tree.c (build_int_cstu): Remove function.
10500         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
10501         sign extended.
10502
10503 2010-05-18  Richard Guenther  <rguenther@suse.de>
10504
10505         PR lto/44143
10506         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
10507         (debug): Initialize from -save-temps.
10508         (collect_execute): Print command-line when verbose.
10509         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
10510         for ltrans invocation.  Produce -dumpbase flag again.
10511         (process_args): Remove.
10512         (main): Simplify.
10513         * collect2.c (maybe_run_lto_and_relink): Only pass object
10514         files to lto-wrapper.
10515         * gcc.c (LINK_COMMAND_SPEC): Likewise.
10516
10517 2010-05-18  Jan Hubicka  <jh@suse.cz>
10518
10519         * opts.c (decode_options): Do not disable whopr at ipa_cp.
10520         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
10521
10522 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
10523
10524         PR lto/44184
10525         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
10526         in a GIMPLE_ASM.
10527         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
10528         in a GIMPLE_ASM.
10529
10530 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
10531
10532         PR debug/41371
10533         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
10534         rtx_equal_p inline.
10535
10536 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
10537
10538         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
10539         lto-macho as lto_binary_reader.
10540
10541         * darwin.c (darwin_asm_named_section): Do not add assembler comment
10542         after .section directive; just print it before the directive instead.
10543
10544 2010-05-17  Jan Hubicka  <jh@suse.cz>
10545
10546         * cgraph.c (cgraph_create_virtual_clone): Only check
10547         versionable_function_p when not in wpa and checking is enabled.
10548         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
10549         there are no more functions to materialize.
10550
10551 2010-05-17  Jan Hubicka  <jh@suse.cz>
10552
10553         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
10554         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
10555         New functions.
10556         (output_cgraph): Call output_cgraph_opt_summary.
10557         (input_cgrpah): Call input_cgraph_opt_summary.
10558         (output_cgraph_opt_summary_p, output_node_opt_summary,
10559         input_node_opt_summary, input_cgraph_opt_section): New functions.
10560         * lto-section-in.c (lto_section_name): Add cgraphopt.
10561         * tree-inline.c (tree_function_versioning): Handle parm_num.
10562         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
10563         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
10564
10565 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
10566
10567         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
10568         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
10569         the insn to prefetch ratio heuristic to loops with known trip count.
10570
10571 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
10572
10573         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
10574         (schedule_prefetches): Do not generate a prefetch if the unroll factor
10575         is far from what is required by the prefetch.
10576
10577 2010-05-17  Jan Hubicka  <jh@suse.cz>
10578
10579         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
10580         (ipcp_estimate_growth): Likewise.
10581         (ipcp_const_param_count): Likewise.
10582         (ipcp_insert_stage): Likewise.
10583         * ipa-prop.c (visit_load_for_mod_analysis): New function.
10584         (visit_store_addr_for_mod_analysis): Set used flag.
10585         (ipa_detect_param_modifications): Set used flag for SSE params;
10586         update use of walk_stmt_load_store_addr_ops.
10587         (ipa_print_node_params): Print used flag.
10588         (ipa_write_node_info): Stream used flag.
10589         (ipa_read_node_info): Likewise.
10590         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
10591         (ipa_is_param_used): New function.
10592         (lto_ipa_fixup_call_notes): Remove unused declaration.
10593
10594 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10595
10596         PR target/44074
10597         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
10598         * configure: Regenerate.
10599         * config.in: Regenerate.
10600         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
10601         !HAVE_AS_IX86_REP_LOCK_PREFIX.
10602         Don't emit whitespace.
10603         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
10604         (*rep_movsi): Likewise.
10605         (*rep_movsi_rex64): Likewise.
10606         (*rep_movqi): Likewise.
10607         (*rep_movqi_rex64): Likewise.
10608         (*rep_stosdi_rex64): Likewise.
10609         (*rep_stossi): Likewise.
10610         (*rep_stossi_rex64): Likewise.
10611         (*rep_stosqi): Likewise.
10612         (*rep_stosqi_rex64): Likewise.
10613         (*cmpstrnqi_nz_1): Use {%;} after repz.
10614         (*cmpstrnqi_nz_rex_1): Likewise.
10615         (*cmpstrnqi_1): Likewise.
10616         (*cmpstrnqi_rex_1): Likewise.
10617         (*strlenqi_1): Use {%;} after repnz.
10618         (*strlenqi_rex_1): Likewise.
10619         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
10620         (*sync_compare_and_swap<mode>): Likewise.
10621         (sync_double_compare_and_swap<mode>): Likewise.
10622         (*sync_double_compare_and_swapdi_pic): Likewise.
10623         (sync_old_add<mode>): Likewise.
10624         (sync_add<mode>): Likewise.
10625         (sync_sub<mode>): Likewise.
10626         (sync_<code><mode>): Likewise.
10627
10628 2010-05-17  Martin Jambor  <mjambor@suse.cz>
10629
10630         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
10631         otr_token and polymorphic.
10632         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
10633         (cgraph_clone_edge): Copy the above fields.
10634         * tree.c (get_binfo_at_offset): New function.
10635         * tree.h (get_binfo_at_offset): Declare.
10636         * ipa-prop.h (enum jump_func_type): Added known_type jump function
10637         type, reordered items, updated comments.
10638         (union jump_func_value): Added base_type field, reordered fields.
10639         (enum ipa_lattice_type): Moved down in the file.
10640         (struct ipa_param_descriptor): New field polymorphic.
10641         (ipa_is_param_polymorphic): New function.
10642         * ipa-prop.c: Include gimple.h and gimple-fold.h.
10643         (ipa_print_node_jump_functions): Print known type jump functions.
10644         (compute_complex_pass_through): Renamed to...
10645         (compute_complex_assign_jump_func): this.
10646         (compute_complex_ancestor_jump_func): New function.
10647         (compute_known_type_jump_func): Likewise.
10648         (compute_scalar_jump_functions): Create known type and complex ancestor
10649         jump functions.
10650         (ipa_note_param_call): New parameter polymorphic, set the corresponding
10651         flag in the call note accordingly.
10652         (ipa_analyze_call_uses): Renamed to...
10653         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
10654         variable var only in the block where it is used.
10655         (ipa_analyze_virtual_call_uses): New function.
10656         (ipa_analyze_call_uses): Likewise.
10657         (combine_known_type_and_ancestor_jfs): Likewise.
10658         (update_jump_functions_after_inlining): Implemented handling of a
10659         number of new jump function types combination.
10660         (print_edge_addition_message): Removed.
10661         (make_edge_direct_to_target): New function.
10662         (try_make_edge_direct_simple_call): Likewise.
10663         (try_make_edge_direct_virtual_call): Likewise.
10664         (update_call_notes_after_inlining): Renamed to...
10665         (update_indirect_edges_after_inlining): this.  Moved edge creation for
10666         indirect calls to try_make_edge_direct_simple_call, also calls
10667         try_make_edge_direct_virtual_call for virtual calls.
10668         (ipa_print_node_params): Changed the header message.
10669         (ipa_write_jump_function): Stream also known type jump functions.
10670         (ipa_read_jump_function): Likewise.
10671         (ipa_write_indirect_edge_info): Stream new fields in
10672         cgraph_indirect_call_info.
10673         (ipa_read_indirect_edge_info): Likewise.
10674         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
10675         GIMPLE_FOLD_H.
10676
10677 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10678
10679         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
10680
10681 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
10682
10683         * tree.h (CALL_EXPR_ARGS): Delete.
10684         (call_expr_arglist): Delete.
10685         * tree.c (call_expr_arglist): Delete.
10686         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
10687         targetm.fold_builtin.
10688         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
10689         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
10690         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
10691         arglist parameter.  Use CALL_EXPR_ARG.
10692         (picochip_expand_builtin_3op): Likewise.
10693         (picochip_expand_builtin_2opvoid): Likewise.
10694         (picochip_expand_array_get): Likewise.
10695         (picochip_expand_array_put): Likewise.
10696         (picochip_expand_array_testport): Likewise.
10697         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
10698         rather than arglist.
10699         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
10700         CALL_EXPR_ARGS.
10701         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
10702         than TREE_VALUE and TREE_CHAIN.
10703         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
10704         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
10705         the arglist.
10706
10707 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
10708
10709         PR bootstrap/42347
10710         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
10711         to have no fallthru edge.
10712
10713         PR middle-end/44102
10714         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
10715         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
10716         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
10717         add BARRIER after previous bb if needed.
10718
10719 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
10720
10721         * tree.c (build_function_type_list_1): Remove bogus assert condition.
10722
10723 2010-05-17  Alan Modra  <amodra@gmail.com>
10724
10725         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
10726         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
10727         with copy_reg rtx param.
10728         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
10729         Correct cases where code for ABI_V4 did not initialise the reg
10730         used to access frame.  Also leave frame_reg_rtx as sp for large
10731         frames that save no regs.
10732
10733 2010-05-17  Martin Jambor  <mjambor@suse.cz>
10734
10735         PR middle-end/44133
10736         * tree-sra.c (create_access_replacement): New parameter rename, mark
10737         the replaement for renaming only when it is true.
10738         (get_access_replacement): Pass true in the rename parameter of
10739         create_access_replacement.
10740         (get_unrenamed_access_replacement): New function.
10741         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
10742         replacement declaration from it.
10743
10744 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
10745
10746         * function.c (try_fit_stack_local, add_frame_space): New static
10747         functions.
10748         (assign_stack_local_1): Use them.  Look for opportunities to use
10749         space previously wasted on alignment.
10750         * function.h (struct frame_space): New.
10751         (struct rtl_data): Add FRAME_SPACE_LIST member.
10752         * reload1.c (something_was_spilled): New static variable.
10753         (alter_reg): Set it.
10754         (reload): Test it in addition to testing if the frame size changed.
10755
10756 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
10757
10758         * config/s390/s390.c: Define sane prefetch settings and activate
10759         flag_prefetch_loop_arrays on -O3.
10760         * config/s390/s390.h: Declare that read can use write prefetch.
10761
10762 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
10763
10764         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
10765         build.
10766
10767 2010-05-16  Jan Hubicka  <jh@suse.cz>
10768
10769         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
10770         function body; do not check stdarg field of struct function.
10771
10772 2010-05-16  Jan Hubicka  <jh@suse.cz>
10773
10774         * cgraph.c (dump_cgraph_node): Dump versionable flag.
10775         * cgraph.h (cgraph_local_info): Add versionable flag.
10776         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
10777         (ipcp_versionable_function_p): Use it.
10778         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
10779         versionable flag.
10780
10781 2010-05-16  Jan Hubicka  <jh@suse.cz>
10782
10783         * cgraph.c (cgraph_clone_node): Take decl argument and insert
10784         clone into hash when it is different from orig.
10785         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
10786         * cgraph.h (cgraph_clone_node): Update prototype.
10787         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
10788         (lto_cgraph_encoder_delete): Delete body map.
10789         (lto_cgraph_encoder_size): Move to header.
10790         (lto_cgraph_encoder_encode_body_p,
10791         lto_set_cgraph_encoder_encode_body): New.
10792         (lto_output_node): Do not take written_decls argument; output clone_of
10793         pointer.
10794         (add_node_to): Add include_body_argument; call
10795         lto_set_cgraph_encoder_encode_body on master of the clone.
10796         (add_references): Update use of add_node_to.
10797         (compute_ltrans_boundary): Likewise.
10798         (output_cgraph): Do not create written_decls bitmap.
10799         (input_node): Take nodes argument; stream in clone_of correctly.
10800         (input_cgraph_1): Update use of input_node.
10801         * lto-streamer-out.c (lto_output): Use encoder info to decide
10802         what bodies to output.
10803         * ipa-inline.c (cgraph_clone_inlined_nodes,
10804         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
10805         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
10806         (lto_cgraph_encoder_size): Define here.
10807         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
10808         Declare.
10809
10810 2010-05-16  Richard Guenther  <rguenther@suse.de>
10811
10812         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
10813         -fipa-type-escape.
10814         * ipa-type-escape.c (gate_type_escape_vars): Run when
10815         -fipa-struct-reorg runs.
10816         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
10817         * common.opt (fipa-type-escape): Remove.
10818
10819 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
10820
10821         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
10822         (decode_options): Likewise.
10823         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
10824
10825 2010-05-16  Jan Hubicka  <jh@suse.cz>
10826
10827         * ipa.c (function_and_variable_visibility): Also bring local all
10828         aliases.
10829
10830 2010-05-16  Richard Guenther  <rguenther@suse.de>
10831
10832         * alias.c (nonoverlapping_memrefs_p): Remove use of
10833         IPA type-escape information.
10834
10835 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
10836
10837         * c-common.c (c_common_reswords): Add _Static_assert for C.
10838         * c-parser.c (c_token_starts_declaration,
10839         c_parser_next_token_starts_declaration,
10840         c_parser_static_assert_declaration_no_semi,
10841         c_parser_static_assert_declaration): New.
10842         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
10843         Handle static assertions if static_assert_ok.
10844         (c_parser_external_declaration, c_parser_declaration_or_fndef,
10845         c_parser_compound_statement_nostart, c_parser_label,
10846         c_parser_for_statement, c_parser_objc_methodprotolist,
10847         c_parser_omp_for_loop): All callers of
10848         c_parser_declaration_or_fndef changed.
10849         (c_parser_struct_declaration): Handle static assertions.
10850         (c_parser_compound_statement_nostart): Use
10851         c_parser_next_token_starts_declaration and
10852         c_token_starts_declaration to detect start of declarations.
10853         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
10854         Likewise.
10855
10856 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
10857
10858         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
10859         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10860         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10861         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10862         (mmix_function_outgoing_value): Rename to...
10863         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
10864         (mmix_function_value_regno_p): Make static.
10865         (mmix_libcall_value): New function.
10866         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
10867         mmix_function_value_regno_p): Remove declaration.
10868
10869 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
10870
10871         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
10872         BUILT_IN_ALLOCA if stack checking is enabled.
10873
10874 2010-05-16  Richard Guenther  <rguenther@suse.de>
10875
10876         * var-tracking.c (vars_copy_1): Inline ...
10877         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
10878         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
10879         (variable_merge_over_cur): Adjust.  Merge asserts.
10880         (variable_merge_over_src): Likewise.
10881         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
10882         (variable_post_merge_new_vals): Merge asserts.
10883         (variable_post_merge_perm_vals): Likewise.
10884         (find_mem_expr_in_1pdv): Likewise.
10885         (dataflow_set_different_value): Remove.
10886         (onepart_variable_different_p): Merge asserts.
10887         (variable_different_p): Likewise.
10888         (dataflow_set_different_1): Inline ...
10889         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
10890         (emit_notes_for_differences_1): Merge asserts.
10891
10892 2010-05-16  Richard Guenther  <rguenther@suse.de>
10893
10894         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
10895         * optabs.c (libfunc_decl_hash): Likewise.
10896         * varasm.c (emutls_decl): Likewise.
10897
10898 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
10899
10900         * c-decl.c: Don't include gimple.h.
10901         (merge_decls): Do not copy gimple_body.
10902
10903 2010-05-15  Jason Merrill  <jason@redhat.com>
10904
10905         * c.opt: Add -fnothrow-opt.
10906
10907 2010-05-15  Jan Hubicka  <jh@suse.cz>
10908
10909         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
10910         analyzed.
10911         * passes.c (ipa_write_summaries): Write all analyzed nodes.
10912
10913 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
10914
10915         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
10916         * Makefile.in: Add it.
10917         Fix all other Makefile dependencies for changes below.
10918         * tree.h: Include it instead of defining VEC primitives here.
10919         * gimple.h: Likewise.
10920         * rtl.h: Likewise.
10921         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
10922         * except.h: Include vecir.h, break dependence on tree.h.
10923
10924         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
10925         Move from here...
10926         * tree-iterator.c: ...to here.
10927         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
10928
10929         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
10930         tm_p.h.
10931         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
10932         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
10933         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
10934         tree-mudflap.h, and target.h.
10935         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
10936         predict.h, tree-inline.h, gimple.h, and langhooks.h.
10937         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
10938         Add FIXME for why gimple.h is still included (should be unnecessary
10939         since GCC 4.5 gimplification unit-at-a-time).
10940         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
10941         * c-pragma.c: Add FIXME for why function.h needs to be included just
10942         for cfun, at front-end level.
10943         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
10944         Do not include ggc.h, but include vecprim.h for VEC(char).
10945         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
10946         Explain why target.h is included.
10947         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
10948         Explain why gimple.h is included.
10949         * c-ppoutput.c: Do not include tm.h.
10950         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
10951         * c-parses.c: Explain why rtl.h is included, and that this (and only
10952         this) is also why tm.h must be included.
10953         Do not include except.h.
10954         * c-lang.c: Do not include ggc.h.
10955
10956 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
10957
10958         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
10959
10960 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
10961
10962         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
10963         unions by default if those structs and unions have no tags.  Do
10964         not condition anonymous struct and unions handling on flag_iso.
10965         Allow anonymous structs and unions for C1X.
10966         (finish_struct): Do not diagnose lack of named fields when
10967         anonymous structs and unions present for C1X.  Accept flexible
10968         array members in structure with anonymous structs or unions but no
10969         directly named fields.
10970         * doc/extend.texi (Unnamed Fields): Update.
10971
10972 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
10973
10974         * gimple.h (compare_field_offset): Rename into...
10975         (gimple_compare_field_offset): ...this.
10976         * gimple.c (compare_field_offset): Rename into...
10977         (gimple_compare_field_offset): ...this.  Compare the full access if
10978         the offset is self-referential.
10979         (gimple_types_compatible_p): Adjust for above renaming.
10980         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
10981         DECL_NONADDRESSABLE_P flag of fields before merging them.
10982
10983 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
10984
10985         * tree.h (ctor_to_list): Delete.
10986         * tree.c (ctor_to_list): Delete.
10987
10988 2010-05-15  Jan Hubicka  <jh@suse.cz>
10989
10990         * ipa-reference.c: Include toplev.h
10991         (is_proper_for_analysis): Only add to all_module_statics
10992         if it is allocated.
10993         (write_node_summary_p, stream_out_bitmap,
10994         ipa_reference_write_optimization_summary,
10995         ipa_reference_read_optimization_summary): New.
10996         (struct ipa_opt_pass_d pass_ipa_reference): Add
10997         optimization summary streaming.
10998         * lto-cgraph.c (referenced_from_this_partition_p,
10999         reachable_from_this_partition_p): New functions.
11000         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11001         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
11002         * opts.c (decode_options): Enable ipa_reference.
11003         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
11004         * lto-streamer.h (referenced_from_this_partition_p,
11005         reachable_from_this_partition_p): Declare.
11006
11007 2010-05-15  Richard Guenther  <rguenther@suse.de>
11008
11009         PR tree-optimization/44038
11010         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
11011         taking the address of a V_C_E of a constant.
11012
11013 2010-05-14  Jan Hubicka  <jh@suse.cz>
11014
11015         * tree.h (memory_identifier_string): Remove.
11016         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
11017         (ipa_reference_global_vars_info_d): Remove statics_not_read and
11018         statics_not_written.
11019         (ipa_reference_optimization_summary_d): New structure.
11020         (ipa_reference_optimization_summary_t): New type and vector.
11021         (ipa_reference_vars_info_d): Embedd structures instead of using
11022         pointers.
11023         (reference_vars_to_consider): Remove out of GGC space.
11024         (module_statics_escape): Remove.
11025         (global_info_obstack): Rename to ...
11026         (optimization_summary_obstack): ... this one.
11027         (initialization_status_t): Remove.
11028         (memory_identifier_string): Remove.
11029         (get_reference_vars_info): Fix indenting.
11030         (set_reference_vars_info): Likewise.
11031         (get_reference_optimization_summary): New.
11032         (set_reference_optimization_summary): New.
11033         (get_global_reference_vars_info): Remove.
11034         (ipa_reference_get_read_global): Remove.
11035         (ipa_reference_get_written_global): Remove.
11036         (ipa_reference_get_not_read_global): Update.
11037         (ipa_reference_get_not_written_global): Update.
11038         (is_proper_for_analysis): Outlaw addressable.
11039         (propagate_bits): Update for new datastructures.
11040         (analyze_variable): Remove.
11041         (init_function_info): Update for new datastructures.
11042         (clean_function_local_data): Remove.
11043         (clean_function): Remove.
11044         (copy_global_bitmap): Use optimizations_summary_obstack.
11045         (duplicate_node_data): Duplicate optimization summary only.
11046         (remove_node_data): Remove optimization summary only.
11047         (generate_summary): Do not analyze variables; do not compute
11048         module_statics_escape; do not prune solutions by it.
11049         (read_write_all_from_decl): Fix typos in comments.
11050         (propagate): Doscover readonly and nonaddressable first;
11051         update for new datastructures; share global bitmaps.
11052         * ipa-reference.h (ipa_reference_get_read_global,
11053         ipa_reference_get_written_global): Remove.
11054         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
11055         * Makefile.in: Remove ipa-refereference from GT files.
11056
11057 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
11058
11059         PR debug/44112
11060         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
11061         for all SYMBOL_REF_DECLs.
11062
11063 2010-05-14  Jan Hubicka  <jh@suse.cz>
11064
11065         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
11066         (varpool_all_refs_explicit_p): New inline function.
11067         * ipa-reference.c: Update comment.
11068         (module_statics_written): Remove.
11069         (get_static_decl): Remove.
11070         (ipa_init): Do not initialize module_statics_written.
11071         (analyze_function): Likewise.
11072         (generate_summary): Likewise; do not compute module_statics_readonly
11073         and do not update variable flags.
11074         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
11075         * ipa.c: Inlucde flags.h
11076         (cgraph_local_node_p): New.
11077         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
11078         promote functions to local.
11079         (ipa_discover_readonly_nonaddressable_vars): New function.
11080         (function_and_variable_visibility): Use cgraph_local_node_p.
11081         * varpool.c (varpool_finalize_decl): Set force_output for
11082         DECL_PRESERVE_P vars.
11083
11084 2010-05-14  Jan Hubicka  <jh@suse.cz>
11085
11086         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
11087
11088 2010-05-14  Richard Guenther  <rguenther@suse.de>
11089
11090         PR tree-optimization/44119
11091         * tree-ssa-pre.c (eliminate): Properly mark replacement of
11092         a PHI node necessary.
11093
11094 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
11095
11096         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
11097
11098 2010-05-14  Jason Merrill  <jason@redhat.com>
11099
11100         PR c++/44127
11101         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
11102         (gimple_call_set_nothrow): New.
11103         * gimple.c (gimple_build_call_from_tree): Call it.
11104         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
11105
11106         PR c++/44127
11107         * gimplify.c (gimplify_seq_add_stmt): No longer static.
11108         * gimple.h: Declare it.
11109         * gimple.c (gimple_build_eh_filter): No ops.
11110
11111 2010-05-14  Jan Hubicka  <jh@suse.cz>
11112
11113         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
11114         nodes already in queue.
11115         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
11116         re-enqueueing node.
11117
11118 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
11119
11120         PR debug/44136
11121         * cfgexpand.c (expand_debug_expr): If non-memory op0
11122         has BLKmode, return NULL.
11123
11124 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
11125
11126         * config.gcc: Add support for --with-cpu option for bdver1.
11127         * config/i386/i386.h (TARGET_BDVER1): New macro.
11128         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
11129         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
11130         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
11131         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
11132         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
11133         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
11134         (processor_type): Add PROCESSOR_BDVER1.
11135         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
11136         processor_type in config/i386/i386.h.
11137         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
11138         movaps <reg, reg> instead of movapd <reg, reg> when replacing
11139         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
11140         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
11141         to emit packed xor instead of packed double/packed integer
11142         xor for SSE and AVX when moving a zero value.
11143         * config/i386/sse.md: Add check for
11144         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
11145         movapd/movdqa for SSE and AVX.
11146         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
11147         single logical operations i.e and, or and xor instead of packed double
11148         logical operations for SSE and AVX.
11149         * config/i386/i386-c.c (ix86_target_macros_internal):
11150         Add PROCESSOR_BDVER1.
11151         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
11152         (has_fma4, has_xop): New.
11153         * config/i386/i386.c (bdver1_cost): New variable.
11154         (m_BDVER1): New macro.
11155         (m_AMD_MULTIPLE): Add m_BDVER1.
11156         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
11157         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
11158         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
11159         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
11160         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
11161         x86_tune_sse_partial_reg_dependency,
11162         x86_tune_sse_unaligned_load_optimal,
11163         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
11164         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
11165         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
11166         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
11167         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
11168         Enable/disable for bdver1.
11169         (processor_target_table): Add bdver1_cost.
11170         (cpu_names): Add bdver1.
11171         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
11172          processor_alias_table.
11173         (ix86_expand_vector_move_misalign): Change.
11174         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
11175         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
11176         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
11177         of movupd/movdqu for SSE and AVX.
11178         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
11179         (ix86_tune_adjust_cost): Add code for bdver1.
11180         (standard_sse_constant_opcode): Add check for
11181         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
11182         of packed double xor for SSE and AVX.
11183
11184 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
11185
11186         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
11187         result to unsigned.
11188
11189 2010-05-14  Tristan Gingold  <gingold@adacore.com>
11190
11191         * toplev.c (default_debug_hooks): Remove this variable.
11192         (process_options): Remove assignments to default_debug_hooks.
11193
11194 2010-05-14  Martin Jambor  <mjambor@suse.cz>
11195
11196         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
11197         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
11198         * langhooks.h (struct lang_hooks_for_decls): Removed field
11199         fold_obj_type_ref.
11200         * tree.c (free_lang_data): Remove assignment to
11201         lang_hooks.fold_obj_type_ref.
11202         * tree.def (OBJ_TYPE_REF): Update comment.
11203
11204 2010-05-14  Richard Guenther  <rguenther@suse.de>
11205
11206         PR tree-optimization/44124
11207         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
11208
11209 2010-05-14  Alan Modra  <amodra@gmail.com>
11210
11211         PR target/44075
11212         * config/rs6000/rs6000.c (struct machine_function): Reorder
11213         fields for better packing.  Add lr_save_state.
11214         (rs6000_ra_ever_killed): Return lr_save_state if set.
11215         (rs6000_emit_eh_reg_restore): Set lr_save_state.
11216
11217 2010-05-13  Jan Hubicka  <jh@suse.cz>
11218
11219         * varpool.c (decide_is_variable_needed): Drop code checking
11220         TREE_SYMBOL_REFERENCED.
11221
11222 2010-05-13  Jan Hubicka  <jh@suse.cz>
11223
11224         * final.c (output_addr_const): Do not call mark_decl_referenced.
11225         * cgraphunit.c (process_function_and_variable_attributes): Use
11226         mark_needed_node dirrectly.
11227         (assemble_thunk): Do not call mark_decl_referenced.
11228
11229 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
11230
11231         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
11232
11233 2010-05-13  Jeff Law  <law@redhat.com>
11234
11235         * ira-conflicts.c (print_allocno_conflicts): New function broken out
11236         from...
11237         (print_conflicts): Call print_allocno_conflicts.
11238
11239 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
11240
11241         PR debug/44104
11242         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
11243         if it is NULL.
11244
11245 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
11246
11247         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
11248         t-mingw-w64 or t-mingw-w32 for multilib configuration.
11249         * config/i386/t-mingw-w32: New.
11250         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
11251
11252 2010-05-13  Martin Jambor  <mjambor@suse.cz>
11253
11254         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
11255         gimple-fold.c).
11256         * gimple-fold.c (get_base_binfo_for_type): New function.
11257         (gimple_get_relevant_ref_binfo): Likewise.
11258         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11259         (gimple_fold_obj_type_ref): Likewise.
11260         (fold_gimple_call): Simplify condition for folding virtual calls
11261         and call gimple_fold_obj_type_ref.
11262         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
11263         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11264
11265 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
11266
11267         * config/rs6000/rs6000-protos.h
11268         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
11269         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
11270         (rs6000_debug_mode_dependent_address)
11271         (rs6000_mode_dependent_address_ptr): Likewise.
11272
11273 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
11274
11275         PR debug/43983
11276         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
11277         by SRA.
11278         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
11279         * tree-sra.c (create_access_replacement): Call unshare_expr before
11280         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
11281         * dwarf2out.c: Include tree-flow.h.
11282         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
11283         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
11284         Handle DW_OP_bit_piece.
11285         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
11286         construct_piece_list, adjust_piece_list): New functions.
11287         (add_var_loc_to_decl): Handle SRA optimized variables.
11288         Adjust for var_loc_note to loc field renaming.
11289         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
11290         in VAR_LOCATION note.
11291         (new_loc_descr_op_bit_piece): New function.
11292         (dw_sra_loc_expr): New function.
11293         (dw_loc_list): Use it.  Don't handle the last range after the
11294         loop, handle it inside of the loop.  Adjust for var_loc_note
11295         to loc field renaming.
11296         (add_location_or_const_value_attribute): Only special case
11297         single entry loc lists if loc is NOTE_P.  Adjust for
11298         var_loc_note to loc field renaming.
11299         (dwarf2out_var_location): Don't set newloc->var_loc_note
11300         and newloc->next here.
11301
11302 2010-05-12  Jan Hubicka  <jh@suse.cz>
11303
11304         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
11305         flag.
11306         * cgraph.h (cgraph_only_called_directly_p,
11307         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
11308         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
11309         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
11310         (assemble
11311         * ipa.c (cgraph_remove_unreachable_nodes): Use
11312         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
11313         flags.
11314         * tree-inline.c (copy_bb): Check address_taken flag.
11315         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
11316         externally_visible flag.
11317
11318 2010-05-12  Jason Merrill  <jason@redhat.com>
11319
11320         PR bootstrap/44048
11321         PR target/44099
11322         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
11323         * sdbout.c (plain_type_1): Likewise.
11324         * dwarf2out.c (is_base_type): Likewise.
11325         (gen_type_die_with_usage): Likewise.  Generate
11326         DW_TAG_unspecified_type for any LANG_TYPE.
11327
11328 2010-05-12  Jan Hubicka  <jh@suse.cz>
11329
11330         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
11331         indrect edges too.
11332         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
11333         (cgraph_clone_edge): Update.
11334         (cgraph_node_remove_callees): Remove indirect calls too.
11335         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
11336         (cgraph_create_indirect_edge): Update prototype.
11337         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
11338         is_proper_for_analysis.
11339         (add_new_function, visited_nodes, function_insertion_hook_holder,
11340         get_local_reference_vars_info, mark_address_taken, mark_address,
11341         mark_load, mark_store, check_asm_memory_clobber, check_call,
11342         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
11343         (ipa_init): Do not initialize visited_nodes;
11344         function_insertion_hook_holder.
11345         (analyze_variable): Rewrite.
11346         (analyze_function): Rewrite.
11347         (copy_local_bitmap): Remove.
11348         (duplicate_node_dat): Do not duplicate local info.
11349         (generate_summary): Simplify to only walk cgraph.
11350         (write_node_summary_p, ipa_reference_write_summary,
11351         ipa_reference_read_summary): Remove.
11352         (propagate): Do not remove function insertion;
11353         generate summary.
11354         (pass_ipa_reference): NULLify summary handling fields.
11355         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
11356         (input_edge): Input ecf_flags.
11357         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
11358         (update_indirect_edges_after_inlining): Ignore edges with unknown
11359         param.
11360
11361 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
11362
11363         * implicit-zee.c: New file.
11364         * tree-pass.h (pass_implicit_zee): Declare.
11365         * passes.c (init_optimization_passes): Add zee pass.
11366         * common.opt (fzee): New flag.
11367         * timevar.def (TV_ZEE): Define.
11368         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
11369         and beyond.
11370         * Makefile.in (implicit-zee.o): Add new build file.
11371
11372 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
11373             Nathan Froyd  <froydnj@codesourcery.com>
11374
11375         * c-common.c (sync_resolve_params): Remove write-only variable.
11376
11377 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
11378
11379         * target.h (struct gcc_target): Add mode_dependent_address_p field.
11380         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
11381         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
11382         * targhooks.c (default_mode_dependent_address_p): New function.
11383         * targhooks.h (default_mode_dependent_address_p): Declare function.
11384         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
11385         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
11386         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
11387         target hook. Change return type to bool.
11388         * recog.h (mode_dependent_address_p): Change return type to bool.
11389
11390 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
11391             Nathan Froyd  <froydnj@codesourcery.com>
11392
11393         * tree-mudflap.c (build_function_type_0, build_function_type_1,
11394         build_function_type_2, build_function_type_3): Remove.
11395         (mudflap_init): Use build_function_type_list.
11396
11397 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
11398             Nathan Froyd  <froydnj@codesourcery.com>
11399
11400         * coverage.c (build_fn_info_value): Call build_constructor instead of
11401         build_constructor_from_list.
11402         (build_ctr_info_value): Likewise.
11403         (build_gcov_info): Likewise.
11404
11405 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
11406
11407         * tree.c (build_constructor): Compute TREE_CONSTANT for the
11408         resultant constructor.
11409         (build_constructor_single): Don't set TREE_CONSTANT.
11410         (build_constructor_from_list): Don't compute TREE_CONSTANT.
11411
11412 2010-05-12  Jan Hubicka  <jh@suse.cz>
11413
11414         * cgraph.h (struct varpool_node): Add aux.
11415         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
11416         * varpool.c (varpool_remove_node): Do not remove initializer.
11417         (varpool_reset_queue): Export.
11418         (varpool_finalize_decl): Volatile vars are forced to be output.
11419         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
11420         replaced decl.
11421         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
11422         process_references, varpool_can_remove_if_no_refs): New functions.
11423         (cgraph_remove_unreachable_nodes): Handle variables too.
11424
11425 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11426
11427         PR target/44088
11428         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
11429
11430 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
11431
11432         PR middle-end/44085
11433         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
11434         change value of ORT_TASK.
11435         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
11436         (omp_notice_threadprivate_variable): New function.
11437         (omp_notice_variable): Call it for threadprivate variables.
11438         If enclosing ctx is a task, print enclosing task rather than
11439         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
11440         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
11441         if task has untied clause.
11442
11443         PR debug/42278
11444         * dwarf2out.c (base_type_die): Don't add name attribute here.
11445         (modified_type_die): Instead of sizetype use
11446         its underlying original type.  If a DW_TAG_base_type doesn't
11447         have name added, add __unknown__.
11448         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
11449         always call force_type_die instead.
11450
11451 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
11452
11453         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
11454         for __stack_chk_guard.
11455
11456 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
11457
11458         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
11459         don't call start_source_file debug hook here...
11460         (finish_options): ... but here, after outputting predefined and
11461         command line defines and undefs.
11462
11463         PR middle-end/44071
11464         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
11465         no fallthru edge.
11466         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
11467         optimizing away empty bb with no successors, move over its
11468         footer chain to fallthru predecessor.
11469         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
11470         (rtl_split_edge): For asm goto call patch_jump_insn even if
11471         splitting fallthru edge.
11472
11473         PR c++/44059
11474         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
11475         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
11476         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
11477         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
11478         on DW.ref.* decls.
11479
11480         PR c++/44062
11481         * c-parser.c (c_parser_expression): Mark LHS of a comma
11482         expression as read if it is a decl, handled component or
11483         COMPOUND_EXPR with that on the RHS.
11484         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
11485         if it is a decl or handled component.
11486
11487 2010-05-11  Jan Hubicka  <jh@suse.cz>
11488
11489         * lto-symtab.c (lto_symtab_free): New function.
11490         * lto-streamer.h (lto_symtab_free): Declare.
11491
11492 2010-05-11  Jan Hubicka  <jh@suse.cz>
11493
11494         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
11495         that if function is needed it is reachable.
11496         (lto_output_node): See if it the function is reachable or referenced.
11497         (output_cgraph): Update call of lto_output_node.
11498         * lto-streamer.h (reachable_from_other_partition_p): Declare.
11499
11500 2010-05-11  Jan Hubicka  <jh@suse.cz>
11501
11502         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
11503         Mark as used.
11504
11505 2010-05-11  Jan Hubicka  <jh@suse.cz>
11506
11507         PR tree-optimize/44063
11508         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
11509         queue.
11510         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
11511         limits.
11512         (estimate_function_body_sizes): Compute sizes even when disregarding.
11513
11514 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
11515
11516         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
11517
11518 2010-05-11  Jan Hubicka  <jh@suse.cz>
11519
11520         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
11521         into every boundary.
11522
11523 2010-05-11  Jan Hubicka  <jh@suse.cz>
11524
11525         * matrix-reorg.c (matrix_reorg): Rebuild edges.
11526
11527 2010-05-11  Jan Hubicka  <jh@suse.cz>
11528
11529         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
11530         lto_streamer_cache_delete): Put nodes into heap.
11531         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
11532         heap.
11533
11534 2010-05-11  Jan Hubicka  <jh@suse.cz>
11535
11536         * cgraphbuild.c (cgraph_rebuild_references): New.
11537         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
11538         out extern inlines.
11539         * cgraph.h (cgraph_rebuild_references): Declare.
11540         * tree-inline.c (tree_function_versioning): Use it.
11541         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
11542
11543 2010-05-11  Jan Hubicka  <jh@suse.cz>
11544
11545         * cgraph.c: Include ipa-utils.h
11546         (cgraph_create_virtual_clone): Update references.
11547         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
11548
11549 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
11550
11551         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
11552         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
11553         cache size.
11554
11555 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
11556
11557         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
11558
11559 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
11560
11561         * gcc.c (execute): For -### don't quote arguments that
11562         contain just alphanumerics and _/-. characters.
11563         * doc/invoke.texi: Document that change for -###.
11564
11565         PR debug/44023
11566         * df-problems.c (struct dead_debug): Add to_rescan field.
11567         (dead_debug_init): Clear to_rescan field.
11568         (dead_debug_finish): Rescan all debug insns in to_rescan
11569         bitmap and free the bitmap.
11570         (dead_debug_insert_before): Instead of rescanning debug insns
11571         immediately queue their rescanning until dead_debug_finish.
11572         (df_note_bb_compute): After dead_debug_add do continue instead
11573         of break.
11574
11575 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
11576
11577         PR debug/44028
11578         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
11579         clear also INSN_REG_USE_LIST.
11580
11581 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11582
11583         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
11584
11585 2010-05-10  Jan Hubicka  <jh@suse.cz>
11586
11587         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
11588         commited change.
11589
11590 2010-05-10  Jan Hubicka  <jh@suse.cz>
11591
11592         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
11593         Allocate encoders.
11594         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
11595         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
11596         (lto_streamer_cache_create): Init alloc pool.
11597         (lto_streamer_cache_delete): Free alloc pool.
11598         * lto-streamer.h: Include alloc pool.
11599         (lto_streamer_cache_d): Use alloc pool.
11600         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
11601
11602 2010-05-10  Jan Hubicka  <jh@suse.cz>
11603
11604         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
11605         * cgraphbuild.c: Include except.h
11606         (record_type_list, record_eh_tables): New function.
11607         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
11608
11609 2010-05-10  Jan Hubicka  <jh@suse.cz>
11610
11611         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
11612         __frame_dummy_init_array_entry, force_to_data): Attribute as used
11613         rather than unused.
11614
11615 2010-05-10  Michael Matz  <matz@suse.de>
11616
11617         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
11618         (can_reassociate_p): Use FLOAT_TYPE_P.
11619         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
11620         (vect_force_simple_reduction): ... this.
11621         * tree-parloops.c (gather_scalar_reductions): Use
11622         vect_force_simple_reduction.
11623         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
11624         vect_is_simple_reduction, add modify argument, if true rewrite
11625         "a-b" into "a+(-b)".
11626         (vect_is_simple_reduction, vect_force_simple_reduction): New
11627         functions.
11628         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
11629
11630 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11631             Vladimir Makarov  <vmakarov@redhat.com>
11632
11633         PR rtl-optimization/44012
11634         * ira-build.c (remove_unnecessary_allocnos): Nullify
11635         regno_allocno_map of the removed allocno.
11636
11637 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11638
11639         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
11640         to /dev/null.
11641         * configure: Regenerate.
11642
11643 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11644
11645         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
11646         unused.
11647         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
11648         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
11649         support in Sun ld.
11650         * configure: Regenerate.
11651
11652 2010-05-10  Richard Guenther  <rguenther@suse.de>
11653
11654         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
11655         marked if the entry identifier is marked.
11656
11657 2010-05-10  Richard Guenther  <rguenther@suse.de>
11658
11659         * c-common.c (struct c_common_attributes): Add fnspec attribute.
11660         (handle_fnspec_attribute): New function.
11661         * gimple.h (gimple_call_return_flags): Declare.
11662         (gimple_call_arg_flags): Likewise.
11663         * gimple.c (gimple_call_arg_flags): New function.
11664         (gimple_call_return_flags): Likewise.
11665         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
11666         New argument flags.
11667         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
11668         return value flags.
11669         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
11670         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
11671         main work to ...
11672         (make_heapvar_for): ... this new function.
11673         (handle_rhs_call): Handle fnspec attribute argument specifiers.
11674         (handle_lhs_call): Likewise.
11675         (find_func_aliases): Adjust.
11676
11677 2010-05-10  Richard Guenther  <rguenther@suse.de>
11678
11679         PR tree-optimization/44050
11680         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
11681
11682 2010-05-10  Wei Guozhi  <carrot@google.com>
11683
11684         PR target/42879
11685         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
11686
11687 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
11688
11689         PR c/10676
11690         * c-typeck.c (lookup_field): Take a type directly.  Update
11691         recursive calls.
11692         (build_component_ref): Update call to lookup_field.
11693         (set_init_label): Use lookup_field to find initialized field.
11694         Handle returned list of fields like a sequence of designators.
11695
11696 2010-05-09  Richard Guenther  <rguenther@suse.de>
11697
11698         PR middle-end/44024
11699         * fold-const.c (tree_single_nonzero_warnv_p): Properly
11700         handle &FUNCTION_DECL.
11701
11702 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
11703
11704         PR c/4784
11705         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
11706         structures and unions recursively.
11707         (detect_field_duplicates): Move duplicate detection with a hash to
11708         detect_field_duplicates_hash.  Always use a hash if anonymous
11709         structures or unions are present.
11710         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
11711         give errors.
11712
11713 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11714
11715         PR target/44046
11716         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
11717         detect Atom, Core 2 and Core i7.
11718
11719 2010-05-09  Richard Guenther  <rguenther@suse.de>
11720
11721         * gcc.c (store_arg): Handle temporary file deletion for
11722         joined arguments.
11723
11724 2010-05-09  Richard Guenther  <rguenther@suse.de>
11725
11726         PR middle-end/44043
11727         * ipa-inline.c (estimate_function_body_sizes): Return after
11728         disregarding inline limits.
11729
11730 2010-05-09  Richard Guenther  <rguenther@suse.de>
11731
11732         * gcc.c (store_arg): Revert last change.
11733
11734 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
11735
11736         PR middle-end/28685
11737         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
11738         (optimize_ops_list): Call it.
11739
11740 2010-05-08  Richard Guenther  <rguenther@suse.de>
11741
11742         PR tree-optimization/44030
11743         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
11744         NECESSARY flag if we propagate from a inserted expression.
11745
11746 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
11747
11748         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
11749         domain types as equal if they are both PLACEHOLDER_EXPRs.
11750
11751 2010-05-08  Richard Guenther  <rguenther@suse.de>
11752
11753         * lto-wrapper.c (run_gcc): Remove linker output from
11754         command line for LTRANS invocation.
11755
11756 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
11757
11758         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11759         lto-macho as lto_binary_reader.
11760         * target.h (struct gcc_target): New hooks lto_start and lto_end.
11761         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
11762         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
11763         in lto_start and lto_end calls.
11764         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
11765         magic numbers.
11766         (scan_prog_file): Update is_elf_or_coff call.
11767         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
11768
11769         * collect2.c (main): Fix enum comparison.
11770
11771         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
11772         Add prototypes.
11773         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
11774         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
11775         and TARGET_ASM_LTO_END.
11776         * darwin.c: Include obstack.h and lto-streamer.h.
11777         (lto_section_names_offset, lto_section_names_obstack,
11778         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
11779         global variables.
11780         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
11781         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
11782         to a temporary file.
11783         (darwin_asm_lto_end): New function.  Restore asm_out_file.
11784         (darwin_asm_named_section): For LTO sections, replace the name with
11785         the offset of the section name in a string table, and build this
11786         table.
11787         (darwin_file_start): Initialize global vars for LTO support.
11788         (darwin_file_end): If output to asm_out_file was redirected, append it
11789         to the proper asm_out_file here.  Add the section names section.
11790
11791 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
11792
11793         * c-pragma.c (pending_weak_d, pending_weak): New.
11794         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
11795         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
11796         handle_pragma_weak): Update the uses of pending_weaks.
11797
11798 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11799
11800         PR documentation/44016
11801         * doc/standards.texi (Standards): Link to unversioned
11802         cxx0x_status.html page.
11803
11804 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
11805
11806         PR target/43708
11807         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
11808         in addition to TREE_USED, to avoid "set but unused" warnings.
11809
11810 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
11811
11812         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
11813         (is_loop_prefetching_profitable): Do not insert prefetches
11814         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
11815         times the prefetch ahead distance.
11816
11817 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
11818
11819         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
11820         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
11821         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
11822         the unroll_factor.
11823
11824 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
11825
11826         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
11827         a diagnostic info when the insn-to-mem ratio is too small.
11828
11829 2010-05-07  Richard Guenther  <rguenther@suse.de>
11830
11831         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
11832         the linker plugin.
11833         (store_arg): Queue temp_filename for deletion instead of
11834         the whole argument.
11835
11836 2010-05-07  Richard Guenther  <rguenther@suse.de>
11837
11838         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
11839         (run_gcc): Handle LTRANS phase invocation.
11840         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
11841
11842 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
11843
11844         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
11845         this is also meaningful on PARM_DECLs and RESULT_DECLs.
11846
11847 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11848
11849         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
11850
11851 2010-05-07  Richard Guenther  <rguenther@suse.de>
11852
11853         PR tree-optimization/44020
11854         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
11855         code when PRE is not yet initialized.
11856
11857 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11858
11859         * config/mips/dbxmdebug.h: Remove.
11860         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
11861
11862 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
11863
11864         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
11865         with null pointer and also warn about ordered comparison of zero with
11866         pointer if -Wextra.
11867
11868 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11869
11870         * graphite-blocking.c
11871         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
11872         * graphite-clast-to-gimple.c
11873         (clast_to_gcc_expression): Same.
11874         (precision_for_value): Same.
11875         (precision_for_interval): Same.
11876         (gcc_type_for_interval): Same.
11877         (graphite_create_new_guard): Same.
11878         (compute_bounds_for_level): Same.
11879         (graphite_create_new_loop_guard): Same.
11880         * graphite-interchange.c
11881         (build_linearized_memory_access): Same.
11882         (pdr_stride_in_loop): Same.
11883         (memory_strides_in_loop_1): Same.
11884         (memory_strides_in_loop): Same.
11885         (extend_scattering): Same.
11886         (psct_scattering_dim_for_loop_depth): Same.
11887         (pbb_number_of_iterations): Same.
11888         * graphite-poly.h
11889         (debug_iteration_domains): Same.
11890         * graphite-ppl.c
11891         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
11892         (ppl_set_inhomogeneous_gmp): Same.
11893         (ppl_strip_loop): Same.
11894         (ppl_lexico_compare_linear_expressions): Same.
11895         (ppl_read_polyhedron_matrix): Same.
11896         (ppl_max_for_le_pointset): Same.
11897         * graphite-ppl.h
11898         (ppl_read_polyhedron_matrix): Same.
11899         (tree_int_to_gmp): Same.
11900         (gmp_cst_to_tree): Same.
11901         (ppl_set_inhomogeneous): Same.
11902         (ppl_set_inhomogeneous_tree): Same.
11903         (ppl_set_coef): Same.
11904         (ppl_set_coef_tree): Same.
11905         * graphite-sese-to-poly.c
11906         (build_pbb_scattering_polyhedrons): Same.
11907         (build_scop_scattering): Same.
11908         (scan_tree_for_params_right_scev): Same.
11909         (scan_tree_for_params): Same.
11910         (find_params_in_bb): Same.
11911         (find_scop_parameters): Same.
11912         (add_upper_bounds_from_estimated_nit): Same.
11913         (build_loop_iteration_domains): Same.
11914         (add_condition_to_domain): Same.
11915         (pdr_add_memory_accesses): Same.
11916
11917 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11918
11919         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
11920         CLooG's value_* macros to their respective mpz_* counterparts.
11921         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
11922         (graphite_create_new_loop_guard): Same.
11923         * graphite-interchange.c (build_linearized_memory_access): Same.
11924         (pdr_stride_in_loop): Same.
11925         (memory_strides_in_loop_1): Same.
11926         (1st_interchange_profitable_p): Same.
11927         * graphite-poly.c (extend_scattering): Same.
11928         (psct_scattering_dim_for_loop_depth): Same.
11929         (pbb_number_of_iterations): Same.
11930         (pbb_number_of_iterations_at_time): Same.
11931         * graphite-poly.h (new_1st_loop): Same.
11932         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
11933         (oppose_constraint): Same.
11934         (insert_constraint_into_matrix): Same.
11935         (ppl_set_inhomogeneous_gmp): Same.
11936         (ppl_set_coef_gmp): Same.
11937         (ppl_strip_loop): Same.
11938         (ppl_lexico_compare_linear_expressions): Same.
11939         (ppl_max_for_le_pointset): Same.
11940         (ppl_min_for_le_pointset): Same.
11941         (ppl_build_realtion): Same.
11942         * graphite-ppl.h (gmp_cst_to_tree): Same.
11943         (ppl_set_inhomogeneous): Same.
11944         (ppl_set_inhomogeneous_tree): Same.
11945         (ppl_set_coef): Same.
11946         (ppl_set_coef_tree): Same.
11947         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11948         (build_scop_scattering): Same.
11949         (add_value_to_dim): Same.
11950         (scan_tree_for_params_right_scev): Same.
11951         (scan_tree_for_params_int): Same.
11952         (scan_tree_for_params): Same.
11953         (find_params_in_bb): Same.
11954         (find_scop_parameters): Same.
11955         (add_upper_bounds_from_estimated_nit): Same.
11956         (build_loop_iteration_domains): Same.
11957         (create_linear_expr_from_tree): Same.
11958         (add_condition_to_domain): Same.
11959         (pdr_add_memory_accesses): Same.
11960
11961 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
11962             Jason Merrill  <jason@redhat.com>
11963
11964         * c-common.c (c_common_reswords): Add nullptr.
11965         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
11966         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
11967         (gen_type_die_with_usage): Likewise.
11968         * dbxout.c (dbxout_type): Likewise.
11969         * sdbout.c (plain_type_1): Likewise.
11970
11971 2010-05-06  Jason Merrill  <jason@redhat.com>
11972
11973         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
11974         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
11975         ret appropriately.
11976         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
11977
11978         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
11979         stripping WITH_SIZE_EXPR.
11980         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
11981         change.
11982
11983 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11984
11985         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
11986         list of obsolete configurations.
11987         Disabled check for obsolete configurations.
11988         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
11989         Removed support for previous versions.
11990         * config/mips/iris.h: Removed.
11991         * config/mips/iris5.h: Removed.
11992         * config/mips/iris6.h: Merged old iris.h contents.
11993         (TARGET_IRIX): Removed.
11994         (DRIVER_SELF_SPECS): Removed mabi=32.
11995         (IDENT_ASM_OP): Removed undef.
11996         (STARTFILE_SPEC): Removed mabi=32.
11997         (ENDFILE_SPEC): Likewise.
11998         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
11999         (MACHINE_TYPE): Update for IRIX 6.5.
12000         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
12001         TARGET_IRIX by TARGET_IRIX6.
12002         (mips_file_start): Likewise.
12003         (mips_output_external): Remove IRIX 5/6 O32 support.
12004         (mips_output_function_prologue): Likewise.
12005         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
12006         TARGET_IRIX6.
12007         (TARGET_CPU_CPP_BUILTINS): Likewise.
12008         (TARGET_IRIX): Removed.
12009         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
12010         (MULTILIB_DIRNAMES): Removed 32.
12011         (MULTILIB_OSDIRNAMES): Removed ../lib.
12012         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
12013         (Specific, mips-sgi-irix5): Document removal.
12014         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
12015         Remove references to older IRIX 6 releases and the O32 ABI.
12016
12017 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
12018
12019         PR bootstrap/43994
12020         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
12021         instead of DF_REF_REAL_REG.
12022
12023 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
12024
12025         PR target/43888
12026         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
12027         handling to still return true for x64 targets.
12028
12029 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
12030
12031         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
12032
12033 2010-05-06  Jan Hubicka  <jh@suse.cz>
12034
12035         PR tree-optimization/43791
12036         * ipa-inline.c (update_caller_keys): Remove bogus
12037         disregard_inline_limits check.
12038
12039 2010-05-06  Michael Matz  <matz@suse.de>
12040
12041         PR tree-optimization/43984
12042         * tree-ssa-pre.c (inserted_phi_names): Remove.
12043         (inserted_exprs): Change to bitmap.
12044         (create_expression_by_pieces): Set bits, don't append to vector.
12045         (insert_into_preds_of_block): Don't handle inserted_phi_names.
12046         (eliminate): Don't look at inserted_phi_names, remove deleted
12047         insns from inserted_exprs.
12048         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
12049         (init_pre, fini_pre): Allocate and free bitmaps.
12050         (execute_pre): Insert insns on edges before elimination.
12051
12052 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
12053
12054         * tree.c (initializer_zerop): Handle STRING_CST.
12055
12056 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12057
12058         PR 40989
12059         * doc/invoke.texi (Wimplicit): Document as C only.
12060         * opts.c (common_handle_option): Add argument kind.
12061         (handle_option): Rename as read_cmdline_option. Factor out code to...
12062         (handle_option): ... here. New.
12063         (handle_options): Rename as read_cmdline_options.
12064         (decode_options): Update call.
12065         (set_option): Use option index instead of option pointer. Classify
12066         diagnostics correctly.
12067         (enable_warning_as_error): Call handle_option.
12068         * opts.h (set_option): Update declaration.
12069         (handle_option): Declare.
12070         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
12071         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
12072         * c-opts.c (set_Wimplicit): Delete.
12073         (c_family_lang_mask): New static constant.
12074         (c_common_handle_option): Add argument kind. Use handle_option
12075         instead of set_Wimplicit.
12076         (c_common_post_options): warn_implicit and warn_implicit_int
12077         are disabled by default.
12078         * c-common.c (warn_implicit): Do not define here.
12079         * c-common.h (warn_implicit): Do not declare here.
12080         (c_common_handle_option): Update declaration.
12081         * lto-opts.c (lto_reissue_options): Update call to set_option.
12082
12083 2010-05-06  Richard Guenther  <rguenther@suse.de>
12084
12085         PR tree-optimization/43571
12086         * domwalk.c (walk_dominator_tree): Walk the dominator
12087         sons in more optimal order.
12088
12089 2010-05-06  Richard Guenther  <rguenther@suse.de>
12090
12091         PR tree-optimization/43934
12092         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
12093         (stmt_cost): Likewise.
12094         (extract_true_false_args_from_phi): New helper.
12095         (determine_max_movement): For PHI nodes verify we can hoist them
12096         and compute their cost.
12097         (determine_invariantness_stmt): Handle PHI nodes.
12098         (move_computations_stmt): Likewise.  Hoist PHI nodes in
12099         if-converted form using COND_EXPRs.
12100         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
12101         (tree_ssa_lim): Likewise.
12102         * tree-flow.h (tree_ssa_lim): Adjust prototype.
12103         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
12104
12105 2010-05-06  Richard Guenther  <rguenther@suse.de>
12106
12107         PR tree-optimization/43987
12108         * tree-ssa-structalias.c (could_have_pointers): For possibly
12109         address-taken variables force pointers to be recorded.
12110         (create_variable_info_for_1): Likewise.
12111         (push_fields_onto_fieldstack): Pass in wheter all fields
12112         must have pointers.
12113         (find_func_aliases): Query types instead of vars whether
12114         they contain pointers where appropriate.
12115
12116 2010-05-06  Jan Hubicka  <jh@suse.cz>
12117
12118         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
12119         (record_reference, mark_address, mark_load, mark_store): Record
12120         references.
12121         (record_references_in_initializer): Update call of record_references.
12122         (rebuild_cgraph_edges): Remove all references before rebuiding.
12123         * cgraph.c (cgraph_create_node): Clear ref list.
12124         (cgraph_remove_node): Remove references.
12125         (dump_cgraph_node): Dump references.
12126         (cgraph_clone_node): Clone references.
12127         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
12128         (struct cgraph_node, varpool_node): Add ref_lst.
12129         * ipa-ref.c: New file.
12130         * ipa-ref.h: New file.
12131         * ipa-ref-inline.h: New file.
12132         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
12133         (referenced_from_other_partition_p): New function.
12134         (lto_output_varpool_node): Take set arugment; call
12135         referenced_from_other_partition.
12136         (lto_output_ref): New.
12137         (add_references): New.
12138         (output_refs): New.
12139         (output_cgraph): Compute boundary based on references; output refs.
12140         (output_varpool): Accept cgraph_node_set argument.
12141         (input_ref): New.
12142         (input_refs): New.
12143         (input_cgraph): Call input_refs.
12144         * lto-section-in.c (lto_section_name): Add refs.
12145         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
12146         (ipa-ref.o): New file.
12147         * varpool.c (varpool_node): Clear ipa ref list.
12148         (varpool_remove_node): Remove references.
12149         (dump_varpool_node): Dump references.
12150         (varpool_assemble_decl): Only compile finalized ones.
12151         (varpool_extra_name_alias): Initialize ref list.
12152         * lto-streamer.c (lto-get_section_name): Add .refs section.
12153         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
12154         (referenced_from_other_partition_p): Declared.
12155
12156 2010-05-06  Ira Rosen  <irar@il.ibm.com>
12157
12158         PR tree-optimization/43901
12159         * tree-vect-stmts.c (vectorizable_call): Assert that vector
12160         type is not NULL if it's transformation phase, and return
12161         FALSE if it's analysis.
12162         (vectorizable_conversion, vectorizable_operation,
12163         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
12164
12165 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
12166
12167         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
12168         Delete.
12169         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
12170         New define.
12171         * config/mips/mips-protos.h
12172         (mips_small_register_classes_for_mode_p): Delete prototype.
12173
12174 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
12175
12176         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
12177         * config/arm/arm.c (multiple_operation_profitable_p,
12178         compute_offset_order): New static functions.
12179         (load_multiple_sequence, store_multiple_sequence): Use them.
12180         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
12181         memory offsets, not register numbers.
12182         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
12183
12184 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
12185
12186         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
12187         (get_pending_sizes, put_pending_size, put_pending_sizes):
12188         Update the uses of pending_sizes.
12189         * c-decl.c (store_parm_decls): Likewise.
12190         * c-tree.h (struct c_arg_info): Likewise.
12191         * tree.h: Update the prototype for get_pending_sizes and
12192         put_pending_sizes.
12193
12194 2010-05-05  Jason Merrill  <jason@redhat.com>
12195
12196         PR debug/43370
12197         * c-common.c (handle_aligned_attribute): Respect
12198         ATTR_FLAG_TYPE_IN_PLACE.
12199
12200         PR testsuite/43758
12201         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
12202         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
12203         (TARGET_INITIALIZER): Use it.
12204         * c-common.c (attribute_takes_identifier_p): Call it.
12205         * c-common.h: Update prototype.
12206         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
12207         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
12208
12209 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
12210
12211         PR debug/43950
12212         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
12213         DW_ID_down_case for Fortran compilation units.
12214
12215 2010-05-05  Jan Hubicka  <jh@suse.cz>
12216
12217         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
12218         handle aliases.
12219
12220 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12221
12222         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
12223         a variable-sized RESULT_DECL.
12224
12225 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
12226
12227         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
12228
12229 2010-05-05  Jason Merrill  <jason@redhat.com>
12230
12231         PR c++/43787
12232         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
12233         returns GS_OK.
12234         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
12235
12236 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
12237             Jakub Jelinek  <jakub@redhat.com>
12238
12239         PR debug/43478
12240         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
12241         (dead_debug_init, dead_debug_finish): New functions.
12242         (dead_debug_add, dead_debug_insert_before): Likewise.
12243         (df_note_bb_compute): Initialize a dead_debug object, add dead
12244         debug uses to it, insert debug bind insns before death insns,
12245         reset debug insns that refer to pending uses at the end.
12246         * rtl.h (make_debug_expr_from_rtl): New prototype.
12247         * varasm.c (make_debug_expr_from_rtl): New function.
12248
12249 2010-05-05  Jan Hubicka  <jh@suse.cz>
12250
12251         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
12252         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
12253         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
12254         lto_varpool_encoder_deref, lto_varpool_encoder_size,
12255         lto_varpool_encoder_encode_initializer_p,
12256         lto_set_varpool_encoder_encode_initializer): New functions.
12257         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
12258         call output_varpool.
12259         (input_varpool_node): Do not always set analyzed.
12260         (input_cgraph_1): Return vector of cgraph nodes.
12261         (input_varpool_1): Return vector of varpools.
12262         (input_cgraph): Free the vectors.
12263         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12264         output only initializers needed.
12265         (lto_output): Only call output_cgraph.
12266         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
12267         * lto-section-out.c (lto_new_out_decl_state): Initialize
12268         state->varpool_node_encoder.
12269         * lto-streamer.h (lto_varpool_encoder_d): New.
12270         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
12271         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
12272         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
12273         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
12274         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
12275         Declare.
12276         (output_varpool, input_varpool): Remove declarations.
12277
12278 2010-05-05  Jan Hubicka  <jh@suse.cz>
12279
12280         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
12281         with body can prevail.
12282
12283 2010-05-05  Jan Hubicka  <jh@suse.cz>
12284
12285         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
12286         size.
12287
12288 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12289
12290         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
12291
12292         * gengtype.h (erro_at_line): Constify pos argument.
12293
12294         * gengtype.c: Include hashtab.h.
12295         (enum gc_used): Document GC_MAYBE_POINTED_TO.
12296         (error_at_line): Constify pos argument.
12297         (do_typedef): Initialize p->opt field.
12298         (get_file_gtfilename): Fix comment typo.
12299         (struct walk_type_data): Constify line field.
12300         (get_output_file_for_structure): New function.
12301         (write_local_func_for_structure): Constify orig_s argument.
12302         Use get_output_file_for_structure.
12303         (write_func_for_structure): Use get_output_file_for_structure.
12304         (INDENT): New define.
12305         (dump_pair, dump_type, dump_type_list, dump_typekind)
12306         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
12307         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
12308         functions.
12309         (seen_types): New variable.
12310         (main): New variable do_dump.  Process "-d" command line option.
12311         Call dump_everything if dump requested.
12312
12313 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
12314
12315         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
12316         in a temporary instead of invoking the macro multiple times.
12317         (track_expr_p): Likewise.
12318
12319 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
12320
12321         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
12322         per new semantics.
12323         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
12324         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
12325         conditions for printing notes.
12326         * common.opt (-Wcoverage-mismatch): Allow negative, default to
12327         true, update documentation.
12328         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
12329
12330 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
12331
12332         PR c/43981
12333         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
12334         on dimen.
12335
12336 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12337
12338         PR target/43799
12339         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
12340         (*sse_prologue_save_insn1): Likewise.
12341         (SSE prologue save splitter): Likewise.
12342
12343 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12344
12345         * tree.c (free_lang_data_in_one_sizepos): New inline function.
12346         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
12347         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
12348         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
12349         all decls.  Call it on DECL_FIELD_OFFSET of fields.
12350         (find_decls_types_r): Follow DECL_VALUE_EXPR.
12351         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
12352
12353 2010-05-04  Martin Jambor  <mjambor@suse.cz>
12354
12355         * tree-sra.c (build_access_from_expr_1): The first parameter type
12356         changed to simple tree.
12357         (build_access_from_expr): Likewise, gsi parameter was eliminated.
12358         (scan_assign_result): Renamed to assignment_mod_result, enum elements
12359         renamed as well.
12360         (build_accesses_from_assign): Removed all parameters except for a
12361         simple gimple statement.  Now returns a simple bool.
12362         (scan_function): All non-analysis parts moved to separate functions
12363         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
12364         parameters and updated both callers.
12365         (sra_modify_expr): Removed parameter data.
12366         (sra_modify_function_body): New function.
12367         (perform_intra_sra): Call sra_modify_function_body to modify the
12368         function body.
12369         (replace_removed_params_ssa_names): Parameter data changed into
12370         adjustments vector.
12371         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
12372         changed the parameter dont_convert to convert with the opposite
12373         meaning.
12374         (sra_ipa_modify_assign): Parameter data changed into adjustments
12375         vector, return value changed to bool.
12376         (ipa_sra_modify_function_body): New function.
12377         (sra_ipa_reset_debug_stmts): Updated a comment.
12378         (modify_function): Use ipa_sra_modify_function_body to modify function
12379         body.
12380
12381 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12382
12383         PR middle-end/43671
12384         * alias.c (true_dependence): Handle the same VALUE in x and mem.
12385         (canon_true_dependence): Likewise.
12386         (write_dependence_p): Likewise.
12387
12388 2010-05-04  Jan Hubicka  <jh@suse.cz>
12389
12390         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
12391         * cgraphbuild.c: Include ipa-utils.h
12392         (record_reference_ctx): New struct.
12393         (record_reference): Simplify to work on initializers; not statements.
12394         (mark_address, mark_load, mark_store): New.
12395         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
12396         walk PHI nodes too.
12397         (record_references_in_initializer): Update use of record_reference.
12398         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
12399         walk PHI nodes too.
12400
12401 2010-05-04  Jan Hubicka  <jh@suse.cz>
12402
12403         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
12404         node will be removed anyway.
12405         (lto_varpool_replace_node): Allow also unanalyzed nodes;
12406         relink aliases of node into prevailing node.
12407         * varpool.c (varpool_remove_node): Remove aliases properly;
12408         when removing node, remove all its aliases too; remove DECL_INITIAL
12409         of removed node; ggc_free the varpool node.
12410
12411 2010-05-04  Richard Guenther  <rguenther@suse.de>
12412
12413         PR tree-optimization/43879
12414         * tree-ssa-structalias.c (alias_get_name): Use
12415         DECL_ASSEMBLER_NAME if available.
12416         (create_function_info_for): Return the varinfo node.
12417         (ipa_pta_execute): Associate same-body aliases and extra names
12418         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
12419
12420 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12421
12422         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
12423
12424 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
12425
12426         PR bootstrap/43964
12427         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
12428         only if HONOR_REG_ALLOC_ORDER is not defined.
12429
12430 2010-05-04  Richard Guenther  <rguenther@suse.de>
12431
12432         PR tree-optimization/43949
12433         * tree-vrp.c (extract_range_from_binary_expr): Only handle
12434         TRUNC_MOD_EXPR.
12435
12436 2010-04-26  Jason Merrill  <jason@redhat.com>
12437
12438         * c.opt (-fstrict-enums): New.
12439         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
12440
12441 2010-05-03  David Ung  <davidu@mips.com>
12442             James E. Wilson  <wilson@codesourcery.com>
12443
12444         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
12445         emit the trap instruction before the divide for TUNE_74K.
12446
12447 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
12448
12449         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
12450         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
12451         based on the above, for new target hook.
12452
12453         * hooks.c (hook_bool_mode_true): New generic hook.
12454         * hooks.h (hook_bool_mode_true): Add prototype.
12455
12456         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
12457         target hook.
12458         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
12459         target hook, set to hook_bool_mode_false.
12460         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
12461         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
12462         with targetm.small_register_classes_for_mode_p.
12463         (find_reusable_reload): Likewise.
12464         (combine_reloads): Likewise.
12465         * reload1.c (reload_as_needed): Likewise.
12466         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
12467         * ifcvt.c (noce_process_if_block, check_cond_move_block,
12468         dead_or_predicable): Likewise.
12469         * regmove.c (optimize_reg_copy_1): Likewise.
12470         * calls.c (prepare_call_address): Likewise.
12471         (precompute_register_parameters): Likewise.
12472
12473         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
12474         hook definition.
12475         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
12476         implementation of the hook that considers all register classes
12477         small except for SH64.
12478         (sh_override_options): Use the new hook.
12479         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
12480         Add prototype.
12481
12482         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
12483         hook definition.
12484         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
12485         implementation of the hook that considers all register classes
12486         small for THUMB1.
12487         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
12488         Add prototype.
12489
12490         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
12491         hook definition.
12492         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
12493         implementation of the hook that considers all register classes
12494         small for MIPS16.
12495         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
12496         Add prototype.
12497
12498         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
12499         hook definition.
12500         * config/m32c/m32c.h: Likewise.
12501         * config/pdp11/pdp11.h: Likewise.
12502         * config/avr/avr.h: Likewise.
12503         * config/xtensa/xtensa.h: Likewise.
12504         * config/m68hc11/m68hc11.h: Likewise.
12505         * config/mn10300/mn10300.h: Likewise.
12506         * config/mcore/mcore.h: Likewise.
12507         * config/h8300/h8300.h: Likewise.
12508         * config/bfin/bfin.h: Likewise.
12509
12510         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
12511         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
12512
12513 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
12514
12515         * double-int.h (tree_to_double_int): Remove macro.
12516         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
12517         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
12518         (tree_to_double_int): New function.
12519         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
12520         Move ...
12521         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
12522
12523 2010-05-03  Richard Guenther  <rguenther@suse.de>
12524
12525         PR tree-optimization/43971
12526         * tree-ssa-structalias.c (get_constraint_for_1): Fix
12527         constraints in the !flag_delete_null_pointer_checks case.
12528
12529 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
12530
12531         PR debug/43972
12532         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
12533         result mode matches original rtl mode.
12534
12535 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
12536
12537         PR target/43888
12538         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
12539
12540 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
12541
12542         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
12543         when processing flag options.
12544
12545 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
12546
12547         * gcov-iov.c (main): Change format string placeholder
12548         from %#08x to 0x%08x.
12549         * genchecksum.c (dosum): Change format string placeholder
12550         from %#02x to 0x%02x.
12551
12552 2010-05-02  Richard Guenther  <rguenther@suse.de>
12553
12554         PR tree-optimization/43879
12555         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
12556
12557 2010-05-02  Bruno Haible  <bruno@clisp.org>
12558
12559         * doc/extend.texi (Function Attributes): Fix a typo.
12560
12561 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
12562
12563         Revert:
12564         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
12565         placeholder from 0x%x to %#x.
12566         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
12567         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
12568         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
12569         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
12570         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
12571         * config/i386/i386.c (ix86_target_string): Ditto.
12572         * config/i386/i386.c (output_pic_addr_const): Ditto.
12573         (print_operand): Ditto.
12574
12575 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
12576
12577         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
12578         placeholder from 0x%x to %#x.
12579         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
12580         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
12581         (ASM_OUTPUT_DEBUG_DATA): Ditto.
12582         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
12583         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
12584         * optc-gen.awk: Ditto.
12585         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
12586         (HOST_WIDE_INT_PRINT_HEX): Ditto.
12587         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
12588         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
12589
12590 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
12591
12592         * target.h (struct calls): Add function_value_regno_p field.
12593         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12594         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
12595         * targhooks.c (default_function_value_regno_p): New function.
12596         * targhooks.h (default_function_value_regno_p): Declare function.
12597         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
12598         * builtins.c. (apply_result_size): (Ditto.).
12599         * combine.c. (likely_spilled_retval_p): (Ditto.).
12600         * mode-switching.c. Include 'target.h'.
12601         (create_pre_exit): Use function_value_regno_p hook.
12602         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
12603         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
12604         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
12605
12606         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
12607         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
12608         (ix86_function_value_regno_p): Declare as static, change argument
12609         type to const unsigned int.
12610         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
12611
12612 2010-05-01  Richard Guenther  <rguenther@suse.de>
12613
12614         PR tree-optimization/43949
12615         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
12616         types.
12617         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
12618
12619 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
12620
12621         * rtl.h (CONST_DOUBLE_P): Define.
12622         (rtx_to_double_int): Declare.
12623         * emit-rtl.c (rtx_to_double_int): New function.
12624         * dwarf2out.c (insert_double): New function.
12625         (loc_descriptor, add_const_value_attribute): Clean up, use
12626         rtx_to_double_int and insert_double functions.
12627
12628 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
12629
12630         * doc/extend.texi (Inline): Add missing return keyword to examples.
12631         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
12632         "command-line".
12633
12634 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
12635
12636         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
12637         the variable part of the offset as well.  Use highest_pow2_factor for
12638         all alignment checks.
12639
12640 2010-04-30  Richard Guenther  <rguenther@suse.de>
12641
12642         PR tree-optimization/43879
12643         * tree-ssa-structalias.c (type_could_have_pointers): Functions
12644         can have pointers.
12645
12646 2010-04-30  Jan Hubicka  <jh@suse.cz>
12647
12648         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
12649         varpool.
12650         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
12651
12652 2010-04-30  Jan Hubicka  <jh@suse.cz>
12653
12654         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
12655         New.
12656         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
12657         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
12658         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
12659         cgraph_node_set_needs_ltrans_p): Remove.
12660
12661 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
12662
12663         * sdbout.c: Include vec.h, do not include varray.h.
12664         (deferred_global_decls, sdbout_global_decl,
12665         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
12666         * toplev.c: Do not include varray.h.
12667         (dump_memory_report): Do not dump VARRAY statistics.
12668         * gengtype.c (open_base_file): Ignore varray.h.
12669         * Makefile.in: Update for abovementioned changes.
12670         Remove all traces of varray.c and varray.h.
12671         * varray.c: Remove file.
12672         * varray.h: Remove file.
12673
12674 2010-04-30  Jan Hubicka  <jh@suse.cz>
12675
12676         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
12677         references.
12678
12679 2010-04-30  Jan Hubicka  <jh@suse.cz>
12680
12681         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
12682         needed.
12683
12684 2010-04-30  Richard Guenther  <rguenther@suse.de>
12685
12686         * tree-ssa-structalias.c (get_constraint_for_1): Generate
12687         constraints for CONSTRUCTOR.
12688
12689 2010-04-30  Richard Guenther  <rguenther@suse.de>
12690
12691         PR lto/43946
12692         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
12693         first after all lowering passes.
12694
12695 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
12696
12697         * toplev.c: Include varray.h for statistics dumping.
12698         * tree.h: Do not declare varray_head_tag.
12699         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
12700         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
12701         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
12702         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
12703         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
12704         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
12705         c-common.c, c-common.h, reg-stack.c, basic-block.h,
12706         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
12707         include varray.h.
12708         * Makefile.in: Update for abovementioned changes.
12709
12710 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
12711
12712         PR debug/43942
12713         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
12714
12715 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12716
12717         * config/picochip/picochip.c (picochip_legitimize_address): Define.
12718         Use this function to do machine-specific conversion.
12719         (picochip_legitimize_reload_address): Likewise.
12720         (picochip_legitimate_address_p): Check valid base register only if
12721         strict.
12722         (picochip_check_conditional_copy): Check for modw only if opnd is
12723         register.
12724         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
12725         to call the function in c.
12726         * config/picochip/picochip-protos.h
12727         (picochip_legitimize_reload_address): Define.
12728         * config/picochip/picochip.md (supported_compare1): Define.
12729
12730 2010-04-30  Jan Hubicka  <jh@suse.cz>
12731
12732         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
12733         (cgraph_global_info): Remove inlined.
12734         (LTO_cgraph_tag_names): Remove.
12735         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
12736         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
12737         simplify cgraph tags and document.
12738         (lto_output_node): Use only LTO_cgraph_unavail_node and
12739         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
12740         for_functions_valid, global info, process and output flags.
12741         (input_overwrite_node): Initialize estimated stack size and
12742         estimated growth.  Do not read flags we no longer store.
12743         (input_node): Likewise do not read info no longer stored.
12744         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
12745         flag.
12746
12747 2010-04-30  Richard Guenther  <rguenther@suse.de>
12748
12749         PR tree-optimization/43879
12750         * tree-ssa-structalias.c (get_constraint_for_1): Properly
12751         handle non-zero initializers.
12752
12753 2010-04-30  Richard Guenther  <rguenther@suse.de>
12754
12755         * builtins.c (fold_builtin_1): Delete free (0).
12756
12757 2010-04-29  Jan Hubicka  <jh@suse.cz>
12758
12759         * gengtype.c (open_base_files): Add lto-streamer.h
12760         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
12761         (pass_ipa_cp): GGC collect.
12762         * toplev. (compile_file): Do not output symbols.
12763         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
12764         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
12765         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
12766         * lto-section-in.c: Include ggc.h
12767         (lto_new_in_decl_state): Alloc in GGC.
12768         (lto_delete_in_decl_state): Likewise.
12769         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
12770         Collect.
12771
12772 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
12773
12774         PR target/42895
12775         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
12776         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
12777         (HONOR_REG_ALLOC_ORDER): Describe new macro.
12778         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
12779         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
12780         account only if HONOR_REG_ALLOC_ORDER is not defined.
12781         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
12782         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
12783
12784 2010-04-29  Jon Grant  <04@jguk.org>
12785
12786         * collect2.c (vflag): Change type from int to bool.
12787         (debug): Likewise.
12788         (helpflag): New global bool.
12789         (main): Set vflag and debug with boolean, not integer truth values.
12790         Accept new "--help" option and output usage text if found.
12791         * collect2.h (vflag): Update prototype.
12792         (debug): Likewise.
12793
12794 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12795
12796         PR bootstrap/43936
12797         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
12798
12799 2010-04-29  Richard Guenther  <rguenther@suse.de>
12800
12801         PR bootstrap/43935
12802         * plugin.h (invoke_plugin_callbacks): Annotate arguments
12803         with ATTRIBUTE_UNUSED.
12804
12805 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12806
12807         PR target/43921
12808         * config/i386/i386.c (get_some_local_dynamic_name): Replace
12809         INSN_P with NONDEBUG_INSN_P.
12810         (distance_non_agu_define): Likewise.
12811         (distance_agu_use): Likewise.
12812
12813 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
12814
12815         From Dominique d'Humieres  <dominiq@lps.ens.fr>
12816         PR bootstrap/43858
12817         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
12818         test_set.
12819
12820 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
12821
12822         * plugin.h (invoke_plugin_callbacks): New inline function.
12823         * plugin.c (flag_plugin_added): New global flag.
12824         (add_new_plugin): Initialize above flag.
12825         (invoke_plugin_callbacks): Rename to ...
12826         (invoke_plugin_callbacks_full): ... this.
12827
12828 2010-04-28  Jan Hubicka  <jh@suse.cz>
12829
12830         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
12831         (lto_varpool_replace_node): New.
12832         (lto_symtab_resolve_symbols): Resolve varpool nodes.
12833         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
12834         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
12835         * cgraph.h (varpool_node_ptr): New type.
12836         (varpool_node_ptr): New vector.
12837         (varpool_node_set_def): New structure.
12838         (varpool_node_set): New type.
12839         (varpool_node_set): New vector.
12840         (varpool_node_set_element_def): New structure.
12841         (varpool_node_set_element, const_varpool_node_set_element): New types.
12842         (varpool_node_set_iterator): New type.
12843         (varpool_node): Add prev pointers, add used_from_other_partition,
12844         in_other_partition.
12845         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
12846         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
12847         varpool_get_node, varpool_remove_node): Declare.
12848         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
12849         varpool_node_set_size): New inlines.
12850         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
12851         * tree-pass.h (varpool_node_set_def): Forward declare.
12852         (ipa_opt_pass_d): Summary writting takes vnode sets too.
12853         (ipa_write_optimization_summaries): Update prototype.
12854         * ipa-cp.c (ipcp_write_summary): Update.
12855         * ipa-reference.c (ipa_reference_write_summary): Update.
12856         * lto-cgraph.c (lto_output_varpool_node): New static function.
12857         (output_varpool): New function.
12858         (input_varpool_node): New static function.
12859         (input_varpool_1): New function.
12860         (input_cgraph): Input varpool.
12861         * ipa-pure-const.c (pure_const_write_summary): Update.
12862         * lto-streamer-out.c (lto_output): Update, output varpool too.
12863         (write_global_stream): Kill WPA hack.
12864         (produce_asm_for_decls): Update.
12865         (output_alias_pair_p): Handle variables.
12866         (output_unreferenced_globals): Output only needed partition of varpool.
12867         * ipa-inline.c (inline_write_summary): Update.
12868         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
12869         cgraph.
12870         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
12871         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
12872         varpool_node_set_new, varpool_node_set_add,
12873         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
12874         debug_varpool_node_set): New functions.
12875         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
12876         (execute_one_pass): Process new decls too.
12877         (ipa_write_summaries_2): Pass around vsets.
12878         (ipa_write_summaries_1): Likewise.
12879         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
12880         to add.
12881         (ipa_write_optimization_summaries_1): Pass around vsets.
12882         (ipa_write_optimization_summaries): Likewise.
12883         * varpool.c (varpool_get_node): New.
12884         (varpool_node): Update doubly linked lists.
12885         (varpool_remove_node): New.
12886         (dump_varpool_node): More dumping.
12887         (varpool_enqueue_needed_node): Update doubly linked lists.
12888         (decide_is_variable_needed): Kill ltrans hack.
12889         (varpool_finalize_decl): Kill lto hack.
12890         (varpool_assemble_decl): Skip decls in other partitions.
12891         (varpool_assemble_pending_decls): Update doubly linkes lists.
12892         (varpool_empty_needed_queue): Likewise.
12893         (varpool_extra_name_alias): Likewise.
12894         * lto-streamer.c (lto_get_section_name): Add vars section.
12895         * lto-streamer.h (lto_section_type): Update.
12896         (output_varpool, input_varpool): Declare.
12897
12898 2010-04-28  Mike Stump  <mikestump@comcast.net>
12899
12900         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
12901
12902 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
12903
12904         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
12905         record or union type with RECORD_OR_UNION_TYPE_P predicate.
12906         (lto_input_ts_type_tree_pointers): Likewise.
12907         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
12908         (lto_output_ts_type_tree_pointers): Likewise.
12909
12910 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
12911
12912         Uniquization of constants at the Tree level
12913         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
12914         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
12915         bit to the end.
12916         (tree_output_constant_def): Declare.
12917         * gimplify.c (gimplify_init_constructor): When using block copy, first
12918         uniquize the constant constructor on the RHS.
12919         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
12920         DECL_IN_CONSTANT_POOL flag.
12921         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
12922         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
12923         constant pool.
12924         (assemble_variable): Deal with symbols belonging to the tree constant
12925         pool.
12926         (get_constant_section): Add ALIGN parameter and simplify.
12927         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
12928         (assemble_constant_contents): Use the expression of the VAR_DECL.
12929         (output_constant_def_contents): Use the alignment of the VAR_DECL.
12930         (tree_output_constant_def): New global function.
12931         (mark_constant): Use the expression of the VAR_DECL.
12932         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
12933         its expression.
12934         (output_object_block): Likewise and assemble the expression.
12935
12936 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
12937
12938         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
12939         hash_tree, eq_tree): New tree hash table.
12940         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
12941         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
12942         lto_orig_address_remove): Reimplement.
12943
12944 2010-04-28  Xinliang David Li  <davidxl@google.com>
12945
12946         PR c/42643
12947         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
12948         (compute_uninit_opnds_pos): New function.
12949         (is_non_loop_exit_postdominating): New function.
12950         (compute_control_dep_chain): New function.
12951         (find_pdom): New function.
12952         (convert_control_dep_chain_into_preds): New function.
12953         (find_predicates): New function.
12954         (find_control_equiv_block): New function.
12955         (collect_phi_def_edges): New function.
12956         (find_def_preds): New function.
12957         (find_dom): New function.
12958         (dump_predicates): New function.
12959         (get_cmp_code): New function.
12960         (is_value_included_in): New function.
12961         (find_matching_predicate_in_rest_chains): New function.
12962         (use_pred_not_overlap_with_undef_path_pred): New function.
12963         (is_use_properly_guarded): New function.
12964         (normalize_cond_1): New function.
12965         (is_and_or_or): New function.
12966         (normalize_cond): New function.
12967         (is_gcond_subset_of): New function.
12968         (is_subset_of_any): New function.
12969         (is_or_set_subset_of): New function.
12970         (is_and_set_subset_of): New function.
12971         (is_norm_cond_subset_of): New function.
12972         (is_pred_expr_subset_of): New function.
12973         (is_pred_chain_subset_of): New function.
12974         (is_included_in): New function.
12975         (is_superset_of): New function.
12976         (find_uninit_use): New function.
12977         (warn_uninitialized_phi): New function.
12978         (compute_possibly_undefined_names): New function.
12979         (ssa_undefined_value_p): New function.
12980         (execute_late_warn_uninitialized): New function.
12981         * tree-ssa.c (ssa_undefined_value_p): Removed.
12982         (warn_uninit): Changed to extern.
12983         (warn_uninitialized_phi): Removed.
12984         (warn_uninitialized_vars): Changed to extern.
12985         (execute_late_warn_uninitialized): Removed
12986         * tree-flow.h: Add new prototypes.
12987         * timevar.def: Add new time variable.
12988         * Makefile.in: Add new build file.
12989
12990 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
12991
12992         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
12993         type if available.
12994
12995 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12996
12997         PR target/22224
12998         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
12999
13000 2010-04-28  Martin Jambor  <mjambor@suse.cz>
13001
13002         * cgraph.h (struct cgraph_node): New field indirect_calls.
13003         (struct cgraph_indirect_call_info): New type.
13004         (struct cgraph_edge): Removed field indirect_call. New fields
13005         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
13006         (cgraph_create_indirect_edge): Declare.
13007         (cgraph_make_edge_direct): Likewise.
13008         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
13009         * ipa-prop.h (struct ipa_param_call_note): Removed.
13010         (struct ipa_node_params): Removed field param_calls.
13011         (ipa_create_all_structures_for_iinln): Declare.
13012         * cgraph.c: Described indirect edges and uids in initial comment.
13013         (cgraph_add_edge_to_call_site_hash): New function.
13014         (cgraph_edge): Search also among the indirect edges, use
13015         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
13016         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
13017         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
13018         site hash.
13019         (initialize_inline_failed): Assign a reason to indirect edges.
13020         (cgraph_create_edge_1): New function.
13021         (cgraph_create_edge): Moved some functionality to
13022         cgraph_create_edge_1.
13023         (cgraph_create_indirect_edge): New function.
13024         (cgraph_edge_remove_callee): Add an assert checking for
13025         non-indirectness.
13026         (cgraph_edge_remove_caller): Special-case indirect edges.
13027         (cgraph_remove_edge): Likewise.
13028         (cgraph_set_edge_callee): New function.
13029         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
13030         (cgraph_make_edge_direct): New function.
13031         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
13032         the declaration of the call statement matches.
13033         (cgraph_node_remove_callees): Special-case indirect edges.
13034         (cgraph_clone_edge): Likewise.
13035         (cgraph_clone_node): Clone also the indirect edges.
13036         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
13037         indirect_call, dump count of indirect_calls edges.
13038         * ipa-prop.c (iinlining_processed_edges): New variable.
13039         (ipa_note_param_call): Create indirect edges instead of
13040         creating notes.  New parameter node.
13041         (ipa_analyze_call_uses): New parameter node, pass it on to
13042         ipa_note_param_call.
13043         (ipa_analyze_stmt_uses): Likewise.
13044         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
13045         (print_edge_addition_message): Work on edges rather than on notes.
13046         (update_call_notes_after_inlining): Likewise, renamed to
13047         update_indirect_edges_after_inlining.
13048         (ipa_create_all_structures_for_iinln): New function.
13049         (ipa_free_node_params_substructures): Do not free notes.
13050         (ipa_edge_duplication_hook): Propagate bits within
13051         iinlining_processed_edges bitmap.
13052         (ipa_node_duplication_hook): Do not duplicate notes.
13053         (free_all_ipa_structures_after_ipa_cp): Renamed to
13054         ipa_free_all_structures_after_ipa_cp.
13055         (free_all_ipa_structures_after_iinln): Renamed to
13056         ipa_free_all_structures_after_iinln.
13057         (ipa_write_param_call_note): Removed.
13058         (ipa_read_param_call_note): Removed.
13059         (ipa_write_indirect_edge_info): New function.
13060         (ipa_read_indirect_edge_info): Likewise.
13061         (ipa_write_node_info): Do not stream notes, do stream information
13062         in indirect edges.
13063         (ipa_read_node_info): Likewise.
13064         (lto_ipa_fixup_call_notes): Removed.
13065         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
13066         * ipa-inline.c (pass_ipa_inline): Likewise.
13067         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
13068         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
13069         * tree-inline.c (copy_bb): Removed an unnecessary double check for
13070         is_gimple_call.
13071         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
13072         edges.
13073         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
13074         (output_cgraph): Stream also indirect edges.
13075         (lto_output_edge): Added capability to stream indirect edges.
13076         (input_edge): Likewise.
13077         (input_cgraph_1): Likewise.
13078         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
13079         of indirect edges.
13080
13081 2010-04-28  Richard Guenther  <rguenther@suse.de>
13082
13083         PR tree-optimization/43879
13084         PR tree-optimization/43909
13085         * tree-ssa-structalias.c (struct variable_info): Add
13086         only_restrict_pointers flag.
13087         (new_var_info): Initialize it.  Increment stats.total_vars here.
13088         (create_function_info_for): Do not increment stats.total_vars here.
13089         (get_function_part_constraint): Fix build with C++.
13090         (insert_into_field_list): Remove.
13091         (push_fields_onto_fieldstack): Properly merge fields.
13092         (create_variable_info_for): Split and simplify.
13093         (create_variable_info_for_1): New piece.
13094         (intra_create_variable_infos): Properly make restrict constraints
13095         from parameters.
13096
13097 2010-04-28  Richard Guenther  <rguenther@suse.de>
13098
13099         PR c++/43880
13100         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
13101
13102 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13103             Jan Hubicka  <hubicka@ucw.cz>
13104
13105         * doc/invoke.texi (-Wsuggest-attribute=const,
13106         -Wsuggest-attribute=pure): Document.
13107         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
13108         (function_always_visible_to_compiler_p,
13109         suggest_attribute, warn_function_pure, warn_function_const):
13110         New functions.
13111         (check_call): Improve debug info.
13112         (analyze_function): Do not check availability.
13113         (add_new_function): Check availability.
13114         (propagate): Output warnings.
13115         (skip_function_for_local_pure_const): New function.
13116         (local_pure_const): Use it; output warnings.
13117         * common.opt (Wsuggest-attribute=const,
13118         Wsuggest-attribute=pure): New.
13119
13120 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
13121
13122         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
13123         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
13124         or DW_CFA_def_cfa_offset{,_sf}.
13125
13126 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13127
13128         * tree.h: Fix truncated long macros.
13129
13130 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
13131
13132         * collect2.c (TARGET_64BIT): Redefine to target's default.
13133         * tlink.c: Likewise.
13134         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
13135         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
13136         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
13137         for underscoring __USER_LABEL_PREFIX__.
13138         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
13139         (SUB_LINK_ENTRY32): New.
13140         (SUB_LINK_ENTRY64): New.
13141         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
13142         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
13143         (SUB_LINK_ENTRY64): New.
13144         (SUB_LINK_ENTRY): New.
13145         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
13146         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
13147         x64 target is choosen.
13148         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
13149         * configure: Regenerated.
13150         * configure.ac (leading-mingw64-underscores): Option added.
13151
13152 2010-04-27  Jan Hubicka  <jh@suse.cz>
13153
13154         * doc/invoke.texi (-fipa-profile): Document.
13155         * opts.c (decode_options): Enable ipa-profile at -O1.
13156         * timevar.def (TV_IPA_PROFILE): Define.
13157         * common.opt (fipa-profile): Add.
13158         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
13159         flag for clones.
13160         (cgraph_propagate_frequency): Handle only local ones.
13161         * tree-pass.h (pass_ipa_profile): Declare.
13162         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
13163         (pass_ipa_profile): Use TV_IPA_PROFILE.
13164         * ipa.c (ipa_profile): New function.
13165         (gate_ipa_profile): Likewise.
13166         (pass_ipa_profile): New global variable.
13167         * passes.c (pass_ipa_profile): New.
13168
13169 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
13170
13171         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
13172
13173 2010-04-27  Martin Jambor  <mjambor@suse.cz>
13174
13175         PR middle-end/43812
13176         * ipa.c (dissolve_same_comdat_group_list): New function.
13177         (function_and_variable_visibility): Call
13178         dissolve_same_comdat_group_list when comdat group contains external or
13179         newly local nodes.
13180         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
13181         lists are circular and that they contain only DECL_ONE_ONLY nodes.
13182
13183 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
13184
13185         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
13186         (const_hash_1) <VECTOR_CST>: New case.
13187         (compare_constant) <VECTOR_CST>: Likewise.
13188         <ADDR_EXPR>: Deal with LABEL_REFs.
13189         (copy_constant) <VECTOR_CST>: New case.
13190
13191 2010-04-27  Jan Hubicka  <jh@suse.cz>
13192
13193         * cgraph.c (cgraph_propagate_frequency): New function.
13194         * cgraph.h (cgraph_propagate_frequency): Declare.
13195         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
13196         cgraph_propagate_frequency.
13197
13198 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
13199
13200         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
13201
13202 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
13203
13204         PR target/40657
13205         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
13206         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
13207         here to determine which regs to push and how much stack to reserve.
13208
13209 2010-04-27  Jie Zhang  <jie@codesourcery.com>
13210
13211         * doc/gimple.texi (gimple_statement_with_ops): Remove
13212         addresses_taken field.
13213         (gimple_statement_with_memory_ops): Likewise.
13214
13215 2010-04-27  Jan Hubicka  <jh@suse.cz>
13216
13217         * tree-inline.c (eni_inlining_weights): Remove.
13218         (estimate_num_insns): Special case more builtins.
13219
13220 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
13221
13222         PR c/32207
13223         * c-typeck.c (build_binary_op): Move forward check for comparison
13224         pointer with null pointer constant and adjust the diagnostic message.
13225
13226 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
13227
13228         PR lto/42776
13229         * configure.ac (gcc_cv_as_section_has_align): Set if installed
13230         binutils supports extended .section directive needed by LTO, or
13231         warn if older binutils found.
13232         (LTO_BINARY_READER): New AC_SUBST'd variable.
13233         (LTO_USE_LIBELF): Likewise.
13234         * gcc/config.gcc (lto_binary_reader): New target-specific configure
13235         variable.
13236         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
13237         (LTO_USE_LIBELF): Likewise.
13238         * configure: Regenerate.
13239
13240         * collect2.c (is_elf): Rename from this ...
13241         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
13242          object files in addition to ELF-formatted ones.
13243         (scan_prog_file): Caller updated.  Also allow for LTO info marker
13244         symbol to be prefixed or not by an extra underscore.
13245
13246         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
13247         * config/i386/winnt.c: Also #include lto-streamer.h
13248         (i386_pe_asm_named_section): Specify 1-byte section alignment for
13249         LTO named sections.
13250         (i386_pe_asm_output_aligned_decl_common): Add comment.
13251         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
13252
13253 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
13254
13255         PR target/43889
13256         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
13257         Add missing earlyclobber for second alternative.
13258
13259 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
13260
13261         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
13262         bits for artificial defs at the top of the block.
13263         * fwprop.c (single_def_use_enter_block): Don't call it.
13264
13265 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
13266
13267         PR 43715
13268         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
13269         instead of "$gcc_cv_objdump -T".
13270         Use "-undefined dynamic_lookup" on darwin.
13271         * gcc/configure: Regenerate.
13272
13273 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
13274
13275         PR c/43893
13276         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
13277
13278 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
13279
13280         * c-parser.c (struct c_token): Move location field up.
13281         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
13282         (struct c_declspecs): Convert typespec_word, storage_class, and
13283         default_int_p into bitfields.
13284         (struct c_declarator): Move loc field up.
13285
13286 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
13287
13288         * cfgloop.h (struct loop): Move can_be_parallel field up.
13289         * ipa-prop.h (struct ip_node_params): Move bitfields up.
13290         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
13291         down.
13292         (struct iv_cand): Convert pos field into a bitfield.
13293         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
13294         field up.
13295         (struct _stmt_vec_info): Shuffle fields for better packing.
13296
13297 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
13298
13299         * varasm.c (IN_NAMED_SECTION): Remove guard.
13300         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
13301         (IN_NAMED_SECTION_P): ...this.
13302         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
13303         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
13304
13305 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
13306
13307         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
13308         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
13309         of shadowing it.  Fix comments.
13310
13311 2010-04-26  Jan Hubicka  <jh@suse.cz>
13312
13313         * cgraph.c (cgraph_create_node): Set node frequency to normal.
13314         (cgraph_clone_node): Copy function frequency.
13315         * cgraph.h (node_frequency): New enum
13316         (struct cgraph_node): Add.
13317         * final.c (rest_of_clean_state): Update.
13318         * lto-cgraph.c (lto_output_node): Output node frequency.
13319         (input_overwrite_node): Input node frequency.
13320         * tre-ssa-loop-ivopts (computation_cost): Update.
13321         * lto-streamer-out.c (output_function): Do not output function
13322         frequency.
13323         * predict.c (maybe_hot_frequency_p): Update and handle functions
13324         executed once.
13325         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
13326         attribute lookup.
13327         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
13328         (compute_function_frequency): Set noreturn functions to be executed
13329         once.
13330         (choose_function_section): Update.
13331         * lto-streamer-in.c (input_function): Do not input function frequency.
13332         * function.c (allocate_struct_function): Do not initialize function
13333         frequency.
13334         * function.h (function_frequency): Remove.
13335         (struct function): Remove function frequency.
13336         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
13337         (try_update): Update.
13338         * tree-inline.c (initialize_cfun): Do not update function frequency.
13339         * passes.c (pass_init_dump_file): Update.
13340         * i386.c (ix86_compute_frame_layout): Update.
13341         (ix86_pad_returns): Update.
13342
13343 2010-04-26  Jie Zhang  <jie@codesourcery.com>
13344
13345         PR tree-optimization/43833
13346         * tree-vrp.c (range_int_cst_p): New.
13347         (range_int_cst_singleton_p): New.
13348         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
13349         when both operands are constants.  Use range_int_cst_p in
13350         BIT_IOR_EXPR case.
13351
13352 2010-04-26  Jan Hubicka  <jh@suse.cz>
13353
13354         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
13355
13356 2010-04-26  Richard Guenther  <rguenther@suse.de>
13357
13358         PR lto/43080
13359         * gimple.c (gimple_decl_printable_name): Deal gracefully
13360         with a NULL DECL_NAME.
13361
13362 2010-04-26  Richard Guenther  <rguenther@suse.de>
13363
13364         PR lto/42425
13365         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
13366         if emitting debug information and it is either a function
13367         or a namespace decl.
13368
13369 2010-04-26  Ira Rosen  <irar@il.ibm.com>
13370
13371         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
13372         determine if the statement is vectorizable, and a macro to access it.
13373         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
13374         Skip statements that can't be vectorized. If the analysis fails,
13375         mark the statement as unvectorizable if vectorizing basic block.
13376         (vect_compute_data_refs_alignment): Likewise.
13377         (vect_verify_datarefs_alignment): Skip statements marked as
13378         unvectorizable. Add print.
13379         (vect_analyze_group_access): Skip statements that can't be
13380         vectorized. If the analysis fails, mark the statement as
13381         unvectorizable if vectorizing basic block.
13382         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
13383         * tree-vect-stmts.c (vectorizable_store): Fix the number of
13384         generated stmts for SLP.
13385         (new_stmt_vec_info): Initialize the new field.
13386         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
13387         statements marked as unvectorizable.
13388
13389 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
13390
13391         * c-common.c (flag_isoc1x): New.
13392         (flag_isoc99): Update comment.
13393         * c-common.h (flag_isoc1x): New.
13394         (flag_isoc99): Update comment.
13395         * c-cppbuiltin.c (builtin_define_float_constants): Also define
13396         __<type>_DECIMAL_DIG__.
13397         * c-opts.c (set_std_c1x): New.
13398         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
13399         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
13400         * c.opt (-std=c1x, -std=gnu1x): New options.
13401         * doc/cpp.texi: Mention -std=c1x.
13402         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
13403         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
13404         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
13405         * doc/standards.texi: Mention C1X.
13406         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
13407         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
13408         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
13409         Define for C1X.
13410
13411 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
13412
13413         * config/i386/gmon-sol2.c (_mcleanup): Change format string
13414         placeholder from 0x%x to %#x.
13415         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
13416         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
13417         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
13418         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
13419         * config/i386/i386.c (ix86_target_string): Ditto.
13420         (output_pic_addr_const): Ditto.
13421         (print_operand): Ditto.
13422
13423 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
13424
13425         * combine.c (find_split_point): Add third argument.  Use it
13426         to find nested multiply-accumulate instructions.  Adjust calls.
13427         (try_combine): Adjust call to find_split_point.
13428
13429 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
13430
13431         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
13432
13433 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
13434
13435         PR tree-optimization/41442
13436         * fold-const.c (merge_truthop_with_opposite_arm): New function.
13437         (fold_binary_loc): Call it.
13438
13439 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13440
13441         * toplev.c (general_init): Set default for fdiagnostics-show-option.
13442         * opts.c (common_handle_option): Allow disabling it.
13443         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
13444
13445 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
13446
13447         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
13448         between modes if both types are integral.
13449
13450 2010-04-23  Richard Guenther  <rguenther@suse.de>
13451
13452         PR tree-optimization/43572
13453         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
13454
13455 2010-04-23  Richard Guenther  <rguenther@suse.de>
13456
13457         PR lto/43455
13458         * tree-inline.c (tree_can_inline_p): Also check compatibility
13459         of return types.
13460
13461 2010-04-23  Martin Jambor  <mjambor@suse.cz>
13462
13463         PR tree-optimization/43846
13464         * tree-sra.c (struct access): New flag grp_assignment_read.
13465         (build_accesses_from_assign): Set grp_assignment_read.
13466         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
13467         (enum mark_read_status): New type.
13468         (analyze_access_subtree): Propagate grp_assignment_read, create
13469         accesses also if both direct_read and root->grp_assignment_read.
13470
13471 2010-04-23  Martin Jambor  <mjambor@suse.cz>
13472
13473         PR middle-end/43835
13474         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
13475         function does not have type attributes.
13476
13477 2010-04-23  Richard Guenther  <rguenther@suse.de>
13478
13479         PR lto/42653
13480         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
13481         of FUNCTION_DECLs.
13482
13483 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13484
13485         * sese.h (create_if_region_on_edge): Remove.
13486
13487         * sese.c (create_if_region_on_edge): Make static.
13488
13489         * tree-inline.c: Do not include ggc.h.
13490
13491         * expr.c: Do not include ggc.h.
13492
13493         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
13494         dependencies.
13495
13496 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
13497
13498         PR target/43744
13499         * config/sh/sh.c (find_barrier): Don't emit a constant pool
13500         in the middle of insns for casesi_worker_2.
13501
13502 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
13503
13504         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
13505
13506 2010-04-22  Ira Rosen  <irar@il.ibm.com>
13507
13508         PR tree-optimization/43842
13509         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
13510         loop unrolling in update of exit phis. Fix comment.
13511         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
13512         least two reduction statements in the loop before starting SLP
13513         analysis.
13514
13515 2010-04-22  Nick Clifton  <nickc@redhat.com>
13516
13517         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
13518
13519 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
13520
13521         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
13522         to simplify a + ~a.
13523
13524 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13525
13526         * tree-parloops.c (loop_parallel_p): New argument
13527         parloop_obstack.  Pass it down.
13528         (parallelize_loops): New variable parloop_obstack.  Initialize it,
13529         pass it down, free it.
13530
13531         * tree-loop-linear.c (linear_transform_loops): Pass down
13532         lambda_obstack.
13533
13534         * tree-data-ref.h (lambda_compute_access_matrices): New argument
13535         of type struct obstack *.
13536
13537         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
13538         scratch_obstack.  Initialize it, pass down, free it.
13539
13540         * lambda.h (lambda_loop_new): Remove.
13541         (lambda_matrix_new, lambda_matrix_inverse)
13542         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
13543         argument of type struct obstack *.
13544
13545         * lambda-trans.c (lambda_trans_matrix_new): New argument
13546         lambda_obstack.  Pass it down, use obstack allocation for ret.
13547         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
13548         it down.
13549
13550         * lambda-mat.c (lambda_matrix_get_column)
13551         (lambda_matrix_project_to_null): Remove.
13552         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
13553         allocation for mat.
13554         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
13555         lambda_obstack.
13556
13557         * lambda-code.c (lambda_loop_new): New function.
13558         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
13559         (lambda_compute_auxillary_space, lambda_compute_target_space)
13560         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
13561         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
13562         (build_access_matrix): New argument lambda_obstack.  Use obstack
13563         allocation for am.
13564         (lambda_compute_step_signs, lambda_compute_access_matrices): New
13565         argument lambda_obstack.  Pass it down.
13566
13567 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
13568
13569         * optabs.h (expand_widening_mult): Declare.
13570
13571 2010-04-22  Richard Guenther  <rguenther@suse.de>
13572
13573         PR tree-optimization/43845
13574         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
13575         lookup the CALL_EXPR function and arguments.
13576
13577 2010-04-22  Nick Clifton  <nickc@redhat.com>
13578
13579         * config/stormy16/stormy16.c
13580         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
13581         * config/stormy16/stormy16.h: Tidy up formatting.
13582         (DONT_USE_BUILTIN_SETJMP): Remove definition.
13583         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
13584         (ineqbranchsi): Delete pattern.
13585         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
13586         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
13587         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
13588         stormy16-lib2-ucmpsi2.c.
13589
13590 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
13591
13592         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
13593         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
13594         extra set merge_set_noclobber, and use it to relax the final test
13595         slightly.
13596         * df.h (df_simulate_find_noclobber_defs): Declare.
13597         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
13598         conditional defs.
13599         (df_simulate_find_noclobber_defs): New function.
13600
13601 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
13602
13603         * config/i386/i386.md: Use {} around multi-line preparation statements.
13604
13605 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13606
13607         * c-tree.h (push_init_level, pop_init_level, set_init_index)
13608         (process_init_element): New argument of type struct obstack *.
13609
13610         * c-typeck.c (push_init_level, pop_init_level, set_designator)
13611         (set_init_index, set_init_label, set_nonincremental_init)
13612         (set_nonincremental_init_from_string, find_init_member)
13613         (output_init_element, output_pending_init_elements)
13614         (process_init_element): New argument braced_init_obstack.  Pass it
13615         down.
13616         (push_range_stack, add_pending_init): New argument
13617         braced_init_obstack.  Use obstack allocation.
13618
13619         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
13620         braced_init_obstack.  Pass it down.
13621         (c_parser_braced_init): New variables ret, braced_init_obstack.
13622         Initialize obstack, pass it down and finally free it.
13623
13624 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
13625
13626         PR middle-end/29274
13627         * tree-pass.h (pass_optimize_widening_mul): Declare.
13628         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
13629         gate_optimize_widening_mul): New static functions.
13630         (pass_optimize_widening_mul): New.
13631         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
13632         <case MULT_EXPR>: Remove support for widening multiplies.
13633         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
13634         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
13635         simplify_gen_unary rather than directly building extensions.
13636         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
13637         WIDEN_MULT_EXPR.
13638         * expmed.c (expand_widening_mult): New function.
13639         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
13640
13641 2010-04-21  Jan Hubicka  <jh@suse.cz>
13642
13643         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
13644         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
13645         * lto-wpa-fixup.c: Remove.
13646         * Makefile.in (lto-wpa-fixup.o): Remove.
13647         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
13648         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
13649         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
13650
13651 2010-04-21  Jan Hubicka  <jh@suse.cz>
13652
13653         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
13654         add write_optimization_summary, read_optimization_summary.
13655         (ipa_write_summaries_of_cgraph_node_set): Remove.
13656         (ipa_write_optimization_summaries): Declare.
13657         (ipa_read_optimization_summaries): Declare.
13658         * ipa-cp.c (pass_ipa_cp): Update.
13659         * ipa-reference.c (pass_ipa_reference): Update.
13660         * ipa-pure-const.c (pass_ipa_pure_const): Update.
13661         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
13662         Update.
13663         * ipa-inline.c (pass_ipa_inline): Update.
13664         * ipa.c (pass_ipa_whole_program): Update.
13665         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
13666         * passes.c (ipa_write_summaries_1): Do not test wpa.
13667         (ipa_write_optimization_summaries_1): New.
13668         (ipa_write_optimization_summaries): New.
13669         (ipa_read_summaries): Do not test ltrans.
13670         (ipa_read_optimization_summaries_1): New.
13671         (ipa_read_optimization_summaries): New.
13672
13673 2010-04-21  Jan Hubicka  <jh@suse.cz>
13674
13675         * lto-cgraph.c (lto_output_node): Do not output comdat groups
13676         for boundary nodes.
13677         (output_cgraph): Do not arrange comdat groups for boundary nodes.
13678
13679 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
13680
13681         PR debug/40040
13682         * dwarf2out.c (add_name_and_src_coords_attributes): Add
13683         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
13684
13685 2010-04-21  Jan Hubicka  <jh@suse.cz>
13686
13687         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
13688
13689 2010-04-21  Jan Hubicka  <jh@suse.cz>
13690
13691         * varpool.c (decide_is_variable_needed): Variable is always needed
13692         during ltrans.
13693
13694 2010-04-21  Jan Hubicka  <jh@suse.cz>
13695
13696         * opts.c (decode_options): Enable pure-const pass for whopr.
13697
13698 2010-04-21  Jan Hubicka  <jh@suse.cz>
13699
13700         * cgraph.c (dump_cgraph_node): Dump also assembler name.
13701         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
13702         at WPA dumping.
13703         (cgraph_decide_inlining): Do not expect callee to be removed in all
13704         cases.
13705
13706 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
13707
13708         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
13709
13710 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
13711
13712         * config/i386/i386.md (x86_shrd): Add athlon_decode and
13713         amdfam10_decode attributes.
13714
13715 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
13716
13717         PR middle-end/43570
13718         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
13719         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
13720         (lower_copyprivate_clauses): Use private var in outer
13721         context instead of original var.  Make sure the types
13722         are correct for VLAs.
13723
13724 2010-04-21  Richard Guenther  <rguenther@suse.de>
13725
13726         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
13727         to non-pointer objects.
13728
13729 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
13730
13731         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
13732         last chain entry if it starts with the still current label.
13733         (add_location_or_const_value_attribute): Check that
13734         loc_list->first->next is NULL instead of comparing ->first with ->last.
13735         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
13736         to add_var_loc_to_decl.
13737
13738         * dwarf2out.c (output_call_frame_info): For dw_cie_version
13739         >= 4 add also address size and segment size fields into CIE header.
13740
13741         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
13742         long as address size is the same as sizeof (void *) and
13743         segment size is 0.
13744         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
13745         address size or segment size is unexpected, return DW_EH_PE_omit.
13746         (classify_object_over_fdes): If get_cie_encoding returned
13747         DW_EH_PE_omit, return -1.
13748         (init_object): If classify_object_over_fdes returned -1,
13749         pretend there were no FDEs at all.
13750
13751 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
13752
13753         * config/i386/i386.md (bswap<mode>2): Macroize expander from
13754         bswap{si,di}2 using SWI48 mode iterator.
13755         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
13756         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
13757         set modrm attribute of bswap insn to 0 and remove length attribute.
13758         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
13759         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
13760         set mode attribute to <MODE> and remove length attribute.
13761
13762 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
13763
13764         PR rtl-optimization/43520
13765         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
13766         zero available registers.
13767
13768 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13769
13770         * builtins.c (fold_builtin_cproj): Fold more cases.
13771
13772 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13773
13774         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
13775         (fold_builtin_1): Fold builtin cproj.
13776         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
13777         Use ATTR_CONST_NOTHROW_LIST.
13778
13779 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
13780
13781         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
13782         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
13783         ffsi2_no_cmove for !TARGET_CMOVE.
13784         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
13785         (ffssi2): Remove expander.
13786         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
13787         mode iterator.
13788         (ctz<mode>2): Ditto from ctz{si,di}2.
13789         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
13790         mode iterator.
13791         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
13792         mode iterator.
13793
13794 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
13795
13796         * dwarf2out.c (AT_linkage_name): Define.
13797         (clone_as_declaration): Handle DW_AT_linkage_name.
13798         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
13799         of DW_AT_MIPS_linkage_name.
13800         (move_linkage_attr): Likewise.
13801         (dwarf2out_finish): Likewise.
13802
13803 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
13804
13805         PR middle-end/41952
13806         * fold-const.c (fold_comparison): New folding rule.
13807
13808 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
13809
13810         * double-int.h (double_int_setbit): Declare.
13811         * double-int.c (double_int_setbit): New function.
13812         * rtl.h (immed_double_int_const): Declare.
13813         * emit-rtl.c (immed_double_int_const): New function.
13814         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
13815         and immed_double_int_const functions.
13816         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
13817         expand_copysign_bit):  (Ditto.).
13818         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
13819         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
13820         * dojump.c (prefer_and_bit_test): (Ditto.).
13821         * expr.c (convert_modes, reduce_to_bit_field_precision,
13822         const_vector_from_tree): (Ditto.).
13823         * expmed.c (mask_rtx, lshift_value): (Ditto.).
13824
13825 2010-04-20  Jan Hubicka  <jh@suse.cz>
13826
13827         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
13828         (dump_cgraph_node): Dump new flags.
13829         * cgraph.h (struct cgraph_node): Add flags
13830         reachable_from_other_partition and in_other_partition.
13831         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
13832         other partition can not be removed.
13833         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
13834         the other partition must be output; silence sanity checking on
13835         leaking functions bodies from other paritition.
13836         * lto-cgraph.c (reachable_from_other_partition_p): New function.
13837         (lto_output_node): Output new flags; do not sanity check that inline
13838         clones are output; drop lto_forced_extern_inline_p code; do not mock
13839         visibility flags at partition boundaries.
13840         (add_node_to): New function.
13841         (output_cgraph): Use it to sort functions so masters appear before
13842         clones.
13843         (input_overwrite_node): Input new flags.
13844         * passes.c (ipa_write_summaries): Do not call
13845         lto_new_extern_inline_states.
13846         * lto-section-out.c (forced_extern_inline,
13847         lto_new_extern_inline_states lto_delete_extern_inline_states,
13848         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
13849         * lto-streamer.h (lto_new_extern_inline_states,
13850         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
13851         lto_forced_extern_inline_p): Kill.
13852
13853 2010-04-20  Richard Guenther  <rguenther@suse.de>
13854
13855         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
13856         from vars that can have pointers.
13857         (process_constraint): Dump useless constraints.
13858
13859 2010-04-20  Richard Guenther  <rguenther@suse.de>
13860
13861         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
13862         (dump_sa_points_to_info): Remove asserts.
13863         (init_base_vars): nothing_id isn't an escape point nor does it
13864         have pointers.
13865
13866 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
13867
13868         * tree.h (TYPE_REF_IS_RVALUE): Define.
13869         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
13870         should_move_die_to_comdat, prune_unused_types_walk): Handle
13871         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
13872         (modified_type_die, gen_reference_type_die): Emit
13873         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
13874         if TYPE_REF_IS_RVALUE and -gdwarf-4.
13875
13876 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13877
13878         PR target/43635
13879         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
13880         calls for -fpic -m31 if they have been sibcall optimized.
13881
13882 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
13883
13884         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
13885         ar.lc fixed and call-used.
13886
13887         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
13888
13889 2010-04-19  Jan Hubicka  <jh@suse.cz>
13890
13891         * opts.c (decode_options): Disable whpr incompatible passes.
13892         * lto/lto.c (lto_1_to_1_map): Skip clones.
13893         (read_cgraph_and_symbols): Do not mark everything as needed.
13894         (do_whole_program_analysis): Do map only after optimizing;
13895         set proper cgraph_state; use passmanager.
13896
13897 2010-04-19  DJ Delorie  <dj@redhat.com>
13898
13899         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
13900         POINTER_PLUS_EXPR and fix them.
13901
13902 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
13903
13904         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
13905         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
13906         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
13907         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
13908         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
13909         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
13910         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
13911         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
13912         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
13913         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
13914         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
13915
13916 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13917
13918         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
13919         (check_cond_move_block): Likewise.
13920         (cond_move_process_if_block): Likewise.
13921         (noce_find_if_block): Improve formatting.
13922         (find_if_header): Pass 0 to memset and tweak conditions.
13923         (cond_exec_find_if_block): Fix long lines and tweak conditions.
13924
13925 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
13926
13927         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
13928         for -gdwarf-4.
13929
13930         PR middle-end/43337
13931         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
13932         with non-local decl doesn't need chain.
13933
13934 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
13935
13936         * ira-color.c (allocno_reload_assign): Avoid accumulating
13937         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
13938
13939 2010-04-19  Martin Jambor  <mjambor@suse.cz>
13940
13941         * gimple.h (create_tmp_reg): Declare.
13942         * gimplify.c (create_tmp_reg): New function.
13943         (gimplify_return_expr): Use create_tmp_reg.
13944         (gimplify_omp_atomic): Likewise.
13945         (gimple_regimplify_operands): Likewise.
13946         * tree-dfa.c (make_rename_temp): Likewise.
13947         * tree-predcom.c (predcom_tmp_var): Likewise.
13948         (reassociate_to_the_same_stmt): Likewise.
13949         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
13950         (get_replaced_param_substitute): Likewise.
13951         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
13952         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
13953         * tree-ssa-pre.c (get_representative_for): Likewise.
13954         (create_expression_by_pieces): Likewise.
13955         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
13956         (create_tailcall_accumulator): Likewise.
13957
13958 2010-04-19  Martin Jambor  <mjambor@suse.cz>
13959
13960         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
13961         new_stmt.
13962         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
13963
13964 2010-04-19  Richard Guenther  <rguenther@suse.de>
13965
13966         PR tree-optimization/43796
13967         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
13968         from SCEV in the lattice.
13969         (vrp_visit_phi_node): Dump change.
13970
13971 2010-04-19  Richard Guenther  <rguenther@suse.de>
13972
13973         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
13974         * configure: Re-generated.
13975
13976 2010-04-19  Richard Guenther  <rguenther@suse.de>
13977
13978         PR tree-optimization/43783
13979         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
13980         constant ARRAY_REF operands two and three if possible.
13981
13982 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
13983
13984         PR target/43766
13985         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
13986
13987 2010-04-19  Jie Zhang  <jie@codesourcery.com>
13988
13989         PR target/43662
13990         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
13991
13992 2010-04-19  Ira Rosen  <irar@il.ibm.com>
13993
13994         PR tree-optimization/37027
13995         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
13996         and macro to access it.
13997         (vectorizable_reduction): Add argument.
13998         (vect_get_slp_defs): Likewise.
13999         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
14000         statements for possible use in SLP.
14001         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
14002         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
14003         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
14004         add new argument.
14005         (vectorizable_reduction): Likewise.
14006         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
14007         vect_get_slp_defs.
14008         (vectorizable_type_demotion, vectorizable_type_promotion,
14009         vectorizable_store): Likewise.
14010         (vect_analyze_stmt): Update call to vectorizable_reduction.
14011         (vect_transform_stmt): Likewise.
14012         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
14013         (vect_build_slp_tree): Fix indentation. Check that there are no loads
14014         from different interleaving chains in same node.
14015         (vect_slp_rearrange_stmts): New function.
14016         (vect_supported_load_permutation_p): Allow load permutations for
14017         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
14018         inside SLP nodes if necessary.
14019         (vect_analyze_slp_instance): Handle reductions.
14020         (vect_analyze_slp): Try to build SLP instances originating from groups
14021         of reductions.
14022         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
14023         (vect_get_constant_vectors): Create initial vectors for reductions
14024         according to reduction code. Add new argument.
14025         (vect_get_slp_defs): Add new argument, pass it to
14026         vect_get_constant_vectors.
14027         (vect_schedule_slp_instance): Remove SLP tree root statements.
14028
14029 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
14030
14031         * tree.h (ENUM_IS_SCOPED): Define.
14032         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
14033         for ENUM_IS_SCOPED enums.
14034
14035 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14036
14037         * fold-const.c (fold_comparison): Use ssizetype.
14038         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14039         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
14040         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
14041         * tree-object-size.c (compute_object_sizes): Use size_type_node.
14042
14043         * tree.h (initialize_sizetypes): Remove parameter.
14044         (build_common_tree_nodes): Remove second parameter.
14045         * stor-layout.c (initialize_sizetypes): Remove parameter.
14046         Always create an unsigned type.
14047         (set_sizetype): Assert that the passed type is unsigned and simplify.
14048         * tree.c (build_common_tree_nodes): Remove second parameter.
14049         Adjust call to initialize_sizetypes.
14050         * c-decl.c (c_init_decl_processing): Remove second argument in call to
14051         build_common_tree_nodes.
14052
14053 2010-04-18  Matthias Klose  <doko@ubuntu.com>
14054
14055         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
14056
14057 2010-04-18  Ira Rosen  <irar@il.ibm.com>
14058
14059         PR tree-optimization/43771
14060         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
14061         load permutation doesn't have gaps.
14062
14063 2010-04-18  Jan Hubicka  <jh@suse.cz>
14064
14065         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
14066         (sse_prologue_save_insn expander): Use new pattern.
14067         (sse_prologue_save_insn1): New pattern and splitter.
14068         (sse_prologue_save_insn): Update to deal also with 64bit aligned
14069         blocks.
14070         * i386.c (setup_incoming_varargs_64): Do not compute jump
14071         destination here.
14072         (ix86_gimplify_va_arg): Update alignment needed.
14073         (ix86_local_alignment): Do not align all local arrays to 128bit.
14074
14075 2010-04-17  Jan Hubicka  <jh@suse.cz>
14076
14077         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
14078
14079 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
14080
14081         * arm.md (negdi2): Remove redundant code to force values into a
14082         register.
14083
14084 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
14085
14086         * arm/bpabi.S: Add EABI alignment attributes to objects.
14087         * arm/bpabi-v6m.S: Likewise.
14088         * arm/crti.asm: Likewise.
14089         * arm/crtn.asm: Likewise.
14090         * arm/lib1funcs.asm: Likewise.
14091         * arm/libunwind.S: Likewise.
14092
14093 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
14094
14095         * arm-protos.h (tune_params): New structure.
14096         * arm.c (current_tune): New variable.
14097         (arm_constant_limit): Delete.
14098         (struct processors): Add pointer to the tune parameters.
14099         (arm_slowmul_tune): New tuning option.
14100         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
14101         (all_cores): Adjust to pick up the tuning model.
14102         (arm_constant_limit): New function.
14103         (arm_override_options): Select the appropriate tuning model.  Delete
14104         initialization of arm_const_limit.
14105         (arm_split_constant): Use the new constant-limit model.
14106         (arm_rtx_costs): Pick up the current tuning model.
14107         * arm.md (is_strongarm, is_xscale): Delete.
14108         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
14109         for Xscale variant architectures.
14110         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
14111
14112 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14113
14114         * config/arm/arm.c (arm_gen_constant): Remove unused variable
14115         can_shift.
14116         (arm_rtx_costs_1): Remove unused variable extra_cost.
14117         (arm_unwind_emit_set): Use variable offset.
14118         (thumb1_output_casesi): Remove unused variable flags.
14119
14120 2010-04-16  Jeff Law  <law@redhat.com>
14121
14122         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
14123         needing assignment rather than doing a two-phase assignment.  Remove
14124         unused variable 'm'.
14125
14126 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
14127
14128         PR bootstrap/43767
14129         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
14130
14131 2010-04-16  Doug Kwan  <dougkwan@google.com>
14132
14133         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
14134         (next_operand_entry_id): New static variable.
14135         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
14136         (add_to_ops_vec): Assigned unique ID to operand entry.
14137         (struct oecount_s): New field ID.
14138         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
14139         (undistribute_ops_list): Assign unique IDs to oecounts.
14140         (init_reassoc): reset next_operand_entry_id.
14141
14142 2010-04-16  Doug Kwan  <dougkwan@google.com>
14143
14144         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
14145         missing left parenthesis.
14146
14147 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
14148
14149         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
14150         *btdi_rex64 using SWI48 mode iterator.
14151         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
14152         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
14153         *jcc_btdi_mask_rex64.
14154
14155 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
14156
14157         * double-int.h (tree_to_double_int): Convert to macro.
14158         * double-int.c (tree_to_double_int): Remove.
14159
14160 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
14161
14162         PR debug/43762
14163         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
14164         with want_address 2 and in case a single element list might be
14165         possible, call it again with want_address 0.
14166
14167 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14168
14169         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
14170         case 'W' print operands for HI mode.
14171         * config/h8300/h8300.h (Y0, Y2) : New constraints.
14172         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
14173         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
14174         * config/h8300/predicate.md (bit_register_indirect_operand): New.
14175
14176         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
14177
14178         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
14179         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
14180         #xx:3 and #xx:4 mode.
14181
14182         * config/h8300/h8300.md (inverted load with HImode dest): Add
14183         support for H8300SX.
14184
14185         * config/h8300/predicate.md (bit_operand): Allow immediate values that
14186         satisfy 'U' constraint.
14187
14188 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14189
14190         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
14191         * configure: Regenerate.
14192         * config.in: Regenerate.
14193         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
14194         works.
14195
14196 2010-04-16  Richard Guenther  <rguenther@suse.de>
14197
14198         * tree.h (struct tree_decl_minimal): Move pt_uid ...
14199         (struct tree_decl_common): ... here.
14200         (DECL_PT_UID): Adjust.
14201         (SET_DECL_PT_UID): Likewise.
14202         (DECL_PT_UID_SET_P): Likewise.
14203
14204 2010-04-16  Richard Guenther  <rguenther@suse.de>
14205
14206         PR tree-optimization/43572
14207         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
14208         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
14209         * tree-flow.h (is_call_clobbered): Remove.
14210         * tree-flow-inline.h (is_call_clobbered): Likewise.
14211         * tree-dfa.c (dump_variable): Do not dump call clobber state.
14212         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
14213         (execute_return_slot_opt): Adjust.
14214         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
14215         check for call clobbered vars here.
14216         (find_tail_calls): Move tailcall verification to the
14217         proper place.
14218
14219 2010-04-16  Diego Novillo  <dnovillo@google.com>
14220
14221         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
14222
14223 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
14224
14225         PR target/40603
14226         * config/arm/arm.md (cbranchqi4): New pattern.
14227         * config/arm/predicates.md (const0_operand,
14228         cbranchqi4_comparison_operator): New predicates.
14229
14230 2010-04-16  Richard Guenther  <rguenther@suse.de>
14231
14232         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
14233         (dump_gimple_stmt): Likewise.
14234
14235 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
14236
14237         * recog.h (struct recog_data): New field is_operator.
14238         (struct insn_operand_data): New field is_operator.
14239         * recog.c (extract_insn): Set recog_data.is_operator.
14240         * genoutput.c (output_operand_data): Emit code to set the
14241         is_operator field.
14242         * reload.c (find_reloads): Use it rather than testing for an
14243         empty constraint string.
14244
14245         PR target/41514
14246         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
14247         If the previous insn is a cbranchsi4_insn with the same arguments,
14248         omit the compare instruction.
14249
14250         * config/arm/arm.md (addsi3_cbranch): If destination is a high
14251         register, inputs must be low registers and we need a low register
14252         scratch.  Handle alternative 2 like alternative 3.
14253
14254 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
14255
14256         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
14257         don't call get_addr on both.  If one expression is a VALUE and
14258         the other a REG, check VALUE's locs if the REG isn't among them.
14259
14260 2010-04-16  Christian Bruel  <christian.bruel@st.com>
14261
14262         * config/sh/sh.h (sh_frame_pointer_required): New function.
14263         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
14264         (flag_omit_frame_pointer) Set.
14265         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
14266         (rounded_frame_size): Adjust size with outgoing_args_size.
14267         (sh_set_return_address): Must return from stack pointer.
14268         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
14269         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
14270         (ACCUMULATE_OUTGOING_ARGS): Define.
14271         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
14272         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
14273
14274 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
14275
14276         PR target/43471
14277         * config/sh/sh.c (sh_legitimize_reload_address): Use
14278         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
14279         Remove a unneeded check for offset_base.
14280
14281 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
14282
14283         * configure: Regenerated.
14284
14285 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14286
14287         * config/s390/s390.c (s390_call_save_register_used): Switch back
14288         to HARD_REGNO_NREGS.
14289
14290 2010-04-15  Richard Guenther  <rguenther@suse.de>
14291
14292         * alias.c (alias_set_subset_of): Handle alias-set zero
14293         child properly.
14294
14295 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
14296             Julian Brown  <julian@codesourcery.com>
14297
14298         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
14299         alternatives according to use of high and low regs.
14300         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
14301         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
14302         optimizing for size on Thumb-2.
14303
14304 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
14305
14306         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
14307
14308 2010-04-15  Richard Guenther  <rguenther@suse.de>
14309
14310         * tree-ssa-structalias.c (struct variable_info): Add
14311         is_fn_info flag.
14312         (new_var_info): Initialize it.
14313         (dump_constraints): Support printing last added constraints.
14314         (debug_constraints): Adjust.
14315         (dump_constraint_graph): Likewise.
14316         (make_heapvar_for): Check for NULL cfun.
14317         (get_function_part_constraint): New function.
14318         (get_fi_for_callee): Likewise.
14319         (find_func_aliases): Properly implement IPA PTA constraints.
14320         (process_ipa_clobber): New function.
14321         (find_func_clobbers): Likewise.
14322         (insert_into_field_list_sorted): Remove.
14323         (create_function_info_for): Properly allocate vars for IPA mode.
14324         Do not use insert_into_field_list_sorted.
14325         (create_variable_info_for): Properly generate constraints for
14326         global vars in IPA mode.
14327         (dump_solution_for_var): Always dump the solution.
14328         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
14329         (find_what_var_points_to): Adjust.
14330         (pt_solution_set): Change.
14331         (pt_solution_ior_into): New function.
14332         (pt_solution_empty_p): Export.
14333         (pt_solution_includes_global): Adjust.
14334         (pt_solution_includes_1): Likewise.
14335         (pt_solutions_intersect_1): Likewise.
14336         (dump_sa_points_to_info): Check some invariants.
14337         (solve_constraints): Move constraint dumping ...
14338         (compute_points_to_sets): ... here.
14339         (ipa_pta_execute): ... and here.
14340         (compute_may_aliases): Do not re-compute points-to info
14341         locally if IPA info is available.
14342         (ipa_escaped_pt): New global var.
14343         (ipa_pta_execute): Properly implement IPA PTA.
14344         * tree-into-ssa.c (dump_decl_set): Support dumping
14345         decls not in referenced-vars.
14346         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
14347         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
14348         (dump_points_to_solution): Likewise.
14349         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
14350         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
14351         (remap_gimple_stmt): Reset call clobber/use information if necessary.
14352         (copy_decl_to_var): Copy DECL_PT_UID.
14353         (copy_result_decl_to_var): Likewise.
14354         * tree.c (make_node_stat): Initialize DECL_PT_UID.
14355         (copy_node_stat): Copy it.
14356         * tree.h (DECL_PT_UID): New macro.
14357         (SET_DECL_PT_UID): Likewise.
14358         (DECL_PT_UID_SET_P): Likewise.
14359         (struct tree_decl_minimal): Add pt_uid member.
14360         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
14361         (pt_solution_empty_p): Declare.
14362         (pt_solution_set): Adjust.
14363         (ipa_escaped_pt): Declare.
14364         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
14365         * gimple-pretty-print.c (pp_points_to_solution): New function.
14366         (dump_gimple_call): Dump call clobber/use information.
14367         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
14368         * tree-pass.h (TDF_ALIAS): New dump option.
14369         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
14370         * doc/invoke.texi (-fipa-pta): Update documentation.
14371
14372 2010-04-15  Richard Guenther  <rguenther@suse.de>
14373
14374         * Makefile.in (OBJS-common): Add gimple-fold.o.
14375         (gimple-fold.o): New rule.
14376         * tree.h (maybe_fold_offset_to_reference,
14377         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
14378         prototypes ...
14379         * gimple.h: ... here.
14380         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
14381         may_propagate_address_into_dereference): Move prototypes ...
14382         * gimple.h: ... here.
14383         * tree-ssa-ccp.c (get_symbol_constant_value,
14384         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
14385         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
14386         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
14387         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
14388         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
14389         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
14390         gimplify_and_update_call_from_tree): Move ...
14391         * gimple-fold.c: ... here.  New file.
14392         (ccp_fold_builtin): Rename to ...
14393         (gimple_fold_builtin): ... this.
14394         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
14395
14396 2010-04-15  Richard Guenther  <rguenther@suse.de>
14397
14398         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
14399         fit_double_type, force_fit_type_double, add_double_with_sign,
14400         neg_double, mul_double_with_sign, lshift_double, rshift_double,
14401         lrotate_double, rrotate_double, div_and_round_double): Move ...
14402         * double-int.c: ... here.
14403         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
14404         add_double, neg_double, mul_double_with_sign, mul_double,
14405         lshift_double, rshift_double, lrotate_double, rrotate_double,
14406         div_and_round_double): Move prototypes ...
14407         * double-int.h: ... here.
14408
14409 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
14410
14411         PR target/43742
14412         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
14413         matching constraints to ensure inputs match the output.
14414
14415 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
14416
14417         PR target/43742
14418         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
14419         in an input-only operand.
14420
14421 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
14422
14423         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
14424         (double_int_not, double_int_lshift, double_int_rshift): Declare.
14425         (double_int_negative_p): Convert to static inline function.
14426         * double-int.c (double_int_lshift, double_int_lshift): New functions.
14427         (double_int_negative_p): Remove.
14428         * tree.h (lshift_double, rshift_double):
14429         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
14430         * fold-const.c (fold_convert_const_int_from_real,
14431         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
14432         (lshift_double): Change type of arith argument to bool.
14433         (rshift_double): Change type of arith argument to bool. Correct
14434         comment.
14435         * expmed.c (mask_rtx, lshift_value): (Ditto.).
14436
14437 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
14438
14439         PR target/21803
14440         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
14441         at the start and end of the then/else blocks, and omit them from the
14442         conversion.
14443         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
14444         argument; all callers changed.  Pass zero to old_insns_match_p instead.
14445         (flow_find_head_matching_sequence): New function.
14446         (old_insns_match_p): Check REG_EH_REGION notes for calls.
14447         * basic-block.h (flow_find_cross_jump,
14448         flow_find_head_matching_sequence): Declare functions.
14449
14450 2010-04-14  Jason Merrill  <jason@redhat.com>
14451
14452         PR c++/36625
14453         * c-common.c (attribute_takes_identifier_p): New fn.
14454         * c-common.h: Declare it.
14455
14456 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14457
14458         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
14459         splitter condition.
14460         (*udivmod<mode>4): Ditto.
14461
14462 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14463
14464         * config/i386/i386.md (maxmin_int): Rename code attribute from
14465         maxminiprefix and update all users.
14466         (maxmin_float): Ditto from maxminfprefix.
14467         (logic): Ditto from logicprefix.
14468         (absneg_mnemonic): Ditto from absnegprefix.
14469         * config/i386/mmx.md: Update all users of maxminiprefix,
14470         maxminfprefix and logicprefix for rename.
14471         * config/i386/sse.md: Ditto.
14472         * config/i386/sync.md (sync_<code><mode>): Update for
14473         logicprefix rename.
14474
14475 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14476
14477         PR 42966
14478         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
14479         warnings converted to errors.
14480
14481 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14482
14483         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
14484         used insn_type variable.
14485         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
14486         to avoid set-but-not-used warning.
14487
14488 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14489
14490         * df-core.c (df_ref_debug): Change format string placeholder
14491         from 0x%x to %#x.
14492         * dwarf2asm.c (dw2_asm_output_data_raw,
14493         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
14494         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
14495         * dwarf2out.c (output_cfi, output_cfi_directive,
14496         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
14497         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
14498         Ditto.
14499         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
14500         * print-rtl.c (print_rtx): Ditto.
14501
14502 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14503
14504         PR middle-end/42694
14505         * builtins.c (expand_builtin_pow_root): New function to expand pow
14506         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
14507         series of sqrt and cbrt calls under -ffast-math.
14508         (expand_builtin_pow): Call it.
14509
14510 2010-04-14  Michael Matz  <matz@suse.de>
14511
14512         PR tree-optimization/42963
14513         * tree-cfg.c (touched_switch_bbs): New static variable.
14514         (group_case_labels_stmt): New function broken out from ...
14515         (group_case_labels): ... here, use the above.
14516         (start_recording_case_labels): Allocate touched_switch_bbs.
14517         (end_recording_case_labels): Deallocate it, call
14518         group_case_labels_stmt.
14519         (gimple_redirect_edge_and_branch): Remember index of affected BB.
14520
14521 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14522
14523         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
14524         from insn template.
14525
14526 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
14527
14528         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
14529
14530 2010-04-13  Jan Hubicka  <jh@suse.cz>
14531
14532         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
14533         of optimized out static functions.
14534         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
14535         cost computation.  Also sanity check for overflows.
14536         (update_caller_keys): Update cgraph_edge_badness call; properly
14537         update fibheap and sanity check that it is up to date.
14538         (add_new_edges_to_heap): Update cgraph_edge_badness.
14539         (cgraph_decide_inlining_of_small_function): Likewise;
14540         add sanity checking that badness in heap is up to date;
14541         improve dumping of reason; Update badness of calls to the
14542         offline copy of function currently inlined; dump badness
14543         of functions not inlined because of unit growth limits.
14544
14545 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
14546
14547         PR middle-end/32628
14548         * c-common.c (pointer_int_sum): Disregard overflow that occured only
14549         because of sign-extension change when converting to sizetype here...
14550         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
14551
14552         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
14553         the folding to constants.  Remove redundant final conversion.
14554         (fold_binary) <associate>: Do not associate if the re-association of
14555         constants alone overflows.
14556         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
14557         to the end of the list.
14558         (multiple_of_p) <COND_EXPR>: New case.
14559
14560 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14561
14562         * opt-functions.awk (opt_sanitized_name): New.
14563         (opt_enum): New.
14564         * optc-gen.awk: Use it
14565         * opth-gen.awk: Use it.
14566
14567 2010-04-13  Martin Jambor  <mjambor@suse.cz>
14568
14569         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
14570         (sra_modify_assign): Delete stmts loading dead data even if racc has no
14571         children.  Call replace_uses_with_default_def_ssa_name to handle
14572         SSA_NAES on lhs.
14573
14574 2010-04-13  Michael Matz  <matz@suse.de>
14575
14576         PR middle-end/43730
14577         * builtins.c (expand_builtin_interclass_mathfn): Also create
14578         a register if the predicate doesn't match.
14579
14580 2010-04-13  Diego Novillo  <dnovillo@google.com>
14581
14582         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
14583         * c-pch.c: Include timevar.h.
14584         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
14585         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
14586         * ggc-common.c: Include timevar.h.
14587         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
14588         * timevar.def (TV_PCH_SAVE): Define.
14589         (TV_PCH_CPP_SAVE): Define.
14590         (TV_PCH_PTR_REALLOC): Define.
14591         (TV_PCH_PTR_SORT): Define.
14592         (TV_PCH_RESTORE): Define.
14593         (TV_PCH_CPP_RESTORE): Define.
14594
14595 2010-04-13  Michael Matz  <matz@suse.de>
14596
14597         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
14598         into MINUS_EXPRs.
14599         (can_reassociate_p): New function.
14600         (break_up_subtract_bb, reassociate_bb): Use it.
14601
14602 2010-04-13  Richard Guenther  <rguenther@suse.de>
14603
14604         PR bootstrap/43737
14605         * builtins.c (c_readstr): Fix assert.
14606
14607 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
14608
14609         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
14610         when generating cltd insn.
14611
14612         (*ashl<mode>3_1): Remove special handling for register operand 2.
14613         (*ashlsi3_1_zext): Ditto.
14614         (*ashlhi3_1): Ditto.
14615         (*ashlhi3_1_lea): Ditto.
14616         (*ashlqi3_1): Ditto.
14617         (*ashlqi3_1_lea): Ditto.
14618         (*<shiftrt_insn><mode>3_1): Ditto.
14619         (*<shiftrt_insn>si3_1_zext): Ditto.
14620         (*<shiftrt_insn>qi3_1_slp): Ditto.
14621         (*<rotate_insn><mode>3_1): Ditto.
14622         (*<rotate_insn>si3_1_zext): Ditto.
14623         (*<rotate_insn>qi3_1_slp): Ditto.
14624
14625 2010-04-13  Richard Guenther  <rguenther@suse.de>
14626
14627         * tree-ssa-structalias.c (callused_id): Remove.
14628         (call_stmt_vars): New.
14629         (get_call_vi): Likewise.
14630         (lookup_call_use_vi): Likewise.
14631         (lookup_call_clobber_vi): Likewise.
14632         (get_call_use_vi): Likewise.
14633         (get_call_clobber_vi): Likewise.
14634         (make_transitive_closure_constraints): Likewise.
14635         (handle_const_call): Adjust to do per-call call-used handling.
14636         (handle_pure_call): Likewise.
14637         (find_what_var_points_to): Remove general callused handling.
14638         (init_base_vars): Likewise.
14639         (init_alias_vars): Initialize call_stmt_vars.
14640         (compute_points_to_sets): Process call-used and call-clobbered
14641         vars for call statements.
14642         (delete_points_to_sets): Free call_stmt_vars.
14643
14644 2010-04-13  Richard Guenther  <rguenther@suse.de>
14645
14646         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14647         Only add RW dependence for dependence distance zero.
14648         Adjust maximal vectorization factor according to dependences.
14649         Move alignment handling ...
14650         (vect_find_same_alignment_drs): ... here.  New function.
14651         (vect_analyze_data_ref_dependences): Adjust.
14652         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
14653         (vect_analyze_data_refs): Adjust minimal vectorization factor
14654         according to data references.
14655         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
14656         dependences before determining the vectorization factor.
14657         Analyze alignment after determining the vectorization factor.
14658         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
14659         dependences before alignment.
14660         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
14661         Adjust prototype.
14662         (vect_analyze_data_refs): Likewise.
14663         (MAX_VECTORIZATION_FACTOR): New define.
14664
14665 2010-04-13  Duncan Sands  <baldrick@free.fr>
14666
14667         * except.h (lang_eh_type_covers): Remove.
14668         * except.c (lang_eh_type_covers): Likewise.
14669
14670 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14671             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14672
14673         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
14674         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
14675         UNITS_PER_LONG where it is ABI relevant.
14676         (s390_return_addr_rtx): Likewise.
14677         (s390_back_chain_rtx): Likewise.
14678         (s390_frame_area): Likewise.
14679         (s390_frame_info): Likewise.
14680         (s390_initial_elimination_offset): Likewise.
14681         (save_gprs): Likewise.
14682         (s390_emit_prologue): Likewise.
14683         (s390_emit_epilogue): Likewise.
14684         (s390_function_arg_advance): Likewise.
14685         (s390_function_arg): Likewise.
14686         (s390_va_start): Likewise.
14687         (s390_gimplify_va_arg): Likewise.
14688         (s390_function_profiler): Likewise.
14689         (s390_optimize_prologue): Likewise.
14690         (s390_rtx_costs): Likewise.
14691         (s390_secondary_reload): Likewise.
14692         (s390_promote_function_mode): Likewise.
14693         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
14694         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
14695         registers available.
14696         (s390_unwind_word_mode): New function.
14697         (s390_function_value): Split 64 bit values into register pair if
14698         used as return value.
14699         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
14700         function call parameters.  Handle parallels.
14701         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
14702         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
14703         (DWARF_CIE_DATA_ALIGNMENT): New macro.
14704         (s390_expand_setmem): Remove unused variable src_addr.
14705         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
14706         deal with 64 bit registers.
14707         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
14708         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
14709         (UNITS_PER_LONG): New macro.
14710         * libjava/include/s390-signal.h: Define extended ucontext
14711         structure containing the upper halfs of the 64 bit registers.
14712
14713 2010-04-13  Simon Baldwin  <simonb@google.com>
14714
14715         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
14716
14717 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
14718
14719         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
14720         rvalue on the RHS if the LHS is of a non-renamable type.
14721         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
14722
14723 2010-04-13  Matthias Klose  <doko@ubuntu.com>
14724
14725         * gcc.c (cc1_options): Handle -iplugindir before processing
14726         the cc1 spec. Only add -iplugindir once.
14727         (cpp_unique_options): Add -iplugindir option if -fplugin* options
14728         found.
14729         * common.opt (iplugindir): Remove `Separate' property, initialize.
14730         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
14731         option.
14732         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
14733         (distclean): Remove plugin dir.
14734         * doc/invoke.texi: Document -iplugindir.
14735
14736 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
14737
14738         * doc/plugins.texi (Loading Plugins): Document short
14739         -fplugin=foo option.
14740         (Plugin API): Mention default_plugin_dir_name function.
14741
14742         * gcc.c (find_file_spec_function): Add new declaration.
14743         (static_spec_func): Use it for "find-file".
14744         (find_file_spec_function): Add new function.
14745         (cc1_options): Add -iplugindir option if -fplugin* options found.
14746
14747         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
14748
14749         * plugin.c (add_new_plugin): Updated comment, and handle short
14750         plugin name.
14751         (default_plugin_dir_name): Added new function.
14752
14753         * common.opt (iplugindir): New option to set the plugin directory.
14754
14755 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
14756
14757         * config/i386/i386.md (any_rotate): New code iterator.
14758         (rotate_insn): New code attribute.
14759         (rotate): Ditto.
14760         (SWIM124): New mode iterator.
14761         (<rotate_insn>ti3): New expander.
14762         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
14763         any_rotate code iterator.
14764         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
14765         using any_rotate code iterator and SWIM124 mode iterator.
14766         (ix86_rotlti3): New insn_and_split pattern.
14767         (ix86_rotrti3): Ditto.
14768         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
14769         ix86_rotl{di,ti}3 patterns.
14770         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
14771         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
14772         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
14773         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
14774         code iterator and SWI mode iterator.
14775         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
14776         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
14777         code iterator.
14778         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
14779         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
14780         (bswap rotatert splitter): Add splitter.
14781         (bswap splitter): Macroize splitter using any_rotate code iterator.
14782         Add insn predicate to split only for TARGET_USE_XCHGB or when
14783         optimizing function for size.
14784
14785 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
14786
14787         * config/pa/pa.c (emit_move_sequence): Remove use of
14788         deleted variable flag_argument_noalias.
14789
14790 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14791
14792         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
14793         configurations.
14794         Add to unsupported targets list.
14795         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
14796         sparc*-sun-solaris2.[567]* from target lists.
14797         * configure: Regenerate.
14798         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
14799         removal.
14800         Remove Solaris 7 patch references.
14801         (Specific, sparc-sun-solaris2.7): Removed.
14802         (sparc-sun-solaris2*): Update Solaris 7 example.
14803         (sparc64-*-solaris2*): Likewise.
14804
14805 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14806
14807         * config.build (alpha*-dec-osf4*): Remove.
14808         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
14809         of obsolete configurations.
14810         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
14811         support.
14812         * config/alpha/t-osf4: Renamed to ...
14813         * config/alpha/t-osf5: ... this.
14814         * config/alpha/osf.h: Renamed to ...
14815         * config/alpha/osf5.h: ... this.
14816         Merged old osf5.h contents.
14817         Update comments.
14818         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
14819         (EXTRA_SPECS): Removed.
14820         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
14821         reflect removal of Tru64 UNIX V4.0/V5.0 support.
14822         Document that.
14823
14824 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14825
14826         * doc/contrib.texi (Contributors, Rainer Orth): Update.
14827
14828 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
14829
14830         PR/43702
14831         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
14832         __thiscall convention.
14833
14834 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
14835
14836         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
14837         orig_base.
14838         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
14839
14840 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
14841
14842         * function.c (assign_parms_initialize_all): Add unused attribute
14843         to fntype.
14844
14845 2010-04-12  Richard Guenther  <rguenther@suse.de>
14846
14847         * gsstruct.def (GSS_CALL): New.
14848         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
14849         * gimple.h: Include tree-ssa-alias.h.
14850         (struct gimple_statement_call): New.
14851         (union gimple_statement_struct_d): Add gimple_call member.
14852         (gimple_call_reset_alias_info): Declare.
14853         (gimple_call_use_set): New function.
14854         (gimple_call_clobber_set): Likewise.
14855         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
14856         * gimple.c (gimple_call_reset_alias_info): New function.
14857         (gimple_build_call_1): Call it.
14858         * lto-streamer-in.c (input_gimple_stmt): Likewise.
14859         * tree-inline.c (remap_gimple_stmt): Likewise.
14860         (expand_call_inline): Remove callused handling.
14861         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
14862         * tree-dfa.c (dump_variable): Likewise.
14863         * tree-parloops.c (parallelize_loops): Likewise.
14864         * tree-ssa.c (init_tree_ssa): Likewise.
14865         (delete_tree_ssa): Likewise.
14866         * tree-flow-inline.h (is_call_used): Remove.
14867         * tree-flow.h (struct gimple_df): Remove callused member.
14868         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
14869         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
14870         (ref_maybe_used_by_call_p_1): Simplify.
14871         (call_may_clobber_ref_p_1): Likewise.
14872         * tree-ssa-structalias.c (compute_points_to_sets): Set
14873         the call stmt used and clobbered sets.
14874         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
14875         (find_tail_calls): Verify the tail call.
14876
14877 2010-04-12  Richard Guenther  <rguenther@suse.de>
14878
14879         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
14880         single-iteration always-inline inlining.
14881         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
14882         (cgraph_decide_inlining): Do not handle always-inline specially.
14883         (try_inline): Remove always-inline cycle detection special case.
14884         Do not recurse on always-inlines.
14885         (cgraph_early_inlining): Do not iterate if not optimizing.
14886         (cgraph_gate_early_inlining): remove.
14887         (pass_early_inline): Run unconditionally.
14888         (gate_cgraph_decide_inlining): New function.
14889         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
14890         not inlining or optimizing.
14891         (cgraph_decide_inlining_of_small_functions): Also consider
14892         always-inline functions.
14893         (cgraph_default_inline_p): Return true for nodes which should
14894         disregard inline limits.
14895         (estimate_function_body_sizes): Assume zero size and time for
14896         nodes which are marked as disregarding inline limits.
14897         (cgraph_decide_recursive_inlining): Do not perform recursive
14898         inlining on always-inline nodes.
14899
14900 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
14901
14902         PR bootstrap/43699
14903         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
14904         for exprs satisfying handled_component_p.
14905
14906 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
14907
14908         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
14909         non-constant aggregate elements.
14910
14911         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
14912         is a real initialization.
14913
14914 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
14915
14916         PR c/36774
14917         * c-decl.c (start_function): Move forward check for nested function.
14918
14919 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14920
14921         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
14922         * config/sh/sh.c: Include reload.h.
14923         (sh_legitimize_reload_address): New.
14924         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
14925         sh_legitimize_reload_address.
14926
14927 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14928
14929         * config/sh/sh.md (*movqi_pop): New insn pattern.
14930         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
14931
14932 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
14933
14934         * config/i386/i386.md (any_shiftrt): New code iterator.
14935         (shiftrt_insn): New code attribute.
14936         (shiftrt): Ditto.
14937         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
14938         using any_shiftrt code iterator.
14939         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
14940         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
14941         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
14942         pattern from corresponding peephole2 patterns.
14943         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
14944         using any_shiftrt code iterator.
14945         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
14946         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
14947         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
14948         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
14949         *{ashr,lshr}<mode>3_cmp_zext.
14950         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
14951
14952 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
14953
14954         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
14955         scratch register.
14956         (*lshr<mode>3_cconly): Ditto.
14957
14958 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
14959
14960         * config/i386/i386.md (lshr<mode>3): Macroize expander from
14961         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
14962         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
14963         pattern from *lshr{di,ti}3_1 and corresponding splitters using
14964         DWI mode iterator.
14965         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
14966         from corresponding peephole2 patterns.
14967         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
14968         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
14969         and *lshrdi3_1_rex64 using SWI mode iterator.
14970         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
14971         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
14972         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
14973         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
14974         and *lshrdi3_cmp_rex64 using SWI mode iterator.
14975         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
14976         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
14977         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
14978         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
14979         SWI mode iterator.
14980
14981 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
14982
14983         * config/i386/i386.md (ashr<mode>3): Macroize expander from
14984         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
14985         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
14986         pattern from *ashr{di,ti}3_1 and corresponding splitters using
14987         DWI mode iterator.
14988         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
14989         from corresponding peephole2 patterns.
14990         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
14991         (ashrsi3_cvt): Rename from ashrsi3_31.
14992         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
14993         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
14994         and x86_64_shift_adj_3 using SWI48 mode iterator.
14995         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
14996         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
14997         and *ashrdi3_1_rex64 using SWI mode iterator.
14998         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
14999         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
15000         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
15001         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
15002         and *ashrdi3_cmp_rex64 using SWI mode iterator.
15003         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
15004         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
15005         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
15006         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
15007         SWI mode iterator.
15008         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
15009         * config/i386/i386.c (ix86_split_ashr): Update for renamed
15010         x86_shift<mode>_adj_3 expanders.
15011
15012 2010-04-10  Wei Guozhi  <carrot@google.com>
15013
15014         PR target/42601
15015         * config/arm/arm.c (arm_pic_static_addr): New function.
15016         (legitimize_pic_address): Call arm_pic_static_addr when it detects
15017         a static symbol.
15018         (arm_output_addr_const_extra): Output expression for new pattern.
15019         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
15020
15021 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
15022
15023         * ira-costs.c (record_reg_classes): Ignore alternatives that are
15024         not enabled.
15025
15026         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
15027         * web.c: Include "insn-config.h" and "recog.h".
15028         (union_match_dups): New function.
15029         (web_main): Call it.
15030         (union_defs): Don't try to recognize match_dups.
15031
15032         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
15033         if doing so would replace the entire pattern.
15034
15035 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
15036
15037         PR target/43707
15038         PR target/43709
15039         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
15040         and splitter pattern.  Change splitter operand 1 predicate to
15041         nonmemory_operand.
15042
15043 2010-04-09  Martin Jambor  <mjambor@suse.cz>
15044
15045         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
15046         lattices are addresses of CONST_DECLs with the same initial value.
15047         (ipcp_print_all_lattices): Print values of CONST_DECLs.
15048         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
15049
15050 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
15051             Bernd Schmidt  <bernds@codesourcery.com>
15052
15053         * loop-invariant.c (replace_uses): New static function.
15054         (move_invariant_reg): Use it to ensure we can replace the uses.
15055
15056 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
15057
15058         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
15059         function template.
15060         (picochip_override_options): Enable section anchors only above -O1.
15061         (picochip_reorg): Fixed a couple of build warnings.
15062
15063 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15064
15065         * configure.ac (plugin -rdynamic test): Log result.
15066         * configure: Regenerate.
15067         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
15068         (RDYNAMIC_SPEC): Define.
15069         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
15070
15071 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15072
15073         * configure.ac: Determine Sun ld version numbers.
15074         (comdat_group): Restrict GNU ld version checks to gld.
15075         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
15076         (enable_comdat): Support --enable-comdat.
15077         * configure: Regenerate.
15078         * doc/install.texi (Configuration): Document --enable-comdat.
15079
15080 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15081
15082         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
15083         * config/sol2-gld.h: ... here.
15084         * config.gcc (sparc*-*-solaris2*): Reflect this.
15085         (i[34567]86-*-solaris2*): Use it.
15086
15087 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
15088
15089         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
15090         setup_clocks_p.
15091         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
15092
15093 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15094
15095         PR 42965
15096         * diagnostic.c (diagnostic_initialize): Initialize
15097         some_warnings_are_errors.
15098         (diagnostic_finish): New.
15099         (diagnostic_action_after_output): Call it before exiting.
15100         (diagnostic_report_diagnostic): Do not print message here. Set
15101         some_warnings_are_errors.
15102         * diagnostic.h (diagnostic_context): Delete
15103         issue_warnings_are_errors_message. Add some_warnings_are_errors.
15104         (diagnostic_finish): Declare.
15105         * toplev.c (toplev_main): Call it before exit.
15106
15107 2010-04-09  Jason Merrill  <jason@redhat.com>
15108
15109         PR c++/42623
15110         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
15111         for incomplete type.
15112
15113         PR c++/41788
15114         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
15115         based on a warning flag.
15116
15117 2010-04-09  Richard Guenther  <rguenther@suse.de>
15118
15119         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
15120
15121 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
15122
15123         PR bootstrap/43684
15124         * varasm.c (default_assemble_visibility): Wrap vars that are
15125         set, but unused, by targets without GAS.
15126         * config/rs6000/rs6000.c (paired_emit_vector_compare):
15127         Remove set, but unused, vars.
15128         (rs6000_legitimize_tls_address): Likewise.
15129         (altivec_expand_dst_builtin): Likewise.
15130         * config/darwin.c (machopic_classify_symbol): Likewise.
15131         (machopic_indirection_name): Likewise.
15132
15133 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
15134
15135         * config/i386/i386.md (DWI): New mode iterator.
15136         (S): New mode attribute.
15137         (shift_operand): Ditto.
15138         (shift_immediate_operand): Ditto.
15139         (ashl_input_operand): Ditto.
15140         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
15141         using SDWIM mode iterator.
15142         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
15143         pattern from *ashl{di,ti}3_1 and corresponding splitters using
15144         DWI mode iterator.
15145         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
15146         from corresponding peephole2 patterns.
15147         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
15148         and x86_64_shift_adj_1 using SWI48 mode iterator.
15149         (x86_shift<mode>_adj_2): Ditto.
15150         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
15151         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
15152         using SWI48 mode iterator.
15153         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
15154         *ashldi3_cmp_rex64 using SWI mode iterator.
15155         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
15156         *ashldi3_cconly_rex64 using SWI mode iterator.
15157         * config/i386/i386.c (ix86_split_ashl): Update for renamed
15158         x86_shift<mode>_adj_{1,2}.
15159         (ix86_split_ashr): Ditto.
15160         (ix86_split_lshr): Ditto.
15161
15162 2010-04-09  Richard Guenther  <rguenther@suse.de>
15163
15164         * target.h (builtin_conversion): Pass in input and output types.
15165         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
15166         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
15167         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
15168         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
15169
15170         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
15171         Handle AVX modes.
15172         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
15173
15174 2010-04-09  Richard Guenther  <rguenther@suse.de>
15175
15176         PR target/43152
15177         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
15178
15179 2010-04-09  Richard Guenther  <rguenther@suse.de>
15180
15181         * tree-vectorizer.h (struct _stmt_vec_info): Document
15182         that vectype is the type of the LHS.
15183         (supportable_widening_operation, supportable_narrowing_operation):
15184         Get both input and output vector types as arguments.
15185         (vect_is_simple_use_1): Declare.
15186         (get_same_sized_vectype): Likewise.
15187         * tree-vect-loop.c (vect_determine_vectorization_factor):
15188         Set STMT_VINFO_VECTYPE to the vector type of the def.
15189         (vectorizable_reduction): Adjust.
15190         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
15191         Adjust.  Specify the output vector type.
15192         (vect_pattern_recog_1): Adjust.
15193         * tree-vect-stmts.c (get_same_sized_vectype): New function.
15194         (vectorizable_call): Adjust.
15195         (vectorizable_conversion): Likewise.
15196         (vectorizable_operation): Likewise.
15197         (vectorizable_type_demotion): Likewise.
15198         (vectorizable_type_promotion): Likewise.
15199         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
15200         the def.
15201         (vect_is_simple_use_1): New function.
15202         (supportable_widening_operation): Get both input and output
15203         vector types.
15204         (supportable_narrowing_operation): Likewise.
15205         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
15206
15207 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
15208
15209         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
15210         __thiscall and _thiscall as predefined macros.
15211         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
15212         thiscall attribute handling.
15213         (ix86_comp_type_attributes): Likewise.
15214         (ix86_function_regparm): Likewise.
15215         (ix86_return_pops_args): Likewise.
15216         (init_cumulative_args): Likewise.
15217         (find_drap_reg): Likewise.
15218         (ix86_static_chain): Likewise.
15219         (x86_this_parameter): Likewise.
15220         (x86_output_mi_thunk): Likewise.
15221         (ix86_attribute_table): Add description for thiscall attribute.
15222         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
15223         * doc/extend.texi: Add documentation for thiscall.
15224
15225 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15226
15227         PR c++/28584
15228         * c.opt (Wint-to-pointer-cast): Available in C++.
15229         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
15230
15231 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
15232
15233         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
15234         * calls.c (expand_call): Pass the function type to aggregate_value_p.
15235         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
15236         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
15237         function type instead.  Reorder and simplify checks.
15238
15239         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
15240
15241 2010-04-08  Jing Yu  <jingyu@google.com>
15242             Zdenek Dvorak  <ook@ucw.cz>
15243
15244         PR tree-optimization/42720
15245         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
15246         loop unswitch conditions here from ...
15247         (tree_unswitch_single_loop): ... here.
15248
15249 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
15250
15251         * tree-if-conv.c: Fix comments and simplify logic.
15252
15253 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
15254
15255         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
15256         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
15257         (main_tree_if_conversion): Update call to tree_if_conversion.
15258
15259 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15260
15261         PR 42485
15262         * doc/invoke.texi (-b,-V): Delete.
15263         * doc/tm.texi: Do not mention -b.
15264         * gcc.c (display_help): Delete -b and -V.
15265         (process_command): Delete -b and -V.
15266         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
15267
15268 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
15269             Wolfgang Gellerich  <gellerich@de.ibm.com>
15270
15271         Implement target hook for loop unrolling
15272         * target.h (loop_unroll_adjust): Add a new target hook function.
15273         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
15274         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
15275         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
15276         (s390_loop_unroll_adjust): Implement the new target hook for s390.
15277         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
15278         target hook.
15279         (decide_unroll_stupid): Likewise.
15280
15281 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15282
15283         PR target/43643
15284         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
15285
15286 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15287
15288         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
15289         (Specific, *-*-solaris2*): Likewise.
15290         Don't prefer Sun as over GNU as.
15291
15292 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
15293
15294         * config/s390/s390.c (override_options): Adjust the z10 defaults
15295         for max-unroll-times, max-completely-peeled-insns
15296         and max-completely-peel-times.
15297
15298 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15299
15300         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
15301         instructions for z10.
15302         (s390_expand_setmem): Likewise.
15303         (s390_expand_cmpmem): Likewise.
15304
15305 2010-04-08  Richard Guenther  <rguenther@suse.de>
15306
15307         PR tree-optimization/43679
15308         * tree-ssa-pre.c (eliminate): Only propagate copies.
15309
15310 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
15311
15312         PR bootstrap/43681
15313         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
15314         set but not used variable warning.
15315
15316 2010-04-08  Wei Guozhi  <carrot@google.com>
15317
15318         PR target/41653
15319         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
15320         (arm_size_rtx_costs): Call the new function when optimized for size.
15321
15322 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
15323
15324         PR debug/43670
15325         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
15326         op0 is not a MEM, just return NULL instead of assertion
15327         failure.
15328         (discover_nonconstant_array_refs): Don't walk debug stmts.
15329
15330 2010-04-08  Doug Kwan  <dougkwan@google.com>
15331
15332         * configure.ac: Recognize gold and do not use its version number
15333         to test ld features.
15334         * configure: Regenerate.
15335
15336 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
15337
15338         PR middle-end/40815
15339         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
15340         (negate_value): Move code to push elements to broken_up_substracts ...
15341         (eliminate_plus_minus_pair): ... here.  Push operands that have no
15342         negative pair to plus_negates.
15343         (repropagate_negates, init_reassoc, fini_reassoc): Update.
15344
15345 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15346
15347         * doc/install.texi (Configuration): Move description of
15348         --enable-lto, --with-libelf*, --enable-gold from Java section to
15349         general section.
15350
15351         * doc/generic.texi (Working with declarations)
15352         (Function Properties, C and C++ Trees): Fix typos.
15353         * doc/sourcebuild.texi (Top Level): Likewise.
15354
15355 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
15356
15357         PR c/18624
15358         * tree.h (DECL_READ_P): Define.
15359         (struct tree_decl_common): Add decl_read_flag.
15360         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
15361         a set but not used warning.
15362         (merge_decls): Merge DECL_READ_P flag.
15363         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
15364         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
15365         * c-common.c (handle_used_attribute, handle_unused_attribute):
15366         Likewise.
15367         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
15368         New prototypes.
15369         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
15370         New functions.
15371         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
15372         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
15373         c_parser_binary_expression, c_parser_cast_expression,
15374         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
15375         Call default_function_array_read_conversion instead of
15376         default_function_array_conversion where needed.
15377         (c_parser_unary_expression, c_parser_conditional_expression,
15378         c_parser_postfix_expression_after_primary, c_parser_initelt):
15379         Likewise.  Call mark_exp_read where needed.
15380         (c_parser_statement_after_labels, c_parser_asm_operands,
15381         c_parser_typeof_specifier, c_parser_sizeof_expression,
15382         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
15383         where needed.
15384         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
15385         New.
15386         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
15387         (warn_unused_but_set_parameter): Default to warn_unused
15388         && extra_warnings.
15389         * doc/invoke.texi: Document -Wunused-but-set-variable and
15390         -Wunused-but-set-parameter.
15391
15392         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
15393         used count variable.
15394         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
15395         when operandN variables aren't used in the body of the expander
15396         or splitter.
15397         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
15398         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
15399         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
15400         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
15401         FOR_EACH_IMM_USE_ON_STMT): Likewise.
15402         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
15403         * tree.c (PROCESS_ARG): Likewise.
15404
15405 2010-04-07  Simon Baldwin  <simonb@google.com>
15406
15407         * diagnostic.h (diagnostic_override_option_index): New macro to
15408         set a diagnostic's option_index.
15409         * c-tree.h (c_cpp_error): Add warning reason argument.
15410         * opts.c (_warning_as_error_callback): New.
15411         (register_warning_as_error_callback): Store callback for
15412         warnings enabled via enable_warning_as_error.
15413         (enable_warning_as_error): Call callback, minor code tidy.
15414         * opts.h (register_warning_as_error_callback): Declare.
15415         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
15416         response to -Werror=.
15417         (c_common_init_options): Register warning_as_error_callback in opts.c.
15418         * common.opt: Add -Wno-cpp option.
15419         * c-common.c (struct reason_option_codes_t): Map cpp warning
15420         reason codes to gcc option indexes.
15421         * (c_option_controlling_cpp_error): New function, lookup the gcc
15422         option index for a cpp warning reason code.
15423         * (c_cpp_error): Add warning reason argument, call
15424         c_option_controlling_cpp_error for diagnostic_override_option_index.
15425         * doc/invoke.texi: Document -Wno-cpp.
15426
15427 2010-04-07  Richard Guenther  <rguenther@suse.de>
15428
15429         * ipa-reference.c (mark_load): Use get_base_address.
15430         (mark_store): Likewise.
15431
15432         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
15433         inserting GIMPLE_NOPs into the IL.
15434         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15435         Explicitly strip handled components and indirect references.
15436
15437         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
15438         folding address expressions.
15439         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
15440         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
15441         operand_equal_p to compare decls.
15442         (ptr_deref_may_alias_decl_p): Likewise.
15443         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
15444         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
15445         Handle reversed comparison ops.
15446         * tree-sra.c (asm_visit_addr): Use get_base_address.
15447         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
15448         * ipa-reference.c (mark_address): Use get_base_address.
15449
15450 2010-04-07  Richard Guenther  <rguenther@suse.de>
15451
15452         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
15453         Propagate constants everywhere.
15454
15455 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
15456
15457         PR debug/43516
15458         * tree.c (MAX_INT_CACHED_PREC): Define.
15459         (nonstandard_integer_type_cache): New array.
15460         (build_nonstandard_integer_type): Cache results for precision
15461         <= MAX_INT_CACHED_PREC.
15462
15463 2010-04-07  Richard Guenther  <rguenther@suse.de>
15464
15465         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
15466         -fargument-noalias-global, -fargument-noalias-anything): Remove.
15467         * common.opt: Likewise.
15468         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
15469         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
15470         (nonoverlapping_memrefs_p): Likewise.
15471         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15472         * opts.c (common_handle_option): Handle OPT_fargument_alias,
15473         OPT_fargument_noalias, OPT_fargument_noalias_anything and
15474         OPT_fargument_noalias_global for backward compatibility.
15475
15476 2010-04-07  Richard Guenther  <rguenther@suse.de>
15477
15478         PR tree-optimization/43270
15479         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
15480         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
15481         * tree-ssa-pre.c (phi_translate_1): Adjust.
15482         (fully_constant_expression): Split out vn_reference handling to ...
15483         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
15484         Fold reads from constant strings.
15485         (vn_reference_lookup): Handle fully constant references.
15486         (vn_reference_lookup_pieces): Likewise.
15487         * Makefile.in (expmed.o-warn): Add -Wno-error.
15488
15489 2010-04-07  Martin Jambor  <mjambor@suse.cz>
15490
15491         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
15492
15493 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
15494
15495         PR driver/41594
15496         * gcc.c: Add -static-libstdc++ to list of recognized options.
15497
15498 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15499
15500         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
15501
15502 2010-04-07  Richard Guenther  <rguenther@suse.de>
15503
15504         PR middle-end/42617
15505         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
15506         bases build simple mem attributes to retain points-to information.
15507
15508 2010-04-07  Richard Guenther  <rguenther@suse.de>
15509
15510         PR middle-end/42617
15511         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
15512         preserve points-to related information.
15513
15514 2010-04-07  Richard Guenther  <rguenther@suse.de>
15515
15516         PR middle-end/42617
15517         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
15518         discard plain indirect references.
15519         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
15520         * tree.c (tree_nop_conversion): Likewise.
15521
15522 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
15523
15524         PR debug/43628
15525         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
15526
15527 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
15528
15529         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
15530         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
15531
15532 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
15533
15534         * tree-if-conv.c: Fix indentation and comments.
15535
15536 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
15537
15538         * tree-if-conv.c: Sort static functions in topological order.
15539
15540 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
15541
15542         * tree-if-conv.c: Fix indentation and comments.
15543
15544 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15545
15546         PR middle-end/43519
15547         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
15548         lang_hooks.types.type_for_size instead of
15549         build_nonstandard_integer_type.
15550         When converting an unsigned type to signed, double its precision.
15551         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
15552         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
15553         (graphite_create_new_loop_guard): When ub + 1 wraps around,
15554         use lb <= ub.
15555
15556 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15557
15558         PR middle-end/43519
15559         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
15560         POINTER_PLUS_EXPR for pointer types.
15561
15562 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15563
15564         PR middle-end/43519
15565         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
15566         * graphite-clast-to-gimple.c: Include langhooks.h.
15567         (max_signed_precision_type): New.
15568         (max_precision_type): Takes two types as arguments.
15569         (precision_for_value): New.
15570         (precision_for_interval): New.
15571         (gcc_type_for_interval): New.
15572         (gcc_type_for_value): New.
15573         (gcc_type_for_clast_term): New.
15574         (gcc_type_for_clast_red): New.
15575         (gcc_type_for_clast_bin): New.
15576         (gcc_type_for_clast_expr): Split up into several functions.
15577         (gcc_type_for_clast_eq): Rewritten.
15578         (compute_bounds_for_level): New.
15579         (compute_type_for_level_1): New.
15580         (compute_type_for_level): New.
15581         (gcc_type_for_cloog_iv): Removed.
15582         (gcc_type_for_iv_of_clast_loop): Rewritten.
15583         (graphite_create_new_loop): Compute the lower and upper bound types
15584         with gcc_type_for_clast_expr.
15585         (graphite_create_new_loop_guard): Same.
15586         (find_cloog_iv_in_expr): Removed.
15587         (compute_cloog_iv_types_1): Removed.
15588         (compute_cloog_iv_types): Removed.
15589         (gloog): Do not call compute_cloog_iv_types.
15590         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
15591         GBB_CLOOG_IV_TYPES.
15592         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
15593         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
15594         (GBB_CLOOG_IV_TYPES): Removed.
15595
15596 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15597
15598         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
15599         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
15600         (detect_commutative_reduction): Same.
15601
15602 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15603
15604         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
15605         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
15606         argument.
15607         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
15608         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
15609         (rewrite_commutative_reductions_out_of_ssa): Same.
15610         * passes.c (execute_function_todo): Call verify_ssa for every pass
15611         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
15612         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
15613         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
15614         with an extra argument.
15615         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
15616         verify_ssa only when the extra argument is true.
15617         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
15618         with an extra argument.
15619         (tree_transform_and_unroll_loop): Same.
15620
15621 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
15622
15623         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
15624         for all the passes of the LNO having LOOP_CLOSED_SSA.
15625         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
15626         * tree-loop-distribution.c (pass_loop_distribution): Same.
15627         * tree-pass.h (TODO_verify_loops): Removed.
15628         * tree-ssa-loop.c (pass_tree_loop_init): Same.
15629         (pass_lim): Same.
15630         (pass_tree_unswitch): Same.
15631         (pass_predcom): Same.
15632         (pass_vectorize): Same.
15633         (pass_linear_transform): Same.
15634         (pass_graphite_transforms): Same.
15635         (pass_iv_canon): Same.
15636         (pass_complete_unroll): Same.
15637         (pass_complete_unrolli): Same.
15638         (pass_parallelize_loops): Same.
15639         (pass_loop_prefetch): Same.
15640         (pass_iv_optimize): Same.
15641
15642 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
15643
15644         PR middle-end/32824
15645         * passes.c (init_optimization_passes): Move pass_lim before
15646         pass_copy_prop and pass_dce_loop.
15647
15648 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
15649
15650         PR target/43667
15651         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
15652         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
15653         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
15654         MULTI_* defines for 4 argument vpermil2p* builtins.
15655
15656 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
15657
15658         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
15659         * config/i386/i386.c (x86_maybe_negate_const_int): New.
15660         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
15661         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
15662         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
15663         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
15664         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
15665         Use x86_maybe_negate_const_int to output insn mnemonic.
15666         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
15667         check from instruction predicate.  Update comments.
15668         * config/i386/sync.md (sync_add<mode>): Use
15669         x86_maybe_negate_const_int to output insn mnemonic.
15670
15671 2010-04-06  Jan Hubicka  <jh@suse.cz>
15672
15673         PR tree-optimization/42906
15674         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
15675         IGNORE_SELF argument.  Set visited_control_parents for fully
15676         processed BBs.
15677         (find_obviously_necessary_stmts): Update call of
15678         mark_control_dependent_edges_necessary.
15679         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
15680
15681 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
15682
15683         * config/i386/i386.md: Remove comment about 'e' and 'E'
15684         operand modifier.
15685
15686 2010-04-06  Richard Guenther  <rguenther@suse.de>
15687
15688         PR tree-optimization/43627
15689         * tree-vrp.c (extract_range_from_unary_expr): Widenings
15690         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
15691         not varying.
15692
15693 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
15694
15695         * BASE-VER: Change to 4.6.0.
15696
15697         PR target/43638
15698         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
15699         handling.
15700
15701 2010-04-06  Richard Guenther  <rguenther@suse.de>
15702
15703         PR middle-end/43661
15704         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
15705
15706 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15707
15708         * doc/invoke.texi (Optimize Options): Document that LTO
15709         won't remove object access purely due to incompatible
15710         declarations.
15711
15712 2010-04-04  Matthias Klose  <doko@ubuntu.com>
15713
15714         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
15715         Initialize variable.
15716
15717 2010-04-03  Richard Guenther  <rguenther@suse.de>
15718
15719         PR middle-end/42509
15720         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
15721         require a non-NULL MEM_OFFSET.
15722
15723 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
15724
15725         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
15726         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
15727         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
15728         config/alpha/predicates.md, config/arm/arm.md,
15729         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
15730         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
15731         config/darwin9.h, config/darwin.c, config/darwin.h,
15732         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
15733         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
15734         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
15735         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
15736         config/mips/mips.md, config/mn10300/mn10300.c,
15737         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
15738         config/rs6000/aix.h, config/rs6000/dfp.md,
15739         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
15740         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
15741         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
15742         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
15743         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
15744         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
15745         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
15746         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
15747         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
15748         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
15749         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
15750         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
15751         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
15752         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
15753         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
15754         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
15755         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
15756         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
15757         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
15758         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
15759         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
15760         opt-functions.awk, opth-gen.awk, params.def, passes.c,
15761         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
15762         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
15763         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
15764         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
15765         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
15766         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
15767         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
15768         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
15769         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
15770         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
15771         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
15772         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
15773         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
15774         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
15775
15776 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15777
15778         PR other/43620
15779         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
15780         * aclocal.m4: Regenerate.
15781
15782 2010-04-02  Richard Guenther  <rguenther@suse.de>
15783
15784         PR tree-optimization/43629
15785         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
15786         if we have seen a constant value.
15787
15788 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
15789
15790         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
15791
15792 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
15793
15794         PR target/43469
15795         * arm.c (legitimize_tls_address): Adjust call to
15796         gen_tls_load_dot_plus_four.
15797         (arm_note_pic_base): New function.
15798         (arm_cannot_copy_insn_p): Use it.
15799         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
15800         constraint.
15801
15802 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15803
15804         PR bootstrap/43531
15805
15806         Revert:
15807         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15808
15809         * Makefile.in ($(out_object_file)): Depend on
15810         gt-$(basename $(notdir $(out_file))).h.
15811
15812 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
15813
15814         * config.gcc (lm32-*-rtems*): Add t-lm32.
15815
15816 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
15817
15818         * config.gcc: Add lm32-*-rtems*.
15819         * config/lm32/rtems.h: New file.
15820
15821 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
15822
15823         PR target/42609
15824         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
15825
15826 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
15827
15828         * dwarf2out.c (output_compilation_unit_header): For
15829         -gdwarf-4 use version 4 instead of version 3.
15830         (output_line_info): For version 4 and above emit additional
15831         maximum ops per insn header field.
15832         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
15833
15834         * dwarf2out.c (is_c_family, is_java): Remove.
15835         (lower_bound_default): New function.
15836         (add_bound_info, gen_descr_array_type_die): Use it.
15837
15838 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
15839
15840         PR debug/43325
15841         * dwarf2out.c (gen_variable_die): Allow debug info for variable
15842         re-declaration when it happens in a function.
15843
15844 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
15845
15846         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
15847         (cgraph_remove_function_insertion_hook): Same.
15848         (cgraph_call_function_insertion_hooks): Same.
15849
15850 2010-04-01  Richard Guenther  <rguenther@suse.de>
15851
15852         PR middle-end/43614
15853         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
15854         and TREE_THIS_VOLATILE.
15855         (copy_ref_info): Likewise.
15856         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
15857         * tree.c (build6_stat): Ignore side-effects of all but arg5
15858         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
15859         TARGET_MEM_REF.
15860
15861 2010-04-01  Richard Guenther  <rguenther@suse.de>
15862
15863         PR tree-optimization/43607
15864         * ipa-type-escape.c (check_call): Do not access non-existing
15865         arguments.
15866
15867 2010-04-01  Richard Guenther  <rguenther@suse.de>
15868
15869         PR middle-end/43602
15870         Revert
15871         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
15872                     Jack Howarth  <howarth@bromo.med.uc.edu>
15873
15874         * tree-profile.c (tree_init_ic_make_global_vars): Make static
15875         variables TLS.
15876
15877 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15878
15879         * doc/install.texi (Prerequisites): Document libelf usability on
15880         IRIX 5/6 and Solaris 2.
15881         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
15882         Update GNU as, GNU ld requirements.
15883         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
15884         Document Sun Studio compiler download.
15885         Update and simplify as, ld recommendations.
15886         (Specific, *-*-solaris2.7): Note obsoletion, removal.
15887
15888 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15889
15890         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
15891         with_tune_32 to pentium4.
15892
15893 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
15894
15895         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
15896
15897 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15898
15899         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
15900         obsoletion, removal.
15901         Update IDO URL.
15902         Document GNU as requirement.
15903         Update configure requirements.
15904         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
15905         Recomment IRIX 6.5.18+.
15906         Document IDF/IDL requirement.
15907         Document GNU as requirement.
15908         Document GNU ld bootstrap failure.
15909         Remove freeware.sgi.com reference.
15910
15911 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15912
15913         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
15914         UNIX V4.0, V5.0 obsoletion, removal.
15915         Remove --with-gc=simple reference.
15916         Update VM requirements during bootstrap.
15917         Remove -oldas bootstrap description.
15918         Update binutils reference.
15919         Remove comparison failure note.
15920
15921 2010-03-31  Richard Guenther  <rguenther@suse.de>
15922             Zdenek Dvorak  <ook@ucw.cz>
15923             Sebastian Pop  <sebastian.pop@amd.com>
15924
15925         PR middle-end/43464
15926         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
15927         with multiple arguments.
15928         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
15929
15930 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
15931
15932         * graphite-dependences.c (print_pddr): Call print_pdr with an
15933         extra argument.
15934         * graphite-poly.c (debug_pdr): Add an extra argument for the
15935         verbosity level.
15936         (print_pdr): Same.
15937         (print_pbb_domain): Same.
15938         (print_pbb): Same.
15939         (print_scop_context): Same.
15940         (print_scop): Same.
15941         (print_cloog): Same.
15942         (debug_pbb_domain): Same.
15943         (debug_pbb): Same.
15944         (print_pdrs): Same.
15945         (debug_pdrs): Same.
15946         (debug_scop_context): Same.
15947         (debug_scop): Same.
15948         (debug_cloog): Same.
15949         (print_scop_params): Same.
15950         (debug_scop_params): Same.
15951         (print_iteration_domain): Same.
15952         (print_iteration_domains): Same.
15953         (debug_iteration_domain): Same.
15954         (debug_iteration_domains): Same.
15955         (print_scattering_function): Same.
15956         (print_scattering_functions): Same.
15957         (debug_scattering_function): Same.
15958         (debug_scattering_functions): Same.
15959         * graphite-poly.h (debug_pdr): Update declaration.
15960         (print_pdr): Same.
15961         (print_pbb_domain): Same.
15962         (print_pbb): Same.
15963         (print_scop_context): Same.
15964         (print_scop): Same.
15965         (print_cloog): Same.
15966         (debug_pbb_domain): Same.
15967         (debug_pbb): Same.
15968         (print_pdrs): Same.
15969         (debug_pdrs): Same.
15970         (debug_scop_context): Same.
15971         (debug_scop): Same.
15972         (debug_cloog): Same.
15973         (print_scop_params): Same.
15974         (debug_scop_params): Same.
15975         (print_iteration_domain): Same.
15976         (print_iteration_domains): Same.
15977         (debug_iteration_domain): Same.
15978         (debug_iteration_domains): Same.
15979         (print_scattering_function): Same.
15980         (print_scattering_functions): Same.
15981         (debug_scattering_function): Same.
15982         (debug_scattering_functions): Same.
15983
15984 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
15985
15986         * graphite-poly.c (print_scattering_function_1): New.
15987         (print_scattering_function): Call it.
15988         (print_scop_params): Remove spaces at the end of lines.
15989         (print_cloog): New.
15990         (debug_cloog): New.
15991         * graphite-poly.h (print_cloog): Declared.
15992         (debug_cloog): Declared.
15993
15994 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
15995
15996         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
15997         in loop->header.
15998         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
15999         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
16000         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
16001         to switch between adding the IV bump in loop->latch or in loop->header.
16002
16003 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
16004
16005         * graphite-poly.c (print_scattering_function): Pretty print following
16006         the scoplib format.
16007         (print_pdr): Same.
16008         (print_pbb_domain): Same.
16009         (dump_gbb_cases): Same.
16010         (dump_gbb_conditions): Same.
16011         (print_pdrs): Same.
16012         (print_pbb): Same.
16013         (print_scop_params): Same.
16014         (print_scop_context): Same.
16015         (print_scop): Same.
16016         (print_pbb_body): New.
16017         (lst_indent_to): New.
16018         (print_lst): Start new lines with a #.
16019         * graphite-poly.h (pbb_bb): New.
16020         (pbb_index): Use pbb_bb.
16021         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
16022         disjuncts.
16023         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
16024
16025 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
16026
16027         * dwarf2out.c (size_of_die): For -gdwarf-4 use
16028         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
16029         and 0 instead of 1 for dw_val_class_flag.
16030         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
16031         dw_val_class_range_list, dw_val_class_loc_list,
16032         dw_val_class_lineptr and dw_val_class_macptr, use
16033         DW_FORM_flag_present for dw_val_class_flag and
16034         DW_FORM_exprloc for dw_val_class_loc.
16035         (output_die): For -gdwarf-4 print dw_val_class_loc
16036         size as uleb128 instead of 1 or 2 bytes and don't print
16037         anything for dw_val_class_flag.
16038
16039         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
16040         instead of cselib_lookup following by tweaking locs->setting_insn.
16041
16042         PR bootstrap/43596
16043         * cselib.c (cselib_process_insn): Clear cselib_current_insn
16044         even before returning from label, setjmp call or volatile asm
16045         handling.
16046
16047 2010-03-31  Richard Guenther  <rguenther@suse.de>
16048
16049         PR middle-end/43600
16050         * cgraphunit.c (cgraph_output_in_order): Do not allocate
16051         temporary data on stack.
16052
16053 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16054
16055         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
16056         (PUSHSECTION_ASM_OP): Remove.
16057         (POPSECTION_ASM_OP): Remove.
16058         (PUSHSECTION_FORMAT): Remove.
16059         * config/sol2.h (PUSHSECTION_FORMAT): Define.
16060         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
16061         * config/sol2.c (solaris_output_init_fini): Use it.
16062
16063 2010-03-31  Jie Zhang  <jie@codesourcery.com>
16064
16065         PR 43574
16066         * opt-functions.awk (var_type_struct): Use signed char type
16067         for simple variables.
16068
16069 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16070
16071         * config/sol2.c: Include output.h.
16072         (solaris_assemble_visibility): New function.
16073         * config/t-sol2 (sol2.o): Add output.h dependency.
16074         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
16075         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
16076         Redefine.
16077
16078 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
16079
16080         PR target/43580
16081         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
16082         V2SImode or XFmode on PRE_DEC.
16083
16084         PR debug/43557
16085         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
16086         BLKmode.
16087
16088 2010-03-31  Jie Zhang  <jie@codesourcery.com>
16089
16090         PR 43562
16091         * reload.h (caller_save_initialized_p): Declare.
16092         * toplev.c (backend_init_target): Don't call
16093         init_caller_save but set caller_save_initialized_p to false.
16094         * caller-save.c (caller_save_initialized_p): Define.
16095         (init_caller_save): Check caller_save_initialized_p.
16096         * ira.c (ira): Call init_caller_save if flag_caller_saves.
16097
16098 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16099
16100         PR target/39048
16101         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
16102         and soft-fp/t-softfp to tmake_file.
16103         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
16104         (LIBGCC2_TF_CEXT): Define.
16105         (TF_SIZE): Define.
16106
16107 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
16108
16109         PR debug/42977
16110         * cselib.c (n_useless_values): Document handling of debug locs.
16111         (n_useless_debug_values, n_debug_values): New variables.
16112         (new_elt_loc_list): Don't add to debug values, keep count.
16113         (promote_debug_loc): New.
16114         (cselib_reset_table): Zero new variables.
16115         (entry_and_rtx_equal_p): Promote debug locs.
16116         (discard_useless_locs): Increment n_useless_debug_values for
16117         debug values.
16118         (remove_useless_values): Adjust n_useless_values and n_debug_values
16119         with n_useless_debug_values.
16120         (add_mem_for_addr): Promote debug locs.
16121         (cselib_lookup_mem): Likewise.
16122         (cselib_lookup_addr): Renamed to...
16123         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
16124         (cselib_log_lookup): ... this.  Turn into...
16125         (cselib_lookup_addr): ... new wrapper.
16126         (cselib_lookup_from_insn): New.
16127         (cselib_invalidate_regno): Increment n_useless_debug_values for
16128         debug values.
16129         (cselib_invalidate_mem): Likewise.
16130         (cselib_process_insn): Take n_deleted and n_debug_values into
16131         account to guard remove_useless_value call.
16132         (cselib_finish): Zero n_useless_debug_values.
16133         * cselib.h (cselib_lookup_from_insn): Declare.
16134         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
16135         (sched_analyze_2): Likewise.
16136
16137 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
16138
16139         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
16140         functions.
16141         (adjust_mems): Replace narrowing SUBREG of expression containing
16142         just PLUS, MINUS, MULT and ASHIFT of registers and constants
16143         with operations in the narrower mode.
16144
16145         PR debug/43593
16146         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
16147         regs_invalidated_by_call instead all call_used_reg_set registers.
16148
16149 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
16150
16151         PR middle-end/43430
16152         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
16153         pointer comparisons with types_compatible_p.
16154         * tree-vect-stmts.c (vectorizable_call): Same.
16155         (vectorizable_condition): Same.
16156
16157 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16158
16159         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
16160         stack check if the mask would be zero.
16161
16162 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
16163             Jack Howarth  <howarth@bromo.med.uc.edu>
16164
16165         * tree-profile.c (tree_init_ic_make_global_vars): Make static
16166         variables TLS.
16167
16168 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
16169
16170         PR other/25232
16171         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
16172         and __unordtf2.
16173         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
16174         Include ___unordxf2 and ___unordtf2.
16175         * config/i386/libgcc-glibc.ver: Do not define inheritance from
16176         GCC_4.4.0 here.
16177
16178 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
16179
16180         * config/lm32/t-lm32: New file.
16181         * config.gcc: Use the above file when targetting lm32.
16182
16183 2010-03-28  Duncan Sands  <baldrick@free.fr>
16184
16185         * Makefile.in (PLUGIN_HEADERS): Add except.h.
16186
16187 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
16188
16189         PR middle-end/43431
16190         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
16191         Improve vectorization cost model diagnostic.
16192
16193 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
16194
16195         PR middle-end/43436
16196         * tree-vect-data-refs.c (vect_analyze_data_refs): When
16197         compute_data_dependences_for_loop returns false, early exit
16198         and output an extra diagnostic for the failed data reference
16199         analysis.
16200
16201 2010-03-29  Richard Guenther  <rguenther@suse.de>
16202
16203         PR tree-optimization/43560
16204         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
16205         (can_sm_ref_p): Treat stores to readonly locations as trapping.
16206
16207 2010-03-29  Jie Zhang  <jie@codesourcery.com>
16208
16209         PR 43564
16210         * toplev.c (process_options): Set optimization_default_node
16211         and optimization_current_node.
16212         * opts.c (decode_options): Don't set optimization_default_node
16213         and optimization_current_node.
16214
16215 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
16216
16217         * config/rtems.h: Abandon -qrtems_debug.
16218
16219 2010-03-28  Jan Hubicka  <jh@suse.cz>
16220
16221         PR tree-optimization/43505
16222         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
16223         map should not be copied.
16224
16225 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16226
16227         PR middle-end/41674
16228         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
16229         cdtors, set DECL_PRESERVE_P.
16230         * ipa.c (cgraph_externally_visible_p): Return true if declaration
16231         should be preseved.
16232
16233 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
16234
16235         PR tree-optimization/43528
16236         * stor-layout.c (place_field): Check that constant fits into
16237         unsigned HWI when skipping calculation of MS bitfield layout.
16238
16239 2010-03-27  Jan Hubicka  <jh@suse.cz>
16240
16241         PR middle-end/43391
16242         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
16243         notice_global_symbol work.
16244
16245 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
16246
16247         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
16248         instead of dwarf2out_decl.
16249         (struct var_loc_node): Remove section_label field.
16250         (dwarf2out_function_decl): New function.
16251         (dwarf2out_var_location): Don't set section_label field.
16252         (dwarf2out_begin_function): Don't empty decl_loc_table here.
16253
16254 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
16255
16256         PR tree-optimization/43544
16257         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
16258         First argument for builtin vectorized function hook is now a
16259         tree to be able to distinguish between machine specific and
16260         standard builtins.
16261         * targhooks.c (default_builtin_vectorized_function): Ditto.
16262         * targhooks.h (default_builtin_vectorized_function): Ditto.
16263         * target.h (struct gcc_target): Ditto.
16264         * tree-vect-stmts.c (vectorizable_function): Ditto.
16265         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
16266         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
16267         Ditto.
16268
16269 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
16270
16271         PR c/43381
16272         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
16273         nested binding iff it is a FUNCTION_DECL.
16274         (store_parm_decls_newstyle): Pass nested=true to bind for
16275         FUNCTION_DECLs amongst parameters.
16276
16277 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
16278
16279         * var-tracking.c (vt_expand_loc_callback): Don't run
16280         cselib_expand_value_rtx_cb in dummy mode if
16281         cselib_dummy_expand_value_rtx_cb returned false.
16282
16283         * var-tracking.c (emit_note_insn_var_location): For one part
16284         notes with offset 0, don't add EXPR_LIST around the location.
16285         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
16286         add_location_or_const_value_attribute): Adjust for that change.
16287
16288         PR debug/43540
16289         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
16290         into first operand and location into second.
16291         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
16292         dw_cfi_oprnd_loc for DW_CFA_expression.
16293         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
16294         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
16295         assume first argument is regnum and second argument is location.
16296
16297 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
16298
16299         PR target/42113
16300         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
16301         of scratch register to DImode.  Split to DImode comparison operator.
16302         Use SImode subreg of scratch register in the multiplication.
16303         (*cmp_sadd_sidi): Ditto.
16304         (*cmp_ssub_si): Ditto.
16305         (*cmp_ssub_sidi): Ditto.
16306
16307 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
16308
16309         PR target/43524
16310         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
16311         Remove invalid assert and wrong comment.
16312
16313 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
16314
16315         PR debug/43516
16316         * flags.h (final_insns_dump_p): New extern.
16317         * final.c (final_insns_dump_p): New variable.
16318         (rest_of_clean_state): Set it before -fdump-final-insns=
16319         dumping, clear afterwards.
16320         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
16321         MEM_ALIAS_SET on MEMs.
16322
16323 2010-03-26  David S. Miller  <davem@davemloft.net>
16324
16325         * configure.ac: Fix sparc GOTDATA_OP bug check.
16326         * configure: Rebuild.
16327
16328 2010-03-26  Alan Modra  <amodra@gmail.com>
16329
16330         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
16331
16332 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16333
16334         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
16335         TLS_SECTION_ASM_FLAG.
16336
16337 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
16338
16339         PR bootstrap/43511
16340         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
16341         Clear first_function_block_is_cold.
16342
16343         PR c/43385
16344         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
16345         argument if the argument is truth_value_p.
16346
16347 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
16348
16349         * config/rs6000/constraints.md: Update copyright year for my changes.
16350
16351         PR target/43484
16352         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
16353         used in reg+reg addressing, swap registers.
16354
16355 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
16356
16357         PR debug/43293
16358         * target.h (struct gcc_target): Add code_end hook.
16359         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
16360         if not yet defined.
16361         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
16362         * toplev.c (compile_file): Call targetm.asm_out.code_end
16363         hook before unwind info/debug info output.
16364         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
16365         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
16366         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
16367         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
16368         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
16369         * config/i386/i386.c (ix86_file_end): Renamed to...
16370         (ix86_code_end): ... this.  Make static.  Don't call
16371         file_end_indicate_exec_stack.  Emit unwind info using
16372         final_start_function/final_end_function.
16373         (darwin_x86_file_end): Remove.
16374         (TARGET_ASM_CODE_END): Define.
16375         * config/i386/i386.h (TARGET_ASM_FILE_END,
16376         NEED_INDICATE_EXEC_STACK): Don't define.
16377         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
16378         (TARGET_ASM_FILE_END): Define to darwin_file_end.
16379         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
16380         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
16381
16382         PR target/43498
16383         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
16384         at the beginning and final_end_function at the end.
16385         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
16386
16387 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16388
16389         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
16390         and Sun as TLS syntax.
16391         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
16392         * configure: Regenerate.
16393         * config.in: Regenerate.
16394         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
16395         (default_elf_asm_named_section): Use it.
16396         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
16397         (i386_output_dwarf_dtprel): Likewise.
16398         (output_addr_const_extra): Likewise.
16399         (output_pic_addr_const): Lowercase @GOTTPOFF.
16400         (output_addr_const_extra): Likewise.
16401         (output_pic_addr_const): Lowercase @GOTNTPOFF.
16402         (output_addr_const_extra): Likewise.
16403         (output_pic_addr_const): Lowercase @INDNTPOFF.
16404         (output_addr_const_extra): Likewise.
16405         (output_pic_addr_const): Lowercase @NTPOFF.
16406         (output_addr_const_extra): Likewise.
16407         (output_pic_addr_const): Lowercase @TPOFF.
16408         (output_addr_const_extra): Likewise.
16409         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
16410         (*tls_global_dynamic_64): Likewise.
16411         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
16412         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
16413
16414         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
16415         (ASM_OUTPUT_TLS_COMMON): Use it.
16416         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
16417
16418         PR target/38118
16419         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
16420         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
16421         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
16422         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
16423         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
16424         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
16425
16426 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16427
16428         * config/i386/i386.c (override_options): Don't accept
16429         -mtls-dialect=sun any longer.
16430         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
16431         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
16432         (*tls_local_dynamic_base_32_sun): Likewise.
16433         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
16434
16435 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
16436
16437         PR debug/43508
16438         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
16439         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
16440
16441         PR debug/43479
16442         * ira.c (adjust_cleared_regs): New function.
16443         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
16444
16445         PR debug/19192
16446         PR debug/43479
16447         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
16448         from gimple_block.
16449         * expr.c (expand_expr_real): Restore previous
16450         curr_insn_source_location and curr_insn_block after
16451         expand_expr_real_1 call.
16452         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
16453         instead of expand_expr_real_1.
16454
16455 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
16456
16457         PR rtl-optimization/43413
16458         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
16459         hard regs too.
16460
16461 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
16462
16463         PR target/43348
16464         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
16465         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
16466
16467 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
16468
16469         * config/i386/i386.c (ix86_target_string): Add -mfma.
16470         Fix a typo in comment.
16471
16472 2010-03-22  Mike Stump  <mikestump@comcast.net>
16473
16474         PR target/23071
16475         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
16476         Don't overly align based upon packed packed fields.
16477
16478 2010-03-22  Jason Merrill  <jason@redhat.com>
16479
16480         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
16481         Use () rather than [], and move before the element type.
16482
16483 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16484
16485         * doc/configfiles.texi (Configuration Files): Removed
16486         fixinc/Makefile*, intl/Makefile.*.
16487         * doc/makefile.texi: Fixed markup. Abstract from version
16488         control system used.
16489         (Makefile): Removed obsolete gcc/java/parse.y example.
16490         * doc/sourcebuild.texi: Likewise.
16491         (Top Level): Added config, gnattools, libdecnumber, libgcc,
16492         libgomp, libssp.  Removed fastjar.
16493         (Miscellaneous Docs): Clarify location.
16494         Added COPYING3, COPYING3.LIB.
16495         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
16496
16497 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16498
16499         PR target/38085
16500         * config/i386/i386.c (x86_function_profiler)
16501         [!NO_PROFILE_COUNTERS]: Fix typo.
16502         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
16503         instead of callq.
16504
16505 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
16506             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16507
16508         * doc/sourcebuild.texi (Test Directives): Split into six
16509         subsections, with most of the current text in new subsections
16510         Directives, Selectors, and Final Actions.
16511         (Directives): Split list of test directives into multiple
16512         subsubsections.
16513         (Selectors): Describe use and syntax of selectors.
16514         (Effective-Target Keywords): Describe all existing keywords.
16515         (Add Options): Describe features for dg-add-options.
16516         (Require Support): Describe variants of dg-require-support.
16517         (Final Actions): Describe commands to use in dg-final.
16518
16519 2010-03-22  Michael Matz  <matz@suse.de>
16520
16521         PR middle-end/43475
16522         * recog.c (validate_replace_rtx_group): Replace also in
16523         REG_EQUAL and REG_EQUIV notes.
16524
16525 2010-03-22  Richard Guenther  <rguenther@suse.de>
16526
16527         PR tree-optimization/43390
16528         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
16529         sure vector extracts are type correct.
16530
16531 2010-03-22  Richard Guenther  <rguenther@suse.de>
16532
16533         PR middle-end/40106
16534         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
16535         x * sqrt (x) even when optimizing for size if the target
16536         has native support for sqrt.
16537
16538 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
16539
16540         * varasm.c (make_decl_rtl_for_debug): Also clear
16541         flag_mudflap for the duration of make_decl_rtl call.
16542
16543         PR debug/43443
16544         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
16545         locs from preserved VALUEs.
16546
16547 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16548
16549         PR middle-end/42718
16550         * pa.md (movmemsi): Set align to one if zero.
16551         (movmemdi): Likewise.
16552
16553 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
16554
16555         PR target/42321
16556         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
16557         with their corresponding prologue pushes.
16558
16559 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
16560
16561         PR target/43156
16562         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
16563         at the begining or end.
16564         (spu_expand_epilogue): Likewise.
16565
16566 2010-03-20  Richard Guenther  <rguenther@suse.de>
16567
16568         PR rtl-optimization/43438
16569         * combine.c (make_extraction): Properly zero-/sign-extend an
16570         extraction of the low part of a CONST_INT.  Also handle
16571         CONST_DOUBLE.
16572
16573 2010-03-19  Mike Stump  <mikestump@comcast.net>
16574
16575         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
16576         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
16577         (override_options): Use SUBTARGET32_DEFAULT_CPU.
16578
16579 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
16580
16581         PR c/43211
16582         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
16583         an error.
16584
16585 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
16586
16587         PR rtl-optimization/42258
16588         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
16589         use that may match DEF.
16590
16591         PR target/40697
16592         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
16593         the cost of loading the constant rather than assuming
16594         COSTS_N_INSNS (1).
16595         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
16596         outer code is AND, do the same tests as the andsi3 expander and
16597         return COSTS_N_INSNS (1) if and is cheap.
16598
16599         * optabs.c (avoid_expensive_constant): Fix formatting.
16600
16601 2010-03-19  Michael Matz  <matz@suse.de>
16602
16603         PR c++/43116
16604         * attribs.c (decl_attributes): When rebuilding a function pointer
16605         type use the same qualifiers as the original pointer type.
16606
16607 2010-03-19  Martin Jambor  <mjambor@suse.cz>
16608
16609         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
16610         and is_gimple_ip_invariant_address.
16611
16612 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16613
16614         Revert
16615         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16616
16617         * config/arm/arm.c (arm_override_options): Turn off
16618         flag_dwarf2_cfi_asm for AAPCS variants.
16619
16620 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16621
16622         PR target/43399
16623         * config/arm/arm.c (emit_multi_reg_push): Update comments.
16624         Use PRE_MODIFY instead of PRE_DEC.
16625         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
16626         (vfp_emit_fstmd): Likewise.
16627
16628 2010-03-19  Michael Matz  <matz@suse.de>
16629
16630         PR target/43305
16631         * builtins.c (expand_builtin_interclass_mathfn,
16632         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
16633         if that fails.
16634
16635 2010-03-19  Richard Guenther  <rguenther@suse.de>
16636
16637         PR tree-optimization/43415
16638         * tree-ssa-pre.c (phi_translate): Split out worker to ...
16639         (phi_translate_1): ... this.
16640         (phi_translate): Move all caching here.  Cache all NARY
16641         and REFERENCE translations.
16642
16643 2010-03-19  David S. Miller  <davem@davemloft.net>
16644
16645         With help from Eric Botcazou.
16646         * config/sparc/sparc.c: Include dwarf2out.h.
16647         (emit_pic_helper): Delete.
16648         (pic_helper_symbol_name): Delete.
16649         (pic_helper_emitted_p): Delete.
16650         (pic_helper_needed): New.
16651         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
16652         (get_pc_thunk_name): New.
16653         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
16654         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
16655         Set pic_helper_needed to true.  Don't call emit_pic_helper.
16656         (sparc_expand_prologue): Update load_pic_register call.
16657         (sparc_output_mi_thunk): Likewise.
16658         (sparc_file_end): Emit a hidden comdat symbol for the PIC
16659         thunk if possible.  Output CFI information as needed.
16660
16661 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16662             Jack Howarth  <howarth@bromo.med.uc.edu>
16663
16664         PR target/36399
16665         * config/i386/i386.h: Fix ABI on darwin x86-32.
16666
16667 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
16668
16669         * tree.h: Declare make_decl_rtl_for_debug.
16670         * varasm.c (make_decl_rtl_for_debug): New.
16671         * dwarf2out.c (rtl_for_decl_location): Call it.
16672         * cfgexpand.c (expand_debug_expr): Call it.
16673
16674 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
16675
16676         PR bootstrap/43399
16677         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
16678         mem_mode.
16679
16680         PR bootstrap/43403
16681         * var-tracking.c (vt_init_cfa_base): Do nothing if
16682         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
16683
16684 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
16685
16686         PR debug/42873
16687         * var-tracking.c (canonicalize_vars_star): New.
16688         (dataflow_post_merge_adjust): Use it.
16689
16690 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
16691
16692         PR debug/43058
16693         * var-tracking.c (non_suitable_const): New function.
16694         (add_uses): For DEBUG_INSNs with constants, don't record any
16695         value, instead just the constant value itself.
16696         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
16697         is not VAR_LOC_UNKNOWN_P, set var to the constant.
16698         (emit_notes_in_bb): Likewise.
16699         (emit_note_insn_var_location): For onepart variables if
16700         cur_loc is a VOIDmode constant, use DECL_MODE.
16701
16702 2010-03-18  Martin Jambor  <mjambor@suse.cz>
16703
16704         PR middle-end/42450
16705         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
16706         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
16707         all non-clones.  Moved call redirection...
16708         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
16709         (cgraph_materialize_all_clones): Dispose of all
16710         combined_args_to_skip bitmaps.
16711         (verify_cgraph_node): Do not check for edges pointing to wrong
16712         nodes in inline clones.
16713         * tree-inline.c (copy_bb): Call
16714         cgraph_redirect_edge_call_stmt_to_callee.
16715         * ipa.c (cgraph_remove_unreachable_nodes): Call
16716         cgraph_node_remove_callees even when there are used clones.
16717
16718 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
16719
16720         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
16721
16722 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
16723
16724         PR target/43383
16725         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
16726         for 32bit.
16727
16728 2010-03-18  Michael Matz  <matz@suse.de>
16729
16730         PR middle-end/43419
16731         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
16732         into sqrt(x) if we need to preserve signed zeros.
16733
16734 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
16735             Eric Botcazou  <ebotcazou@adacore.com>
16736
16737         PR rtl-optimization/43360
16738         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
16739         note if we don't know its invariant status.
16740
16741 2010-03-18  Michael Matz  <matz@suse.de>
16742
16743         PR tree-optimization/43402
16744         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
16745         PHI chains of ssa names registered for update.
16746
16747 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
16748
16749         PR target/42427
16750         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
16751         non-offsettable and pre_modify update addressing.
16752         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
16753         and "2" alternatives "#".
16754         (*movdd_softfloat32): Make all alternatives "#";
16755         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
16756         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
16757         (*movdf_softfloat32): Make all alternatives "#";
16758         (movdi): Use the new DIFD mode iterator to create a common splitter
16759         for movdi, movdf and movdd patterns.
16760
16761 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
16762
16763         * common.opt (dumpdir): Remove redundant tab.
16764
16765 2010-03-17  Martin Jambor  <mjambor@suse.cz>
16766
16767         PR tree-optimization/43347
16768         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
16769         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
16770
16771 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
16772
16773         PR rtl-optimization/42216
16774         * regrename.c (create_new_chain): New function, broken out from...
16775         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
16776         appending a use to an empty chain.
16777         (build_def_use): Remove previous changes that convert OP_INOUT to
16778         OP_OUT operands; instead detect the case where an OP_INOUT operand
16779         uses a previously untracked register and create an empty chain for it.
16780
16781 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16782
16783         * doc/extend.texi (Function Attributes): Rewrite unfinished
16784         sentence in ms_abi documentation.
16785
16786 2010-03-17  Alan Modra  <amodra@gmail.com>
16787
16788         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
16789         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
16790         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
16791         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
16792
16793 2010-03-16  Richard Henderson  <rth@redhat.com>
16794
16795         PR middle-end/43365
16796         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
16797         (lower_try_finally): Save and restore eh_seq around the expansion
16798         of the try-finally.
16799
16800 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
16801
16802         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
16803         statements before splitting block.
16804
16805 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16806
16807         * doc/sourcebuild.texi (Testsuites): Fix markup.
16808         Use pathnames relative to gcc/testsuite.
16809         (Test Directives): Move description of how timeout is determined.
16810         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
16811         (C Tests): Correct gcc.misc-tests directory.
16812         Framework tests now live in gcc.test-framework.
16813
16814 2010-03-16  Richard Guenther  <rguenther@suse.de>
16815
16816         PR middle-end/43379
16817         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
16818         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
16819
16820 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
16821             Alexandre Oliva  <aoliva@redhat.com>
16822
16823         PR tree-optimization/42917
16824         * lambda-code.c (remove_iv): Skip debug statements.
16825         (lambda_loopnest_to_gcc_loopnest): Likewise.
16826         (not_interesting_stmt): Debug statements are not interesting.
16827
16828 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
16829
16830         PR debug/43051
16831         PR debug/43092
16832         * cselib.c (cselib_preserve_constants,
16833         cfa_base_preserved_val): New static variables.
16834         (preserve_only_constants): New function.
16835         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
16836         clear its REG_VALUES.  If cselib_preserve_constants, don't
16837         empty the whole hash table, but preserve there VALUEs with constants,
16838         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
16839         (cselib_preserve_cfa_base_value): New function.
16840         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
16841         (cselib_init): Change argument to int bitfield.  Set
16842         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
16843         is in it.
16844         (cselib_finish): Clear cselib_preserve_constants and
16845         cfa_base_preserved_val.
16846         * cselib.h (enum cselib_record_what): New enum.
16847         (cselib_init): Change argument to int.
16848         (cselib_preserve_cfa_base_value): New prototype.
16849         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
16850         * dse.c (dse_step1): Likewise.
16851         * cfgcleanup.c (thread_jump): Likewise.
16852         * sched-deps.c (sched_analyze): Likewise.
16853         * gcse.c (local_cprop_pass): Likewise.
16854         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
16855         If FN is non-NULL, call the callback always and whenever it returns
16856         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
16857         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
16858         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
16859         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
16860         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
16861         * var-tracking.c: Include recog.h.
16862         (bb_stack_adjust_offset): Remove.
16863         (vt_stack_adjustments): Don't call it, instead just gather the
16864         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
16865         (adjust_stack_reference): Remove.
16866         (compute_cfa_pointer): New function.
16867         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
16868         (struct adjust_mem_data): New type.
16869         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
16870         functions.
16871         (get_address_mode): New function.
16872         (replace_expr_with_values): Use it.
16873         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
16874         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
16875         (adjust_sets): Remove.
16876         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
16877         Use get_address_mode.
16878         (get_adjusted_src): Remove.
16879         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
16880         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
16881         (add_with_sets): Don't call adjust_sets.
16882         (fp_setter, vt_init_cfa_base): New functions.
16883         (vt_initialize): Change return type to bool.  Move most of pool etc.
16884         initialization to the beginning of the function from end.  Pass
16885         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
16886         If !frame_pointer_needed, call vt_stack_adjustment before mos
16887         vector is filled, call vt_init_cfa_base if argp/framep has been
16888         eliminated to sp.  If frame_pointer_needed and argp/framep has
16889         been eliminated to hard frame pointer, set
16890         hard_frame_pointer_adjustment and call vt_init_cfa_base after
16891         encountering fp setter in the prologue.  For MO_ADJUST, call
16892         log_op_type before pusing the op into mos vector, not afterwards.
16893         Call adjust_insn before cselib_process_insn/add_with_sets,
16894         call cancel_changes (0) afterwards.
16895         (variable_tracking_main_1): Adjust for vt_initialize calling
16896         vt_stack_adjustments and returning whether it succeeded or not.
16897
16898 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
16899
16900         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
16901         debug statements.
16902
16903 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
16904
16905         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
16906         has been set.
16907         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
16908         drap_reg has not been set.
16909
16910 2010-03-15  Michael Matz  <matz@suse.de>
16911
16912         PR middle-end/43300
16913         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
16914         use it to expand block copies.
16915         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
16916         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
16917         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
16918
16919 2010-03-15  Richard Guenther  <rguenther@suse.de>
16920
16921         PR tree-optimization/43367
16922         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
16923         elimination check.
16924
16925 2010-03-15  Richard Guenther  <rguenther@suse.de>
16926
16927         PR tree-optimization/43317
16928         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
16929
16930 2010-03-15  Martin Jambor  <mjambor@suse.cz>
16931
16932         PR tree-optimization/43141
16933         * tree-sra.c (create_abstract_origin): New function.
16934         (modify_function): Call create_abstract_origin.
16935
16936 2010-03-15  Chris Demetriou  <cgd@google.com>
16937
16938         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
16939         wasn't copied.
16940
16941 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16942
16943         PR middle-end/43354
16944         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
16945         call insert_out_of_ssa_copy for default definitions.
16946
16947 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16948
16949         * graphite-clast-to-gimple.c (my_long_long): Defined.
16950         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
16951         * graphite-sese-to-poly.c (my_long_long): Defined.
16952         (scop_ivs_can_be_represented): Use it.
16953
16954 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16955
16956         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
16957         graphite-max-bbs-per-function, and loop-block-tile-size.
16958         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
16959         with "maximum".
16960         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
16961
16962 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16963
16964         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
16965         forward declaration.
16966         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
16967         (add_upper_bounds_from_estimated_nit): New.
16968         (build_loop_iteration_domains): Use it.
16969
16970 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16971
16972         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
16973
16974 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16975
16976         PR middle-end/43306
16977         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
16978         should be an INTEGER_CST.  Also handle CASE_CONVERT.
16979
16980 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16981
16982         * graphite.c (graphite_initialize): To bound the number of bbs per
16983         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
16984         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
16985         * doc/invoke.texi: Document it.
16986
16987 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16988
16989         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
16990         * graphite-sese-to-poly.h (build_poly_scop): Same.
16991
16992 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
16993
16994         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
16995         the number of parameters in the scop.  Use as an upper bound
16996         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
16997         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
16998         * doc/invoke.texi: Document it.
16999
17000 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
17001
17002         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
17003         * doc/c-tree.texi: Remove.
17004         * doc/generic.texi: Merge c-tree.texi here.
17005         * doc/gccint.texi (Trees): Remove menu entry.
17006         (c-tree.texi): Remove @include.
17007         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
17008         * doc/languages.texi (Reading RTL): Ditto.
17009
17010 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
17011
17012         PR target/42869
17013         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
17014
17015 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
17016
17017         PR middle-end/42431
17018         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
17019         code added to work around reload clobbering CONST insns.
17020
17021 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
17022
17023         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
17024         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
17025         (cselib_preserve_only_values): Remove retain argument, don't
17026         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
17027         * cselib.h (cselib_preserve_only_values): Remove retain argument.
17028         * var-tracking.c (micro_operation): Move insn field before union.
17029         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
17030         (struct variable_tracking_info_def): Remove n_mos field, change
17031         mos into a vector of micro_operations.
17032         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
17033         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
17034         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
17035         changing into a vector.
17036         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
17037         come before all other uops generated by add_stores.
17038         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
17039         argument removal.
17040         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
17041         a vector.  Run just one pass over the bbs instead of separate counting
17042         and computation phase.
17043         (vt_finalize): Free VTI (bb)->mos vector instead of array.
17044
17045         PR debug/43329
17046         * tree-inline.c (remap_decls): Put old_var rather than origin_var
17047         into *nonlocalized_list vector.
17048         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
17049         even if origin is non-NULL.
17050         (gen_variable_die): Likewise.
17051         (process_scope_var): Don't change origin.
17052         (gen_decl_die): Likewise.
17053         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
17054         before adding new edges instead of after it, fix moving over
17055         debug stmts.
17056
17057 2010-03-11  David S. Miller  <davem@davemloft.net>
17058
17059         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
17060         of four.
17061         * configure: Rebuild.
17062
17063 2010-03-11  Martin Jambor  <mjambor@suse.cz>
17064
17065         PR tree-optimization/43257
17066         * tree.c (assign_assembler_name_if_neeeded): New function.
17067         (free_lang_data_in_cgraph): Assembler name assignment moved to the
17068         above new function.
17069         * tree.h (assign_assembler_name_if_neeeded): Declare.
17070         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
17071         the function if needed.
17072
17073 2010-03-11  Chris Demetriou  <cgd@google.com>
17074
17075         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
17076         include/stdint-gcc.h, and include/stdint.h world-readable.
17077
17078 2010-03-11  Richard Guenther  <rguenther@suse.de>
17079
17080         PR tree-optimization/43255
17081         * tree-vrp.c (process_assert_insertions_for): Do not insert
17082         asserts for trivial conditions.
17083
17084 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17085
17086         PR tree-optimization/43280
17087         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
17088         generation.  Move calculation of size out of the if branch.
17089         (find_bswap): Modify compare number generation.
17090
17091 2010-03-11  Richard Guenther  <rguenther@suse.de>
17092
17093         PR lto/43200
17094         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
17095         (input_gimple_stmt): Fixup handled component types during
17096         operand read.  Also fix up decls in ADDR_EXPRs.
17097
17098 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
17099
17100         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
17101         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
17102
17103 2010-03-10  Jan Hubicka  <jh@suse.cz>
17104
17105         PR c/43288
17106         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
17107         * varasm.c (get_variable_section): Don't do that here...
17108         (make_decl_rtl): ... and here.
17109         (do_assemble_alias): Produce decl RTL.
17110         (assemble_alias): Likewise.
17111
17112 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
17113
17114         PR debug/43290
17115         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
17116         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
17117         of fde->vdrap_reg.
17118         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
17119         (based_loc_descr): Only express drap or vdrap regno based expressions
17120         using DW_OP_fbreg when not optimizing.
17121         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
17122         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
17123         REG_CFA_SET_VDRAP note.
17124
17125 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
17126
17127         PR tree-optimization/43236
17128         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
17129         error in calculation of base address in reverse iteration case.
17130         (generate_builtin): Take number of latch executions if the statement
17131         is in the latch.
17132
17133 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
17134
17135         PR middle-end/42859
17136         * tree-eh.c: Include pointer-set.h.
17137         (lower_eh_dispatch): Filter out duplicate case labels and
17138         remove the unneeded edge when the label is unused.  Return
17139         true when some edges are removed.
17140         (execute_lower_eh_dispatch): When any lowering resulted in
17141         removing an edge, also delete unreachable blocks.
17142
17143 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
17144
17145         PR bootstrap/43287
17146         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
17147         UNSPEC_MACHOPIC_OFFSET.
17148
17149 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
17150
17151         PR target/43294
17152         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
17153         (m68k_delegitimize_address): New function.
17154
17155 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
17156
17157         PR debug/43299
17158         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
17159
17160         PR debug/43299
17161         * var-tracking.c (adjust_sets): New function.
17162         (count_with_sets, add_with_sets): Use it.
17163         (get_adjusted_src): New inline function.
17164         (add_stores): Use it.
17165
17166         PR debug/43304
17167         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
17168         call cselib_dummy_expand_value_rtx_cb instead of
17169         cselib_expand_value_rtx_cb.
17170
17171         PR debug/43293
17172         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
17173         * config/i386/i386.c: Include debug.h and dwarf2out.h.
17174         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
17175         and .cfi_endproc around the pic thunks.
17176         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
17177         all queued unwind info register saves are saved before the call.
17178         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
17179         considered as sp-=4 for unwind info and the pop as sp+=4 which
17180         also clobbers dest, but doesn't actually restore it.
17181
17182         PR debug/43290
17183         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
17184         RTX_FRAME_RELATED_P.
17185
17186 2010-03-09  Jie Zhang  <jie@codesourcery.com>
17187
17188         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
17189         whitespaces in output template.
17190
17191 2010-03-09  Jie Zhang  <jie@codesourcery.com>
17192
17193         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
17194         out array boundary.
17195
17196 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
17197
17198         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
17199         builtins.exp in a separate job.
17200
17201 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17202
17203         * graphite-sese-to-poly.c (add_param_constraints): Use
17204         lower_bound_in_type and upper_bound_in_type.
17205
17206 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17207
17208         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
17209         instead of unsigned_type_node.
17210
17211 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17212             Reza Yazdani  <reza.yazdani@amd.com>
17213
17214         PR middle-end/43065
17215         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
17216         on pointer type parameters.
17217
17218 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
17219
17220         PR middle-end/42644
17221         PR middle-end/42130
17222         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
17223         handle conversions from pointer to integers.
17224         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
17225         induction variable, to be able to work with code generated by CLooG.
17226         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
17227         (build_poly_scop): Bail out if we cannot codegen a loop.
17228
17229 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
17230
17231         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
17232         code generation with gloog_error.
17233
17234 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17235
17236         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
17237         Call fold_convert on all the returned values.
17238         (expand_scalar_variables_expr): Pass to
17239         expand_scalar_variables_ssa_name the type of the resulting expression.
17240
17241 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17242
17243         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
17244         ppl_min_for_le_pointset.
17245         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
17246         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
17247
17248 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17249
17250         * graphite-dependences.c (map_into_dep_poly): Removed.
17251         (dependence_polyhedron_1): Use combine_context_id_scat.
17252
17253 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17254
17255         * graphite-poly.h (struct poly_scattering): Add layout documentation.
17256         (struct poly_bb): Same.
17257         (combine_context_id_scat): New.
17258
17259 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17260
17261         PR middle-end/42326
17262         * sese.c (name_defined_in_loop_p): Return false for default
17263         definitions.
17264
17265 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17266
17267         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
17268         and clean up the logic.
17269
17270 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
17271
17272         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
17273         early return.
17274
17275 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
17276
17277         * var-tracking.c (remove_cselib_value_chains): Define only for
17278         ENABLE_CHECKING.
17279         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
17280         delete_slot_part, emit_notes_for_differences_1): Don't call
17281         remove_cselib_value_chains here.
17282         (set_slot_part, emit_notes_for_differences_2): Don't call
17283         add_cselib_value_chains here.
17284         (preserved_values): New vector.
17285         (preserve_value): New function.
17286         (add_uses, add_stores, vt_add_function_parameters): Use it
17287         instead of cselib_preserve_value.
17288         (changed_values_stack): New vector.
17289         (check_changed_vars_0): New function.
17290         (check_changed_vars_1, check_changed_vars_2): Use it.
17291         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
17292         changed_values_stack VALUEs.
17293         (vt_emit_notes): For all preserved_values call
17294         add_cselib_value_chains.  If ENABLE_CHECKING call
17295         remove_cselib_value_chains before verifying value_chains is empty.
17296         Initialize and free changed_values_stack.
17297         (vt_initialize): Initialize preserved_values.
17298         (vt_finalize): Free preserved_values.
17299
17300 2010-03-08  Richard Guenther  <rguenther@suse.de>
17301
17302         PR tree-optimization/43269
17303         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
17304         region detection.
17305
17306 2010-03-08  Martin Jambor  <mjambor@suse.cz>
17307
17308         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
17309         (ipa_is_param_called): Removed.
17310         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
17311         (ipa_print_node_params): Do not print the called flag.
17312         (ipa_write_node_info): Do not stream the called flag.
17313         (ipa_read_node_info): Likewise.
17314
17315 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
17316
17317         PR debug/43176
17318         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
17319         * cselib.c (struct expand_value_data): Add dummy field.
17320         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
17321         dummy to false.
17322         (cselib_dummy_expand_value_rtx_cb): New function.
17323         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
17324         any rtl.
17325         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
17326         * var-tracking.c: Include pointer-set.h.
17327         (variable): Change n_var_parts to char from int.  Add
17328         cur_loc_changed and in_changed_variables fields.
17329         (variable_canonicalize): Remove.
17330         (shared_var_p): New inline function.
17331         (unshare_variable): Maintain cur_loc_changed and
17332         in_changed_variables fields.  If var was in changed_variables,
17333         replace it there with new_var.  Just copy cur_loc instead of
17334         resetting it to something else.
17335         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
17336         (dataflow_set_union): Don't call variable_canonicalize.
17337         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
17338         of their DEBUG_EXPR_TREE_DECLs.
17339         (canonicalize_loc_order_check): Verify that cur_loc is NULL
17340         and in_changed_variables and cur_loc_changed is false.
17341         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
17342         and cur_loc_changed.  Don't update cur_loc here.
17343         (variable_merge_over_src): Don't call variable_canonicalize.
17344         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
17345         removing loc that is equal to cur_loc, clear cur_loc,
17346         set cur_loc_changed and ensure variable_was_changed is called.
17347         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
17348         compare pointers in cur_loc check, if it is equal to loc,
17349         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
17350         (variable_different_p): Remove compare_current_location argument,
17351         don't compare cur_loc.
17352         (dataflow_set_different_1): Adjust variable_different_p caller.
17353         (variable_was_changed): If dv had some var in changed_variables
17354         already, reset in_changed_variables flag for it and propagate
17355         cur_loc_changed over to the new variable.  On empty var
17356         always set cur_loc_changed.  Set in_changed_variables on whatever
17357         var is added to changed_variables.
17358         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
17359         Use shared_var_p.  When removing loc that is equal to cur_loc,
17360         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
17361         end, don't set it to something else, just call variable_was_changed.
17362         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
17363         loc being removed, clear cur_loc and set cur_loc_changed.
17364         Set cur_loc_changed if all locations have been removed.
17365         (struct expand_loc_callback_data): New type.
17366         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
17367         allocated.  Always create SUBREGs if simplify_subreg failed.
17368         Prefer to use cur_loc, when that fails and still in
17369         changed_variables (and seen first time) recompute it.  Set
17370         cur_loc_changed of variables which had to change cur_loc and
17371         compute elcd->cur_loc_changed if any of the subexpressions used
17372         had to change cur_loc.
17373         (vt_expand_loc): Adjust to pass arguments in
17374         expand_loc_callback_data structure.
17375         (vt_expand_loc_dummy): New function.
17376         (emitted_notes): New variable.
17377         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
17378         that weren't used for any other decl in current
17379         emit_notes_for_changes call call vt_expand_loc_dummy to update
17380         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
17381         first loc_chain location if NULL before.  Always use just
17382         cur_loc instead of first loc_chain location.  When cur_loc_changed
17383         is false, when not --enable-checking=rtl just don't emit any note.
17384         When rtl checking, compute the note and assert it is the same
17385         as previous note.  Clear cur_loc_changed and in_changed_variables
17386         at the end before removing from changed_variables.
17387         (check_changed_vars_3): New function.
17388         (emit_notes_for_changes): Traverse changed_vars to call
17389         check_changed_vars_3 on each changed var.
17390         (emit_notes_for_differences_1): Clear cur_loc_changed and
17391         in_changed_variables.  Recompute cur_loc of new_var.
17392         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
17393         (vt_emit_notes): Initialize and destroy emitted_notes.
17394
17395 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
17396
17397         PR rtl-optimization/42220
17398         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
17399         Use verify_reg_tracked to determine if we should use OP_OUT rather
17400         than OP_INOUT.
17401         (build_def_use): If we see an in-out operand for a register that we
17402         know nothing about, treat is an output if possible, fail the block if
17403         not.
17404
17405 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
17406
17407         PR debug/42897
17408         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
17409         permanently.
17410
17411 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
17412
17413         PR debug/42897
17414         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
17415         uses of relevant DEFs that are dead outside the loop too.
17416
17417 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
17418
17419         * var-tracking.c (dataflow_set_merge): Swap src and src2.
17420         Reverted:
17421         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
17422         PR debug/41371
17423         * var-tracking.c (values_to_unmark): New variable.
17424         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
17425         values_to_unmark vector.  Moved body to...
17426         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
17427         instead queue it into values_to_unmark vector.
17428         (vt_find_locations): Free values_to_unmark vector.
17429
17430 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
17431
17432         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
17433         (site.exp): Export them when plugins are enabled.
17434
17435 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
17436
17437         PR middle-end/42326
17438         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
17439         that contain scevs.
17440         (chrec_fold_multiply): Same.
17441
17442 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
17443
17444         PR c/43248
17445         * c-decl.c (build_compound_literal): Return early if init is
17446         an error_mark_node.
17447
17448 2010-03-04  Martin Jambor  <mjambor@suse.cz>
17449
17450         PR tree-optimization/43164
17451         PR tree-optimization/43191
17452         * tree-sra.c (type_consists_of_records_p): Reject records with
17453         zero-size bit-fields at the end.
17454
17455 2010-03-04  Mike Stump  <mikestump@comcast.net>
17456
17457         * Makefile.in (TAGS): Remove *.y.
17458
17459 2010-03-04  Richard Guenther  <rguenther@suse.de>
17460
17461         PR tree-optimization/40761
17462         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
17463         in reverse order.
17464         (my_rev_post_order_compute): New function.
17465         (init_pre): Call it.
17466
17467 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
17468
17469         PR middle-end/43209
17470         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
17471         decrease the cost of an IV candidate when the cost is infinite.
17472
17473 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17474
17475         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
17476         Use '3DNow!' for the extension of that name, ensure normal space
17477         after the string.
17478         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
17479
17480 2010-03-03  Jeff Law  <law@redhat.com>
17481
17482         * PR middle-end/32693
17483         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
17484         than gen_rtx_SUBREG.
17485         (extract_bit_field_1): Likewise.
17486
17487 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
17488
17489         * doc/sourcebuild.texi (Test directives): Document that arguments
17490         include-opts and exclude-opts are now optional for dg-skip-if,
17491         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
17492
17493 2010-03-03  Jason Merrill  <jason@redhat.com>
17494
17495         PR c++/12909
17496         * cgraph.h (varpool_node): Add extra_name field.
17497         * varpool.c (varpool_extra_name_alias): New.
17498         (varpool_assemble_decl): Emit extra name aliases.
17499         (varpool_mark_needed_node): Look past an extra name alias.
17500         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
17501         * lto-streamer-in.c (lto_input_tree): Read it.
17502         * lto-streamer-out.c (output_unreferenced_globals): Write it.
17503
17504 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
17505
17506         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
17507         (sparc*-*-solaris2*): ...this.
17508
17509 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
17510
17511         PR debug/43229
17512         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
17513         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
17514         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
17515         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
17516
17517         PR debug/43237
17518         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
17519         fallthrough to default handling, just with want_address 0 instead of 2.
17520         For single element lists, add_AT_loc directly, otherwise create an
17521         artificial variable DIE and stick location list to it.
17522
17523         PR debug/43177
17524         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
17525         (VAL_EXPR_HAS_REVERSE): Define.
17526         (reverse_op): New function.
17527         (add_stores): For reversible operations add an extra MO_VAL_USE.
17528
17529 2010-03-02  Jason Merrill  <jason@redhat.com>
17530
17531         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
17532
17533 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
17534
17535         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
17536         (sparc64-*-linux*): Likewise.
17537         (sparc64-*-solaris2*): Include assembler files before linker ones.
17538         (sparc-*-solaris2*): Simplify and reorder to match previous case.
17539         * config/sparc/gas.h: Delete.
17540         * config/sparc/sol2-64.h: Add copyright notice.
17541         * config/sparc/sol2-gas-bi.h: Likewise.
17542         * config/sparc/sol2-gld.h: Likewise.
17543         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
17544         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
17545         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
17546         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
17547         (sparc_elf_asm_named_section): Rename into...
17548         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
17549
17550 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
17551
17552         * config/alpha/alpha.c (override_options): Fix -mtune error message.
17553
17554 2010-03-02  Jeff Law  <law@redhat.com>
17555
17556         PR middle-end/42431
17557         * reload1.c (rtx_p, substitute_stack): Declare.
17558         (substitute): Record addresses of changed rtxs.
17559         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
17560         Restore the original rtx when complete.
17561         (reload): Free subsitute_stack when complete.
17562
17563 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
17564
17565         * doc/gccint.texi (menu): Add Testsuites as a chapter.
17566         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
17567         new chapter.
17568         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
17569         LTO Testing, gcov Testing, profopt Testing, compat Testing,
17570         Torture Tests): Change from subsection to section.
17571
17572 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
17573             Steven Bosscher  <steven@gcc.gnu.org>
17574
17575         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
17576         instead of bb.
17577
17578 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
17579
17580         PR middle-end/42640
17581         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
17582         the assignment from the new induction variable to the assignment
17583         of the value from the original loop PHI function.
17584
17585 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
17586             Daniel Jacobowitz  <dan@codesourcery.com>
17587
17588         * doc/sourcebuild.texi (Test directives): Clarify options to
17589         dg-skip-if.
17590
17591 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17592
17593         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
17594         Disable cfi directives unless GCC and gas agree on using read-only
17595         .eh_frame sections for 64-bit.
17596         * configure: Regenerate.
17597
17598 2010-03-01  Richard Guenther  <rguenther@suse.de>
17599
17600         PR tree-optimization/43220
17601         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
17602         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
17603
17604 2010-03-01  Richard Guenther  <rguenther@suse.de>
17605             Martin Jambor  <mjambor@suse.cz>
17606
17607         PR middle-end/41250
17608         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
17609         gimplified parameters.
17610
17611 2010-03-01  Christian Bruel  <christian.bruel@st.com>
17612
17613         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
17614
17615 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
17616
17617         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
17618
17619 2010-03-01  Richard Guenther  <rguenther@suse.de>
17620
17621         PR middle-end/43213
17622         * expr.c (expand_assignment): Use the alias-oracle to tell
17623         if the rhs aliases the result decl.
17624
17625 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17626
17627         PR pch/14940
17628         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
17629         to sol_gt_pch_get_address.
17630         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
17631         64-bit, SPARC and x86.
17632         (sol_gt_pch_get_address): New function.
17633
17634 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
17635
17636         * toplev.h (inform_n, error_n): Declare.
17637         * diagnostic.c (inform_n, error_n): New function.
17638
17639 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
17640
17641         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
17642         has no rtl yet when processing local_decls, queue it and recheck
17643         if deferred stack allocation hasn't assigned it rtl.
17644
17645 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
17646
17647         * config/sh/sh.c (unspec_bbr_uid): New.
17648         (gen_block_redirect): Use it instead of INSN_UID.
17649         (gen_far_branch): Likewise.
17650
17651 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
17652
17653         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
17654         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
17655
17656 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17657
17658         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
17659         (Warning Options): -Wno-conversion-null is valid for
17660         Objective-C++ as well.
17661         * doc/tm.texi (Named Address Spaces): Likewise.
17662         * doc/plugins.texi (Plugins): Replace TABs with spaces.
17663         * doc/tree-ssa.texi (Tree SSA): Likewise.
17664
17665 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
17666
17667         PR bootstrap/43202
17668         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
17669         by default.  Don't set the default arch for
17670         i[34567]86-*-darwin*|x86_64-*-darwin*.
17671
17672 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
17673
17674         PR bootstrap/43202
17675         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
17676         default.  Set the default 32bit/64bit archs with $with_arch
17677         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
17678
17679 2010-02-27  Richard Guenther  <rguenther@suse.de>
17680
17681         PR tree-optimization/43186
17682         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
17683         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
17684         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
17685         unroller iterations.
17686
17687 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
17688
17689         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
17690         required and i[34567]86-*-* targets don't support 64bit ISA.
17691
17692 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
17693
17694         PR ada/43096
17695         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
17696         the same alias set.
17697
17698 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
17699
17700         * config.gcc: Set the default arch at least to Prescott for
17701         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
17702         if SSE math is enabled.
17703
17704 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17705
17706         * diagnostic.c (diagnostic_initialize): Update.
17707         (diagnostic_report_diagnostic): Test inhibit_notes_p for
17708         informative notes.
17709         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
17710         (diagnostic_inhibit_notes): New.
17711         * toplev.c (process_options): inhibit notes with -fcompare-debug.
17712
17713 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17714
17715         PR c/20631
17716         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
17717         * doc/standards.texi: Likewise.
17718         * doc/extend.texi: Likewise.
17719         * doc/trouble.texi: Likewise.
17720         * doc/cppopts.texi: Likewise.
17721         * doc/install.texi: Likewise.
17722         * c.opt (std=c90,std=gnu90): New options.
17723         * c-opts.c (c_common_handle_option): Handle them.
17724
17725 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17726
17727         PR c/24577
17728         * c-decl.c (undeclared_variable): Use an informative note.
17729
17730 2010-02-26  Richard Guenther  <rguenther@suse.de>
17731
17732         PR tree-optimization/43186
17733         * gimple.h (gimple_fold): Remove.
17734         * gimple.c (gimple_fold): Remove.  Inline into single user ...
17735         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
17736         Try harder for conditions.
17737
17738 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
17739
17740         PR debug/43190
17741         * function.c (used_types_insert): Don't skip through named pointer
17742         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
17743         and it is different from the main variant's type.
17744
17745 2010-02-26  Nick Clifton  <nickc@redhat.com>
17746
17747         * config/rx/rx.md (sminsi3): Remove bogus alternative.
17748
17749 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
17750
17751         * config.gcc: Support --with-fpmath=sse for x86.
17752
17753         * config/i386/ssemath.h: New.
17754
17755         * doc/install.texi (--with-fpmath=sse): Documented.
17756
17757 2010-02-26  Richard Guenther  <rguenther@suse.de>
17758
17759         PR tree-optimization/43188
17760         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
17761         vector types of over-aligned element type.
17762
17763 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
17764
17765         PR target/43175
17766         * config/i386/i386.c (expand_vec_perm_blend): Use correct
17767         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
17768
17769 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
17770
17771         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
17772
17773 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
17774
17775         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
17776         * var-tracking.c: Include diagnostic.h.
17777         (debug_dv): New function.
17778         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
17779
17780         PR debug/43160
17781         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
17782         (add_value_chain, add_value_chains, remove_value_chain,
17783         remove_value_chains): Handle DEBUG_EXPRs.
17784         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
17785
17786         PR debug/43161
17787         * regcprop.c (struct queued_debug_insn_change): New type.
17788         (struct value_data_entry): Add debug_insn_changes field.
17789         (struct value_data): Add n_debug_insn_changes field.
17790         (debug_insn_changes_pool): New variable.
17791         (free_debug_insn_changes, apply_debug_insn_changes,
17792         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
17793         (kill_value_one_regno): Call free_debug_insn_changes if needed.
17794         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
17795         fields.
17796         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
17797         changes for them.
17798         (copyprop_hardreg_forward_1): Don't call apply_change_group for
17799         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
17800         changes, call cprop_find_used_regs via note_stores.
17801         (copyprop_hardreg_forward): When copying vd from predecessor
17802         which has any queued DEBUG_INSN changes, make sure the pointers are
17803         cleared.  At the end call df_analyze and then if there are any
17804         DEBUG_INSN changes queued at the end of some basic block for still
17805         live registers, apply them.
17806         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
17807
17808 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
17809
17810         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
17811         (arm*-*-*): Ditto.
17812
17813 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
17814
17815         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
17816         targets.  Set the default with_cpu/with_arch from arch/cpu.
17817         Allow x86-64 and native for with_cpu/with_arch.
17818
17819 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
17820
17821         * ebitmap.c: Change calls to verify_popcount with calls to
17822         sbitmap_verify_popcount.
17823         (ebitmap_clear_bit): Fixed map->cacheindex test and
17824         map>cache update when bit clearing results in an empty
17825         element.
17826
17827 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
17828
17829         PR target/43154
17830         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
17831         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
17832         and support both V2DF and V2DI modes.
17833         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
17834         support both V2DF and V2DI modes.
17835         (general): Delete trailing whitespace from a few patterns.
17836
17837         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17838         V2DF/V2DI interleave high/low builtins.
17839
17840         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
17841         new VSX builtins.
17842
17843         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
17844         interleave high/low functions.
17845
17846 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
17847
17848         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
17849         #pragma extern_prefix.
17850
17851 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
17852
17853         PR debug/43166
17854         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
17855         BLKmode, assert op0 is a MEM and just adjust its mode.
17856
17857         PR debug/43165
17858         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
17859         if bitpos isn't multiple of mode's bitsize.
17860
17861 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17862
17863         * c.opt (-ftemplate-depth=): New.
17864         (-ftemplate-depth-): Deprecate.
17865         * optc-gen.awk: Handle -ftemplate-depth=.
17866         * opth-gen.awk: Likewise.
17867         * c-opts.c (c_common_handle_option): Likewise.
17868         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
17869
17870 2010-02-24  Jason Merrill  <jason@redhat.com>
17871
17872         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
17873
17874 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17875
17876         * cfg.c (alloc_aux_for_block): Remove inline.
17877         (alloc_aux_for_edge): Likewise.
17878
17879 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17880
17881         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
17882
17883 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17884
17885         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
17886         * config/i386/sol2-gas.h: New file.
17887         * config.gcc (i[34567]86-*-solaris2*): Use it.
17888
17889 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17890
17891         PR c/43128
17892         * c-typeck.c (ep_convert_and_check): New.
17893         (build_conditional_expr): Use it.
17894         (build_binary_op): Likewise.
17895
17896 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
17897
17898         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
17899
17900         PR debug/43150
17901         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
17902         bounds even for -O+.
17903         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
17904         expr needs to have DECL_NAME set.
17905
17906 2010-02-24  Nick Clifton  <nickc@redhat.com>
17907
17908         * config/mep/mep.c: Include gimple.h.
17909         (mep_function_uses_sp): Delete unused function.
17910         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
17911         parameters.  Use unsigned integers to count args.  Return a
17912         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
17913
17914 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
17915
17916         PR target/43107
17917         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
17918         greater or equal to nelt instead of 2 * nelt.
17919         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
17920         with nelt - 1.
17921
17922 2010-02-23  Jason Merrill  <jason@redhat.com>
17923
17924         PR debug/42800
17925         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
17926         in cfun->local_decls even if they have register types.
17927
17928         PR c++/42837
17929         * stor-layout.c (place_field): Don't warn about unnecessary
17930         DECL_PACKED if the type is packed.
17931
17932 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
17933
17934         PR target/43139
17935         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
17936         GOTOFF relocs, even when the base reg isn't pic pointer.
17937
17938 2010-02-23  Michael Matz  <matz@suse.de>
17939
17940         PR debug/43077
17941         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
17942         (expand_gimple_basic_block): Generate and use debug temps if there
17943         are debug uses left after the last real use of TERed ssa names.
17944         Unlink debug immediate uses when they are expanded.
17945
17946 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17947
17948         PR 43123
17949         * config/i386/i386.c (override_options): Reorganise to provide
17950         better error messages.
17951
17952 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17953
17954         PR middle-end/43083
17955         * graphite-scop-detection.c (create_single_exit_edge): Move
17956         the call to find_single_exit_edge to....
17957         (create_sese_edges): ...here.  Don't handle multiple edges
17958         exiting the function.
17959         (build_graphite_scops): Don't handle multiple edges
17960         exiting the function.
17961
17962 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17963
17964         PR middle-end/43097
17965         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
17966         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
17967
17968 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17969
17970         PR middle-end/43026
17971         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
17972
17973 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17974
17975         PR c++/43126
17976         * c-typeck.c (convert_arguments): Print declaration location.
17977         * c-common.c (validate_nargs): Rename as
17978         builtin_function_validate_nargs.
17979         (check_builtin_function_arguments): Update.
17980
17981 2010-02-22  Richard Guenther  <rguenther@suse.de>
17982
17983         PR lto/43045
17984         * tree-inline.c (declare_return_variable): Use the type of
17985         the call stmt lhs if available.
17986
17987 2010-02-22  Duncan Sands  <baldrick@free.fr>
17988
17989         * passes.c (register_pass): Always consider all pass lists when
17990         ref_pass_instance_number is zero.
17991
17992 2010-02-22  Richard Guenther  <rguenther@suse.de>
17993
17994         PR tree-optimization/42749
17995         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
17996         parameter.  Do arithmetic in the original type.
17997         (update_accumulator_with_ops): Likewise.
17998         (adjust_accumulator_values): Adjust.
17999
18000 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18001
18002         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
18003         (QI to BLKmode splitter): New splitter.
18004
18005 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
18006
18007         * config/i386/i386.c (initial_ix86_tune_features): Turn on
18008         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
18009
18010 2010-02-22  Richard Guenther  <rguenther@suse.de>
18011
18012         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
18013
18014 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
18015
18016         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
18017         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
18018         ($(T)crti.o, $(T)crtn.o): Remove rules.
18019
18020 2010-02-21  Tobias Burnus  <burnus@net-b.de>
18021
18022         PR fortran/35259
18023         * doc/invoke.texi (-fassociative-math): Document that this
18024         option is automatically enabled for Fortran.
18025
18026 2010-02-20  David S. Miller  <davem@davemloft.net>
18027
18028         * configure.ac: Test if linker and assembler properly support
18029         GOTDATA_OP relocations.
18030         * configure: Rebuild.
18031         * config.in: Likewise.
18032         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
18033         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
18034         (movsi_high_pic): Likewise.
18035         (movdi_lo_sum_pic): Likewise.
18036         (movdi_high_pic): Likewise.
18037         (movsi_pic_gotdata_op): New pattern.
18038         (movdi_pic_gotdata_op): Likewise.
18039         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
18040         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
18041
18042 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
18043
18044         PR target/43067
18045         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
18046         attribute to ssemul.
18047         (xop_mulv2div2di3_high): Ditto.
18048
18049 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18050
18051         PR c++/35669
18052         * c.opt (Wconversion-null): New option.
18053         * doc/invoke.texi (Wconversion-null): Document.
18054
18055 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18056
18057         * common.opt (Wlarger-than-): Add Undocumented.
18058
18059 2010-02-19  Mike Stump  <mikestump@comcast.net>
18060
18061         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
18062
18063 2010-02-19  Jason Merrill  <jason@redhat.com>
18064
18065         PR target/40332
18066         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
18067         * configure: Likewise.
18068
18069 2010-02-20  Alan Modra  <amodra@gmail.com>
18070
18071         PR middle-end/42344
18072         * cgraph.h (cgraph_make_decl_local): Declare.
18073         * cgraph.c (cgraph_make_decl_local): New function.
18074         (cgraph_make_node_local): Use it.
18075         * cgraphunit.c (cgraph_function_versioning): Likewise.
18076         * ipa.c (function_and_variable_visibility): Likewise.
18077
18078 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
18079
18080         PR bootstrap/43121
18081         * except.c (sjlj_emit_function_enter): Don't call
18082         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
18083         directly.
18084         * rtl.h (add_reg_br_prob_note): Remove prototype.
18085
18086 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18087
18088         PR 41779
18089         * c-common.c (conversion_warning): Remove widening conversions
18090         before checking the conversion of integers to reals.
18091
18092 2010-02-19  Mike Stump  <mikestump@comcast.net>
18093
18094         PR middle-end/43125
18095         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
18096
18097         PR objc/43061
18098         * cgraphunit.c (process_function_and_variable_attributes): Check
18099         DECL_PRESERVE_P instead of looking up attribute "used".
18100         * ipa-pure-const.c (check_decl): Likewise.
18101         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
18102         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
18103         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
18104         instead of attribute "used".
18105         * config/sol2-c.c (solaris_pragma_init): Likewise.
18106         (solaris_pragma_fini): Likewise.
18107
18108 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
18109
18110         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
18111         Use XCNEW instead of xcalloc.
18112         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
18113         XNEW instead of xmalloc.
18114         (get_fields): Use XNEWVEC instead of xmalloc.
18115
18116         PR debug/43084
18117         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
18118         populate vars array.
18119         (create_new_general_access): For debug stmts just reset value.
18120         (get_stmt_accesses): For accesses within debug stmts just record them
18121         using add_access_to_acc_sites instead of preventing the peeling or
18122         counting them as accesses.
18123
18124         PR middle-end/42233
18125         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
18126
18127 2010-02-19  Richard Guenther  <rguenther@suse.de>
18128
18129         PR tree-optimization/42916
18130         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
18131         instructions.
18132
18133 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
18134
18135         * configure.ac: Replace all uses of changequote in macro arguments
18136         with proper quoting.
18137
18138 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
18139
18140         PR middle-end/42233
18141         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
18142
18143 2010-02-19  Richard Guenther  <rguenther@suse.de>
18144
18145         PR tree-optimization/42944
18146         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
18147         test for aliasing with errno.
18148
18149 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
18150
18151         PR middle-end/42233
18152         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
18153         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
18154         * dojump.c: Include output.h.
18155         (inv): New inline function.
18156         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
18157         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
18158         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
18159         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
18160         argument, pass it down to other calls.
18161         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
18162         add REG_BR_PROB note to the conditional jump.
18163         * cfgexpand.c (add_reg_br_prob_note): Removed.
18164         (expand_gimple_cond): Don't call it, add the probability
18165         as last argument to jumpif_1/jumpifnot_1.
18166         * Makefile.in (dojump.o): Depend on output.h.
18167         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
18168         callers.
18169         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
18170         * stmt.c (do_jump_if_equal): Likewise.
18171         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
18172         * loop-unswitch.c (compare_and_jump_seq): Likewise.
18173         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
18174         Likewise.
18175         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
18176         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
18177         jumpifnot_1 callers.
18178         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
18179         callers.
18180         (store_expr): Adjust jumpifnot caller.
18181         (store_constructor): Adjust jumpif caller.
18182
18183         PR middle-end/42233
18184         * gimplify.c (gimple_boolify): For __builtin_expect call
18185         gimple_boolify also on its first argument.
18186
18187 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
18188
18189         * configure.ac (gnu-unique-object): Wrap regexps using [] in
18190         changequote block.
18191         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
18192         * configure: Regenerated.
18193
18194 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18195
18196         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
18197         lang_hooks.types_compatible_p instead of comptypes.
18198
18199 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18200
18201         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
18202         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
18203         if __prefer_thumb__ is defined.
18204
18205 2010-02-18  Martin Jambor  <mjambor@suse.cz>
18206
18207         PR tree-optimization/43066
18208         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
18209         array with zero-sized element type.
18210
18211 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
18212
18213         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
18214         rtx, allocate struct var_loc_node here and return it to the
18215         caller, and only if it is actually needed.
18216         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
18217         move it earlier and return immediately if it returns NULL.
18218
18219 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
18220
18221         * config/sparc/gas.h: New file.  Restore
18222         TARGET_ASM_NAMED_SECTION to its ELF default.
18223         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
18224         check !HAVE_GNU_AS.
18225         * config/sparc/sparc.c (sparc_elf_asm_named_section):
18226         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
18227         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
18228         after sparc/sysv4.h.
18229
18230 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
18231
18232         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
18233
18234 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
18235
18236         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
18237         patterns from predicated pattern.
18238
18239 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
18240
18241         PR target/43103
18242         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
18243         for insn mnemonic suffix.
18244
18245 2010-02-17  Richard Guenther  <rguenther@suse.de>
18246
18247         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
18248         to loop PHI nodes.
18249
18250 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
18251
18252         PR debug/42918
18253         * caller-save.c (save_call_clobbered_regs): If BB ends with
18254         a DEBUG_INSN, move any notes in between last real insn and the last
18255         DEBUG_INSN after the last DEBUG_INSN.
18256
18257 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
18258
18259         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
18260         Fix return type.  Fix argument type.  Explain meaning of return value.
18261
18262 2010-02-16  Richard Guenther  <rguenther@suse.de>
18263
18264         PR tree-optimization/41043
18265         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
18266         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
18267         statements ...
18268         (vrp_visit_phi_node): ... but only for loop PHI nodes.
18269
18270 2010-02-16  Ira Rosen  <irar@il.ibm.com>
18271
18272         PR tree-optimization/43074
18273         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
18274         * tree-vect-loop.c (vect_analyze_loop_operations): Add
18275         vectorizable cycles in hybrid SLP check.
18276         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
18277
18278 2010-02-16  Richard Guenther  <rguenther@suse.de>
18279
18280         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
18281         (true_dependence): If memrefs_conflict_p computes must-alias
18282         trust it.  Move TBAA check after offset-based disambiguation.
18283         (canon_true_dependence): Likewise.
18284
18285 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
18286
18287         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
18288         * doc/invoke.texi: Document it.
18289         * var-tracking.c: Include toplev.h and params.h.
18290         (vt_find_locations): Return bool indicating success.  Compute
18291         hash sizes unconditionally.  Check new parameter, report.
18292         (variable_tracking_main_1): Check vt_find_locations results and
18293         retry.  Renamed from...
18294         (variable_tracking_main): ... this.  New wrapper to preserve
18295         flag_var_tracking_assignments.
18296         * Makefile.in (var-tracking.o): Adjust dependencies.
18297
18298 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
18299             Jakub Jelinek  <jakub@redhat.com>
18300
18301         PR target/42854
18302         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
18303         if weak_import attribute is present.
18304         * config/darwin.c (machopic_select_section): Likewise.
18305
18306 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
18307
18308         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
18309         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
18310         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
18311         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
18312
18313         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
18314         types.
18315
18316         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18317         Fix argument types.
18318
18319         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
18320         Rewrite text to refer to the names.
18321
18322 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
18323
18324         * config/i386/i386-builtin-types.def
18325         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
18326         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
18327         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
18328         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
18329         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
18330         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
18331         IX86_BUILTIN_VPERMIL2PS256.
18332         (MULTI_ARG_4_DF2_DI_I): Defined.
18333         (MULTI_ARG_4_DF2_DI_I1): Defined.
18334         (MULTI_ARG_4_SF2_SI_I): Defined.
18335         (MULTI_ARG_4_SF2_SI_I1): Defined.
18336         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
18337         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
18338         __builtin_ia32_vpermil2ps256.
18339         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
18340         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
18341         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
18342         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
18343         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
18344         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
18345         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
18346         CODE_FOR_xop_vpermil2v8sf3.
18347         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
18348         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
18349         * config/i386/xopintrin.h (_mm_permute2_pd): New.
18350         (_mm256_permute2_pd): New.
18351         (_mm_permute2_ps): New.
18352         (_mm256_permute2_ps): New.
18353
18354 2010-02-15  Nick Clifton  <nickc@redhat.com>
18355
18356         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
18357         boolean parameters.  Use emit_jump_insn when emitting a pop
18358         instruction containing a return insn.
18359         (push): Use 'true' rather than '1' as second parameter to F.
18360         (h8300_expand_prologue): Likewise.
18361         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
18362         (h8300_expand_epilogue): Likewise.
18363
18364 2010-02-15  Richard Guenther  <rguenther@suse.de>
18365
18366         PR middle-end/43068
18367         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
18368         if that is zero.
18369
18370 2010-02-15  Nick Clifton  <nickc@redhat.com>
18371
18372         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
18373         delta.
18374
18375 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
18376
18377         * intl.c (fake_ngettext): New function.
18378         * intl.h (fake_ngettext): Declare.
18379         (ngettext): Define macro.
18380         * collect2.c (notice_translated): New function.
18381         (main): Use notice_translated and ngettext.
18382         * collect2.h (notice_translated): Declare.
18383
18384 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
18385
18386         * reorg.c (delete_computation): Comment fixes.
18387         * caller-save.c (setup_save_areas): Idem.
18388         * sel-sched-dump.c (dump_lv_set): Idem.
18389         * rtl.def: Idem.
18390
18391 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18392
18393         * config/s390/s390.c (s390_sched_init): New function.
18394         (TARGET_SCHED_INIT): Target hook defined.
18395
18396 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
18397             Jack Howarth  <howarth@bromo.med.uc.edu>
18398             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
18399
18400         PR target/42982
18401         Partial revert of unintended change in fix for PR41605.
18402         * config/darwin.h: Fix typo.
18403         * config/darwin9.h: Same.
18404
18405 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
18406
18407         * c-pch.c (pch_init): Clear v.
18408
18409 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
18410
18411         PR middle-end/42930
18412         * graphite-scop-detection.c (graphite_can_represent_scev): Call
18413         graphite_can_represent_init for MULT_EXPR.
18414
18415 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
18416
18417         PR middle-end/42914
18418         PR middle-end/42530
18419         * graphite-sese-to-poly.c (remove_phi): New.
18420         (translate_scalar_reduction_to_array): Call remove_phi.
18421
18422 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
18423
18424         PR middle-end/42771
18425         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
18426         * graphite-clast-to-gimple.h (gloog): Update declaration.
18427         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
18428         * graphite-poly.h (struct poly_bb): Add missing comments.
18429         (struct scop): Add poly_scop_p field.
18430         (POLY_SCOP_P): New.
18431         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
18432         * graphite.c (graphite_transform_loops): Build the polyhedral
18433         representation for each scop before code generation.
18434         * sese.c (rename_variables_in_operand): Removed.
18435         (rename_variables_in_expr): Return the renamed expression.
18436         (rename_sese_parameters): New.
18437         * sese.h (rename_sese_parameters): Declared.
18438
18439 2010-02-11  Richard Guenther  <rguenther@suse.de>
18440
18441         PR tree-optimization/42998
18442         * tree-ssa-pre.c (create_expression_by_pieces): Treat
18443         POINTER_PLUS_EXPR properly.
18444
18445 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
18446             Changpeng Fang  <changpeng.fang@amd.com>
18447
18448         PR middle-end/40886
18449         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
18450         the cost of an IV candidate when the IV is used in a test against zero.
18451
18452         * gcc.dg/tree-ssa/ivopts-3.c: New.
18453
18454 2010-02-11  Richard Guenther  <rguenther@suse.de>
18455
18456         PR lto/41664
18457         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
18458         pointer-vs-decl case by swapping refs.  Handle some cases
18459         of pointer-vs-decl disambiguations more conservatively.
18460         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
18461         to false after expanding.
18462
18463 2010-02-11  Richard Guenther  <rguenther@suse.de>
18464
18465         PR driver/43021
18466         * gcc.c (process_command): Handle LTO file@offset case more
18467         appropriately.
18468
18469 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
18470
18471         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
18472         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
18473         of DEBUG_INSNs.
18474         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
18475
18476         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
18477         if MEM's mode size isn't DWARF2_ADDR_SIZE.
18478         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
18479         Optimize eq/ne comparisons when both arguments are known to be
18480         zero-extended.
18481         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
18482         Don't mask operands unnecessarily if they are known to be already
18483         zero-extended.
18484
18485 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
18486
18487         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
18488         instead of loop.
18489
18490 2010-02-10  Richard Guenther  <rguenther@suse.de>
18491
18492         PR tree-optimization/43017
18493         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
18494         for wrapping signed arithmetic.
18495
18496 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
18497
18498         PR debug/43010
18499         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
18500         if no debug info should be emitted for it.
18501
18502 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
18503
18504         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
18505         note when flag_exceptions is set.
18506
18507 2010-02-10  Duncan Sands  <baldrick@free.fr>
18508
18509         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
18510
18511 2010-02-10  Richard Guenther  <rguenther@suse.de>
18512
18513         PR c/43007
18514         * tree.c (get_unwidened): Handle constants.
18515         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
18516
18517 2010-02-10  Martin Jambor  <mjambor@suse.cz>
18518
18519         PR lto/42985
18520         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
18521         check for variable argument counts independently.
18522
18523 2010-02-10  Christian Bruel  <christian.bruel@st.com>
18524
18525         PR target/42841
18526         * config/sh/sh.c (find_barrier): Increase length for non delayed
18527         conditional branches.
18528
18529 2010-02-10  Christian Bruel  <christian.bruel@st.com>
18530
18531         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
18532
18533 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
18534
18535         * builtins.c (set_builtin_user_assembler_name): Also handle
18536         ffs if int is smaller than word.
18537
18538 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
18539
18540         PR middle-end/42973
18541         * ira-conflicts.c (get_dup): Remove.
18542         (process_reg_shuffles): Add new parameter.  Use it as an
18543         additional guard for copy generation.
18544         (add_insn_allocno_copies): Rewrite.
18545
18546 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
18547
18548         * common.opt (fsched2-use-traces): Preserved for backward
18549         compatibility.
18550         * doc/invoke.texi: Remove the documentation about option
18551         -fsched2-use-traces.
18552         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
18553         flag_sched2_use_traces.
18554         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
18555         the backward compatibility flag section.
18556
18557 2010-02-09  Richard Guenther  <rguenther@suse.de>
18558
18559         PR tree-optimization/43008
18560         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
18561         make HEAP variables initialized from global memory if they
18562         are not known builtin functions.
18563         (find_func_aliases): Adjust.
18564
18565 2010-02-09  Richard Guenther  <rguenther@suse.de>
18566
18567         PR tree-optimization/43000
18568         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
18569         arithmetic manually.
18570
18571 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
18572
18573         PR tree-optimization/42931
18574         * tree-loop-linear.c (try_interchange_loops): Don't call
18575         double_int_mul if estimated_loop_iterations failed.
18576
18577 2010-02-08  Martin Jambor  <mjambor@suse.cz>
18578
18579         PR middle-end/42898
18580         * tree-sra.c (build_accesses_from_assign): Do not mark in
18581         should_scalarize_away_bitmap if stmt has volatile ops.
18582         (sra_modify_assign): Do not process assigns piecemeal if if stmt
18583         has volatile ops.
18584
18585 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
18586
18587         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
18588
18589 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
18590
18591         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
18592         before the pattern.
18593
18594 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
18595
18596         PR middle-end/42946
18597         * df-core.c (df_finish_pass): Change type of saved_flags to int.
18598
18599 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
18600
18601         PR middle-end/42988
18602         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
18603         to unknown_dependence.
18604         (graphite_legal_transform_dr): Handle the unknown_dependence.
18605         (graphite_carried_dependence_level_k): Same.
18606
18607 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
18608
18609         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
18610
18611 2010-02-07  Richard Guenther  <rguenther@suse.de>
18612
18613         PR middle-end/42991
18614         * expr.c (get_inner_reference): Always initialize *pbitsize.
18615
18616 2010-02-07  Richard Guenther  <rguenther@suse.de>
18617
18618         PR middle-end/42956
18619         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
18620         new ARRAY_REFs on variable size element or minimal index arrays.
18621         Complete.
18622         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
18623         gimple_fold_indirect_ref.
18624
18625 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
18626
18627         PR target/42957
18628         * arm.c (arm_override_options): Just return if the user has specified
18629         an invalid fpu name.
18630
18631 2010-02-03  Jason Merrill  <jason@redhat.com>
18632
18633         PR c++/42870
18634         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
18635         i386_pe_maybe_record_exported_symbol.
18636
18637 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
18638
18639         PR target/42924
18640         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
18641         (pa_delegitimize_address): New function.
18642
18643 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
18644
18645         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
18646         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
18647
18648 2010-02-05  Richard Guenther  <rguenther@suse.de>
18649
18650         PR lto/42762
18651         * lto-streamer-in.c (get_resolution): Deal with references
18652         to undefined functions.
18653
18654 2010-02-05  Richard Guenther  <rguenther@suse.de>
18655
18656         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
18657         (fold_const_aggregate_ref): Likewise.
18658         (ccp_fold_stmt): Substitute loads.
18659         (maybe_fold_reference): Verify types before substituting.
18660         Unshare properly.
18661         (fold_gimple_assign): Unshare properly.
18662         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
18663
18664 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
18665
18666         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
18667         for rs6000_gen_cell_microcode.
18668
18669 2010-02-04  Richard Guenther  <rguenther@suse.de>
18670
18671         PR rtl-optimization/42952
18672         * dse.c (const_or_frame_p): Remove MEM handling.
18673
18674 2010-02-04  Nick Clifton  <nickc@redhat.com>
18675
18676         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
18677         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
18678         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
18679         (mn10300_asm_output_mi_thunk): New function.
18680         (mn10300_can_output_mu_thunk): New function.
18681         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
18682         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
18683         (FUNCTION_ARG): Delete incorrect comment.
18684
18685 2010-02-03  Jason Merrill  <jason@redhat.com>
18686
18687         PR c++/40138
18688         * fold-const.c (operand_equal_p): Handle erroneous types.
18689
18690 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
18691
18692         * config/h8300/h8300.md (can_delay): Fix attibute condition.
18693
18694 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
18695
18696         PR rtl-optimization/42941
18697         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
18698         of xmalloc.
18699
18700 2010-02-03  Jason Merrill  <jason@redhat.com>
18701
18702         PR c++/35652
18703         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
18704
18705 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
18706
18707         PR debug/42896
18708         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
18709         (cselib_reset_table): Renamed from...
18710         (cselib_reset_table_with_next_value): ... this.
18711         (cselib_get_next_uid): Renamed from...
18712         (cselib_get_next_unknown_value): ... this.
18713         * cselib.c (next_uid): Renamed from...
18714         (next_unknown_value): ... this.
18715         (cselib_clear_table): Adjust.
18716         (cselib_reset_table): Adjust.  Renamed from...
18717         (cselib_reset_table_with_next_value): ... this.
18718         (cselib_get_next_uid): Adjust.  Renamed from...
18719         (cselib_get_next_unknown_value): ... this.
18720         (get_value_hash): Use hash.
18721         (cselib_hash_rtx): Likewise.
18722         (new_cselib_val): Adjust.  Set and dump uid.
18723         (cselib_lookup_mem): Pass next_uid as hash.
18724         (cselib_subst_to_values): Likewise.
18725         (cselib_log_lookup): Dump uid.
18726         (cselib_lookup): Pass next_uid as hash.  Adjust.
18727         (cselib_process_insn): Adjust.
18728         (cselib_init): Initialize next_uid.
18729         (cselib_finish): Adjust.
18730         (dump_cselib_table): Likewise.
18731         * dse.c (canon_address): Dump value uid.
18732         * print-rtl.c (print_rtx): Print value uid.
18733         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
18734         (dvuid): New type.
18735         (dv_uid): New function, sort of renamed from...
18736         (dv_htab_hash): ... this, reimplemented in terms of it and...
18737         (dv_uid2hash): ... this.  New.
18738         (variable_htab_eq): Drop excess assertions.
18739         (tie_break_pointers): Removed.
18740         (canon_value_cmp): Compare uids.
18741         (variable_post_merge_New_vals): Print uids.
18742         (vt_add_function_parameters): Adjust.
18743         (vt_initialize): Reset table.  Adjust.
18744
18745 2010-02-03  Richard Guenther  <rguenther@suse.de>
18746
18747         PR tree-optimization/42944
18748         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
18749         (call_may_clobber_ref_p_1): Likewise.  Properly handle
18750         malloc and calloc clobbering errno.
18751
18752 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
18753
18754         * doc/invoke.texi: Fix name of sched1 dump.
18755
18756         * opts.c (decode_options): Set flag_tree_switch_conversion
18757         only conditionally on optimize >= 2.
18758
18759         * gcse.c: Assorted comment fixes in pass description.
18760
18761 2010-02-03  Anthony Green  <green@moxielogic.com>
18762
18763         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
18764         nop padding in order to maintain alignment of storage location of
18765         target function address.
18766         (moxie_trampoline_init): Store target function address at newly
18767         aligned location.
18768         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
18769         to 32.
18770         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
18771
18772 2010-02-03  Richard Guenther  <rguenther@suse.de>
18773
18774         PR middle-end/42927
18775         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
18776
18777 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18778
18779         * config.gcc: Reenable check for obsolete targets.
18780         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
18781         mips-sgi-irix6.[0-4]*.
18782
18783 2010-02-02  Nick Clifton  <nickc@redhat.com>
18784
18785         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
18786         constant size of 4 as being the same as 0.
18787         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
18788         can take values in the range 0..4.
18789
18790 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
18791
18792         PR java/41991
18793         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
18794         as _darwin10_Unwind_FindEnclosingFunction().
18795         * libgcc-libsystem.ver: New.
18796
18797 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
18798
18799         PR target/41399
18800         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
18801         implicitly set registers.
18802
18803 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
18804
18805         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
18806         (arm_override_options): Allow automatic selection of the thread
18807         pointer register if thumb2.
18808         (legitimize_pic_address): Improve code sequences for Thumb2.
18809         (arm_call_tls_get_addr): Likewise.
18810         (legitimize_tls_address): Likewise.
18811         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
18812         (pic_load_addr_32bit): ... this.  New named pattern.
18813         * thumb2.md (pic_load_addr_thumb2): Delete.
18814         (pic_load_dot_plus_four): Delete.
18815         (tls_load_dot_plus_four): New named pattern.
18816
18817 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18818
18819         PR libgomp/29986
18820         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
18821         Document fix for TLS bug.
18822
18823 2010-01-31  Richard Guenther  <rguenther@suse.de>
18824
18825         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
18826         conservatively correct.
18827
18828 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18829
18830         PR target/42850
18831         Revert:
18832         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18833
18834         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
18835
18836 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18837
18838         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
18839
18840 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
18841
18842         * config.gcc: Adjust order of makefile fragments for mingw targets.
18843
18844 2010-01-31  Richard Guenther  <rguenther@suse.de>
18845
18846         PR middle-end/42898
18847         * gimplify.c (gimplify_init_constructor): For volatile LHS
18848         initialize a temporary.
18849
18850 2010-01-31  Matthias Klose  <doko@ubuntu.com>
18851
18852         * configure.ac: Fix __stack_chk_fail check for cross builds configured
18853         --with-headers
18854         * configure: Regenerate.
18855
18856 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
18857
18858         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
18859         the same alias set and their sizes different constantness.
18860         (aliasing_component_refs_p): Revert 2009-10-24 change.
18861
18862 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18863
18864         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
18865         unused.
18866
18867 2010-01-29  Richard Guenther  <rguenther@suse.de>
18868
18869         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
18870         Assert we successfully updated the call.
18871
18872 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
18873
18874         PR rtl-optimization/42889
18875         * df.h (df_set_bb_dirty_nonlr): New prototype.
18876         * df-core.c (df_set_bb_dirty_nonlr): New function.
18877         * df-scan.c (df_insn_rescan): Call it instead of
18878         df_set_bb_dirty for DEBUG_INSNs.
18879
18880 2010-01-29  Richard Guenther  <rguenther@suse.de>
18881
18882         PR middle-end/37448
18883         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
18884         quadratic behavior in most cases.
18885
18886 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
18887
18888         PR target/42891
18889         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
18890         in the call to gen_x86_movsicc_0_m1.
18891
18892 2010-01-28  Richard Guenther  <rguenther@suse.de>
18893
18894         PR tree-optimization/42871
18895         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
18896
18897 2010-01-28  Richard Guenther  <rguenther@suse.de>
18898
18899         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
18900         into call arguments.
18901
18902 2010-01-28  Richard Guenther  <rguenther@suse.de>
18903
18904         PR middle-end/42883
18905         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
18906         the forwarder if the destination is an EH landing pad.
18907
18908 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
18909
18910         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
18911         block list passed to gimple_duplicate_sese_tail.
18912         (parallelize_loops): Avoid parallelization when the function
18913         has_nonlocal_label.
18914         Avoid parallelization when the preheader is IRREDUCIBLE.
18915         Try to optimize when estimated_loop_iterations_int is unresolved.
18916         Add the loop's location to the dump file.
18917         * tree-cfg.c (add_phi_args_after_redirect): Remove.
18918         (gimple_duplicate_sese_tail): Remove the check for the latch.
18919         Redirect nexits to the exit block.
18920         Remove handling of the incoming edges to the latch.
18921         Redirect the backedge from the copied latch to the exit bb.
18922
18923 2010-01-28  Michael Matz  <matz@suse.de>
18924
18925         PR target/42881
18926         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
18927         Wrap force_reg into a sequence, emit it before user.
18928
18929 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
18930
18931         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
18932         (arm_rev): New.
18933         (arm_legacy_rev): Likewise.
18934         (thumb_legacy_rev): Likewise.
18935
18936 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
18937
18938         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
18939         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
18940         on MEM's address failed, try avoid_constant_pool_reference and
18941         recurse if it returned something different.
18942         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
18943         address, try avoid_constant_pool_reference and recurse if it
18944         returned something different.
18945         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
18946         address and avoid_constant_pool_reference returned something
18947         different, don't set have_address.
18948
18949 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
18950
18951         PR debug/42861
18952         * var-tracking.c (val_store): Add modified argument, obey it.
18953         Adjust callers.
18954         (count_uses): Move down logging of main.
18955         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
18956         don't need resolution.
18957         (emit_notes_in_bb): Likewise.
18958
18959 2010-01-27  Richard Guenther  <rguenther@suse.de>
18960
18961         PR middle-end/42878
18962         * tree-inline.c (remap_decl): Delay remapping of SSA name
18963         default definitions until we need them.
18964
18965 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
18966
18967         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
18968         (rs6000_delegitimize_address): New function.
18969
18970         * config/s390/s390.c (s390_delegitimize_address): Call
18971         delegitimize_mem_from_attrs.
18972
18973         PR middle-end/42874
18974         * tree-inline.c (cannot_copy_type_1): Removed.
18975         (copy_forbidden): Don't forbid copying of functions containing
18976         records/unions with variable length fields.
18977
18978 2010-01-27  Christian Bruel  <christian.bruel@st.com>
18979
18980         Revert:
18981         PR target/42841
18982         * config/sh/sh.c (find_barrier): Increase length for non delayed
18983         conditional branches.
18984
18985 2010-01-27  Matthias Klose  <doko@ubuntu.com>
18986
18987         * configure.ac (gnu-unique-object): Fix ldd version check.
18988         * configure: Regenerate.
18989
18990 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18991
18992         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
18993         HAVE_GNU_AS value.
18994         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
18995         Test for HAVE_GNU_AS value.
18996
18997 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18998
18999         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
19000         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
19001         INT64_TYPE): Define.
19002         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
19003         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
19004         INT_LEAST64_TYPE): Define.
19005         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
19006         UINT_LEAST64_TYPE): Define.
19007         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
19008         INT_FAST64_TYPE): Define.
19009         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
19010         UINT_FAST64_TYPE): Define.
19011         (INTMAX_TYPE, UINTMAX_TYPE): Define.
19012         (INTPTR_TYPE, UINTPTR_TYPE): Define.
19013         (SIG_ATOMIC_TYPE): Define.
19014
19015 2010-01-26  Richard Guenther  <rguenther@suse.de>
19016
19017         * df-scan.c (df_scan_set_bb_info): Remove assert.
19018         (df_insn_rescan_debug_internal): Merge asserts.
19019         (df_install_ref): Likewise.
19020         (df_mark_reg): Use bitmap_set_range.
19021         (df_hard_reg_used_p): Remove assert.
19022         (df_hard_reg_used_count): Likewise.
19023
19024 2010-01-26  Richard Guenther  <rguenther@suse.de>
19025
19026         PR rtl-optimization/42685
19027         * web.c (web_main): Ignore DEBUG_INSNs.
19028
19029 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
19030
19031         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
19032
19033         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
19034         Fix types of fndecl and arglist parameters.
19035
19036 2010-01-26  Richard Guenther  <rguenther@suse.de>
19037
19038         PR middle-end/42806
19039         * tree-eh.c (unsplit_eh): Skip debug insns.
19040
19041 2010-01-26  Richard Guenther  <rguenther@suse.de>
19042
19043         PR tree-optimization/42250
19044         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
19045
19046 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
19047
19048         PR fortran/42866
19049         * omp-low.c (expand_omp_sections): Only use single_pred if
19050         l2_bb is single_pred_p.
19051
19052 2010-01-25  Christian Bruel  <christian.bruel@st.com>
19053
19054         PR target/42841
19055         * config/sh/sh.c (find_barrier): Increase length for non delayed
19056         conditional branches.
19057         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
19058
19059 2010-01-24  David S. Miller  <davem@davemloft.net>
19060
19061         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
19062         define if not using GAS.
19063         * config/sparc/sparc.c (sparc_elf_asm_named_section):
19064         Likewise.  Delete SECTION_MERGE code, which is only applicable
19065         when using GAS.
19066
19067 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
19068
19069         PR c++/42748
19070         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
19071         mangling of va_list in system headers.
19072
19073 2010-01-23  Toon Moene  <toon@moene.org>
19074
19075         * tree-predcom.c (combine_chains): Return NULL, not false.
19076
19077 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
19078
19079         * tree-loop-distribution.c (distribute_loop): Fix declaration and
19080         initialization of variable res to agree with return type.
19081
19082 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
19083
19084         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
19085         * tree-sra.c: Add include of expr.h.
19086
19087 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
19088
19089         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
19090         insert the debug stmt on the single non-EH edge from the stmt.
19091
19092 2010-01-22  Richard Henderson  <rth@redhat.com>
19093
19094         PR tree-opt/42833
19095         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
19096         the RHS until after generate_subtree_copies has insertted its
19097         code before the current statement.
19098
19099 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
19100
19101         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
19102
19103         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
19104
19105 2010-01-21  Martin Jambor  <mjambor@suse.cz>
19106
19107         PR tree-optimization/42585
19108         * tree-sra.c (struct access): New field grp_total_scalarization.
19109         (dump_access): Dump the new field.
19110         (should_scalarize_away_bitmap): New variable.
19111         (cannot_scalarize_away_bitmap): Likewise.
19112         (sra_initialize): Allocate new bitmaps.
19113         (sra_deinitialize): Free new bitmaps.
19114         (create_access_1): New function.
19115         (create_access): Parts moved to create_access_1.
19116         (type_consists_of_records_p): New function.
19117         (completely_scalarize_record): Likewise.
19118         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
19119         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
19120         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
19121         access.
19122         (analyze_all_variable_accesses): Completely scalarize small eligible
19123         records.
19124
19125 2010-01-21  Martin Jambor  <mjambor@suse.cz>
19126
19127         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
19128
19129 2010-01-21  Andrew Haley  <aph@redhat.com>
19130
19131         * gcc.c (process_command): Move lang_specific_driver before
19132         setting cc_libexec_prefix.
19133
19134 2010-01-21  Richard Guenther  <rguenther@suse.de>
19135
19136         PR middle-end/19988
19137         * fold-const.c (negate_expr_p): Pretend only negative
19138         real constants are easily negatable.
19139
19140 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
19141             Jason Merrill  <jason@redhat.com>
19142
19143         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
19144         (TYPE_TRANSPARENT_AGGR): this, for union and record.
19145         * calls.c (initialize argument_information): Handle it.
19146         * c-common.c (handle_transparent_union_attribute): Use new name.
19147         * c-decl.c (finish_struct): Ditto.
19148         * c-typeck.c (type_lists_compatible_p): Ditto.
19149         (convert_for_assignment): Use new name and also handle record.
19150         * function.c (aggregate_value_p): Handle it.
19151         (pass_by_reference): Ditto.
19152         (assign_parm_data_types): Ditto.
19153         * print-tree.c (print_node): Ditto.
19154         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
19155         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
19156         * tree.c (first_field): New fn.
19157
19158 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
19159
19160         PR target/42818
19161         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
19162         even when linking statically, for now.
19163
19164 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
19165
19166         PR debug/42715
19167         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
19168         without a cselib val.
19169         (count_uses): Accept MO_VAL_SET with no val on stores.
19170         (add_stores): Likewise.
19171
19172 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
19173
19174         * var-tracking.c (check_value_val): Add a compile time assertion.
19175         (dv_is_decl_p): Simplify.
19176         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
19177         gcc_assert if ENABLE_CHECKING.
19178
19179 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
19180
19181         PR debug/42782
19182         * var-tracking.c: Include tree-flow.h.
19183         (mem_dies_at_call): New.
19184         (dataflow_set_preserve_mem_locs): Use it.
19185         (dataflow_set_remove_mem_locs): Likewise.
19186         (dump_var): Renamed from dump_variable.  Adjust all callers.
19187         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
19188         * Makefile.in (var-tracking.o): Adjust deps.
19189
19190 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
19191
19192         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
19193
19194 2010-01-20  Richard Guenther  <rguenther@suse.de>
19195
19196         PR tree-optimization/42717
19197         * tree-ssa-dce.c (get_live_post_dom): Remove.
19198         (forward_edge_to_pdom): Take an arbitrary edge to copy
19199         degenerate PHI args from.
19200         (remove_dead_stmt): Use the first post-dominator even if it
19201         does not contain live statements as redirection destination.
19202
19203 2010-01-20  Richard Guenther  <rguenther@suse.de>
19204
19205         * tree-inline.c (estimate_num_insns): Handle EH builtins.
19206
19207 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
19208
19209         * sel-sched.c (create_speculation_check): Remove set but not used
19210         variable twin.
19211         (try_transformation_cache): Remove set but not used variable ds.
19212         (calculate_privileged_insns): Remove set but not used variables
19213         cur_insn and min_spec_insn.
19214         (find_best_expr): Remove set but not used variable avail_n.
19215         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
19216         variable e.
19217         * cgraphunit.c (assemble_thunk): Remove set but not used variable
19218         false_label.
19219         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
19220         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
19221         new_scop_exit_edge.
19222
19223 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
19224
19225         PR bootstrap/42786
19226         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
19227         cpu types.  Add support for *-sse3 cpu types.
19228         (x86_64-*-*): Ditto.
19229
19230 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
19231
19232         PR middle-end/42803
19233         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
19234         argument, call initializer_constant_valid_p_1 instead of
19235         initializer_constant_valid_p, pass CACHE to it, return NULL
19236         immediately if first call returns NULL.
19237         (initializer_constant_valid_p_1): New function.
19238         (initializer_constant_valid_p): Use it.
19239
19240 2010-01-20  Thomas Quinot  <quinot@adacore.com>
19241
19242         * tree.def (PLACEHOLDER_EXPR): Fix comment.
19243
19244 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
19245
19246         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
19247         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
19248         (loc_list_from_tree): Don't handle unsigned division.  Handle
19249         signed modulo using DW_OP_{over,over,div,mul,minus}.
19250         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
19251         modulo instead of signed.
19252
19253 2010-01-20  DJ Delorie  <dj@redhat.com>
19254
19255         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
19256         (Fpa): Pass it
19257         (h8300_emit_stack_adjustment): Propogate it.
19258         (push): Pass it.
19259         (h8300_expand_prologue): Likewise.
19260         (h8300_expand_epilogue): Likewise.
19261
19262 2010-01-19  Michael Matz  <matz@suse.de>
19263
19264         PR tree-optimization/41783
19265         * tree-data-ref.c (toplevel): Include flags.h.
19266         (dump_data_dependence_relation):  Also dump the inputs if the
19267         result will be unknown.
19268         (split_constant_offset_1): Look through some conversions.
19269         * tree-predcom.c (determine_roots_comp): Restart a new chain if
19270         the offset from last element is too large.
19271         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
19272         (reassociate_to_the_same_stmt): Handle vector registers.
19273         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
19274         (e.g. conversions).
19275         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
19276         wide_prolog_niters argument, emit widening instructions.
19277         (vect_do_peeling_for_alignment): Adjust caller, use widened
19278         variant of the iteration cound.
19279         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
19280
19281 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19282
19283         PR target/38697
19284         * config/arm/neon-testgen.m (emit_automatics): New parameter
19285         features. Adjust for Fixed_return_reg feature.
19286         (test_intrinsic): Call emit_automatics with new feature.
19287         * config/arm/neon.ml: Update copyright years.
19288         (features): New Fixed_return_reg feature.
19289         (ops): Update feature for Vget_low.
19290
19291 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
19292
19293         PR tree-optimization/42719
19294         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
19295         stmt uses.
19296
19297         PR debug/42728
19298         * fwprop.c (all_uses_available_at): Return false if def_set dest
19299         is a REG that is used in def_insn.
19300
19301 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
19302
19303         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
19304
19305         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
19306         Add argument names.
19307
19308         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
19309
19310         * target.h (struct gcc_target) <secondary_reload>: Change type
19311         of last argument to secondary_reload_info *.
19312
19313 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
19314
19315         PR target/42774
19316         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
19317         memory references with unaligned offsets.  Remove CQImode handling.
19318         (unaligned_memory_operand): Return 1 for memory references with
19319         unaligned offsets.  Remove CQImode handling.
19320
19321 2010-01-18  Richard Guenther  <rguenther@suse.de>
19322
19323         PR middle-end/39954
19324         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
19325         builtin calls.
19326
19327 2010-01-18  Richard Guenther  <rguenther@suse.de>
19328
19329         PR tree-optimization/42781
19330         * tree-ssa-structalias.c (find_what_var_points_to): Skip
19331         restrict processing only if the original variable was artificial.
19332
19333 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
19334
19335         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
19336         find number of popped argument bytes.
19337
19338         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
19339         Fix the text that describes the return value for invalid insns.
19340
19341         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
19342
19343         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
19344         Clarify what 'cost of the -dependence' is.  Fix quoting.
19345
19346         * toplev.c (default_get_pch_validity): Rename argument to "sz".
19347         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
19348
19349 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
19350
19351         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19352         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
19353
19354 2010-01-17  Richard Guenther  <rguenther@suse.de>
19355
19356         PR middle-end/42248
19357         * function.c (split_complex_args): Take a VEC to modify.
19358         (assign_parms_augmented_arg_list): Build a VEC instead of
19359         a chain of PARM_DECLs.
19360         (assign_parms_unsplit_complex): Take a VEC of arguments.
19361         Do not fixup unmodified parms.
19362         (assign_parms): Deal with the VEC.
19363         (gimplify_parameters): Likewise.
19364
19365 2010-01-17  Richard Guenther  <rguenther@suse.de>
19366
19367         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
19368         node existence check.
19369         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
19370         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
19371         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
19372         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
19373         (gimple_execute_on_growing_pred): Likewise.
19374
19375 2010-01-17  Richard Guenther  <rguenther@suse.de>
19376
19377         PR tree-optimization/42773
19378         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
19379         (compute_antic_aux): Likewise.
19380         (compute_partial_antic_aux): Likewise.
19381
19382 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
19383
19384         PR debug/42767
19385         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
19386         and US_TRUNCATE.
19387
19388 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
19389
19390         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
19391         appearance.
19392
19393         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
19394         Fix markup for strict argument.
19395
19396         (TARGET_SCHED_REORDER2): Fix argument types.
19397
19398         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
19399         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
19400
19401         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
19402         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
19403
19404         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
19405         Add argument name.
19406
19407         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
19408         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
19409         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
19410         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
19411         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
19412
19413         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
19414
19415         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
19416
19417         (TARGET_ASM_RELOC_RW_MASK): Add return type.
19418         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
19419
19420         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
19421
19422         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
19423         Use prototype.
19424
19425         (TARGET_ASM_NAMED_SECTION): Fix argument list.
19426
19427         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
19428         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
19429
19430         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
19431
19432         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
19433
19434         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
19435         referring to it.  Fix language.
19436
19437         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
19438
19439         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
19440
19441         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
19442
19443         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
19444
19445         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
19446         '@var{stream}.  Remove stray 'and'.
19447
19448         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
19449
19450         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
19451
19452         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
19453
19454         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
19455         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
19456
19457         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
19458         Fix description of return value.
19459         Rename argument "sz" to "len."
19460
19461         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
19462         Clarify meaning of 'true' return value.
19463
19464         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
19465
19466         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
19467         rep_mode versus mode_rep.
19468
19469         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
19470
19471         (TARGET_BUILTIN_DECL): Fix name.
19472
19473         (TARGET_COMMUTATIVE_P): Fix type of first argument.
19474
19475         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
19476
19477         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
19478
19479         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
19480
19481         (TARGET_RELAXED_ORDERING): Use @deftypevr.
19482
19483         (TARGET_GET_DRAP_RTX): Note that this is a hook.
19484         Clarify language.
19485
19486         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
19487         Rename argument tm_fn to md_fn.
19488
19489         (TARGET_OPTION_PRINT): Fix argument list.
19490
19491 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
19492
19493         PR target/42664
19494         * config/i386/i386.c (ix86_fixup_binary_operands):
19495         Revert FMA4 fixup of operands.
19496
19497 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19498
19499         PR gcc/42525
19500         * Makefile.in (write_entries_to_file, install-plugin):
19501         Use \012 instead of \n with tr.
19502
19503 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
19504
19505         * configure.ac (HAVE_AS_REF): New C macro.
19506         * configure: Regenerate.
19507         * config.in: Likewise.
19508         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
19509         if HAVE_AS_REF.
19510         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
19511         if HAVE_AS_REF.
19512
19513 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
19514
19515         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
19516
19517         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
19518
19519         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
19520
19521         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
19522
19523         (TARGET_IN_SMALL_DATA_P): Fix argument type.
19524
19525         (TARGET_BINDS_LOCAL_P): Fix argument type.
19526
19527         (TARGET_ASM_FILE_END): Use prototype.
19528
19529         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
19530
19531         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
19532
19533         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
19534
19535         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
19536
19537         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
19538         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
19539
19540         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
19541         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
19542
19543         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
19544         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
19545         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
19546         (TARGET_ADDR_SPACE_CONVERT): Likewise.
19547
19548         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
19549
19550         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
19551
19552         (TARGET_INIT_BUILTINS): Use prototype.
19553
19554         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
19555         Put 'const char *' in braces.  Fix parameter types.
19556         (TARGET_INVALID_CONVERSION): Fix parameter types.
19557         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
19558         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
19559
19560         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
19561         Fix argument type.
19562
19563         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
19564
19565         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
19566
19567 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
19568
19569         * doc/tm.texi (TARGET_HELP): Fix return type.
19570
19571         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
19572         in braces.  Fix argument types.
19573
19574         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
19575
19576         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
19577
19578         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
19579
19580         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
19581         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
19582
19583         (TARGET_MANGLE_TYPE): Fix argument types.
19584
19585         (TARGET_IRA_COVER_CLASSES): Use prototype.
19586
19587         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
19588
19589         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
19590
19591         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
19592
19593         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
19594
19595         (TARGET_CALLEE_COPIES): Fix argument types.
19596
19597         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
19598
19599         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
19600
19601         (TARGET_FUNCTION_VALUE): Fix argument types.
19602
19603         (TARGET_RETURN_IN_MSB): Fix argument type.
19604
19605         (TARGET_RETURN_IN_MEMORY): Fix argument types.
19606
19607         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
19608
19609         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
19610
19611         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
19612         agree with return type.
19613
19614         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
19615
19616 2010-01-15  Jing Yu  <jingyu@google.com>
19617
19618         PR rtl-optimization/42691
19619         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
19620         a pseudo to a constant and are merged, and adjust comments.
19621
19622 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
19623
19624         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
19625
19626 2010-01-15  Richard Guenther  <rguenther@suse.de>
19627
19628         PR middle-end/42739
19629         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
19630         labels of computed or non-local gotos to the destination.
19631         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
19632         landing pad label is the first label.
19633
19634 2010-01-15  Richard Guenther  <rguenther@suse.de>
19635
19636         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
19637
19638 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19639
19640         PR target/42747
19641         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
19642         to allow generation of the xssqrtdp instruction on power7.
19643         (sqrtdf2_fpr): Ditto.
19644
19645 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
19646
19647         PR middle-end/42674
19648         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
19649         functions with noreturn attribute.
19650
19651         PR c++/42608
19652         * varasm.c (declare_weak): Add weak attribute to decl if it
19653         doesn't have one already.
19654         (assemble_external): Only add decls to weak_decls if they also
19655         have weak attribute.
19656
19657 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
19658
19659         * var-tracking.c (var_reg_delete): Don't delete the association
19660         between REGs and values or one-part variables if the register
19661         isn't clobbered.
19662
19663 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
19664
19665         PR debug/42657
19666         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
19667         because its first operand is a non-localized variable.
19668
19669 2010-01-14  Martin Jambor  <mjambor@suse.cz>
19670
19671         PR tree-optimization/42706
19672         * tree-sra.c (encountered_recursive_call): New variable.
19673         (encountered_unchangable_recursive_call): Likewise.
19674         (sra_initialize): Initialize both new variables.
19675         (callsite_has_enough_arguments_p): New function.
19676         (scan_function): Call decl and flags check only for IPA-SRA, check
19677         whether there is a recursive call and whether it has enough arguments.
19678         (all_callers_have_enough_arguments_p): New function.
19679         (convert_callers): Look for recursive calls only when
19680         encountered_recursive_call is set.
19681         (ipa_early_sra): Bail out either if
19682         !all_callers_have_enough_arguments_p or
19683         encountered_unchangable_recursive_call.
19684
19685 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19686
19687         * sel-sched.c: Add 2010 to copyright years.
19688         * sel-sched-ir.c: Likewise.
19689         * sel-sched-ir.h: Likewise.
19690
19691 2010-01-14  Martin Jambor  <mjambor@suse.cz>
19692
19693         PR tree-optimization/42714
19694         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
19695         constructors specially.
19696
19697 2010-01-14  Andi Kleen  <ak@linux.intel.com>
19698
19699         * config/i386/drivers-i386.c (detect_caches_intel):
19700         Add l2sizekb parameter and fill in.
19701         (host_detect_local_cpu): Add l2sizekb, fill in.
19702         Add Atom small cache heuristic.
19703
19704 2010-01-14  Andi Kleen  <ak@linux.intel.com>
19705
19706         * config/i386/drivers-i386.c (detect_caches_cpuid4):
19707         Add level3 parameter and fill in.
19708         (detect_caches_intel): Handle level3 cache.
19709
19710 2010-01-14  Andi Kleen  <ak@linux.intel.com>
19711
19712         * config/i386/drivers-i386.c (host_detect_local_cpu):
19713         Fix core duo detection.
19714
19715 2010-01-14  Andi Kleen  <ak@linux.intel.com>
19716
19717         * config/i386/drivers-i386.c (host_detect_local_cpu):
19718         Fix Atom detection.
19719
19720 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19721
19722         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
19723         (rs6000_variable_issue_1): this.  Use...
19724         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
19725
19726 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19727
19728         * sel-sched-ir.c (sel_restore_other_notes): Rename to
19729         sel_restore_notes.  Update all callers.  Call reemit_notes
19730         for all insns.
19731
19732 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19733
19734         PR rtl-optimization/42246
19735         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
19736         loops.
19737
19738 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19739
19740         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
19741         all successors is the same as number of successors in current region.
19742
19743 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19744
19745         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
19746         to rename is not separable.  Otherwise check that its LHS is not NULL.
19747
19748 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19749
19750         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
19751
19752 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19753
19754         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
19755         available registers when failed to discover LHS register class.
19756         Fix indentation.  Update comment.
19757
19758 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19759             Alexander Monakov  <amonakov@ispras.ru>
19760
19761         PR rtl-optimization/42389
19762         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
19763         to can_issue_more.
19764         (advance_state_on_fence): Likewise.
19765         (sel_target_adjust_priority): Print debug output only when
19766         sched_verbose >= 4, not 2.
19767         (get_expr_cost): Do not issue all unique insns on the next cycle.
19768         (fill_insns): Initialize can_issue_more from the value saved
19769         with the fence.
19770         * sel-sched-ir.c (flist_add): New parameter issue_more.
19771         Init FENCE_ISSUE_MORE with it.
19772         (merge_fences): Likewise.
19773         (init_fences): Update call to flist_add.
19774         (add_to_fences, add_clean_fence_to_fences)
19775         (add_dirty_fence_to_fences): Likewise.
19776         (move_fence_to_fences): Update call to merge_fences.
19777         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
19778         sched groups.
19779         * sel-sched-ir.h (struct _fence): New field issue_more.
19780         (FENCE_ISSUE_MORE): New accessor macro.
19781
19782 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19783
19784         PR rtl-optimization/42388
19785         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
19786         that have no predecessors nor successors.  Do not call move_bb_info
19787         for empty blocks outside of current region.
19788
19789 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19790
19791         PR rtl-optimization/42294
19792         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
19793         * sel-sched.c (move_exprs_to_boundary): Transitively add all
19794         originators' originators.
19795
19796 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
19797
19798         PR rtl-optimization/39453
19799         PR rtl-optimization/42246
19800         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
19801         for pipelining_p.
19802         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
19803
19804 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19805             Alexander Monakov  <amonakov@ispras.ru>
19806
19807         PR middle-end/42245
19808         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
19809         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
19810         argument.  Update all callers.
19811         (tidy_control_flow): ... and here.  Recompute topological order
19812         of basic blocks in region if necessary.
19813         (sel_redirect_edge_and_branch): Change return type.  Return true
19814         if topological order might have been invalidated.
19815         (purge_empty_blocks): Export and move from...
19816         * sel-sched.c (purge_empty_blocks): ... here.
19817         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
19818         (maybe_tidy_empty_bb): Delete prototype.
19819         (purge_empty_blocks): Declare.
19820
19821 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
19822
19823         PR rtl-optimization/42249
19824         * sel-sched.c (try_replace_dest_reg): When chosen register
19825         and original register is the same, do not bail out early, but
19826         still check all original insns for validity of replacing destination
19827         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
19828         in this case.
19829
19830 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
19831
19832         PR c/42721
19833         Port from no-undefined-overflow branch:
19834         2009-03-09  Richard Guenther  <rguenther@suse.de>
19835
19836         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
19837
19838 2010-01-14  Richard Guenther  <rguenther@suse.de>
19839
19840         PR lto/42665
19841         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
19842
19843 2010-01-14  Ira Rosen  <irar@il.ibm.com>
19844
19845         PR tree-optimization/42709
19846         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
19847         as scalar type in creation of constant vector operand.
19848
19849 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19850
19851         PR testsuite/42414
19852         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
19853         (check-parallel-%): Match `testsuite' directory component only
19854         at the end.
19855
19856 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
19857
19858         PR translation/39521
19859         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
19860         strings with _().
19861
19862 2010-01-13  Richard Guenther  <rguenther@suse.de>
19863
19864         PR tree-optimization/42730
19865         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
19866         offset zero.
19867
19868 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
19869
19870         PR target/pr42542
19871         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
19872         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
19873         them signed.
19874
19875 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
19876
19877         * config/bfin/libgcc-bfin.ver: Regenerate based on current
19878         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
19879         ___umulsi3_highpart.
19880
19881         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
19882         rather than schedule_insns if the pass is enabled.
19883
19884 2010-01-13  Martin Jambor  <mjambor@suse.cz>
19885
19886         PR tree-optimization/42704
19887         * tree-sra.c (sra_modify_assign): Do not delete assignments to
19888         SSA_NAMEs.
19889
19890 2010-01-13  Martin Jambor  <mjambor@suse.cz>
19891
19892         PR tree-optimization/42703
19893         * tree-sra.c (analyze_access_subtree): Check that we can build a
19894         reference to the original data within the aggregate.
19895
19896 2010-01-13  Richard Guenther  <rguenther@suse.de>
19897
19898         PR tree-optimization/42705
19899         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
19900
19901 2010-01-13  Richard Guenther  <rguenther@suse.de>
19902
19903         PR middle-end/42716
19904         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
19905
19906 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
19907
19908         PR debug/41371
19909         * var-tracking.c (values_to_unmark): New variable.
19910         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
19911         values_to_unmark vector.  Moved body to...
19912         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
19913         instead queue it into values_to_unmark vector.
19914         (vt_find_locations): Free values_to_unmark vector.
19915
19916 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
19917
19918         * config/s390/s390.c (override_options): Set
19919         default of max-pending-list-length to 256
19920
19921 2010-01-13  Richard Guenther  <rguenther@suse.de>
19922
19923         PR lto/42678
19924         * tree-pass.h (PROP_gimple_lcx): New.
19925         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
19926         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
19927         before the final cleanup_eh.
19928         (dump_properties): Dump PROP_gimple_lcx.
19929         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
19930         (tree_lower_complex_O0): Remove.
19931         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
19932         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
19933         tree_lower_complex, schedule TODO_update_ssa.
19934         * lto-streamer-out.c (output_function): Stream the functions
19935         properties.
19936         * lto-streamer-in.c (input_function): Likewise.
19937         (lto_read_body): Do not override them here.
19938
19939 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
19940
19941         PR c/42708
19942         * c-typeck.c (build_c_cast): Fold value cast to union type before
19943         wrapping it in a CONSTRUCTOR.
19944
19945 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
19946
19947         PR rtl-optimization/42699
19948         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
19949         involved.
19950
19951 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19952
19953         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
19954         SUBTARGET_WARN_UNUSED_SPEC): Move ...
19955         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
19956         SUBTARGET_WARN_UNUSED_SPEC): ... here
19957         * config/mips/iris5.h (LIBGCC_SPEC): Define.
19958
19959 2010-01-12  Julian Brown  <julian@codesourcery.com>
19960
19961         * config/arm/neon-schedgen.ml (Utils): Don't try to
19962         open missing module.
19963         (find_with_result): New.
19964
19965 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
19966
19967         PR debug/42662
19968         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
19969         sharing when canonicalizing ({lt,ge}u (plus a b) b).
19970
19971         PR tree-optimization/42645
19972         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
19973         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
19974         decl_map, set processing_debug_stmt to -1 and return name without
19975         any remapping.
19976
19977 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
19978
19979         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
19980         binutils version, and reword target configuration description.
19981
19982 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
19983
19984         * config/avr/avr.h (LINKER_NAME): Remove.
19985
19986 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
19987
19988         PR target/42416
19989         * config/rs6000/rs6000.c (rs6000_override_options): On targets
19990         that support VSX, warn for -mno-altivec if vsx is not disabled,
19991         and disable vsx.
19992
19993 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
19994             Shujing Zhao  <pearly.zhao@oracle.com>
19995
19996         PR translation/42469
19997         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
19998         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
19999         character between option name and help text.
20000         * c.opt (imultilib): Likewise.
20001
20002 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
20003
20004         * lto-streamer-out.c (output_unreferenced_globals): Output static
20005         variables.
20006
20007 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
20008
20009         PR rtl-optimization/42621
20010         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
20011         optimizing for size.
20012         (duplicate_computed_gotos): Remove now-redundant check.
20013
20014 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
20015
20016         PR target/37454
20017         * configure.ac: Save and restore LDFLAGS and LIBS
20018         * configure: Regenerate.
20019
20020 2010-01-10  Richard Guenther  <rguenther@suse.de>
20021
20022         PR middle-end/42667
20023         * builtins.c (fold_builtin_strlen): Add type argument and
20024         convert the resulting length to it.
20025         (fold_builtin_1): Adjust.
20026
20027 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
20028
20029         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
20030         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
20031         1 insn.
20032         (num_insns_constant_wide): Adjust for that change.
20033
20034 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20035
20036         PR debug/42631
20037         * web.c (union_defs): Add used argument, to combine uses of
20038         uninitialized regs.
20039         (entry_register): Adjust type and tests of used argument.
20040         (web_main): Widen used for new use.  Pass it to union_defs.
20041         * df.h (union_defs): Adjust prototype.
20042
20043 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20044
20045         PR debug/42630
20046         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
20047         uses in new incoming argument.  Free body.
20048         (reset_debug_uses_in_loop): New.
20049         (analyze_insn_to_expand_var): Call the latter if the former found
20050         anything.  Fix whitespace.  Reject invalid dest overlaps before
20051         going through all insns in the loop.
20052
20053 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20054
20055         PR debug/42629
20056         * haifa-sched.c (dying_use_p): Debug insns don't count.
20057
20058 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20059
20060         PR middle-end/42363
20061         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
20062         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
20063         (verify_gimple_call): Reject LHS in noreturn calls.
20064
20065 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20066
20067         PR debug/42604
20068         PR debug/42395
20069         * tree-vect-loop-manip.c (adjust_info): New type.
20070         (adjust_vec): New pointer to vector.
20071         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
20072         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
20073         (slpeel_update_phis_for_duplicate_loop): Use them.
20074         (slpeel_update_phi_nodes_for_guard1): Likewise.
20075         (slpeel_update_phi_nodes_for_guard2): Likewise.
20076         (slpeel_tree_peel_loop_to_edge): Likewise.
20077         (vect_update_ivs_after_vectorizer): Likewise.
20078
20079 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20080
20081         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
20082         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
20083
20084 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
20085
20086         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
20087         bogus uninitialized warning.
20088
20089 2010-01-09  Richard Guenther  <rguenther@suse.de>
20090
20091         PR middle-end/42512
20092         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
20093         the evolution is compatible with the initial condition.
20094
20095 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
20096
20097         * gcc.c (process_command): Update copyright notice dates.
20098         * gcov.c (print_version): Likewise.
20099         * gcov-dump.c (print_version): Likewise.
20100         * mips-tfile.c (main): Likewise.
20101         * mips-tdump.c (main): Likewise.
20102
20103 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
20104
20105         PR target/41885
20106         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
20107         (rotlhi3): Delete.
20108         (rotlhi3_8): Delete.
20109         (rotlsi3): Delete.
20110         (rotlsi3_8): Delete.
20111         (rotlsi3_16): Delete.
20112         (rotlsi3_24): Delete.
20113         (rotl<mode>3): New.
20114         (*rotw<mode>3): New.
20115         (*rotb<mode>3): New.
20116         * config/avr/avr.c (avr_rotate_bytes): New function.
20117         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
20118
20119 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
20120
20121         PR target/37454
20122         * configure.ac: Modify -rdynamic check.
20123         * configure: Regenerate.
20124
20125 2010-01-08  DJ Delorie  <dj@redhat.com>
20126
20127         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
20128         register popping order.
20129
20130 2010-01-08  Richard Guenther  <rguenther@suse.de>
20131
20132         PR lto/42528
20133         * c.opt (fsigned-char): Also let LTO handle this option.
20134         (funsigned-char): Likewise.
20135
20136 2010-01-07  Richard Guenther  <rguenther@suse.de>
20137
20138         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
20139         (gimple_op): Likewise.
20140         (gimple_op_ptr): Likewise.
20141         (gimple_assign_set_lhs): Remove gcc_assert.
20142         (gimple_assign_set_rhs1): Likewise.
20143         (gimple_assign_set_rhs2): Likewise.
20144         (gimple_call_set_lhs): Likewise.
20145         (gimple_call_set_fn): Likewise.
20146         (gimple_call_set_fndecl): Likewise.
20147         (gimple_call_fndecl): Likewise.
20148         (gimple_call_return_type): Likewise.
20149         (gimple_call_set_chain): Likewise.
20150         (gimple_call_num_args): Likewise.
20151         (gimple_call_set_arg): Likewise.
20152         (gimple_cond_set_code): Likewise.
20153         (gimple_cond_set_lhs): Likewise.
20154         (gimple_cond_set_rhs): Likewise.
20155         (gimple_cond_set_true_label): Likewise.
20156         (gimple_cond_set_false_label): Likewise.
20157         (gimple_label_set_label): Likewise.
20158         (gimple_goto_set_dest): Likewise.
20159         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
20160         (gimple_debug_bind_get_value): Likewise.
20161         (gimple_debug_bind_get_value_ptr): Likewise.
20162         (gimple_debug_bind_set_var): Likewise.
20163         (gimple_debug_bind_set_value): Likewise.
20164         (gimple_debug_bind_reset_value): Likewise.
20165         (gimple_debug_bind_has_value_p): Likewise.
20166         (gimple_return_retval_ptr): Remove gcc_assert.
20167         (gimple_return_retval): Likewise.
20168         (gimple_return_set_retval): Likewise.
20169         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
20170         (safe_referenced_var_iterator): Remove.
20171         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
20172         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
20173         (fill_referenced_var_vec): Remove.
20174         (first_readonly_imm_use): Remove redundant gcc_assert.
20175         (phi_arg_index_from_use): Combine gcc_asserts.
20176         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
20177         (first_imm_use_stmt): Remove redundant gcc_assert.
20178         * tree-cfg.c (verify_gimple_call): Verify function and chain
20179         operands.  Verify arguments.
20180         (verify_types_in_gimple_stmt): Verify condition code and labels.
20181
20182 2010-01-07  Richard Guenther  <rguenther@suse.de>
20183
20184         PR tree-optimization/42641
20185         * sese.c (rename_map_elt_info): Use the SSA name version, do
20186         not hash pointers.
20187
20188 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
20189
20190         PR tree-optimization/42625
20191         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
20192         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
20193
20194 2010-01-07  Duncan Sands  <baldrick@free.fr>
20195
20196         * Makefile.in (PLUGIN_HEADERS): Add version.h.
20197
20198 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
20199
20200         PR target/42511
20201         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
20202         note itself is not function_invariant_p.
20203
20204 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
20205
20206         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
20207         Do not add the DF_NOTE problem.
20208         * store-motion.c (execute_rtl_store_motion): Likewise.
20209
20210 2010-01-07  Martin Jambor  <mjambor@suse.cz>
20211
20212         PR tree-optimization/42157
20213         * tree-sra.c (compare_access_positions): Stabilize sort if both
20214         accesses have integer types, return zero immediately if they are the
20215         same.
20216
20217 2010-01-06  Richard Henderson  <rth@redhat.com>
20218
20219         PR middle-end/41883
20220         * haifa-sched.c (add_to_note_list): Merge into ...
20221         (concat_note_lists): ... here, and ...
20222         (unlink_other_notes, rm_other_notes): Merge into...
20223         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
20224         NOTE_INSN_EPILOGUE_BEG.
20225
20226 2010-01-06  Richard Guenther  <rguenther@suse.de>
20227
20228         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
20229         not inline regular functions into always-inline functions.
20230
20231 2010-01-06  Nick Clifton  <nickc@redhat.com>
20232
20233         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
20234         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
20235         used together.
20236         (OVERRIDE_OPTIONS): Delete.
20237         (OPTIMIZATION_OPTIONS): Define.
20238         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
20239         * config/rx/rx.c (rx_handle_option): Issue an error message if
20240         -mcpu=rx200 and -fpu are used together.
20241         (rx_set_optimization_options): New function.  Issue an error
20242         message if an optimization attribute attempts to reset the FPU/
20243         math optimization pairing.
20244         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
20245         * config/rx/rx.opt: Set the default to 32-bit doubles.
20246         * config/rx/t-rx: Add multilibs for -nofpu option.
20247         * doc/invoke.texi: Update documentation of RX options.
20248
20249 2010-01-06  Richard Guenther  <rguenther@suse.de>
20250
20251         * tree-ssa-pre.c (name_to_id): New global.
20252         (alloc_expression_id): Simplify SSA name handling.
20253         (lookup_expression_id): Likewise.
20254         (init_pre): Zero name_to_id.
20255         (fini_pre): Free it.
20256
20257 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
20258
20259         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
20260
20261 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
20262
20263         PR target/42542
20264         * config/i386/sse.md (smaxv2di3): New.
20265         (umaxv2di3): Likewise.
20266         (sminv2di3): Likewise.
20267         (uminv2di3): Likewise.
20268
20269 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
20270
20271         PR target/42564
20272         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
20273         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
20274         (legitimize_tls_address): Likewise.
20275         (sparc_tls_referenced_p): Likewise.
20276         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
20277         and adjust calls to legitimize_pic_address.
20278         (legitimate_constant_p) Use sparc_tls_referenced_p.
20279         (legitimate_pic_operand_p): Likewise.
20280         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
20281         (sparc_tls_symbol_ref_1): Delete.
20282         (sparc_tls_referenced_p): Make static, recognize specific patterns.
20283         (legitimize_tls_address): Make static, handle CONST patterns.
20284         (legitimize_pic_address): Make static, remove unused parameter and
20285         adjust recursive calls.
20286         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
20287         and adjust call to legitimize_pic_address.
20288         (sparc_output_mi_thunk): Likewise.
20289
20290 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
20291             H.J. Lu  <hongjiu.lu@intel.com>
20292
20293         PR target/42542
20294         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
20295         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
20296         operands to make them signed.
20297
20298         Revert:
20299         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
20300
20301         PR target/42542
20302         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
20303         GTU to GT for V4SI and V2DI.
20304
20305         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
20306         (umin<mode>3): Removed.
20307         (uminv8hi3): New.
20308         (uminv4si3): Likewise.
20309
20310 2010-01-05  Martin Jambor  <mjambor@suse.cz>
20311
20312         PR tree-optimization/42462
20313         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
20314         current_function_decl to helper functions and macros.
20315
20316 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20317
20318         PR bootstrap/41771
20319         * flags.h: Don't include real.h.
20320         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
20321         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
20322         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
20323         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
20324         * dominance.c: Update copyright.
20325         * gimple.c (walk_gimple_op): Remove inline.
20326         * tree-ssa-reassoc.c: Include real.h.
20327         * Makefile.in (FLAGS_H): Remove $(REAL_H).
20328         (tree-ssa-reassoc.o): Depend on $(REAL_H).
20329
20330 2010-01-05  Nick Clifton  <nickc@redhat.com>
20331
20332         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
20333         register to push into the stack frame when the accumulator has to
20334         be saved during interrupts.
20335
20336 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
20337
20338         * doc/invoke.texi: Remove the documentation about option
20339         -Wunreachable-code.
20340         * common.opt (Wunreachable-code):  Preserved for backward
20341         compatibility.
20342         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
20343         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
20344         the backward compatibility flag section.
20345
20346 2010-01-05  Richard Guenther  <rguenther@suse.de>
20347
20348         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
20349
20350 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
20351
20352         PR other/42611
20353         * cfgexpand.c (expand_one_var): Diagnose too large variables.
20354
20355         PR tree-optimization/42508
20356         * tree-sra.c (convert_callers): Check for recursive call
20357         by comparing cgraph nodes instead of decls.
20358         (modify_function): Call ipa_modify_formal_parameters also
20359         on all same_body aliases.
20360
20361         * cgraphunit.c (cgraph_materialize_all_clones): Compare
20362         cgraph nodes when checking for same_body aliases.
20363
20364 2010-01-05  Richard Guenther  <rguenther@suse.de>
20365
20366         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
20367         allocation and lookup.
20368         (get_or_alloc_expr_for_constant): Likewise.
20369         (phi_translate): Sink allocation.
20370
20371 2010-01-04  Richard Guenther  <rguenther@suse.de>
20372
20373         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
20374         a new entry only if needed.
20375         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
20376         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
20377         hashtable lookup.
20378         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
20379         the result array.
20380         (phi_translate): Handle CONSTANTs early.
20381
20382 2010-01-04  Martin Jambor  <mjambor@suse.cz>
20383
20384         PR tree-optimization/42398
20385         * tree-sra.c (struct access): Removed flag grp_different_types.
20386         (dump_access): Do not dump the removed flag.
20387         (sort_and_splice_var_accesses): Do not set the removed flag.
20388         (sra_modify_expr): Check for type compatibility directly.
20389
20390 2010-01-04  Martin Jambor  <mjambor@suse.cz>
20391
20392         PR tree-optimization/42366
20393         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
20394         edges with variable number of parameters.
20395         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
20396         flag instead of asserting it.
20397         (ipa_read_node_info): Read uses_analysis_done flag.
20398
20399 2010-01-04  Richard Guenther  <rguenther@suse.de>
20400
20401         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
20402         iterative_hash_* as intended.
20403         (vn_reference_compute_hash): Likewise.  Simplify hashing
20404         SSA names.
20405         (vn_reference_lookup_2): Likewise.
20406         (vn_nary_op_compute_hash): Likewise.
20407         (vn_phi_compute_hash): Likewise.
20408         (expressions_equal_p): Remove strange code.
20409         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
20410         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
20411         (bitmap_insert_into_set_1): Take value-id as parameter.
20412         (add_to_value): Pass it.
20413         (bitmap_insert_into_set): Likewise.
20414         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
20415
20416 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
20417
20418         PR driver/42442
20419         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
20420         (do_self_spec): For switches with SWITCH_IGNORE set set also
20421         SWITCH_IGNORE_PERMANENTLY.
20422         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
20423         of SWITCH_IGNORE.
20424
20425 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
20426
20427         * lto-streamer-out.c (output_unreferenced_globals): Output the full
20428         tree of an unreferenced global var.
20429
20430 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
20431
20432         PR target/42542
20433         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
20434         GTU to GT for V4SI and V2DI.
20435
20436         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
20437         (umin<mode>3): Removed.
20438         (uminv8hi3): New.
20439         (uminv4si3): Likewise.
20440
20441 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
20442
20443         PR lto/42581
20444         * collect2.c (main): Turn on trace in collect2 if -v is passed
20445         to gcc with LTO.
20446
20447 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
20448
20449         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
20450         description of expression operand.
20451
20452 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
20453
20454         * configure.ac: Add install-html to target_list for Make-hooks.
20455         * configure: Regenerate.
20456         * fortran/Make-lang.in (F95_HTMLFILES): New.
20457         (fortran.html): Use it.
20458         (fortran.install-html): New.
20459         * Makefile.in (install-html): Add lang.install-html.
20460         * java/Make-lang.in (JAVA_HTMLFILES): New.
20461         (java.html): Use it.
20462         (java.install-html): New.
20463         * objc/Make-lang.in (objc.install-html): New.
20464         * objcp/Make-lang.in (obj-c++.install-html): New.
20465         * cp/Make-lang.in (c++.install-html): New.
20466         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
20467         * lto/Make-lang.in (lto.install-html): New.
20468
20469 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
20470
20471         PR lto/42520
20472         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
20473
20474 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
20475
20476         PR rtl-optimization/41862
20477         * store-motion.c (store_killed_in_insn, compute_store_table,
20478         remove_reachable_equiv_notes, replace_store_insn,
20479         build_store_vectors): Ignore all DEBUG_INSNs.
20480
20481 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
20482
20483         PR lto/41564
20484         * common.opt: Add dumpdir.
20485
20486         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
20487         isn't specified.
20488         (option_map): Add --dumpdir.
20489
20490         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
20491
20492         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
20493
20494         * opts.c (decode_options): Try dump_dir_name first if
20495         dump_base_name isn't an absolute path.
20496         (common_handle_option): Handle OPT_dumpdir.
20497
20498         * toplev.c (dump_dir_name): New.
20499         (print_switch_values): Also ignore -dumpdir.
20500
20501         * toplev.h (dump_dir_name): New.
20502
20503 2010-01-03  Richard Guenther  <rguenther@suse.de>
20504
20505         PR tree-optimization/42589
20506         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
20507         double-word expansion of bswap32.
20508
20509 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
20510
20511         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
20512         with BLOCK_FOR_INSN.
20513         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
20514         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
20515         noce_process_if_block): Likewise.
20516         * gcse.c (compute_local_properties, insert_expr_in_table,
20517         insert_set_in_table, canon_list_insert, find_avail_set,
20518         pre_insert_copy_insn): Likewise.
20519
20520         * basic-block.h (BLOCK_NUM): Move from here...
20521         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
20522
20523 2010-01-03  Richard Guenther  <rguenther@suse.de>
20524
20525         PR tree-optimization/42438
20526         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
20527         contains_may_not_return_call flag.
20528         (BB_MAY_NOTRETURN): New.
20529         (valid_in_sets): Trapping nary operations are not valid
20530         in blocks that may not return.
20531         (insert_into_preds_of_block): Remove check for trapping expressions.
20532         (compute_avail): Compute also BB_MAY_NOTRETURN.
20533
20534 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
20535
20536         * doc/invoke.texi: Add 2010 to copyright years.
20537
20538 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
20539
20540         * config/sparc/sparc.c: Fix formatting nits.
20541
20542 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
20543             Alexander Monakov  <amonakov@ispras.ru>
20544
20545         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
20546
20547 2010-01-02  Richard Guenther  <rguenther@suse.de>
20548
20549         PR middle-end/42577
20550         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
20551         (simplify_switch_using_ranges): Mark to be removed edges
20552         as non-executable.
20553
20554 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20555
20556         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
20557
20558         * collect2.c (scan_libraries): Add missing argument in call to
20559         scan_prog_file.
20560
20561 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
20562
20563         PR target/42448
20564         * config/alpha/predicates.md (aligned_memory_operand): Return false
20565         for CQImode.
20566         (unaligned_memory_operand): Return true for CQImode.
20567         * config/alpha/alpha.c (get_aligned_mem): Assert that location
20568         doesn not cross aligned SImode word boundary.
20569
20570 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
20571
20572         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
20573         Remove.
20574         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
20575         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
20576
20577 2010-01-02  Richard Guenther  <rguenther@suse.de>
20578
20579         PR lto/41597
20580         * toplev.c (compile_file): Emit LTO marker properly.  Change
20581         it to __gnu_lto_v1.
20582         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
20583
20584 2010-01-01  Richard Guenther  <rguenther@suse.de>
20585
20586         PR debug/42455
20587         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
20588
20589 2010-01-01  Richard Guenther  <rguenther@suse.de>
20590
20591         PR c/42570
20592         * c-decl.c (grokdeclarator): For zero-size arrays force
20593         structural equality checks as layout_type does.
20594
20595 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
20596
20597         * builtins.c: Update copyright to 2010.
20598
20599 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
20600
20601         PR lto/42531
20602         * lto-streamer-out.c (produce_asm): Revert the last change.
20603         (copy_function): Likewise.
20604
20605         * lto-streamer.c (lto_get_section_name): Skip any leading
20606         asterisk in name.
20607
20608 2010-01-01  Richard Guenther  <rguenther@suse.de>
20609
20610         PR middle-end/42559
20611         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
20612         for LABEL_DECLs.
20613
20614 \f
20615 Copyright (C) 2010 Free Software Foundation, Inc.
20616
20617 Copying and distribution of this file, with or without modification,
20618 are permitted in any medium without royalty provided the copyright
20619 notice and this notice are preserved.