OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         PR target/49606
4         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
5         (PMODE_INSN): New macro.
6         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
7         (mips_got_load, mips_expand_synci_loop): Likewise.
8         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
9         cprestore patterns.
10         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
11         copygp_mips16 patterns.
12         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
13         and use_cprestore patterns.
14         (mips_override_options): Check for incompatible -mabi and -mlong
15         combinations.
16         * config/mips/mips.md (unspec_got<mode>): Rename to...
17         (unspec_got_<mode>): ...this.
18         (copygp_mips16): Use the Pmode iterator.
19         (potential_cprestore, cprestore, use_cprestore): Likewise.
20         (clear_cache, indirect_jump): Use PMODE_INSN.
21         (indirect_jump<mode>): Rename to...
22         (indirect_jump_<mode>): ...this.
23         (tablejump): Use PMODE_INSN.
24         (tablejump<mode>): Rename to...
25         (tablejump_<mode>): ...this.
26         (exception_receiver): Handle restore_gp_si and restore_gp_di.
27         (restore_gp): Use the Pmode iterator.
28         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
29         PMODE_INSN.
30
31 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
32
33         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
34         Fix the type of the BIT_AND_EXPR.
35
36 2011-09-05  David S. Miller  <davem@davemloft.net>
37
38         * config.host: Add driver-sparc.o and sparc/x-sparc on
39         native sparc*-*-linux* builds.
40         * config/sparc/driver-sparc.c: Correct Linux strings.
41         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
42         * config/sparc/linux64.h: Likewise.
43         * doc/invoke.texi: Document that Linux also supports
44         -mcpu=native and -mtune=native on sparc.
45
46         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
47         PROCESSOR_NIAGARA4): New.
48         * config/sparc/sparc.opt: Handle new processor types.
49         * config/sparc/sparc.md: Add to "cpu" attribute.
50         * config/sparc/sparc.h (TARGET_CPU_niagara3,
51         TARGET_CPU_niagara4): New, treat as niagara2.
52         * config/sparc/linux64.h: Handle niagara3 and niagara4
53         like niagara2.
54         * config/sparc/sol2.h: Likewise.
55         * config/sparc/niagara2.md: Schedule niagara3 like
56         niagara2.
57         * config/sparc/sparc.c (sparc_option_override): Add
58         niagara3 and niagara4 handling.
59         (sparc32_initialize_trampoline): Likewise.
60         (sparc64_initialize_trampoline): Likewise.
61         (sparc_use_sched_lookahead): Likewise.
62         (sparc_issue_rate): Likewise.
63         (sparc_register_move_cost): Likewise.
64         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
65         and niagara4 as appropriate.
66         * doc/invoke.texi: Document new processor types.
67         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
68         and --with-tune options.
69
70 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
71
72         PR target/50289
73         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
74         that contain global register variable.
75
76 2011-09-05  Richard Guenther  <rguenther@suse.de>
77
78         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
79
80 2011-09-05  Richard Guenther  <rguenther@suse.de>
81
82         * stor-layout.c (layout_type): Use size_binop for array size
83         calculations.
84
85 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
86
87         * config/avr/avr.h (progmem_section): Remove Declaration.
88         * config/avr/avr.c (progmem_section): Make static and rename to
89         progmem_swtable_section.
90         (avr_output_addr_vec_elt): No need to switch sections.
91         (avr_asm_init_sections): Use output_section_asm_op as section
92         callback for progmem_swtable_section.
93         (avr_output_progmem_section_asm_op): Remove Function.
94         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
95         (avr_asm_function_rodata_section): New static Function.
96         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
97         alignment 2**1 for jump tables.
98
99 2011-09-04  Jan Hubicka  <jh@suse.cz>
100
101         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
102         parameter is SSA name.
103
104 2011-09-04  Richard Guenther  <rguenther@suse.de>
105
106         Revert
107         2011-08-31  Richard Guenther  <rguenther@suse.de>
108
109         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
110         special-casing.
111
112 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
113
114         PR debug/49901
115         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
116
117 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
118             Ira Rosen  <ira.rosen@linaro.org>
119
120         PR tree-optimization/50208
121         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
122         argument.  Check that def_stmt is inside the loop.
123         (vect_recog_widen_mult_pattern): Update calls to
124         vect_handle_widen_mult_by_cons.
125         (vect_operation_fits_smaller_type): Check that def_stmt is
126         inside the loop.
127
128 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
129
130         * tree-vectorizer.c (vect_print_dump_info): Print line
131         number when dumping to a file.
132         (vectorize_loops): Add new messages to dump file.
133
134 2011-09-03  Martin Jambor  <mjambor@suse.cz>
135
136         * ipa-prop.h (ipa_jump_func_t): New typedef.
137         (struct ipa_edge_args): Removed field argument_count, field
138         jump_functions turned into a vector.
139         (ipa_set_cs_argument_count): Removed.
140         (ipa_get_cs_argument_count): Updated to work on vectors.
141         (ipa_get_ith_jump_func): Likewise.
142         * ipa-prop.c (ipa_count_arguments): Removed.
143         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
144         jump functions.  Update caller.
145         (compute_pass_through_member_ptrs): Likewise.
146         (compute_cst_member_ptr_arguments): Likewise.
147         (ipa_compute_jump_functions_for_edge): Get number of arguments from
148         the statement, allocate vector.
149         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
150         (duplicate_ipa_jump_func_array): Removed.
151         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
152         (ipa_read_node_info): Allocate vector.
153
154 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
155
156         PR middle-end/50232
157         * config/pa/pa.md (return): Define "return" insn pattern.
158         (epilogue): Use it when no epilogue is needed.
159         * config/pa/pa.c (pa_can_use_return_insn): New function.
160         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
161
162 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
163
164         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
165         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
166         Force at least BITS_PER_UNIT alignment on the new variable.
167
168 2011-09-02  Gary Funck <gary@intrepid.com>
169
170         * opts.c (print_specific_help): Fix off-by-one compare in
171         assertion check.
172         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
173         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
174         Increase by +5 to allow for more languages.
175         * optc-gen.awk: Generate #if that ensures that the number of
176         languages is within the implementation-defined limit.
177
178 2011-09-02  Michael Matz  <matz@suse.de>
179
180         PR middle-end/50260
181         * ipa-split.c (split_function): Call add_referenced_var.
182
183         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
184         (cond_if_else_store_replacement_1): Ditto.
185         * tree-ssa-pre.c (get_representative_for): Ditto.
186         (create_expression_by_pieces): Ditto.
187         (insert_into_preds_of_block): Ditto.
188         * tree-sra.c (create_access_replacement): Ditto.
189         (get_replaced_param_substitute): Ditto.
190
191 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
192
193         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
194         automata_options.
195         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
196         (l1w, s1w, l2w, s2w): Define in the main automaton.
197         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
198         units.
199         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
200         (c6x_unit_names): Add the new units.
201         (c6x_unit_codes): New static array.
202         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
203         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
204         UNIT_QID_SIDE_OFFSET): New macros.
205         (RESERVATION_S2): Adjust value.
206         (c6x_option_override): Compute c6x_unit_codes.
207         (assign_reservations): Take the unit_mask of the last instruction
208         into account.  Detect floating point reservations by looking for
209         the new units.  Don't assign reservations if the field is already
210         nonzero.
211         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
212         (init_sched_state): Initialize it.
213         (c6x_clear_sched_context): Free it.
214         (insn_set_clock): Clear reservation.
215         (prev_cycle_state): New static variable.
216         (c6x_init_sched_context): Save it.
217         (c6x_sched_init): Allocate space for it and clear it.
218         (c6x_sched_dfa_pre_cycle_insn): New static function.
219         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
220         (c6x_variable_issue): Only record units in the unit_mask that
221         were not set at the start of the cycle.
222         (c6x_variable_issue): Compute and store the unit_mask from the
223         current state.
224         (reorg_split_calls): Ensure the new information remains correct.
225         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
226         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
227         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
228         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
229         Add special reservations.
230         * config/c6x/c6x-sched.md: Regenerate.
231
232 2011-09-02  Martin Jambor  <mjambor@suse.cz>
233
234         * ipa-prop.h (ipa_node_params): Removed fields
235         called_with_var_arguments and node_versionable.
236         (ipa_set_called_with_variable_arg): Removed.
237         (ipa_is_called_with_var_arguments): Likewise.
238         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
239         (determine_versionability): Do not check for type attributes and va
240         builtins.  Record versionability into inline summary.
241         (initialize_node_lattices): Do not check
242         ipa_is_called_with_var_arguments.
243         (propagate_constants_accross_call): Likewise, ignore arguments we do
244         not have PARM_DECLs for, set variable flag for parameters that were
245         not passed a value.
246         (create_specialized_node): Dump info that we cannot change signature.
247         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
248         number of arguments.
249         (ipa_make_edge_direct_to_target): Likewise.
250         (ipa_update_after_lto_read): Likewise.
251         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
252         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
253         they were remapped.
254
255 2011-09-02  Richard Guenther  <rguenther@suse.de>
256
257         PR tree-optimization/27460
258         PR middle-end/29269
259         * doc/md.texi (vcond): Document.
260         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
261         optab with two modes.
262         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
263         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
264         (vcond_optab): Adjust.
265         (vcondu_optab): Likewise.
266         (expand_vec_cond_expr_p): Adjust prototype.
267         * optabs.c (get_vcond_icode): Adjust.
268         (expand_vec_cond_expr_p): Likewise.
269         (expand_vec_cond_expr): Likewise.
270         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
271         vector type.
272         (vectorizable_condition): Allow differing types for comparison
273         and result.
274         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
275         for the comparison.
276         * config/i386/sse.md (vcond<mode>): Split to
277         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
278         vcond<V_128:mode><VI124_128:mode> and
279         vcondu<V_128:mode><VI124_128:mode>.
280         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
281         (vconduv2di): Likewise.
282         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
283         (vcondu<mode>): Likewise.
284         * config/ia64/vect.md (vcond<mode>): Likewise.
285         (vcondu<mode>): Likewise.
286         (vcondv2sf): Likewise.
287         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
288         * config/rs6000/paired.md (vcondv2sf): Likewise.
289         * config/rs6000/vector.md (vcond<mode>): Likewise.
290         (vcondu<mode>): Likewise.
291         * config/spu/spu.md (vcond<mode>): Likewise.
292         (vcondu<mode>): Likewise.
293
294 2011-09-02  Richard Guenther  <rguenther@suse.de>
295
296         * pretty-print.h (pp_unsigned_wide_integer): New.
297         * tree-pretty-print.c (dump_generic_node): Print unsigned
298         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
299
300 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
301
302         PR target/49987
303         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
304         valid CONST_VECTOR operands.
305         (rs6000_expand_vector_init): Likewise.
306
307 2011-09-02  Martin Jambor  <mjambor@suse.cz>
308
309         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
310         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
311         BINFO_VTABLE.  Parameter delta removed, all callers updated.
312         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
313         BINFO_VTABLE.
314         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
315         all calls.
316         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
317         handling of thunk_delta.
318         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
319         (devirtualization_time_bonus): Do not handle thunk deltas.
320         (ipcp_discover_new_direct_edges): Likewise.
321         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
322         (try_make_edge_direct_simple_call): Likewise.
323         (try_make_edge_direct_virtual_call): Likewise.
324         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
325         parameter set as unused.
326         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
327         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
328         parameter set as unused.
329         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
330         (input_edge_opt_summary): Likewise.
331         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
332         BINFO_VIRTUALS at all.
333         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
334
335 2011-09-02  Richard Guenther  <rguenther@suse.de>
336
337         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not
338         fold alloca (0).
339         (ccp_fold_stmt): Continue replacing args when folding
340         alloca fails.
341
342 2011-08-31  Richard Guenther  <rguenther@suse.de>
343
344         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
345         handling here, from ...
346         (expand_expr_real_1): ... here.
347         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
348         and VEC_COND_EXPR.
349         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
350         a GIMPLE_TERNARY_RHS.
351         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
352         and VEC_COND_EXPR here ...
353         (verify_gimple_assign_single): ... not here.
354         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
355         * tree-object-size.c (cond_expr_object_size): Adjust.
356         (collect_object_sizes_for): Likewise.
357         * tree-scalar-evolution.c (interpret_expr): Don't handle
358         ternary RHSs.
359         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and
360         simplify.
361         (ssa_forward_propagate_and_combine): Adjust.
362         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
363         as ternary.
364         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
365         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
366         * tree-vect-stmt.c (vectorizable_condition): Likewise.
367         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
368         (extract_range_from_assignment): Likewise.
369
370 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
371
372         * config/i386/i386.md: Use (match_test ...) for attribute tests.
373         * config/i386/mmx.md: Likewise.
374         * config/i386/sse.md: Likewise.
375         * config/i386/predicates.md (call_insn_operand): Use
376         (not (match_test "...")) instead of (match_test "!...")
377         * config/i386/constraints.md (w): Likewise.
378
379 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
380
381         * doc/md.texi: Describe the use of match_tests in attribute tests.
382         * rtl.def (MATCH_TEST): Update commentary.
383         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
384         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
385
386 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
387
388         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
389         (attr_string): Use copy_md_ptr_loc.
390
391 2011-08-31  Martin Jambor  <mjambor@suse.cz>
392
393         PR middle-end/49886
394         * ipa-inline-analysis.c (compute_inline_parameters): Set
395         can_change_signature of noes with typde attributes.
396         * ipa-split.c (split_function): Do not skip any arguments if
397         can_change_signature is set.
398
399 2011-08-31  Martin Jambor  <mjambor@suse.cz>
400
401         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
402         check removed.
403
404 2011-08-31  Richard Guenther  <rguenther@suse.de>
405
406         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
407         special-casing.
408
409 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
410
411         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
412
413 2011-08-31  Tom de Vries  <tom@codesourcery.com>
414
415         PR middle-end/43513
416         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
417         * tree-ssa-ccp.c (params.h): Include.
418         (fold_builtin_alloca_for_var): New function.
419         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
420
421 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
422
423         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
424         Handle FMA option.
425
426 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
427
428         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
429         b3 and b4 unsigned.
430
431 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
432
433         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
434         when code is SET.
435
436 2011-08-30  Richard Guenther  <rguenther@suse.de>
437
438         PR middle-end/48571
439         * gimple.h (maybe_fold_offset_to_address): Remove.
440         (maybe_fold_offset_to_reference): Likewise.
441         (maybe_fold_stmt_addition): Likewise.
442         (may_propagate_address_into_dereference): Likewise.
443         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
444         array references.
445         * gimple-fold.c (canonicalize_constructor_val): Likewise.
446         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
447         addresses instead.
448         (may_propagate_address_into_dereference): Remove.
449         (maybe_fold_offset_to_array_ref): Likewise.
450         (maybe_fold_offset_to_reference): Likewise.
451         (maybe_fold_offset_to_address): Likewise.
452         (maybe_fold_stmt_addition): Likewise.
453         (fold_gimple_assign): Do not reconstruct array references but
454         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
455         MEM_REF addresses.
456         (gimple_fold_stmt_to_constant_1): Likewise.
457         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
458         * gimplify.c (gimplify_conversion): Likewise.
459         (gimplify_expr): Likewise.
460
461 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
462
463         * config/i386/fmaintrin.h: New.
464         * config.gcc: Add fmaintrin.h.
465         * config/i386/i386.c
466         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
467         <IX86_BUILTIN_VFMADDSD3>: Likewise.
468         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
469         (*fmai_fmadd_<mode>): Likewise.
470         (*fmai_fmsub_<mode>): Likewise.
471         (*fmai_fnmadd_<mode>): Likewise.
472         (*fmai_fnmsub_<mode>): Likewise.
473         * config/i386/immintrin.h: Add fmaintrin.h.
474
475 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
476
477         * genautomata.c (NO_COMB_OPTION): New macro.
478         (no_comb_flag): New static variable.
479         (gen_automata_option): Handle NO_COMB_OPTION.
480         (comb_vect_p): False if no_comb_flag.
481         (add_vect): Move computation of min/max values.  Return early if
482         no_comb_flag.
483         * doc/md.texi (automata_option): Document no-comb-vect.
484
485         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
486         "__x86.get_pc_thunk".
487
488         * bb-reorder.c (insert_section_boundary_note): Only do it if
489         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
490
491 2011-08-30  Christian Bruel  <christian.bruel@st.com>
492
493         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
494         flag_profile_use.
495
496 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
497
498         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
499         to off.  Document switch.
500         * doc/invoke.texi (-msave-toc-indirect): Ditto.
501
502 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
503
504         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
505         conditionals and comments inside macro arguments.
506
507 20011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
508              Richard Guenther  <rguenther@suse.de>
509
510         * tree.h (constant_boolean_node): Adjust prototype.
511         * fold-const.c (fold_convert_loc): Move aggregate conversion
512         leeway down.
513         (constant_boolean_node): Make value parameter boolean, add
514         vector type handling.
515         (fold_unary_loc): Use constant_boolean_node.
516         (fold_binary_loc): Preserve types properly when folding
517         COMPLEX_EXPR <__real x, __imag x>.
518         * gimplify.c (gimplify_expr): Handle vector comparison.
519         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
520         comparison.
521         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
522         comparisons.
523
524 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
525
526         PR middle-end/48722
527         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
528         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
529         (verify_rtl_sharing): Likewise and verify_rtx_sharing
530         in there too.
531         (unshare_all_rtl_in_chain): For CALL_INSNs
532         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
533
534 2011-08-29  Richard Guenther  <rguenther@suse.de>
535
536         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
537         on the built ADDR_EXPR.
538
539 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
540
541         PR debug/50215
542         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
543         before adding ENTRY_VALUE to val->locs.
544
545 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
546
547         PR bootstrap/50218
548         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
549         comp.
550
551 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
552
553         * doc/rtl.texi (simple_return): Document.
554         (parallel, PATTERN): Here too.
555         * doc/md.texi (return): Mention it's allowed to expand to simple_return
556         in some cases.
557         (simple_return): Document standard pattern.
558         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
559         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
560         * reorg.c (function_return_label, function_simple_return_label):
561         New static variables, replacing...
562         (end_of_function_label): ... this.
563         (simplejump_or_return_p): New static function.
564         (optimize_skip, steal_delay_list_from_fallthrough,
565         fill_slots_from_thread): Use it.
566         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
567         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
568         (find_end_label): Take a new arg which is one of the two return
569         rtxs.  Depending on which, set either function_return_label or
570         function_simple_return_label.  All callers changed.
571         (make_return_insns): Make both kinds.
572         (dbr_schedule): Adjust for two kinds of end labels.
573         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
574         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
575         (gen_expand, gen_split): Use ANY_RETURN_P.
576         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
577         * rtl.def (SIMPLE_RETURN): New code.
578         * ifcvt.c (find_if_case_1): Be more careful about
579         redirecting jumps to the EXIT_BLOCK.
580         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
581         returnjump_p_1): Handle SIMPLE_RETURNs.
582         * print-rtl.c (print_rtx): Likewise.
583         * rtl.c (copy_rtx): Likewise.
584         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
585         * combine.c (simplify_set): Likewise.
586         * resource.c (find_dead_or_set_registers, mark_set_resources):
587         Likewise.
588         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
589         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
590         (init_emit_regs): Initialize simple_return_rtx.
591         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
592         force_nonfallthru_and_redirect.
593         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
594         (GR_SIMPLE_RETURN): New enum value.
595         (simple_return_rtx): New macro.
596         * basic-block.h (force_nonfallthru_and_redirect): Adjust
597         declaration.
598         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
599         argument.  All callers changed.  Be careful about what kinds of
600         returnjumps to generate.
601         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
602         ix86_pad_short_function): Likewise.
603         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
604         of return.
605         * config/mips/mips.md (any_return): New code_iterator.
606         (optab): Add cases for return and simple_return.
607         (return): Expand to a simple_return.
608         (simple_return): New pattern.
609         (*<optab>, *<optab>_internal for any_return): New patterns.
610         (return_internal): Remove.
611         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
612         a simple_return_internal.
613
614 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
615
616         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
617         (vec_extract_lo_<mode>): Prevent both operands in memory.
618         (vec_extract_lo_v16hi): Ditto.
619         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
620
621 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
622
623         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
624         (*sse2_mulv4si3): Ditto.
625         (mulv2di3): Ditto.
626         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
627         notes to REG_EQUAL.
628
629 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
630
631         PR target/50202
632         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
633         when all outputs are unused.
634         (sse4_2_pcmpistr): Ditto.
635
636 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
637
638         * config/i386/i386.md (round<mode>2): New expander.
639         * config/i386/i386.c (enum ix86_builtins): Add
640         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
641         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
642         descriptions.
643         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
644         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
645
646 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
647
648         PR middle-end/50083
649         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
650         only when TARGET_C99_FUNCTIONS.
651         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
652         <BUILT_IN_RINT{,F,L}>: Ditto.
653
654 2011-08-26  Michael Matz  <matz@suse.de>
655             Jakub Jelinek  <jakub@redhat.com>
656
657         PR lto/50165
658         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
659         don't call strlen twice, use memcpy.
660
661 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
662
663         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
664         * config/i386/bmiintrin.h: Likewise.
665         * config/i386/lzcntintrin.h: Likewise.
666
667         * config/i386/immintrin.h: Include <lzcntintrin.h>,
668         <bmiintrin.h> and <bmi2intrin.h>.
669
670 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
671
672         PR target/50166
673         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
674         * configure: Regenerate.
675
676 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
677
678         PR c/50179
679         * c-typeck.c (c_process_expr_stmt): Skip over nops and
680         call mark_exp_read even if exprv is ADDR_EXPR.
681
682 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
683
684         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
685         to df_set_dead_notes_for_mw.
686
687 2011-08-26  Richard Guenther  <rguenther@suse.de>
688
689         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
690
691 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
692             Tom de Vries  <tom@codesourcery.com>
693
694         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
695         (struct ivopts_data): Add loop_single_exit_p field.
696         (niter_for_exit): Change parameter desc_p into return value.  Return
697         desc if desc->may_be_zero.  Free desc if unused.
698         (niter_for_single_dom_exit): Change return type.
699         (find_induction_variables): Handle changed return type of
700         niter_for_single_dom_exit.  Dump may_be_zero.
701         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
702         (set_use_iv_cost): Add and handle comp parameter.
703         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
704         comp argument to set_use_iv_cost.
705         (strip_wrap_conserving_type_conversions, expr_equal_p)
706         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
707         (may_eliminate_iv): Add comp parameter.  Handle new return type of
708         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
709         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
710         and may_eliminate_iv.
711         (rewrite_use_compare): Move call to iv_elimination_compare to ...
712         (may_eliminate_iv): Here.
713         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
714
715 2011-08-26  Tom de Vries  <tom@codesourcery.com>
716
717         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
718         accessing TREE_TYPE.
719
720 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
721
722         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
723         (*ior_scc_scc_cmp): Likewise
724         (*and_scc_scc): Likewise.
725         (*and_scc_scc_cmp): Likewise.
726         (*and_scc_scc_nodom): Likewise.
727         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
728
729 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
730
731         * rtlanal.c (nonzero_bits1): Handle CLRSB.
732
733 2011-08-26  Richard Guenther  <rguenther@suse.de>
734
735         * expr.c (string_constant): Handle &MEM_REF.
736
737 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
738
739         * config/arm/arm.c (struct four_ints): New type.
740         (count_insns_for_constant): Delete function.
741         (find_best_start): Delete function.
742         (optimal_immediate_sequence): New function.
743         (optimal_immediate_sequence_1): New function.
744         (arm_gen_constant): Move constant splitting code to
745         optimal_immediate_sequence.
746         Rewrite constant negation/invertion code.
747
748 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
749
750         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
751         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
752         Remove prototype. Remove static function type.
753         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
754         Add arch attribute.
755         * config/arm/constraints.md (Pj, PJ): New constraints.
756
757 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
758
759         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
760         ("cortex_a9_multiply_long"): New and use above.  Handle all
761         long multiply cases.
762         ("cortex_a9_multiply"): Handle smmul and smmulr.
763         ("cortex_a9_mac"): Handle smmla.
764
765 2011-08-25  Richard Henderson  <rth@redhat.com>
766
767         PR 50132
768         PR 49864
769         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
770         non-constant stack adjutment.
771         * expr.c (find_args_size_adjust): Break out from ...
772         (fixup_args_size_notes): ... here.
773         * rtl.h (find_args_size_adjust): Declare.
774
775 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
776
777         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
778         sse4 and sse4_noavx.
779         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
780         (*pushdf_rex64): Change Y2 register constraint to x.
781         (*movdf_internal_rex64): Ditto.
782         (*zero_extendsidi2_rex64): Ditto.
783         (*movdi_internal): Change Y2 register constraint to x
784         and update "isa" attribute.
785         (*pushdf): Ditto.
786         (*movdf internal): Ditto.
787         (zero_extendsidi2_1): Ditto.
788         (*truncdfdf_mixed): Ditto.
789         (*truncxfdf2_mixed): Ditto.
790         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
791         register constraint to x.
792         (*movv2sf_internal_rex64): Ditto.
793         (*mov<mode>_internal): Change Y2 register constraint to x
794         and add "isa" attribute.
795         (*movv2sf_internal): Ditto.
796         (*vec_extractv2si_1): Ditto.
797         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
798         constraints to x and update "isa" attribute.
799         (*vec_interleave_highv2df): Change Y3 registerconstraint
800         to x and update "isa" attribute.
801         (*vec_interleave_lowv2df): Ditto.
802         (*vec_concatv2df): Change Y2 register constraint to x and
803         update "isa" attribute.
804         (sse2_loadld): Ditto.
805         (*vec_extractv2di_1): Ditto.
806         (*vec_dupv4si): Ditto.
807         (*vec_dupv2di): Ditto.
808         (*vec_concatv4si): Ditto.
809         (vec_concatv2di): Ditto.
810         * config/i386/constraints.md (Y2): Remove.
811         (Y3): Ditto.
812         (Y4): Ditto.
813
814 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
815
816         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
817         dump_def_use_chain): Don't declare.
818         (mark_conflict, create_new_chain): Move before users.
819         (regrename_optimize): Move to near end of file.
820
821 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
822
823         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
824         (secondary_input_reload_class): Remove Prototype.
825         * config/avr/avr.c (byte_immediate_operand): Remove Function.
826         * config/avr/avr.md (setmemhi): Use u8_operand.
827         (strlenhi): Use const0_rtx for comparison.
828         * config/avr/avr.h (avr_reg_order): Remove Declaration.
829
830 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
831
832         * config/avr/avr.c (reg_class_tab): Make local to
833         avr_regno_reg_class.  Return smallest register class available.
834
835 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
836
837         * config/avr/avr.c (STR_PREFIX_P): New Define.
838         (avr_asm_declare_function_name): Use it.
839         (avr_asm_named_section): Use it.
840         (avr_section_type_flags): Use it.
841
842 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
843
844         * doc/md.texi (automata_option): Document collapse-ndfa.
845         * genautomata.c (COLLAPSE_OPTION): New macro.
846         (collapse_flag): New static variable.
847         (struct description): New member normal_decls_num.
848         (struct automaton): New members advance_ainsn and collapse_ainsn.
849         (gen_automata_option): Check for COLLAPSE_OPTION.
850         (collapse_ndfa_insn_decl): New static variable.
851         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
852         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
853         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
854         necessary.  Use normal_decls_num rather than decls_num, remove
855         test for special decls.
856         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
857         (make_automaton); Likewise.  Use the new advance_cycle_insn member
858         of struct automaton.
859         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
860         is set.
861         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
862         transition.  Create the necessary transitions for it.
863         (create_ainsns): Return void.  Take an automaton_t argument, and
864         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
865         callers changed.
866         (COLLAPSE_NDFA_VALUE_NAME): New macro.
867         (output_tables): Output code to define it.
868         (output_internal_insn_code_evaluation): Output code to accept
869         const0_rtx as collapse-ndfa transition.
870         (output_default_latencies, output_print_reservation_func,
871         output_print_description): Reorganize loops to use normal_decls_num
872         as loop bound; remove special case for advance_cycle_insn_decl.
873         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
874         (check_automata_insn_issues): Check for collapse_ainsn.
875         (expand_automate): Allocate sufficient space.  Initialize
876         normal_decls_num.
877
878 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
879
880         * config/avr/avr.md: Fix indentation from r177991.
881
882 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
883
884         * regrename.c (struct du_head): Remove member terminated.
885         (create_new_chain): Don't initialize it.
886         (scan_rtx_reg): Don't set or test it, test the open_chains_set
887         bitmap instead.
888         (tick, this_tick): New global variables, moved out of
889         regrename_optimize.
890         (current_id, open_chains, closed_chains, open_chains_set,
891         live_in_chains, live_hard_regs): Reorder declarations.
892         (dump_def_use_chain): Move function earlier in the file.
893         (rename_chains): New static function, broken out of
894         regrename_optimize.
895         (regrename_optimize): Use it.  Remove #if 0'ed code.
896
897 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
898
899         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
900
901 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
902
903         PR target/50172
904         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
905
906 2011-08-24  Richard Guenther  <rguenther@suse.de>
907
908         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
909         ref in the basic-block case.  Move stripping array-refs
910         to the place we create an access-function for it.  Remove
911         bogus stripping down a MEM_REF to its base.
912
913 2011-08-24  Richard Guenther  <rguenther@suse.de>
914
915         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
916         with -fno-strict-overflow.
917
918 2011-08-24  Richard Guenther  <rguenther@suse.de>
919
920         * tree-vectorizer.c (vect_print_dump_info): Avoid the
921         file and location clutter when dumping to dump files.
922
923 2011-08-24  Simon Baldwin  <simonb@google.com>
924
925         * gengtype-state.c (write_state): Remove timestamped header line.
926
927 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
928
929         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
930         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
931         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
932         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
933         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
934         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
935         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
936         rules.
937         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
938
939 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
940
941         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
942
943 2011-08-24  Richard Guenther  <rguenther@suse.de>
944
945         PR tree-optimization/50067
946         * tree-data-ref.c (dr_analyze_indices): Do not add an access
947         function for a MEM_REF base that has no evolution in the loop
948         nest or that is not analyzable.
949
950 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
951
952         * ira.c (ira_init_register_move_cost): Check small subclasses
953         through ira_reg_class_max_nregs and ira_available_class_regs.
954
955 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
956
957         * config/i386/constraints.md (Yp): New register constraint.
958         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
959         Yp register constraint.
960         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
961         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
962         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
963
964 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
965
966         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
967
968 2011-08-23  Mark Heffernan  <meheff@google.com>
969
970         PR middle-end/38509
971         * common.opt (Wfree-nonheap-object): New option.
972         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
973         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
974         to warning.
975         (expand_builtin): Make warning conditional.
976
977 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
978
979         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
980         (length_immediate): Handle imulx, ishiftx and rotatex.
981         (imm_disp): Ditto.
982         (isa): Add bmi2.
983         (enabled): Handle bmi2.
984         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
985         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
986         (*bmi2_umulditi3_1): New insn pattern.
987         (*bmi2_umulsidi3_1): Ditto.
988         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
989         (*bmi2_ashl<mode>3_1): New insn pattern.
990         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
991         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
992         (*bmi2_ashlsi3_1_zext): New insn pattern.
993         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
994         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
995         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
996         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
997         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
998         flags dependency.
999         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
1000         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
1001         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
1002         flags dependency.
1003         (*bmi2_rorx<mode>3_1): New insn pattern.
1004         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
1005         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
1006         (*rotatert<mode>3_1 splitter): Ditto.
1007         (*bmi2_rorxsi3_1_zext): New insn pattern.
1008         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
1009         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
1010         (*rotatertsi3_1_zext splitter): Ditto.
1011
1012 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1013
1014         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
1015         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
1016         (ix86_handle_option): Handle OPT_mbmi2 case.
1017         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
1018         (x86_64-*-*): Likewise.
1019         * config/i386/bmi2intrin.h: New file.
1020         * config/i386/cpuid.h (bit_BMI2): New.
1021         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1022         BMI2 feature.
1023         * config/i386/i386-c.c (ix86_target_macros_internal):
1024         Conditionally define __BMI2__.
1025         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
1026         Handle BMI2 option.
1027         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
1028         (print_reg): New code.
1029         (ix86_print_operand): Likewise.
1030         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1031         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1032         IX86_BUILTIN_PEXT64.
1033         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1034         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1035         IX86_BUILTIN_PEXT64.
1036         * config/i386/i386.h (TARGET_BMI2): New.
1037         * config/i386/i386.md (UNSPEC_PDEP): New.
1038         (UNSPEC_PEXT): Likewise.
1039         (*bmi2_bzhi_<mode>3): Likewise.
1040         (*bmi2_pdep_<mode>3): Likewise.
1041         (*bmi2_pext_<mode>3): Likewise.
1042         * config/i386/i386.opt (mbmi2): New.
1043         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
1044         is defined.
1045         * doc/extend.texi: Document BMI2 built-in functions.
1046         * doc/invoke.texi: Document -mbmi2.
1047
1048 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
1049
1050         PR middle-end/50161
1051         * simplify-rtx.c (simplify_const_unary_operation): If
1052         op is CONST_INT, don't look at op_mode, but use instead mode.
1053         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
1054         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
1055         operation and TRUNCATE/ZERO_EXTEND if needed.
1056         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
1057         Document that operand mode must be same as operation mode,
1058         or VOIDmode.
1059         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
1060         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
1061         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
1062         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
1063         use the mode of operand for the operation and add truncate
1064         or zero_extend around if needed.
1065         * config/c6x/c6x.md (ctzdi2): Likewise.
1066         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
1067
1068 2011-08-12  Michael Matz  <matz@suse.de>
1069
1070         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
1071         (gimple_expand_cfg): Merge alignment info for coalesced pointer
1072         SSA names.
1073
1074 2011-08-23  Richard Guenther  <rguenther@suse.de>
1075
1076         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
1077         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
1078         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
1079         from ...
1080         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
1081         (mem_refs_may_alias_p): Adjust.
1082         * tree-data-ref.h (dr_may_alias_p): Adjust.
1083         * tree-data-ref.c: Include tree-affine.h.
1084         (dr_analyze_indices): Do nothing for the non-loop case.
1085         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
1086         more cases in the non-loop case.
1087         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
1088         calls to dr_may_alias_p.
1089         (write_alias_graph_to_ascii_ecc): Likewise.
1090         (write_alias_graph_to_ascii_dot): Likewise.
1091         (build_alias_set_optimal_p): Likewise.
1092
1093 2011-08-23  Richard Guenther  <rguenther@suse.de>
1094
1095         PR tree-optimization/50162
1096         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
1097
1098 2011-08-23  Richard Guenther  <rguenther@suse.de>
1099
1100         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
1101         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
1102         (create_data_ref): Also dump access functions for the created data-ref.
1103
1104 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
1105             Kirill Yukhin  <kirill.yukhin@intel.com>
1106
1107         PR target/50155
1108         * config/i386/sse.md (VI_AVX2): New.
1109         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
1110         (*<plusminus_insn><mode>3): Ditto.
1111         (<sse2_avx2>_andnot<mode>3): Ditto.
1112         (*andnot<mode>3): Fix order of cond operands.
1113         Add asserts for correct TARGET_xxx.
1114         (*<any_logic:code><mode>3): Ditto.
1115
1116 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
1117
1118         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
1119         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
1120         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
1121         regclass argument type to reg_class_t. Change 'max' and 'v' vars
1122         and return types to unsigned char. Use reg_class_contents instead
1123         of class_contents.
1124         (TARGET_CLASS_MAX_NREGS): Define.
1125
1126 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
1127
1128         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
1129         to make computed_jump_p return true.
1130
1131 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1132
1133         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
1134         (PICFLAG_FOR_TARGET): Substitute.
1135         * aclocal.m4: Regenerate.
1136         * configure: Regenerate.
1137
1138 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
1139
1140         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
1141         after reading in the pch.
1142
1143 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
1144
1145         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
1146         * configure: Regenerated.
1147
1148 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
1149
1150         PR tree-optimization/50133
1151         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
1152         from stmt instead of some statement around gsi.
1153
1154         PR middle-end/50141
1155         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
1156         innerdecl is a VAR_DECL.
1157
1158 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
1159
1160         * config/i386/avx2intrin.h: New file.
1161         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
1162         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
1163         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
1164         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
1165         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
1166         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
1167         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
1168         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
1169         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
1170         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
1171         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
1172         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
1173         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
1174         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
1175         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
1176         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
1177         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
1178         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
1179         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
1180         VOID_FTYPE_PV8SI_V8SI_V8SI,
1181         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
1182         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
1183         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
1184         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
1185         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
1186         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
1187         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
1188         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
1189         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
1190         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
1191         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
1192         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
1193         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
1194         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
1195         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
1196         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
1197         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
1198         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
1199         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
1200         V4DI_FTYPE_V4DI_INT_CONVERT,
1201         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
1202         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
1203         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1204         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1205         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1206         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1207         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1208         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1209         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1210         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1211         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1212         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1213         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1214         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1215         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1216         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1217         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1218         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1219         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1220         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1221         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1222         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1223         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1224         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1225         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1226         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1227         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1228         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1229         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1230         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1231         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1232         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1233         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1234         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1235         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1236         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1237         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1238         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1239         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1240         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1241         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1242         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1243         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1244         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1245         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1246         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1247         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1248         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1249         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1250         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1251         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1252         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1253         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1254         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1255         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1256         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1257         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1258         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1259         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1260         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
1261         IX86_BUILTIN_VBROADCASTSS_PS256,
1262         IX86_BUILTIN_VBROADCASTSD_PD256,
1263         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1264         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1265         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1266         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1267         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1268         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1269         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1270         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1271         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1272         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1273         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1274         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1275         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
1276         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1277         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1278         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1279         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1280         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
1281         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
1282         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
1283         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
1284         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
1285         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
1286         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
1287         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
1288         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
1289         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
1290         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1291         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1292         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1293         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
1294         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
1295         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1296         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1297         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1298         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1299         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1300         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1301         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1302         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1303         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1304         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1305         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1306         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1307         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1308         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1309         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1310         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1311         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1312         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1313         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1314         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1315         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1316         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1317         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1318         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1319         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1320         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1321         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1322         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1323         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1324         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1325         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1326         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1327         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1328         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1329         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1330         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1331         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1332         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1333         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1334         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1335         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1336         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1337         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1338         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1339         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1340         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1341         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1342         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1343         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1344         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1345         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1346         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1347         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1348         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1349         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1350         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1351         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1352         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
1353         IX86_BUILTIN_VBROADCASTSD_PD256,
1354         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1355         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1356         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1357         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1358         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1359         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1360         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1361         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1362         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1363         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1364         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1365         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1366         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1367         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
1368         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
1369         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
1370         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
1371         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
1372         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
1373         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
1374         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
1375         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
1376         IX86_BUILTIN_GATHERDIV8SI.
1377         (ix86_preferred_simd_mode): Support AVX2 modes.
1378         (ix86_expand_args_builtin): Support AVX2 builtins.
1379         (ix86_expand_special_args_builtin): Likewise.
1380         (ix86_expand_builtin): Likewise.
1381         * config/i386/i386.md (UNSPEC_VPERMSI): New.
1382         (UNSPEC_VPERMDF): Likewise.
1383         (UNSPEC_VPERMSF): Likewise.
1384         (UNSPEC_VPERMDI): Likewise.
1385         (UNSPEC_VPERMTI): Likewise.
1386         (UNSPEC_GATHER): Likewise.
1387         (ssemodesuffix): Extend.
1388         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1389         is defined.
1390         * config/i386/predicates.md (const1248_operand): New.
1391         * config/i386/sse.md (VI1_AVX2): New mode iterator.
1392         (VI2_AVX2): Likewise.
1393         (VI4_AVX2): Likewise.
1394         (VI8_AVX2): Likewise.
1395         (VIMAX_AVX2): Likewise.
1396         (SSESCALARMODE): Likewise.
1397         (VI12_AVX2): Likewise.
1398         (VI24_AVX2): Likewise.
1399         (VI124_AVX2): Likewise.
1400         (VI248_AVX2): Likewise.
1401         (VI48_AVX2): Likewise.
1402         (VI4SD_AVX2): Likewise.
1403         (V48_AVX2): Likewise.
1404         (AVX256MODE2P): Likewise.
1405         (AVXMODE48P_DI): Likewise.
1406         (sse2_avx2): New mode attribute.
1407         (ssse3_avx2): Likewise.
1408         (sse4_1_avx2): Likewise.
1409         (avx_avx2): Likewise.
1410         (ssebytemode): Likewise.
1411         (AVXTOSSEMODE): Likewise.
1412         (AVXMODE48P_DI): Likewise.
1413         (gthrfirstp): Likewise.
1414         (gthrlastp): Likewise.
1415         (lshift): New code_iterator
1416         (lshift): New code attribute.
1417         (lshift): Likewise.
1418         (ssescalarmodesuffix): Update.
1419         (sseunpackmode): Likewise.
1420         (ssepackmode): Likewise.
1421         (avx2_vec_dupv4sf): New insn pattern.
1422         (avx2_vec_dupv8sf): Likewise.
1423         (avx2_interleave_highv4di): Likewise.
1424         (avx2_interleave_lowv4di): Likewise.
1425         (avx2_umulv4siv4di3): Likewise
1426         (*avx2_umulv4siv4di3): Likewise
1427         (avx2_pmaddwd): Likewise.
1428         (*avx2_pmaddwd): Likewise.
1429         (avx2_lshrqv4di3): Likewise.
1430         (avx2_lshlqv4di3): Likewise.
1431         (avx2_lshl<mode>3): Likewise.
1432         (avx2_<umaxmin:code><mode>3): Likewise.
1433         (*avx2_<umaxmin:code><mode>3): Likewise.
1434         (avx2_<smaxmin:code><mode>3): Likewise.
1435         (*avx2_<smaxmin:code><mode>3): Likewise.
1436         (avx2_eq<mode>3): Likewise.
1437         (*avx2_eq<mode>3): Likewise.
1438         (avx2_gt<mode>3): Likewise.
1439         (avx2_interleave_highv32qi): New.
1440         (avx2_interleave_lowv32qi): Likewise.
1441         (avx2_interleave_highv16hi): Likewise.
1442         (avx2_interleave_lowv16hi): Likewise.
1443         (avx2_interleave_highv8si): Likewise.
1444         (avx2_interleave_lowv8si): Likewise.
1445         (avx2_pshufd): Likewise.
1446         (avx2_pshufd_1): Likewise.
1447         (avx2_pshuflwv3): Likewise.
1448         (avx2_pshuflw_1): Likewise.
1449         (avx2_pshufhwv3): Likewise.
1450         (avx2_pshufhw_1): Likewise.
1451         (avx2_uavgv32qi3): Likewise.
1452         (*avx2_uavgv32qi3): Likewise.
1453         (avx2_uavgv16hi3): Likewise.
1454         (*avx2_uavgv16hi3): Likewise.
1455         (avx2_pmovmskb): Likewise.
1456         (avx2_phaddwv16hi3): Likewise.
1457         (avx2_phadddv8si3): Likewise.
1458         (avx2_phaddswv16hi3): Likewise.
1459         (avx2_phsubwv16hi3): Likewise.
1460         (avx2_phsubdv8si3): Likewise.
1461         (avx2_phsubswv16hi3): Likewise.
1462         (avx2_pmaddubsw256): Likewise.
1463         (avx2_umulhrswv16hi3): Likewise.
1464         (*avx2_umulhrswv16hi3): Likewise.
1465         (avx2_packusdw): Likewise.
1466         (avx2_pblendd<mode>): Likewise.
1467         (avx2_<code>v16qiv16hi2): Likewise.
1468         (avx2_<code>v8qiv8si2): Likewise.
1469         (avx2_<code>v8hiv8si2): Likewise.
1470         (avx2_<code>v4qiv4di2): Likewise.
1471         (avx2_<code>v4hiv4di2): Likewise.
1472         (avx2_<code>v4siv4di2): Likewise.
1473         (avx2_pbroadcast<mode>): Likewise.
1474         (avx2_permvarv8si): Likewise.
1475         (avx2_permv4df): Likewise.
1476         (avx2_permvarv8sf): Likewise.
1477         (avx2_permv4di): Likewise.
1478         (avx2_permv2ti): Likewise.
1479         (avx2_vec_dupv4df): Likewise.
1480         (avx2_vbroadcasti128_<mode>): Likewise.
1481         (avx2_vec_set_lo_v4di): Likewise.
1482         (avx2_vec_set_hi_v4di): Likewise.
1483         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
1484         (avx2_extracti128): Likewise.
1485         (avx2_inserti128): Likewise.
1486         (avx2_ashrvv8si): Likewise.
1487         (avx2_ashrvv4si): Likewise.
1488         (avx2_<lshift>vv8si): Likewise.
1489         (avx2_<lshift>v<mode>): Likewise.
1490         (avx2_<lshift>vv2di): Likewise.
1491         (avx2_gathersi<mode>): Likewise.
1492         (*avx2_gathersi<mode>): Likewise.
1493         (avx2_gatherdi<mode>): Likewise.
1494         (*avx2_gatherdi<mode>): Likewise.
1495         (avx2_gatherdi<mode>256): Likewise.
1496         (*avx2_gatherdi<mode>256): Likewise.
1497         (<plusminus_insn><mode>3): Use VI mode iterator.
1498         (*<plusminus_insn><mode>3): Use VI mode iterator.
1499         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1500         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1501         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1502         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1503         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
1504         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
1505         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1506         Use VI2_AVX2 mode iterator.
1507         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
1508         Use VI2_AVX2 mode iterator.
1509         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
1510         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
1511         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1512         Use VI4_AVX2 mode iterator.
1513         (ashr<mode>3): Use VI24_AVX2 mode iterator.
1514         (lshr<mode>3): Use VI248_AVX2 mode iterator.
1515         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1516         Use VIMAX_AVX2 mode iterator.
1517         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1518         Use VI mode iterator.
1519         (*andnot<mode>3): Update for AVX2.
1520         (*<any_logic:code><mode>3): Likewise.
1521         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
1522         Use VI1_AVX mode iterator.
1523         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
1524         Use VI2_AVX mode iterator.
1525         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
1526         Use VI1_AVX mode iterator.
1527         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1528         Use VI8_AVX2 mode iterator.
1529         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1530         Use VI1_AVX2 mode iterator.
1531         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1532         Use VI124_AVX2 mode iterator.
1533         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1534         Use SSESCALARMODE mode iterator.
1535         (abs<mode>2): Use VI124_AVX2 mode iterator.
1536         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1537         Use VI8_AVX2 mode iterator.
1538         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1539         Use VI1_AVX2 mode iterator.
1540         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1541         Use VI1_AVX2 mode iterator.
1542         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1543         Use VI2_AVX2 mode iterator.
1544         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
1545         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
1546         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
1547         avx_maskstore<ssemodesuffix><avxsizesuffix>.
1548         Use V48_AVX2 mode iterator.
1549         * doc/extend.texi: Document AVX2 built-in functions.
1550         * doc/invoke.texi: Document -mavx2.
1551
1552 2011-08-22  Matthias Klose <doko@debian.org>
1553
1554         Revert:
1555         2011-07-11  Arthur Loiret  <aloiret@debian.org>
1556                     Matthias Klose <doko@debian.org>
1557         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1558         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1559         convention.
1560         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1561
1562 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
1563
1564         PR bootstrap/50146
1565         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1566         to #ifndef HONOR_REG_ALLOC_ORDER block.
1567
1568 2011-08-21  Richard Henderson  <rth@redhat.com>
1569
1570         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1571         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1572         * resource.c (next_insn_no_annul): Likewise.
1573         (mark_set_resources): Likewise.
1574         * reorg.c (delete_from_delay_slot): Likewise.
1575         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
1576         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
1577
1578 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
1579
1580         * config/i386/i386.md (any_div): Remove.
1581         (sgnprefix): Update for removal.
1582         (u): Ditto.
1583
1584 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
1585
1586         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
1587         for ira_reg_class_max_nregs.  Increase pressure by 1.
1588         (mark_pseudo_regno_subword_dead): Use allocno class
1589         for ira_reg_class_max_nregs.
1590
1591 2011-08-20  Richard Henderson  <rth@redhat.com>
1592
1593         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
1594         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
1595         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
1596         config/c6x/ltf.c: Adjust include path for soft-fp.
1597
1598 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1599
1600         PR other/46770
1601         * config.gcc (tm_file): Add initfini-array.h if
1602         .init_arrary/.fini_array are supported.
1603
1604         * crtstuff.c: Don't generate .ctors nor .dtors sections if
1605         USE_INITFINI_ARRAY is defined.
1606
1607         * output.h (default_elf_init_array_asm_out_constructor): New.
1608         (default_elf_fini_array_asm_out_destructor): Likewise.
1609         * varasm.c (elf_init_array_section): Likewise.
1610         (elf_fini_array_section): Likewise.
1611         (get_elf_initfini_array_priority_section): Likewise.
1612         (default_elf_init_array_asm_out_constructor): Likewise.
1613         (default_elf_fini_array_asm_out_destructor): Likewise.
1614
1615         * config/initfini-array.h: New.
1616
1617 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1618
1619         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
1620         OK for ST_REGS and FP_REGS before taking those classes into account.
1621
1622 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1623
1624         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
1625         before checking for annulled branches.
1626
1627 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1628
1629         * config/i386/i386.c (ix86_binary_operator_ok): Use
1630         satisfies_constraint_L.
1631
1632 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1633             Michael Matz  <matz@suse.de>
1634
1635         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
1636         trunc (a + copysign (nextafter (0.5, 0.0), a)).
1637
1638 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
1639
1640         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1641         * doc/tm.texi: Regenerate.
1642         * targhooks.c (default_preferred_output_reload_class): Don't use
1643         PREFERRED_OUTPUT_RELOAD_CLASS macro.
1644         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1645
1646 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
1647
1648         PR tree-optimization/48739
1649         * tree-ssa.c: Include cfgloop.h.
1650         (execute_update_addresses_taken): When updating ssa, if in loop closed
1651         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
1652         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1653
1654 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
1655
1656         PR rtl-optimization/49936
1657         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1658         for calculation of max register move costs.
1659
1660 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1661
1662         * c-parser.c (c_parser_postfix_expression): Convert operands of
1663         __builtin_complex to their semantic types.
1664
1665 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1666
1667         PR middle-end/49721
1668         * explow.c (convert_memory_address_addr_space): Also permute the
1669         conversion and addition of constant for zero-extend.
1670
1671 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1672
1673         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
1674         * doc/extend.texi (__builtin_complex): Document.
1675
1676 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1677
1678         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1679         beyond conversions.
1680         (convert_mult_to_widen): Convert constant inputs to the right type.
1681         (convert_plusminus_to_widen): Don't automatically reject inputs that
1682         are not an SSA_NAME.
1683         Convert constant inputs to the right type.
1684
1685 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1686
1687         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1688         to the correct type.
1689
1690 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1691
1692         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1693         unsigned inputs of different modes.
1694         (convert_plusminus_to_widen): Likewise.
1695
1696 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1697
1698         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
1699         'type'.
1700         Use 'type' from caller, not inferred from 'rhs'.
1701         Don't reject non-conversion statements. Do return lhs in this case.
1702         (is_widening_mult_p): Add new argument 'type'.
1703         Use 'type' from caller, not inferred from 'stmt'.
1704         Pass type to is_widening_mult_rhs_p.
1705         (convert_mult_to_widen): Pass type to is_widening_mult_p.
1706         (convert_plusminus_to_widen): Likewise.
1707
1708 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1709
1710         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
1711         Ensure the the larger type is the first operand.
1712
1713 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1714
1715         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
1716         unsupported unsigned multiplies to signed.
1717         (convert_plusminus_to_widen): Likewise.
1718
1719 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1720
1721         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
1722         conversion statement separating multiply-and-accumulate.
1723
1724 2011-08-19  Richard Guenther  <rguenther@suse.de>
1725
1726         PR tree-optimization/50067
1727         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
1728         offset only if we accounted for it.
1729
1730 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1731
1732         * config/arm/arm.md (maddhidi4): Remove '*' from name.
1733         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
1734         * optabs.c (find_widening_optab_handler_and_mode): New function.
1735         (expand_widen_pattern_expr): Use find_widening_optab_handler.
1736         (expand_binop_directly): Likewise.
1737         (expand_binop): Likewise.
1738         * optabs.h (find_widening_optab_handler): New macro define.
1739         (find_widening_optab_handler_and_mode): New prototype.
1740         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
1741         type precision rules.
1742         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
1743         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
1744         (is_widening_mult_rhs_p): Allow widening by more than one mode.
1745         Explicitly disallow mis-matched input types.
1746         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
1747         input types to fit the new handler.
1748         (convert_plusminus_to_widen): Likewise.
1749
1750 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1751
1752         * expr.c (expand_expr_real_2): Use widening_optab_handler.
1753         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
1754         (gen_insn): $N now means $a must be wider than $b, not consecutive.
1755         * optabs.c (widened_mode): New function.
1756         (expand_widen_pattern_expr): Use widening_optab_handler.
1757         (expand_binop_directly): Likewise.
1758         (expand_binop): Likewise.
1759         * optabs.h (widening_optab_handlers): New struct.
1760         (optab_d): New member, 'widening'.
1761         (widening_optab_handler): New function.
1762         (set_widening_optab_handler): New function.
1763         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
1764         widening_optab_handler.
1765         (convert_plusminus_to_widen): Likewise.
1766
1767 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1768
1769         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
1770         pedantic.
1771         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
1772         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
1773
1774 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1775
1776         * opth-gen.awk: Do not declare target save/restore structures and
1777         functions if IN_RTS defined.
1778
1779 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1780
1781         PR target/49437
1782         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
1783         when stack was realigned in interrupt handler prologue.
1784
1785 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
1786
1787         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
1788         (quals_from_declspecs): Assert _Noreturn not present.
1789         (grokdeclarator): Handle _Noreturn.
1790         (build_null_declspecs): Initialize noreturn_p.
1791         (declspecs_add_scspec): Handle RID_NORETURN.
1792         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
1793         (c_parser_attributes): Handle RID_NORETURN.
1794         * c-tree.h (struct c_declspecs): Add noreturn_p.
1795         * ginclude/stdnoreturn.h: New.
1796         * Makefile.in (USER_H): Add stdnoreturn.h.
1797
1798 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1799
1800         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
1801         (OPTION_MASK_ISA_AVX_UNSET): Update.
1802         (OPTION_MASK_ISA_AVX2_UNSET): New.
1803         (ix86_handle_option): Handle OPT_mavx2 case.
1804         * config/i386/cpuid.h (bit_AVX2): New.
1805         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1806         AVX2 feature.
1807         * config/i386/i386-c.c (ix86_target_macros_internal):
1808         Conditionally define __AVX2__.
1809         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
1810         Define "core-avx2" processor alias.  Handle avx2 option.
1811         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
1812         * config/i386/i386.h (TARGET_AVX2): New.
1813         * config/i386/i386.opt (mavx2): New.
1814         * doc/invoke.texi: Document -mavx2.
1815
1816 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
1817
1818         PR rtl-optimization/49890
1819         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
1820         subclasses of class which is superset of a pressure class.
1821
1822 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1823             Igor Zamyatin <igor.zamyatin@intel.com>
1824
1825         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
1826         with HOST_WIDE_INT for isa_flag.
1827         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
1828         isa variables.
1829
1830         * config/i386/i386.c (ix86_target_string): Replace int with
1831         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
1832         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
1833         (pta_flags): Removed.
1834         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
1835         (pta): Use HOST_WIDE_INT on flags.
1836         (builtin_isa): Use HOST_WIDE_INT on isa.
1837         (ix86_add_new_builtins): Likewise.
1838         (def_builtin): Use HOST_WIDE_INT on mask.
1839         (def_builtin_const): Likewise.
1840         (builtin_description): Likewise.
1841
1842         * config/i386/i386.opt (ix86_isa_flags): Replace int with
1843         HOST_WIDE_INT.
1844         (ix86_isa_flags_explicit): Likewise.
1845         (x_ix86_isa_flags_explicit): Likewise.
1846
1847 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
1848
1849         PR rtl-optimization/50107
1850         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
1851         (ira_hard_reg_in_set_p): New.
1852
1853         * ira-color.c (calculate_saved_nregs): New.
1854         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
1855         hard regs.
1856         (allocno_reload_assign, fast_allocation): Use
1857         ira_hard_reg_set_intersection_p instead of
1858         ira_hard_reg_not_in_set_p.
1859
1860         * ira.c (setup_reg_renumber): Use
1861         ira_hard_reg_set_intersection_p instead of
1862         ira_hard_reg_not_in_set_p.
1863         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
1864         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
1865
1866         * ira-costs.c (ira_tune_allocno_costs): Use
1867         ira_hard_reg_set_intersection_p instead of
1868         ira_hard_reg_not_in_set_p.
1869
1870 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1871             Igor Zamyatin <igor.zamyatin@intel.com>
1872
1873         * hwint.h (HOST_WIDE_INT_1): New.
1874
1875         * opt-functions.awk (switch_bit_fields): Initialize the
1876         host_wide_int field.
1877         (host_wide_int_var_name): New.
1878         (var_type_struct): Check and return HOST_WIDE_INT.
1879
1880         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
1881
1882         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
1883
1884         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
1885         check masks for HOST_WIDE_INT.
1886
1887         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
1888         (option_enabled): Likewise.
1889         (get_option_state): Likewise.
1890
1891         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
1892         to HOST_WIDE_INT.
1893
1894 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1895             Marc Glisse  <marc.glisse@normalesup.org>
1896
1897         PR libstdc++-v3/1773
1898         * target.def (decl_mangling_context): New C++ hook.
1899         * doc/tm.texi: Regenerate.
1900         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
1901         * config/sol2-protos.h: Group by source file.
1902         (solaris_cxx_decl_mangling_context): Declare.
1903         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
1904         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
1905         Use $<.
1906         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
1907         Add sol2-stubs.o to extra_objs.
1908
1909 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
1910
1911         PR target/50009
1912         * stor-layout.c (update_alignment_for_field): Don't ICE on
1913         packed flexible array members if ms_bitfield_layout_p.
1914
1915         PR target/50092
1916         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
1917         on the result before returning it.
1918
1919         PR debug/50017
1920         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
1921         is a debug stmt, use location of the first non-debug stmt after it.
1922
1923 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1924
1925         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
1926         (arm_size_rtx_costs): Likewise.
1927
1928 2011-08-18  Richard Guenther  <rguenther@suse.de>
1929
1930         * tree.h (tree_int_cst_msb): Remove.
1931         * tree.c (tree_int_cst_msb): Likewise.
1932         (tree_int_cst_sign_bit): Move from ...
1933         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
1934
1935 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1936
1937         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
1938         * doc/tm.texi: Regenerate.
1939         * target.def (rtx_costs): Add an opno parameter.
1940         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1941         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1942         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1943         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1944         * cse.c (COST_IN): Add an opno parameter.
1945         (notreg_cost): Likewise.  Update call to rtx_cost.
1946         (COST, fold_rtx): Update accordingly.
1947         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
1948         * expmed.c (emit_store_flag): Likewise.
1949         * optabs.c (avoid_expensive_constant): Add an opno parameter.
1950         Update call to rtx_cost.
1951         (expand_binop_directly, expand_binop): Likewise.
1952         (expand_twoval_binop, prepare_cmp_insn): Likewise.
1953         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
1954         (set_src_cost, get_full_set_src_cost): Update accordingly.
1955         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
1956         to target hook.
1957         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
1958         (default_adress_cost): Update calls to rtx_cost.
1959
1960         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
1961         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
1962         (arm_rtx_costs): Add an opno parameter.
1963         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
1964         adjust any recursive rtx-cost calls.
1965         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
1966         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1967         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
1968         * config/cris/cris.c (cris_rtx_costs): Likewise.
1969         * config/frv/frv.c (frv_rtx_costs): Likewise.
1970         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
1971         * config/i386/i386.c (ix86_rtx_costs): Likewise.
1972         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
1973         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
1974         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
1975         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
1976         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
1977         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
1978         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
1979         * config/mep/mep.c (mep_rtx_cost): Likewise.
1980         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
1981         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
1982         (mips_zero_extend_cost): Add an opno parameter.
1983         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
1984         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
1985         to rtx_cost.
1986         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
1987         rtx-cost calls.
1988         * config/pa/pa.c (hppa_rtx_costs): Likewise.
1989         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
1990         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
1991         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
1992         (rs6000_debug_rtx_costs): Likewise.
1993         * config/s390/s390.c (s390_rtx_costs): Likewise.
1994         * config/score/score-protos.h (score_rtx_costs): Likewise.
1995         * config/score/score.c (score_rtx_costs): Likewise.
1996         * config/sh/sh.c (andcosts): Update call to rtx_cost.
1997         (sh_rtx_costs): Add an opno parameter.
1998         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
1999         * config/spu/spu.c (spu_rtx_costs): Likewise.
2000         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2001         * config/v850/v850.c (v850_rtx_costs): Likewise.
2002         * config/vax/vax.c (vax_rtx_costs): Likewise.
2003         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2004
2005 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2006
2007         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
2008         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
2009         rtx_cost.
2010         * calls.c (precompute_register_parameters): Likewise.
2011         * combine.c (expand_compound_operation, make_extraction): Likewise.
2012         (force_to_mode, distribute_and_simplify_rtx): Likewise.
2013         * dse.c (find_shift_sequence): Likewise.
2014         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
2015         * expr.c (compress_float_constant): Likewise.
2016         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2017         * gcse.c (want_to_gcse_p): Likewise.
2018         * ifcvt.c (noce_try_sign_mask): Likewise.
2019         * loop-doloop.c (doloop_optimize): Likewise.
2020         * loop-invariant.c (create_new_invariant): Likewise.
2021         * optabs.c (avoid_expensive_constant): Likewise.
2022         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
2023         (try_replace_in_use, reload_cse_move2add): Likewise.
2024         * reload1.c (calculate_elim_costs_all_insns): Likewise.
2025         (note_reg_elim_costly): Likewise.
2026         * rtlanal.c (insn_rtx_cost): Likewise.
2027         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2028         * stmt.c (lshift_cheap_p): Likewise.
2029         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
2030         * config/avr/avr.c (final_prescan_insn): Likewise.
2031         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2032         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
2033
2034 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2035
2036         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
2037         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
2038         * cfgloopanal.c (seq_cost): Likewise.
2039         * loop-invariant.c (create_new_invariant): Likewise.
2040         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
2041         (reload_cse_move2add): Use get_full_set_rtx_cost.
2042
2043 2011-08-18  Richard Guenther  <rguenther@suse.de>
2044
2045         * expr.c (get_inner_reference): Fix typo in last change.
2046
2047 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
2048             Joseph Myers  <joseph@codesourcery.com>
2049
2050         PR tree-optimization/49963
2051         * hwint.c (absu_hwi): Define.
2052         * hwint.h (absu_hwi): Declare.
2053         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
2054         of abs_hwi.
2055         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2056         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2057
2058 2011-08-18  Richard Guenther  <rguenther@suse.de>
2059
2060         * expr.c (get_inner_reference): Sign-extend the constant
2061         twos-complement offset before doing arbitrary precision
2062         arithmetic on it.
2063         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2064         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
2065         to get_constraint_for_ptr_offset.
2066
2067 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2068
2069         PR target/50068
2070         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
2071
2072 2011-08-17  Richard Guenther  <rguenther@suse.de>
2073
2074         * tree.h (convert_to_ptrofftype_loc): New function.
2075         (convert_to_ptrofftype): Define.
2076         * builtins.c (expand_builtin_bzero): Use size_type_node.
2077         (fold_builtin_bzero): Likewise.
2078         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
2079         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
2080         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
2081         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
2082         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
2083         * fold-const.c (build_range_check): Negate using the original type.
2084         (fold_unary_loc): Use fold_build_pointer_plus_loc.
2085         * gimple-fold.c (gimple_adjust_this_by_delta): Use
2086         convert_to_ptrofftype.
2087         * gimplify.c (gimplify_self_mod_expr): Likewise.
2088         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
2089         (graphite_create_new_loop_guard): Likewise.
2090         * graphite-sese-to-poly.c (my_long_long): Remove.
2091         (scop_ivs_can_be_represented): Adjust.
2092         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
2093         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
2094         * tree-loop-distribution.c (build_size_arg_loc): Use
2095         size_type_node.
2096         (generate_memset_zero): Simplify.
2097         * tree-mudflap.c: Use fold_convert, not convert.
2098         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
2099         its own type.
2100         (determine_offset): Likewise for DR_STEP.
2101         (valid_initializer_p): Likewise.
2102         * tree-profile.c (prepare_instrumented_value): Convert the pointer
2103         to an integer type of same size.
2104         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
2105         to sizetype without need.
2106         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2107         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
2108         * tree-ssa-loop-manip.c (create_iv): Likewise.
2109         (determine_exit_conditions): Adjust comment.
2110         * tree-ssa-pre.c (create_expression_by_pieces): Use
2111         convert_to_ptrofftype.
2112         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
2113         * varasm.c (array_size_for_constructor): Compute using double_ints.
2114
2115 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2116
2117         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
2118         when generating an integer result where possible.  Short-cut
2119         comparison against 0 also for QImode.
2120
2121 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2122
2123         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
2124         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
2125         prototype.
2126         * config/spu/spu.c (spu_legitimize_reload_address): New function.
2127         (spu_legitimate_address_p): Do not check displacement if the base
2128         is an eliminable stack register.
2129
2130 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
2131
2132         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
2133         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2134         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
2135         m32c_preferred_output_reload_class): Remove.
2136         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
2137         Change rclass argument and return types to reg_class_t. Use
2138         reg_class_subset_p instead of class_sizes.
2139         (m32c_preferred_output_reload_class): Make static. Change rclass
2140         argument and return types to reg_class_t.
2141         (TARGET_PREFERRED_RELOAD_CLASS,
2142         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2143
2144 2011-08-16  Kai Tietz  <ktietz@redhat.com>
2145
2146         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
2147
2148 2011-08-16  Richard GUenther  <rguenther@suse.de>
2149
2150         PR tree-optimization/50082
2151         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
2152         warnings here, instead of ...
2153         (ssa_forward_propagate_and_combine): ... here.
2154         (forward_propagate_into_comparison_1): Adjust.
2155         (forward_propagate_into_comparison): Likewise.
2156         (forward_propagate_into_gimple_cond): Likewise.
2157         (forward_propagate_into_cond): Likewise.
2158
2159 2011-08-16  Andreas Schwab  <schwab@redhat.com>
2160
2161         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
2162         instead of ggc_alloc_zone_vec_rtvec_def.
2163
2164 2011-08-16  Richard Guenther  <rguenther@suse.de>
2165
2166         * tree.h (ptrofftype_p): New helper function.
2167         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
2168         offset verification.
2169         (verify_gimple_assign_binary): Likewise.
2170         * tree.c (build2_stat): Likewise.
2171         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
2172         (reset_evolution_in_loop): Likewise.
2173         * tree-chrec.h (build_polynomial_chrec): Likewise.
2174
2175 2011-08-16  Liang Wang  <lwang1@marvell.com>
2176
2177         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
2178         ggc_alloc_zone_vec_rtvec_def.
2179
2180 2011-08-16  Richard Guenther  <rguenther@suse.de>
2181
2182         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
2183         helper factored out from ...
2184         (extract_range_from_binary_expr_1): ... here.  Re-structure
2185         to not glob handling too different tree codes.
2186
2187 2011-08-15  Richard Henderson  <rth@redhat.com>
2188
2189         PR middle-end/50006
2190         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
2191         setting out to include allocate_stack named pattern as well.
2192         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
2193         * stmt.c (expand_stack_restore): Likewise.
2194
2195 2011-08-15  Richard Guenther  <rguenther@suse.de>
2196
2197         PR middle-end/50082
2198         * fold-const.c (maybe_canonicalize_comparison_1): Properly
2199         convert the modified operand to the other operand type.
2200         (fold_comparison): Call maybe_canonicalize_comparison_1 with
2201         useless conversions stripped from comparison operands.
2202
2203 2011-08-15  Richard Guenther  <rguenther@suse.de>
2204
2205         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
2206         (extract_range_from_unary_expr_1): Restructure.
2207
2208 2011-08-15  Richard Guenther  <rguenther@suse.de>
2209
2210         PR tree-optimization/50058
2211         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
2212         copy matching.
2213
2214 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2215
2216         PR target/50022
2217         * config/arm/arm.c (output_move_double): Add 2 parameters
2218         to count the number of insns emitted and whether to emit or not.
2219         Use the flag to decide when to emit and count number of instructions
2220         that will be emitted.
2221         Handle case where output_move_double might be called for calculating
2222         lengths with an invalid constant.
2223         (arm_count_output_move_double_insns): Define.
2224         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
2225         (output_move_double): Adjust prototype.
2226         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
2227         output_move_double.
2228         ("*movdi_vfp_cortexa8"): Likewise and add attribute
2229         for ce_count.
2230         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
2231         ("*movdf_soft_insn"): Likewise.
2232         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
2233         ("*cirrus_thumb2_movdi"): Likewise.
2234         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
2235         ("*cirrus_movdf_hard_insn"): Likewise.
2236         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
2237         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
2238         ("mov<mode>_internal VMMX"): Likewise.
2239         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
2240
2241 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
2242
2243         * config/i386/i386.c (ix86_expand_round_sse4): New function.
2244         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
2245         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
2246         for TARGET_ROUND.
2247
2248         (rint<mode>2): Simplify TARGET_ROUND check.
2249         (floor<mode>2): Ditto.
2250         (ceil<mode>2): Ditto.
2251         (btrunc<mode>2): Ditto.
2252
2253 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
2254
2255         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
2256         as mmix_preferred_output_reload_class.
2257
2258 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
2259
2260         * PR target/49903
2261         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
2262         (branch_unspec): New insn.
2263         (branch): Beauty farm.
2264         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
2265         to be IF_THEN_ELSE.
2266         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
2267         New static functions.
2268         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
2269         Use CONST_INT_P.  Beauty.
2270
2271 2011-08-12  Richard Henderson  <rth@redhat.com>
2272
2273         PR rtl-opt/49994
2274         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
2275         * sched-deps.c (init_deps): Clear it.
2276         (deps_analyze_insn): Consume it.
2277         (sched_analyze_insn): Fill it.
2278
2279 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2280
2281         PR target/48328
2282         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
2283         for tbh instructions.
2284
2285 2011-08-12  Diego Novillo  <dnovillo@google.com>
2286
2287         * data-streamer.h (streamer_write_zero): Rename from output_zero.
2288         (streamer_write_uhwi): Rename from lto_output_uleb128.
2289         (streamer_write_hwi): Rename from output_sleb128.
2290         (streamer_write_string): Rename from lto_output_string.
2291         (streamer_string_index): Rename from lto_string_index.
2292         (streamer_write_string_with_length): Rename from
2293         lto_output_string_with_length.
2294         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
2295         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
2296         (streamer_read_string): Rename from lto_input_string.
2297         (streamer_read_indexed_string): Rename from input_string_internal.
2298         (streamer_read_uhwi): Rename from lto_input_uleb128.
2299         (streamer_read_hwi): Rename from lto_input_sleb128.
2300         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
2301         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
2302         (streamer_write_enum): Rename from lto_output_enum.
2303         (streamer_read_enum): Rename from lto_input_enum.
2304         (streamer_write_record_start): Rename from output_record_start.
2305         (streamer_read_record_start): Rename from input_record_start.
2306         (streamer_write_bitpack): Rename from lto_output_bitpack.
2307         (streamer_read_bitpack): Rename from lto_input_bitpack.
2308         (streamer_write_char_stream): Rename from lto_output_1_stream.
2309         (streamer_read_uchar): Rename from lto_input_1_unsigned.
2310         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
2311         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
2312         (streamer_read_string_cst): Rename from input_string_cst.
2313         (streamer_read_chain): Rename from lto_input_chain.
2314         (streamer_alloc_tree): Rename from lto_materialize_tree.
2315         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
2316         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
2317         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
2318         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
2319         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
2320         (streamer_write_chain): Rename from lto_output_chain.
2321         (streamer_write_tree_header): Rename from lto_output_tree_header.
2322         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
2323         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
2324         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
2325         (streamer_write_builtin): Rename from lto_output_builtin_tree.
2326         (streamer_check_handled_ts_structures): Rename from
2327         check_handled_ts_structures.
2328         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
2329         (streamer_tree_cache_insert_at): Rename from
2330         lto_streamer_cache_insert_at.
2331         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
2332         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
2333         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
2334         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
2335         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
2336         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
2337         (write_identifier): Rename from output_identifier.
2338         (write_ts_common_tree_pointers): Rename from
2339         lto_output_ts_common_tree_pointers.
2340         (write_ts_vector_tree_pointers): Rename from
2341         lto_output_ts_vector_tree_pointers.
2342         (write_ts_complex_tree_pointers): Rename from
2343         lto_output_ts_complex_tree_pointers.
2344         (write_ts_decl_minimal_tree_pointers): Rename from
2345         lto_output_ts_decl_minimal_tree_pointers.
2346         (write_ts_decl_common_tree_pointers): Rename from
2347         lto_output_ts_decl_common_tree_pointers.
2348         (write_ts_decl_non_common_tree_pointers): Rename from
2349         lto_output_ts_decl_non_common_tree_pointers.
2350         (write_ts_decl_with_vis_tree_pointers): Rename from
2351         lto_output_ts_decl_with_vis_tree_pointers.
2352         (write_ts_field_decl_tree_pointers): Rename from
2353         lto_output_ts_field_decl_tree_pointers.
2354         (write_ts_function_decl_tree_pointers): Rename from
2355         lto_output_ts_function_decl_tree_pointers.
2356         (write_ts_type_common_tree_pointers): Rename from
2357         lto_output_ts_type_common_tree_pointers.
2358         (write_ts_type_non_common_tree_pointers): Rename from
2359         lto_output_ts_type_non_common_tree_pointers.
2360         (write_ts_list_tree_pointers): Rename from
2361         lto_output_ts_list_tree_pointers.
2362         (write_ts_vec_tree_pointers): Rename from
2363         lto_output_ts_vec_tree_pointers.
2364         (write_ts_exp_tree_pointers): Rename from
2365         lto_output_ts_exp_tree_pointers.
2366         (write_ts_block_tree_pointers): Rename from
2367         lto_output_ts_block_tree_pointers.
2368         (write_ts_binfo_tree_pointers): Rename from
2369         lto_output_ts_binfo_tree_pointers.
2370         (write_ts_constructor_tree_pointers): Rename from
2371         lto_output_ts_constructor_tree_pointers.
2372         (write_ts_target_option): Rename from lto_output_ts_target_option.
2373         (write_ts_translation_unit_decl_tree_pointers): Rename from
2374         lto_output_ts_translation_unit_decl_tree_pointers.
2375         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
2376         Rename from lto_streamer_cache_add_to_node_array.
2377         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2378         (record_common_node): Rename from lto_record_common_node.
2379
2380         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2381         declarations.
2382         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2383         function.
2384         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2385         unused function.
2386         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2387         (ipa-reference.o): Likewise.
2388         * lto-section-out.c: Include data-streamer.h.
2389         * ipa-reference.c: Include data-streamer.h.
2390
2391 2011-08-12  Nick Clifton  <nickc@redhat.com>
2392
2393         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
2394         * doc/md.texi (cmpstrn): Note that the comparison stops if both
2395         fetched bytes are zero.
2396         (cmpstr): Likewise.
2397         (cmpmem): Note that the comparison does not stop if both of the
2398         fetched bytes are zero.
2399
2400 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
2401
2402         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2403         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2404         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2405         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2406         to integer_type_node.
2407         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2408         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2409         * builtins.c (expand_builtin_in): Ditto.
2410         (mathfn_built_in_1): Ditto.
2411         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2412         BUILT_IN_IFLOOR.
2413         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2414         BUILT_IN_IROUND.
2415         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2416         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2417         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2418
2419 2011-08-12  Richard Guenther  <rguenther@suse.de>
2420
2421         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2422
2423 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
2424
2425         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2426
2427 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
2428
2429         * config/arm/arm.c (get_label_padding): New function.
2430         (create_fix_barrier, arm_reorg): Use it.
2431
2432 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2433
2434         PR target/49781
2435         * config/i386/i386.md (*lea_5_zext): New.
2436         (*lea_6_zext): Ditto.
2437         * config/i386/predicates.md (const_32bit_mask): New predicate.
2438         (lea_address_operand): Reject AND.
2439         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2440         const_32bit_mask immediate.
2441         (ix86_print_operand_address): Handle AND.
2442         (memory_address_length): Ditto.
2443
2444 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2445             Brian Hackett  <bhackett1024@gmail.com>
2446
2447         * plugin.def: Add event for finish_decl.
2448         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2449         * c-decl.c (finish_decl): Invoke callbacks on above event.
2450         * doc/plugins.texi: Document above event.
2451
2452 2011-08-11  Richard Guenther  <rguenther@suse.de>
2453
2454         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2455         lookups, make looking through aggregate copies stronger.
2456
2457 2011-08-11  Richard Henderson  <rth@redhat.com>
2458
2459         PR bootstrap/50018
2460         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2461
2462 2011-08-11  Richard Guenther  <rguenther@suse.de>
2463
2464         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2465         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2466         (vrp_visit_stmt): Likewise.
2467
2468 2011-08-11  Richard Guenther  <rguenther@suse.de>
2469
2470         PR middle-end/50040
2471         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2472         load of the other piece with TREE_NO_WARNING.
2473         * tree-flow.h (warn_uninit): Adjust prototype.
2474         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2475         the base variable and the expression that is used separately.
2476         Properly query all TREE_NO_WARNING flags.
2477         (struct walk_data): Remove.
2478         (warn_uninitialized_var): Likewise.
2479         (warn_uninitialized_vars): Do not walk gimple pieces but simply
2480         look at all SSA uses of the statement.  Handle unused memory
2481         separately.
2482         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2483
2484 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2485
2486         * config/rx/rx.md (movsicc): Allow register to register transfers.
2487         (*movsicc): Likewise.
2488         (*stcc): Restrict this pattern to EQ and NE compares.
2489         (*stcc_reg): New pattern.  Works for any comparison but only for
2490         register transfers.
2491
2492 2011-08-11   Diego Novillo  <dnovillo@google.com>
2493
2494         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2495         Call stream_write_tree instead of output_record_start.
2496         (lto_output_ts_binfo_tree_pointers): Likewise.
2497
2498         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2499         Convert it to a macro.
2500         (stream_read_tree): Likewise.
2501
2502         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2503         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2504
2505         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2506         and tree_read_bitfields.
2507         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2508         (lto_write_tree): Call it.
2509         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2510         * streamer-hooks.h (struct streamer_hooks): Remove fields
2511         name, is_streamable and alloc_tree. Update all users.
2512         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2513         (lto_materialize_tree): ... here.
2514         Handle CALL_EXPR codes.
2515         Remove call to lto_streamer_cache_append.
2516         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
2517         * tree-streamer.h (tree_read_bitfields): Declare.
2518
2519         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2520         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2521         * tree-streamer.h (stream_read_tree): New.  Replace all calls
2522         to lto_input_tree with it.
2523         (stream_write_tree): New.  Replace all calls to lto_output_tree,
2524         lto_output_tree_ref and lto_output_tree_or_ref with it.
2525         * lto-streamer-in.c (lto_read_tree): Inline code from
2526         lto_streamer_read_tree.
2527         (lto_input_tree): Move from tree-streamer-in.c.
2528         * lto-streamer-out.c (lto_output_tree_ref): Make static.
2529         Remove handling of NULL values for EXPR.
2530         Do not handle EXPRs that are not indexable.
2531         (lto_write_tree): Move from tree-streamer-out.c.
2532         Inline lto_streamer_write_tree.
2533         (lto_output_tree): Move from tree-streamer-out.c.
2534         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2535         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2536         (lto_preload_common_nodes): Likewise.
2537         Remove assertions and adjustments for nodes
2538         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2539         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
2540         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
2541         * lto-streamer.h (lto_input_tree): Declare.
2542         (lto_output_tree_ref): Remove.
2543         * streamer-hooks.h (struct streamer_hooks): Remove fields
2544         preload_common_nodes, indexable_with_decls_p,
2545         pack_value_fields, unpack_value_fields and output_tree_header.
2546         Update all users.
2547         * tree-streamer-in.c (lto_materialize_tree): Make extern.
2548         (lto_input_tree_pointers): Likewise.
2549         (lto_read_tree): Move to lto-streamer-in.c.
2550         (lto_input_integer_cst): Make extern.
2551         (lto_get_pickled_tree): Likewise.
2552         (lto_get_builtin_tree): Likewise.
2553         (lto_input_tree): Move to lto-streamer-in.c.
2554         * tree-streamer-out.c (pack_value_fields): Make extern.
2555         (lto_output_tree_or_ref): Remove.  Replace all callers with
2556         calls to stream_write_tree.
2557         (lto_output_builtin_tree): Make extern.
2558         (lto_streamer_write_tree): Inline into lto_write_tree.
2559         (lto_output_tree_pointers): Make extern.
2560         (lto_output_tree_header): Likewise.
2561         (lto_output_integer_cst): Likewise.
2562         (lto_write_tree): Move to lto-streamer-out.c.
2563         (lto_output_tree): Likewise.
2564         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
2565         (preload_common_nodes): Likewise.
2566         (lto_streamer_cache_create): Call it.
2567         * tree-streamer.h: Include streamer-hooks.h.
2568         (stream_write_tree): New.
2569         (stream_read_tree): New.
2570         (lto_input_tree): Remove.
2571         (lto_materialize_tree): Declare.
2572         (lto_input_tree_pointers): Declare.
2573         (lto_get_pickled_tree): Declare.
2574         (lto_get_builtin_tree): Declare.
2575         (lto_input_integer_cst): Declare.
2576         (lto_output_tree_header): Declare.
2577         (pack_value_fields): Declare.
2578         (lto_output_tree_pointers): Declare.
2579         (lto_output_integer_cst): Declare.
2580         (lto_output_builtin_tree): Declare.
2581
2582 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2583
2584         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
2585         only if producer writes to the register given by regno.
2586
2587 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2588             Alexander Monakov  <amonakov@ispras.ru>
2589
2590         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
2591         (sched_get_condition_with_rev_uncached): ... this.  Factor out
2592         condition caching logic into ...
2593         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
2594         attempt to use cache for instructions with zero luid.
2595         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
2596         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
2597
2598 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2599
2600         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
2601         get_seqno_for_a_jump.  Update the caller.
2602         (get_seqno_by_succs): New.  Use it ...
2603         (get_seqno_for_a_jump): ... here to find a seqno if looking at
2604         predecessors was not sufficient.
2605         (get_seqno_by_preds): Include head in iteration range, exclude insn.
2606
2607 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2608
2609         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
2610
2611 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2612
2613         * sel-sched-ir.h (register_unavailable_p): Declare.
2614         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
2615         (set_unavailable_target_for_expr): ... here to properly test
2616         availability of a register.
2617         (speculate_expr): Ditto.
2618         * sel-sched.c (substitute_reg_in_expr): Ditto.
2619         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
2620
2621 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2622
2623         * sel-sched.c (verify_target_availability): Fix usage of
2624         hard_regno_nregs.
2625
2626 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2627
2628         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
2629         recognized by cannot_copy_insn_p hook and volatile instructions.
2630
2631 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2632
2633         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
2634
2635 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
2636
2637         * doc/md.texi (define_bypass): Say that the instruction names can
2638         be filename-style globs.
2639         * Makefile.in (FNMATCH_H): Define.
2640         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
2641         * genattrtab.c: Include fnmatch.h.
2642         (bypass_list): Change field name from "insn" to "pattern".
2643         (gen_bypass_1): Update accordingly.
2644         (process_bypasses): Use fnmatch to check for matches between
2645         insn reservations and define_bypasses.
2646         * genautomata.c: Include fnmatch.h.
2647         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2648         and out_pattern respectively.
2649         (gen_bypass, insert_bypass): Update accordingly.
2650         (for_each_matching_insn, process_bypass_2, process_bypass_1)
2651         (process_bypass): New functions.
2652         (process_decls): Use process_bypass.  Update after field name changes.
2653
2654 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
2655
2656         PR target/49687
2657         * config/avr/avr.md (smulqi3_highpart): New insn.
2658         (umulqi3_highpart): New insn.
2659         (*subqi3.ashiftrt7): New insn.
2660         (smulhi3_highpart): New expander.
2661         (umulhi3_highpart): Nex expander.
2662         (*smulhi3_highpart_call): New insn.
2663         (*umulhi3_highpart_call): New insn.
2664         (extend_u): New code attribute.
2665         (extend_prefix): Rename code attribute to extend_su.
2666         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2667         widening QI/HI multiply.
2668
2669 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
2670
2671         PR tree-optimization/50039
2672         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2673         that DEF_STMT has a stmt_vec_info.
2674
2675 2011-08-10  Richard Guenther  <rguenther@suse.de>
2676
2677         * tree.h (can_trust_pointer_alignment): Remove.
2678         * builtins.c (can_trust_pointer_alignment): Remove.
2679
2680 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2681
2682         * c-typeck.c (scalar_to_vector): New function. Try scalar to
2683         vector conversion.
2684         (stv_conv): New enum for scalar_to_vector return type.
2685         (build_binary_op): Adjust.
2686         * doc/extend.texi: Description of scalar to vector expansion.
2687
2688 2011-08-10  Richard Guenther  <rguenther@suse.de>
2689
2690         * tree.h (get_pointer_alignment): Remove max-align argument.
2691         (get_object_alignment): Likewise.
2692         * builtins.c (get_object_alignment_1): Adjust.
2693         (get_object_alignment): Remove max-align argument.
2694         (get_pointer_alignment): Likewise.
2695         (expand_builtin_strlen): Adjust.
2696         (expand_builtin_memcpy): Likewise.
2697         (expand_builtin_mempcpy_args): Likewise.
2698         (expand_builtin_strncpy): Likewise.
2699         (expand_builtin_memset_args): Likewise.
2700         (expand_builtin_memcmp): Likewise.
2701         (expand_builtin_strcmp): Likewise.
2702         (expand_builtin_strncmp): Likewise.
2703         (get_builtin_sync_mem): Likewise.
2704         (fold_builtin_memset): Likewise.
2705         (fold_builtin_memory_op): Likewise.
2706         (expand_builtin_memory_chk): Likewise.
2707         * emit-rtl.c (get_mem_align_offset): Likewise.
2708         (set_mem_attributes_minus_bitpos): Likewise.
2709         * expr.c (expand_assignment): Likewise.
2710         (expand_expr_real_1): Likewise.
2711         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
2712         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2713         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
2714         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2715         * value-prof.c (gimple_stringops_transform): Likewise.
2716
2717 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
2718
2719         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
2720         * doc/tm.texi: Regenerate.
2721
2722 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
2723
2724         PR target/29560
2725         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
2726         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
2727         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
2728         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
2729         shift target is unused.
2730
2731 2011-08-10  Richard Guenther  <rguenther@suse.de>
2732
2733         PR tree-optimization/49937
2734         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
2735         using get_object_alignment_1.
2736
2737 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2738
2739         * config/i386/i386.c (ix86_emit_i387_round): New function.
2740         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
2741         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
2742         Use ix86_emit_i387_round to expand round function for i387 math.
2743         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
2744         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
2745
2746 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2747
2748         * config/sync.c: Move to ../libgcc.
2749         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
2750         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
2751         Remove.
2752
2753 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2754
2755         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
2756         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
2757         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
2758         Change 'from' and 'to' arguments type to reg_class_t.
2759         (TARGET_REGISTER_MOVE_COST): Define.
2760
2761 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
2762
2763         PR target/50026
2764         Revert:
2765         PR rtl-optimization/49990
2766         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2767         ignore classes which can not change mode.
2768         (find_costs_and_classes): Ditto.
2769
2770 2011-08-09  Richard Guenther  <rguenther@suse.de>
2771
2772         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
2773         information for ranges with only negative values.
2774         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
2775         BIT_AND_EXPR handling to handle ranges with negative values.
2776
2777 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2778
2779         * config/i386/i386.c: Remove traling spaces.
2780         * config/i386/sse.md: Likewise.
2781         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
2782         (*fma_fmsub_<mode>): Likewise.
2783         (*fma_fnmadd_<mode>): Likewise.
2784         (*fma_fnmsub_<mode>): Likewise.
2785
2786 2011-08-09  Nick Clifton  <nickc@redhat.com>
2787
2788         * config/rx/rx.md: Disable extender peepholes at -O3.
2789
2790 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2791
2792         PR target/49781
2793         * config/i386/i386.md (reload_noff_load): New.
2794         (reload_noff_store): Ditto.
2795         * config/i386/i386.c (ix86_secondary_reload): Use
2796         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
2797         double-word moves from/to non-offsetable addresses instead of
2798         generating XMM temporary.
2799
2800 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2801
2802         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
2803
2804 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
2805
2806         PR tree-optimization/50014
2807         * tree-vect-loop.c (vectorizable_reduction): Get def type before
2808         calling vect_get_vec_def_for_stmt_copy ().
2809
2810 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
2811
2812         PR rtl-optimization/49990
2813         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2814         ignore classes which can not change mode.
2815         (find_costs_and_classes): Ditto.
2816
2817 2011-08-08  Richard Henderson  <rth@redhat.com>
2818
2819         PR middle-end/49990
2820         * config/i386/i386.c (ix86_expand_prologue): Call
2821         for SEH target gen_prologue_use instead of gen_blockage
2822         at prologue's end.
2823
2824 2011-08-08  Martin Jambor  <mjambor@suse.cz>
2825
2826         PR middle-end/49923
2827         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
2828         memory alignment.
2829
2830 2011-08-08   Diego Novillo  <dnovillo@google.com>
2831
2832         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
2833         (DATA_STREAMER_H): New.
2834         (GIMPLE_STREAMER_H): New.
2835         (TREE_STREAMER_H): New.
2836         (STREAMER_HOOKS_H): New.
2837         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
2838         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
2839         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
2840         (data-streamer.o): New.
2841         (data-streamer-in.o): New.
2842         (data-streamer-out.o): New.
2843         (gimple-streamer-in.o): New.
2844         (gimple-streamer-out.o): New.
2845         (streamer-hooks.o): New.
2846         (tree-streamer.o): New.
2847         (tree-streamer-in.o): New.
2848         (tree-streamer-out.o): New.
2849         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2850         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
2851         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2852         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
2853         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2854         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
2855         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2856         (ipa-inline-analysis.o): Likewise.
2857         (ipa-pure-const.o): Likewise.
2858         * data-streamer-in.c: New.
2859         * data-streamer-out.c: New.
2860         * data-streamer.c: New.
2861         * data-streamer.h: New.
2862         * gimple-streamer-in.c: New.
2863         * gimple-streamer-out.c: New.
2864         * gimple-streamer.h: New.
2865         * ipa-inline-analysis.c: Include data-streamer.h.
2866         * ipa-prop.c: Include data-streamer.h.
2867         * ipa-pure-const.c: Include data-streamer.h.
2868         * lto-cgraph.c: Include data-streamer.h.
2869         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
2870         (lto_input_widest_uint_uleb128): Likewise.
2871         (lto_input_sleb128): Likewise.
2872         (bp_unpack_var_len_unsigned): Likewise.
2873         (bp_unpack_var_len_int): Likewise.
2874         * lto-section-out.c (lto_output_uleb128_stream): Move to
2875         data-streamer-out.c.
2876         (lto_output_widest_uint_uleb128_stream): Likewise.
2877         (lto_output_sleb128_stream): Likewise.
2878         (bp_pack_var_len_unsigned): Likewise.
2879         (bp_pack_var_len_int): Likewise.
2880         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
2881         (struct string_slot): Remove.  Update all users.
2882         (lto_tag_check_set): Make extern.
2883         (lto_tag_check_range): Move to lto-streamer.h.
2884         (lto_tag_check): Likewise.
2885         (hash_string_slot_node): Remove.  Update all users.
2886         (eq_string_slot_node): Remove.  Update all users.
2887         (string_for_index): Move to data-streamer-in.c
2888         (input_string_internal): Likewise.
2889         (input_string_cst): Move to tree-streamer-in.c.
2890         (input_identifier): Likewise.
2891         (lto_input_string): Move to data-streamer-in.c
2892         (input_record_start): Move to data-streamer.h
2893         (canon_file_name): Use new definition of struct string_slot
2894         from data-streamer.h.  Set S_SLOT.LEN.
2895         (lto_input_location): Make extern.
2896         (lto_input_chain): Move to tree-streamer-in.c.
2897         (lto_init_eh): Make extern.
2898         (input_phi): Move to gimple-streamer-in.c.
2899         (input_gimple_stmt): Likewise.
2900         (input_bb): Likewise.
2901         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
2902         (unpack_ts_real_cst_value_fields): Likewise.
2903         (unpack_ts_fixed_cst_value_fields): Likewise.
2904         (unpack_ts_decl_common_value_fields): Likewise.
2905         (unpack_ts_decl_wrtl_value_fields): Likewise.
2906         (unpack_ts_decl_with_vis_value_fields): Likewise.
2907         (unpack_ts_function_decl_value_fields): Likewise.
2908         (unpack_ts_type_common_value_fields): Likewise.
2909         (unpack_ts_block_value_fields): Likewise.
2910         (unpack_ts_translation_unit_decl_value_fields): Likewise.
2911         (unpack_value_fields): Likewise.
2912         (lto_materialize_tree): Likewise.
2913         (lto_input_ts_common_tree_pointers): Likewise.
2914         (lto_input_ts_vector_tree_pointers): Likewise.
2915         (lto_input_ts_complex_tree_pointers): Likewise.
2916         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
2917         (lto_input_ts_decl_common_tree_pointers): Likewise.
2918         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
2919         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
2920         (lto_input_ts_field_decl_tree_pointers): Likewise.
2921         (lto_input_ts_function_decl_tree_pointers): Likewise.
2922         (lto_input_ts_type_common_tree_pointers): Likewise.
2923         (lto_input_ts_type_non_common_tree_pointers): Likewise.
2924         (lto_input_ts_list_tree_pointers): Likewise.
2925         (lto_input_ts_vec_tree_pointers): Likewise.
2926         (lto_input_ts_exp_tree_pointers): Likewise.
2927         (lto_input_ts_block_tree_pointers): Likewise.
2928         (lto_input_ts_binfo_tree_pointers): Likewise.
2929         (lto_input_ts_constructor_tree_pointers): Likewise.
2930         (lto_input_ts_target_option): Likewise.
2931         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
2932         (lto_input_tree_pointers): Likewise.
2933         (lto_get_pickled_tree): Likewise.
2934         (lto_get_builtin_tree): Likewise.
2935         (lto_read_tree): Likewise.
2936         (lto_input_integer_cst): Likewise.
2937         (lto_input_tree): Likewise.
2938         * lto-streamer-out.c: Include data-streamer.h,
2939         gimple-streamer.h and streamer-hooks.h.
2940         (struct string_slot): Move to data-streamer.h.
2941         (hash_string_slot_node): Likewise.
2942         (eq_string_slot_node): Likewise.
2943         (lto_string_index): Move to data-streamer-out.c.
2944         (lto_output_string_with_length): Likewise.
2945         (lto_output_string): Likewise.
2946         (output_string_cst): Move to tree-streamer-out.c.
2947         (output_identifier): Likewise.
2948         (output_zero): Move to data-streamer-out.c
2949         (output_uleb128): Likewise.
2950         (output_sleb128): Likewise.
2951         (output_record_start): Move to data-streamer.h
2952         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
2953         (pack_ts_real_cst_value_fields): Likewise.
2954         (pack_ts_fixed_cst_value_fields): Likewise.
2955         (pack_ts_decl_common_value_fields): Likewise.
2956         (pack_ts_decl_wrtl_value_fields): Likewise.
2957         (pack_ts_decl_with_vis_value_fields): Likewise.
2958         (pack_ts_function_decl_value_fields): Likewise.
2959         (pack_ts_type_common_value_fields): Likewise.
2960         (pack_ts_block_value_fields): Likewise.
2961         (pack_ts_translation_unit_decl_value_fields): Likewise.
2962         (pack_value_fields): Likewise.
2963         (lto_output_chain): Likewise.
2964         (lto_output_ts_common_tree_pointers): Likewise.
2965         (lto_output_ts_vector_tree_pointers): Likewise.
2966         (lto_output_ts_complex_tree_pointers): Likewise.
2967         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
2968         (lto_output_ts_decl_common_tree_pointers): Likewise.
2969         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
2970         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
2971         (lto_output_ts_field_decl_tree_pointers): Likewise.
2972         (lto_output_ts_function_decl_tree_pointers): Likewise.
2973         (lto_output_ts_type_common_tree_pointers): Likewise.
2974         (lto_output_ts_type_non_common_tree_pointers): Likewise.
2975         (lto_output_ts_list_tree_pointers): Likewise.
2976         (lto_output_ts_vec_tree_pointers): Likewise.
2977         (lto_output_ts_exp_tree_pointers): Likewise.
2978         (lto_output_ts_block_tree_pointers): Likewise.
2979         (lto_output_ts_binfo_tree_pointers): Likewise.
2980         (lto_output_ts_constructor_tree_pointers): Likewise.
2981         (lto_output_ts_target_option): Likewise.
2982         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
2983         (lto_output_tree_pointers): Likewise.
2984         (lto_output_tree_header): Likewise.
2985         (lto_output_builtin_tree): Likewise.
2986         (lto_write_tree): Likewise.
2987         (lto_output_integer_cst): Likewise.
2988         (lto_output_tree): Likewise.
2989         (output_phi): Move to gimple-streamer-out.c.
2990         (output_gimple_stmt): Likewise.
2991         (output_bb): Likewise.
2992         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
2993         (streamer_hooks): Move to streamer-hooks.c.
2994         (check_handled_ts_structures): Move to tree-streamer.c
2995         (lto_streamer_cache_add_to_node_array): Likewise.
2996         (lto_streamer_cache_insert_1): Likewise.
2997         (lto_streamer_cache_insert): Likewise.
2998         (lto_streamer_cache_insert_at): Likewise.
2999         (lto_streamer_cache_append): Likewise.
3000         (lto_streamer_cache_lookup): Likewise.
3001         (lto_streamer_cache_get): Likewise.
3002         (lto_record_common_node): Likewise.
3003         (lto_preload_common_nodes): Likewise.
3004         (lto_streamer_cache_create): Likewise.
3005         (lto_streamer_cache_delete): Likewise.
3006         (streamer_hooks_init): Move to streamer-hooks.c.
3007         * lto-streamer.h: Include diagnostic.h
3008         (struct output_block, struct lto_input_block,
3009         struct data_in, struct bitpack_d): Remove forward declarations.
3010         (struct bitpack_d): Move to data-streamer.h.
3011         (struct lto_streamer_cache_d): Move to tree-streamer.h.
3012         (struct streamer_hooks): Move to streamer-hooks.h.
3013         (bp_pack_var_len_unsigned): Move to data-streamer.h.
3014         (bp_pack_var_len_int): Likewise.
3015         (bp_unpack_var_len_unsigned): Likewise.
3016         (bp_unpack_var_len_int): Likewise.
3017         (lto_input_location): Declare.
3018         (lto_tag_check_set): Declare.
3019         (lto_init_eh): Declare.
3020         (lto_output_tree_ref): Declare.
3021         (lto_output_location): Declare.
3022         (bitpack_create): Move to data-streamer.h.
3023         (bp_pack_value): Likewise.
3024         (lto_output_bitpack): Likewise.
3025         (lto_input_bitpack): Likewise.
3026         (bp_unpack_value): Likewise.
3027         (lto_output_1_stream): Likewise.
3028         (lto_input_1_unsigned): Likewise.
3029         (lto_output_int_in_range): Likewise.
3030         (lto_input_int_in_range): Likewise.
3031         (bp_pack_int_in_range): Likewise.
3032         (bp_unpack_int_in_range): Likewise.
3033         (lto_output_enum): Likewise.
3034         (lto_input_enum): Likewise.
3035         (bp_pack_enum): Likewise.
3036         (bp_unpack_enum): Likewise.
3037         * streamer-hooks.c: New.
3038         * streamer-hooks.h: New.
3039         * tree-streamer-in.c: New.
3040         * tree-streamer-out.c: New.
3041         * tree-streamer.c: New.
3042         * tree-streamer.h: New.
3043
3044 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3045
3046         * gthr-posix95.h: Remove.
3047         * gthr.h [_PTHREADS95]: Remove.
3048         * configure.ac (enable_threads): Remove posix95.
3049         * configure: Regenerate.
3050         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
3051
3052 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
3053
3054         PR target/49781
3055         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
3056         SImode addresses.
3057         (ix86_print_operand_address): Handle zero-extended addresses.
3058         (memory_address_length): Add length of addr32 prefix for
3059         zero-extended addresses.
3060         (ix86_secondary_reload): Handle moves to/from double-word general
3061         registers from/to zero-extended addresses.
3062         * config/i386/predicates.md (lea_address_operand): Reject
3063         zero-extended operands.
3064
3065 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
3066
3067         PR other/48007
3068         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
3069
3070         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
3071         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
3072
3073         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
3074         (_Unwind_Context_Reg_Val): Likewise.
3075         (_Unwind_Get_Unwind_Word): Likewise.
3076         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
3077         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
3078         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
3079         for EXTENDED_CONTEXT_BIT.
3080         (__frame_state_for): Likewise.
3081         (uw_init_context_1): Likewise.
3082         (_Unwind_GetGR): Updated.
3083         (_Unwind_SetGR): Likewise.
3084         (_Unwind_GetGRPtr): Likewise.
3085         (_Unwind_SetGRPtr): Likewise.
3086         (_Unwind_SetGRValue): Likewise.
3087         (_Unwind_GRByValue): Likewise.
3088         (uw_install_context_1): Likewise.
3089
3090         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
3091         ASSUME_EXTENDED_UNWIND_CONTEXT.
3092         * doc/tm.texi: Regenerated.
3093
3094 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3095
3096         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
3097
3098 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3099
3100         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
3101         Linux/GNU-specific.
3102         (DEC Alpha Options, -mtune): Likewise.
3103         (MIPS Options, -march): native is supported on IRIX.
3104
3105 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3106
3107         * config/sparc/driver-sparc.c: New file.
3108         * config/sparc/x-sparc: New file.
3109         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
3110         * config/sparc/sparc.opt (native): New value for enum processor_type.
3111         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
3112         * config/sparc/sparc.c (sparc_option_override): Abort if
3113         PROCESSOR_NATIVE gets here.
3114         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
3115         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
3116         DRIVER_SELF_SPECS): Define.
3117         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
3118         (SPARC Options, -mtune): Likewise.
3119         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
3120         Substitute result.
3121         * configure: Regenerate.
3122         * Makefile.in (EXTRA_GCC_LIBS): Set.
3123         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
3124         (cpp$(exeext)): Likewise.
3125
3126 2011-08-08  Richard Guenther  <rguenther@suse.de>
3127
3128         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
3129         split out from ...
3130         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
3131         by composition.
3132
3133 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
3134
3135         PR tree-optimization/50005
3136         * ipa-inline-analysis (remap_predicate): Add cast to
3137         silence signed/unsigned comparison warning.
3138
3139 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3140
3141         * modulo-sched.c (get_sched_window): Use a table for the debug output.
3142         Print the current ii.
3143         (sms_schedule_by_order): Reduce whitespace in dump line.
3144
3145 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3146
3147         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
3148         and one loop for successors.  Fix upper bound of memory range.
3149
3150 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3151
3152         PR target/50001
3153         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
3154         (TARGET_INSTANTIATE_DECLS): New define.
3155
3156 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
3157             Mikael Morin   <mikael.morin@sfr.fr>
3158
3159         * Makefile.in (INCLUDES_FOR_TARGET): New.
3160         (LIBGCC2_CFLAGS): Use it.
3161         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
3162
3163 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3164
3165         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
3166         frame->save_regs_using_mov calculation.
3167
3168 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3169
3170         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
3171         * config/i386/sse.md (castmode): New mode attribute.
3172         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
3173         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
3174
3175 2011-08-05  Jan Hubicka  <jh@suse.cz>
3176
3177         PR middle-end/49494
3178         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
3179
3180 2011-08-05  Jan Hubicka  <jh@suse.cz>
3181
3182         PR middle-end/49500
3183         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
3184         handle aliases.
3185         (create_emultls_var):New function.
3186         (ipa_lower_emutls): Handle aliases correctly.
3187
3188 2011-08-05  Jan Hubicka  <jh@suse.cz>
3189
3190         PR middle-end/49735
3191         * ipa-inline.c (recursive_inlining): Look through aliases.
3192
3193 2011-08-05  Jason Merrill  <jason@redhat.com>
3194
3195         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
3196         declarations to beginning of function.
3197
3198 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3199
3200         PR rtl-optimization/49900
3201         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
3202         ensure basic blocks stay in the same order.
3203
3204 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
3205
3206         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
3207         store_bit_field.
3208         (s390_expand_atomic): Same.
3209
3210 2011-08-05  Richard Henderson  <rth@redhat.com>
3211
3212         PR rtl-opt/49977
3213         * dwarf2cfi.c (scan_insn_after): Split out of ...
3214         (scan_trace): ... here.  Correctly place notes wrt sequences.
3215
3216 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3217             Richard Henderson  <rth@redhat.com>
3218
3219         PR rtl-opt/49982
3220         * expr.c (fixup_args_size_notes): Look through no-op moves.
3221
3222 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3223
3224         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
3225         of "m" for operand 0.  Add type and mode attribute.
3226         (*pushxf_nointeger"): Use "<" constraint for operand 0.
3227         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
3228         constraint instead of "o" for opreand 1.
3229         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
3230         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
3231         operand 0, alternative 4.
3232         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
3233
3234 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3235
3236         * config/i386/predicates.md (lea_address_operand): Rename from
3237         no_seg_address_operand.
3238         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
3239         (*lea_1_zext): Ditto.
3240         (*lea_2): Ditto.
3241         (*lea_2_zext): Ditto.
3242
3243 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3244
3245         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
3246         parts.base and parts.index.
3247         * config/i386/predicates.md (aligned_operand): Ditto.
3248         (cmpxchg8b_pic_memory_operand): Ditto.
3249
3250 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3251
3252         * config/soft-fp: Move to ../libgcc.
3253         * Makefile.in (SFP_MACHINE): Remove.
3254         (libgcc-support): Remove $(SFP_MACHINE) dependency.
3255         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
3256         * config/arm/t-arm-softfp: Move to
3257         ../libgcc/config/arm/t-softfp.
3258         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
3259         * config/c6x/t-c6x-softfp: Remove.
3260         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
3261         * config/i386/t-fprules-softfp: Move to
3262         ../libgcc/config/t-softfp-tf.
3263         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
3264         * config/ia64/t-fprules-softfp: Remove.
3265         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
3266         * config/lm32/t-fprules-softfp: Remove.
3267         * config/moxie/sfp-machine.h: Remove.
3268         * config/moxie/t-moxie-softfp: Remove.
3269         * config/rs6000/darwin-ldouble-format: Move to
3270         ../libgcc/config/rs6000/ibm-ldouble-format.
3271         * config/rs6000/darwin-ldouble.c: Move to
3272         ../libgcc/config/rs6000/ibm-ldouble.c
3273         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
3274         * config/rs6000/libgcc-ppc64.ver: Likewise.
3275         * config/rs6000/sfp-machine.h: Likewise.
3276         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
3277         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
3278         (LIB2FUNCS_EXTRA): Remove.
3279         (TARGET_LIBGCC2_CFLAGS): Remove.
3280         * config/rs6000/t-aix52: Likewise
3281         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3282         $(srcdir)/config/rs6000/darwin-ldouble.c.
3283         (SHLIB_MAPFILES): Remove.
3284         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
3285         $(srcdir)/config/rs6000/darwin-ldouble.c.
3286         * config/rs6000/t-fprules-softfp: Move to
3287         ../libgcc/config/t-softfp-sfdf.
3288         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
3289         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
3290         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
3291         $(srcdir)/config/rs6000/darwin-ldouble.c.
3292         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
3293         * config/score/t-score-softfp: Remove.
3294         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
3295         soft-fp/t-softfp from tmake_file.
3296         (arm*-*-uclinux*): Likewise.
3297         (arm*-*-ecos-elf): Likewise.
3298         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
3299         (arm*-*-rtems*): Likewise.
3300         (arm*-*-elf): Likewise.
3301         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
3302         tmake_file.
3303         (moxie-*-uclinux*): Likewise.
3304         (moxie-*-rtems*): Likewise.
3305         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
3306         tmake_file.
3307         (lm32-*-rtems*): Likewise.
3308         (lm32-*-uclinux*): Likewise.
3309         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
3310         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3311         (powerpc-*-linux*, powerpc64-*-linux*): Remove
3312         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3313         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
3314         tmake_file.
3315         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
3316         tmake_file.
3317         (tic6x-*-uclinux): Likewise.
3318         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
3319         soft-fp/t-softfp from tmake_file.
3320         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
3321         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
3322         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
3323         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3324         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
3325
3326 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3327
3328         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
3329         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
3330         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
3331         TPBIT, TPBIT_FUNCS.
3332         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
3333         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
3334         Remove.
3335         * config/arm/t-vxworks: Likewise.
3336         * config/arm/t-wince-pe: Likewise.
3337         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
3338         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3339         * config/bfin/t-bfin-elf: Likewise.
3340         * config/bfin/t-bfin-linux: Likewise.
3341         * config/bfin/t-bfin-uclinux: Likewise.
3342         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
3343         Remove.
3344         * config/fr30/t-fr30: Likewise.
3345         * config/frv/t-frv: Likewise.
3346         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
3347         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3348         * config/m32c/t-m32c: Likewise.
3349         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
3350         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3351         * config/mcore/t-mcore: Likewise.
3352         * config/mep/t-mep: Likewise.
3353         * config/microblaze/t-microblaze: Likewise.
3354         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
3355         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3356         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
3357         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3358         * config/mn10300/t-linux: Remove.
3359         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3360         * config/pdp11/t-pdp11: Likewise.
3361         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
3362         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
3363         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3364         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
3365         * config/rs6000/t-aix52: Likewise.
3366         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3367         $(srcdir)/config/rs6000/ppc64-fp.c.
3368         * config/rs6000/t-fprules-fpbit: Remove.
3369         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
3370         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3371         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
3372         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3373         * config/sparc/t-elf: Likewise.
3374         * config/sparc/t-leon: Likewise.
3375         * config/sparc/t-leon3: Likewise.
3376         * config/spu/t-spu-elf: Likewise.
3377         (DPBIT_FUNCS): Remove.
3378         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3379         * config/v850/t-v850: Likewise.
3380         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3381         (avr-*-*): Likewise.
3382         (h8300-*-rtems*): Set libgcc_tm_file.
3383         (h8300-*-elf*): Likewise.
3384         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3385         tmake_file.
3386         (powerpc-*-eabisim*): Likewise.
3387         (powerpc-*-elf*): Likewise.
3388         (powerpc-*-eabialtivec*): Likewise.
3389         (powerpc-xilinx-eabi*): Likewise.
3390         (powerpc-*-eabi*): Likewise.
3391         (powerpc-*-rtems*): Likewise.
3392         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3393         (powerpcle-*-elf*): Likewise.
3394         (powerpcle-*-eabisim*): Likewise.
3395         (powerpcle-*-eabi*): Likewise.
3396         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3397         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3398         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3399         Remove.
3400
3401 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3402
3403         * Makefile.in (UNWIND_H): Remove.
3404         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3405         ../libgcc/Makefile.in.
3406         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3407         (LIBUNWINDDEP): Remove.
3408         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3409         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3410         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3411         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3412         Don't copy $(UNWIND_H).
3413         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
3414         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3415         * aclocal.m4: Regenerate.
3416         * configure: Regenerate.
3417         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3418         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3419         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3420         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3421         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3422         * config/arm/libunwind.S, config/arm/pr-support.c,
3423         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3424         ../libgcc/config/arm.
3425         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3426         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3427         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3428         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3429         ($(T)frvend$(objext)): Likewise.
3430         * config/ia64/t-glibc (LIB2ADDEH): Remove.
3431         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3432         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3433         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3434         ../libgcc/config/ia64.
3435         * config/ia64/t-hpux (LIB2ADDEH): Remove.
3436         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3437         * config/ia64/t-vms (LIB2ADDEH): Remove.
3438         * config/ia64/vms.h (UNW_IVMS_MODE,
3439         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3440         * config/picochip/t-picochip (LIB2ADDEH): Remove.
3441         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3442         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3443         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3444         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3445         $(srcdir)/../libgcc to refer to unwinder sources.
3446         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3447         * config/t-darwin (LIB2ADDEH): Remove.
3448         * config/t-freebsd (LIB2ADDEH): Remove.
3449         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3450         * config/t-libunwind-elf: Move to ../libgcc/config.
3451         * config/t-linux (LIB2ADDEH): Remove.
3452         * config/t-sol2 (LIB2ADDEH): Remove.
3453         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3454         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3455
3456 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
3457
3458         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3459
3460         * doc/invoke.texi: Document core-avx-i.
3461
3462 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3463
3464         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3465
3466 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
3467
3468         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3469         result of multiple results reduction when extracting the final
3470         value using scalar code.
3471
3472 2011-08-05  Richard Guenther  <rguenther@suse.de>
3473
3474         PR tree-optimization/49984
3475         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3476
3477 2011-08-05  Richard Guenther  <rguenther@suse.de>
3478
3479         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3480         return true for constant integer ranges.
3481         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3482         BIT_IOR_EXPR handling.
3483
3484 2011-08-04  Kai Tietz  <ktietz@redhat.com>
3485
3486         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3487         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3488
3489 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
3490
3491         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3492         pattern def statement, and its access macro.
3493         (NUM_PATTERNS): Set to 5.
3494         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3495         pattern def statement.
3496         (vect_transform_loop): Likewise.
3497         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3498         function vect_recog_over_widening_pattern ().
3499         (vect_operation_fits_smaller_type): New function.
3500         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3501         Likewise.
3502         (vect_pattern_recog_1): Move the code that marks pattern
3503         statements to vect_mark_pattern_stmts (), and call it.  Update
3504         documentation.
3505         * tree-vect-stmts.c (vect_supportable_shift): New function.
3506         (vect_analyze_stmt): Handle pattern def statement.
3507         (new_stmt_vec_info): Initialize pattern def statement.
3508
3509 2011-08-04  Richard Henderson  <rth@redhat.com>
3510
3511         PR target/49964
3512         * config/i386/i386.c (ix86_expand_call): Don't create nested
3513         PARALLELs for TARGET_VZEROUPPER.
3514         (ix86_split_call_vzeroupper): Fix extraction of the original call.
3515         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3516         recognize nested PARALLELs.
3517         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3518         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3519         *sibcall_value_pop_vzeroupper): Likewise.
3520
3521 2011-08-04  Richard Henderson  <rth@redhat.com>
3522
3523         PR middle-end/49968
3524         * calls.c (expand_call): Use fixup_args_size_notes for
3525         emit_stack_restore.
3526         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3527         in non-standard modes.
3528
3529 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3530
3531         * gcc.c (self_spec): New variable.
3532         (static_specs): Add self_spec.
3533         (main): Call do_self_spec on "self_spec" specs after reading
3534         user specs files.  Move compare_debug handling right after that.
3535
3536 2011-08-04  Richard Guenther  <rguenther@suse.de>
3537
3538         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3539         (value_range_nonnegative_p): New function.
3540         (ssa_name_nonnegative_p): Use it.
3541         (value_range_constant_singleton): New function.
3542         (op_with_constant_singleton_value_range): Use it.
3543         (extract_range_from_binary_expr_1): New function, split out from ...
3544         (extract_range_from_binary_expr): ... this.  Remove fallback
3545         constant folding done here.
3546
3547 2011-08-04  Richard Guenther  <rguenther@suse.de>
3548
3549         PR tree-optimization/49806
3550         * tree-vrp.c (op_with_boolean_value_range_p): New function.
3551         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
3552         a new statement for a final conversion to bool.
3553
3554 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
3555
3556         * gengtype-state.c: Include "bconfig.h" if
3557         GENERATOR_FILE is defined, "config.h" otherwise.
3558         * gengtype.c: Likewise.
3559         * gengtype-lex.l: Likewise.
3560         * gengtype-parse.c: Likewise.
3561         * Makefile.in (gengtype-lex.o-warn): New variable.
3562         (plugin_resourcesdir): Likewise.
3563         (plugin_bindir): Likewise.
3564         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3565         (MOSTLYCLEANFILES): Add gengtype$(exeext).
3566         (native): Depend on gengtype$(exeext) is $enable_plugin
3567         is set to "yes".
3568         (gtype.state): Depend on s-gtype. Use temporary file.
3569         (gengtype-lex.o): New rule.
3570         (gengtype-parse.o): Likewise.
3571         (gengtype-state.o): Likewise.
3572         (gengtype$(exeext)): Likewise.
3573         (install-gengtype): Likewise.
3574         (gengtype.o): Likewise.
3575         (build/gengtype.o): Depend on version.h.
3576         (build/gengtype-state): Depend on double-int.h, version.h,
3577         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
3578         (install-plugin): Depend on install-gengtype.
3579
3580 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3581
3582         PR middle-end/49905
3583         * tree.h (init_attributes): New prototype.
3584         * attribs.c (init_attributes): No longer static.
3585
3586 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3587
3588         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
3589         maybe_suffix.
3590
3591 2011-08-03   David Li  <davidxl@google.com>
3592
3593         * tree-optimize.c (execute_fixup_cfg): Fix up entry
3594         outgoing edge counts after inlining.
3595
3596 2011-08-03   David Li  <davidxl@google.com>
3597
3598         * profile.c (compute_branch_probabilities): Compute
3599         function frequency after profile annotation.
3600
3601 2011-08-04  Alan Modra  <amodra@gmail.com>
3602
3603         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
3604         use_backchain_to_restore_sp initialisation.
3605         (rs6000_legitimate_offset_address_p): Simplify offset test.
3606
3607 2011-08-03  Richard Henderson  <rth@redhat.com>
3608
3609         * config/spu/spu.md: Use define_c_enum instead of define_constants.
3610         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
3611         (UNSPECV_NOP): New.
3612
3613 2011-08-03  Richard Henderson  <rth@redhat.com>
3614
3615         PR target/34888
3616         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
3617
3618 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
3619
3620         PR tree-optimization/49948
3621         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
3622
3623 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
3624
3625         * config/m32c/m32c.c (class_sizes): Remove.
3626         (reduce_class): Change arguments and return type to reg_class_t.
3627         Change type cc var to HARD_REG_SET. Change type best var to
3628         reg_class_t. Change type best_size var to unsigned int. Remove
3629         initialization class_sizes var. Use reg_class_size array instead
3630         of class_sizes. Use reg_class_contents array instead
3631         of class_contents.
3632
3633 2011-08-03  Richard Guenther  <rguenther@suse.de>
3634
3635         PR middle-end/49958
3636         * fold-const.c (fold_binary_loc): Only associate
3637         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
3638         overflow wraps.
3639
3640 2011-08-03  Alan Modra  <amodra@gmail.com>
3641
3642         PR rtl-optimization/49941
3643         * jump.c (mark_jump_label): Comment.
3644         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3645         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3646         (mark_used_flags): Don't mark RETURN.
3647
3648 2011-08-03  Richard Guenther  <rguenther@suse.de>
3649
3650         PR tree-optimization/49938
3651         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3652         deal with a POLYNOMIAL_CHREC.
3653
3654 2011-08-03  Revital Eres  <revital.eres@linaro.org>
3655
3656         * modulo-sched.c (calculate_stage_count,
3657         calculate_must_precede_follow, get_sched_window,
3658         try_scheduling_node_in_cycle, remove_node_from_ps): Add
3659         declaration.
3660         (update_node_sched_params, set_must_precede_follow, optimize_sc):
3661         New functions.
3662         (reset_sched_times): Call update_node_sched_params.
3663         (sms_schedule): Call optimize_sc.
3664         (get_sched_window): Change function arguments.
3665         (sms_schedule_by_order): Update call to get_sched_window.
3666         Call set_must_precede_follow.
3667         (calculate_stage_count): Add function argument.
3668
3669 2011-08-02  Richard Henderson  <rth@redhat.com>
3670
3671         PR target/49864
3672         PR target/49879
3673         * reg-notes.def (REG_ARGS_SIZE): New.
3674         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3675         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3676         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3677         different stack levels.
3678         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
3679         (maybe_move_args_size_note): New.
3680         (combine_stack_adjustments_for_block): Use it.
3681         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
3682         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
3683         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
3684         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
3685         (cur_cfa): New.
3686         (queued_args_size): Remove.
3687         (add_cfi_args_size): Assert size is non-negative.
3688         (stack_adjust_offset, dwarf2out_args_size): Remove.
3689         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
3690         (notice_args_size, notice_eh_throw): New.
3691         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
3692         (dwarf2out_frame_debug_adjust_cfa): Likewise.
3693         (dwarf2out_frame_debug_cfa_offset): Likewise.
3694         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
3695         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
3696         (change_cfi_row): Don't emit args_size.
3697         (maybe_record_trace_start_abnormal): Split out from ...
3698         (maybe_record_trace_start): Here.  Set args_size_undefined.
3699         (create_trace_edges): Update to match.
3700         (scan_trace): Handle REG_ARGS_SIZE.
3701         (connect_traces): Connect args_size between EH insns.
3702         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
3703         * explow.c (suppress_reg_args_size): New.
3704         (adjust_stack_1): Split out from ...
3705         (adjust_stack): ... here.
3706         (anti_adjust_stack): Use it.
3707         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
3708         * expr.c (mem_autoinc_base): New.
3709         (fixup_args_size_notes): New.
3710         (emit_single_push_insn_1): Rename from emit_single_push_insn.
3711         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
3712         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
3713         * reload1.c (reload_as_needed): Likewise.
3714         * rtl.h (fixup_args_size_notes): Declare.
3715
3716 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
3717
3718         PR bootstrap/49914
3719         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
3720         of abs.
3721         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3722         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3723
3724 2011-08-02  Richard Henderson  <rth@redhat.com>
3725
3726         * config/h8300/h8300.c (push, pop): Return the insn.
3727         (h8300_swap_into_er6): Generate correct unwind info.
3728         (h8300_swap_out_of_er6): Likewise.
3729         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
3730         complex cfa expression.
3731         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
3732
3733 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
3734
3735         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3736
3737 2011-08-02  Richard Henderson  <rth@redhat.com>
3738
3739         PR target/49878
3740         * config/h8300/h8300.c (h8300_move_ok): New.
3741         * config/h8300/h8300-protos.h: Declare it.
3742         * config/h8300/h8300.md (P): New mode iterator.
3743         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
3744         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
3745         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
3746         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
3747         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
3748         and pushqi1_h8300hs_normal; use PRE_MODIFY and
3749         register_no_sp_elim_operand.
3750         (*pushhi1_h8300hs_<P>): Similarly.
3751         (pushqi1, pushhi1, pushhi1_h8300): Remove.
3752         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
3753
3754 2011-08-02  Richard Henderson  <rth@redhat.com>
3755
3756         PR target/49881
3757         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
3758
3759 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
3760
3761         * c-parser.c (enum c_parser_prec): New enum, moved from within
3762         c_parser_binary_expression.
3763         (c_parser_binary_expression): Add PREC argument.  Stop parsing
3764         if operator has lower or equal precedence than PREC.
3765         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
3766         callers.
3767         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
3768         Adjust c_finish_omp_atomic caller.
3769         (c_parser_omp_taskyield): New function.
3770         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
3771         (c_parser_omp_clause_name): Handle final and mergeable clauses.
3772         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
3773         functions.
3774         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
3775         and PRAGMA_OMP_CLAUSE_MERGEABLE.
3776         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
3777         (c_parser_omp_clause_reduction): Handle min and max.
3778         * c-typeck.c (c_finish_omp_clauses): Don't complain about
3779         const qualified predetermined vars in firstprivate clause.
3780         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3781         Handle MIN_EXPR and MAX_EXPR.
3782         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
3783         and OMP_CLAUSE_MERGEABLE.
3784         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
3785         and OMP_ATOMIC_CAPTURE_NEW.
3786         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
3787         OMP_CLAUSE_MERGEABLE.
3788         (omp_clause_code_name): Likewise.
3789         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3790         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
3791         and OMP_CLAUSE_MERGEABLE.
3792         (OMP_CLAUSE_FINAL_EXPR): Define.
3793         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
3794         OMP_CLAUSE_MERGEABLE.
3795         (expand_task_call): Likewise.
3796         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
3797         (expand_omp_atomic_fetch_op): Handle cases where old or new
3798         value is needed afterwards.
3799         (expand_omp_atomic): Call expand_omp_atomic_load resp.
3800         expand_omp_atomic_store.
3801         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
3802         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
3803         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
3804         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3805         * tree-nested.c (convert_nonlocal_omp_clauses,
3806         convert_local_omp_clauses): Likewise.
3807         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
3808         OMP_ATOMIC_CAPTURE_NEW): New.
3809         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
3810         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
3811         New inlines.
3812         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
3813         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
3814         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3815
3816 2011-08-02  Kai Tietz  <ktietz@redhat.com>
3817
3818         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
3819         boolean-type.
3820         (ssa_forward_propagate_and_combine): Interprete result of
3821         forward_propagate_comparison.
3822         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
3823         boolean-typed operands for comparisons.
3824
3825 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
3826
3827         * config/avr/libgcc.S: Gather related function in the
3828         same input section.
3829         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
3830         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
3831         references.
3832         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
3833         __udivmodsi4, __divmodsi4, __prologue_saves__,
3834         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
3835         __do_copy_data, __do_clear_bss, __do_global_ctors,
3836         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
3837
3838 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
3839
3840         PR target/47766
3841         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
3842         (stack_protect_test): The pattern compares ptr_mode value.
3843
3844 2011-08-02  Alan Modra  <amodra@gmail.com>
3845
3846         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
3847         note for save_LR_around_toc_setup sequence.
3848
3849 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3850
3851         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
3852
3853 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
3854             Joseph Myers  <joseph@codesourcery.com>
3855
3856         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
3857         * hwint.c: Include diagnostic-core.h.
3858         (abs_hwi): New.
3859         (gcd): Moved here...
3860         (pos_mul_hwi): New.
3861         (mul_hwi): New.
3862         (least_common_multiple): Moved here...
3863         * hwint.h (gcd): ... from here.
3864         (least_common_multiple): ... from here.
3865         (HOST_WIDE_INT_MIN): New.
3866         (HOST_WIDE_INT_MAX): New.
3867         (abs_hwi): Declared.
3868         (gcd): Declared.
3869         (pos_mul_hwi): Declared.
3870         (mul_hwi): Declared.
3871         (least_common_multiple): Declared.
3872         * omega.c (check_pos_mul): Removed.
3873         (check_mul): Removed.
3874         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
3875         mul_hwi instead of check_mul.
3876
3877 2011-08-01  Richard Henderson  <rth@redhat.com>
3878
3879         PR target/49881
3880         * config/avr/avr.h (PUSH_ROUNDING): New.
3881         * config/avr/avr.md (pushqi1): Rename from *pushqi.
3882         (*pushhi, *pushsi, *pushsf): Remove.
3883         (MPUSH): New mode iterator.
3884         (push<MPUSH>1): New expander.
3885
3886 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
3887
3888         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
3889         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3890         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
3891         mmix_preferred_output_reload_class): Remove.
3892         * config/mmix/mmix.c (mmix_preferred_reload_class,
3893         mmix_preferred_output_reload_class): Make static. Change rclass
3894         argument and return type to reg_class_t.
3895         (TARGET_PREFERRED_RELOAD_CLASS,
3896         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3897
3898 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
3899
3900         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
3901         handling.
3902
3903 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3904
3905         PR target/47766
3906         * config/i386/i386.md (PTR): New.
3907         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
3908         (stack_protect_test): Likewise.
3909         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
3910         (stack_tls_protect_set_<mode>): Likewise.
3911         (stack_tls_protect_test_<mode>): Likewise.
3912
3913 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
3914
3915         PR target/49927
3916         * config/i386/i386.c (ix86_address_subreg_operand): New.
3917         (ix86_decompose_address): Use ix86_address_subreg_operand.
3918         (ix86_legitimate_address_p): Do not assert that subregs satisfy
3919         register_no_elim_operand in DImode.
3920
3921 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
3922
3923         PR tree-optimization/49926
3924         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
3925         in a chain doesn't have uses both inside and outside the loop.
3926
3927 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3928
3929         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
3930         * config/avr/avr-devices.c (avr_mcu_types): Use it.
3931         * config/avr/avr-mcus.def (AVR_MCU): Use it.
3932         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
3933         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
3934         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
3935         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
3936         to detect if XJMP must not be skipped.
3937
3938 2011-08-02  Alan Modra  <amodra@gmail.com>
3939
3940         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
3941         Delete.
3942         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
3943         (rs6000_emit_prologue): Don't prematurely return when
3944         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
3945         save_toc_in_prologue case.
3946         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
3947         calls_alloca.
3948
3949 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3950
3951         * config/avr/avr-devices.c: Delete SVN property svn:executable.
3952         * config/avr/predicates.md: Ditto.
3953         * config/avr/driver-avr.c: Ditto.
3954         * config/avr/genopt.sh: Set SVN property svn:executable to *.
3955
3956 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3957
3958         * calls.c (emit_library_call_value_1): Declare size only if
3959         BLOCK_REG_PADDING is defined.
3960
3961 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
3962
3963         PR target/49547
3964         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
3965         (x86_64-*-*): Likewise.
3966         * config/i386/i386.opt (mlzcnt): New.
3967         * config/i386/abmintrin.h: File removed.
3968         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
3969         * config/i386/lzcntintrin.h: ... here.  New file.
3970         (__lzcnt): Rename to ...
3971         (__lzcnt32): ... this.
3972         * config/i386/bmiintrin.h (head): Update copyright year.
3973         (__lzcnt_u16): Removed.
3974         (__lzcnt_u32): Likewise.
3975         (__lzcnt_u64): Likewise.
3976         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
3977         is defined, remove abmintrin.h.
3978         * config/i386/cpuid.h (bit_LZCNT): New.
3979         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3980         LZCNT feature.
3981         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3982         __LZCNT__ if needed.
3983         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
3984         (ix86_option_override_internal): Handle LZCNT option.
3985         (ix86_valid_target_attribute_inner_p): Likewise.
3986         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
3987         * config/i386/i386.h (TARGET_LZCNT): New.
3988         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
3989         * config/i386/i386.md (clz<mode>2): Update insn constraint.
3990         (clz<mode>2_lzcnt): Likewise.
3991         * doc/invoke.texi: Mention -mlzcnt option.
3992         * doc/extend.texi: Likewise.
3993
3994 2011-08-01  Julian Brown  <julian@codesourcery.com>
3995
3996         * configure.ac (fixed-point): Add ARM support.
3997         * configure: Regenerate.
3998         * config/arm/arm.c (arm_fixed_mode_set): New struct.
3999         (arm_set_fixed_optab_libfunc): New.
4000         (arm_set_fixed_conv_libfunc): New.
4001         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
4002         ARM-specific names.
4003         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
4004         return values in SImode.
4005         (arm_return_in_msb): Return fixed-point types in the msb.
4006         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
4007         upwards.
4008         (arm_scalar_mode_supported_p): Support fixed-point modes.
4009         (arm_vector_mode_supported_p): Support vector fixed-point modes.
4010         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
4011         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
4012         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
4013         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
4014         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
4015         New mode iterators.
4016         (qaddsub_suf): New mode attribute.
4017         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
4018         vector modes.
4019         * config/arm/predicates.md (sat_shift_operator): New predicate.
4020         * config/arm/arm-fixed.md: New.
4021         * config/arm/arm.md: Include arm-fixed.md.
4022         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
4023
4024 2011-08-01  Julian Brown  <julian@codesourcery.com>
4025
4026         * calls.c (emit_library_call_value_1): Support padding for libcall
4027         arguments and return values.
4028         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
4029         downwards in big-endian mode.
4030
4031 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4032
4033         PR debug/49887
4034         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
4035         * config/sol2-protos.h: Likewise.
4036         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
4037         solaris_code_end.
4038         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
4039         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
4040         solaris_file_end.
4041         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
4042
4043 2011-08-01  Julian Brown  <julian@codesourcery.com>
4044
4045         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
4046
4047 2011-08-01  Julian Brown  <julian@codesourcery.com>
4048
4049         * final.c (output_addr_const): Print fixed-point constants as
4050         decimal not hex.
4051
4052 2011-08-01  Richard Guenther  <rguenther@suse.de>
4053
4054         * stor-layout.c (initialize_sizetypes): Properly sign-extend
4055         bitsiztype TYPE_MAX_VALUE.
4056
4057 2011-08-01  Julian Brown  <julian@codesourcery.com>
4058
4059         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
4060         comparison helpers.
4061
4062 2011-07-31  Richard Henderson  <rth@redhat.com>
4063
4064         * config/h8300/crti.asm: Add flags to .section directive.
4065         * config/h8300/crtn.asm: Likewise.
4066
4067 2011-07-31  Richard Henderson  <rth@redhat.com>
4068
4069         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
4070         * tree.c (build_common_tree_nodes): Likewise.
4071
4072 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4073
4074         PR target/49880
4075         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
4076         (divsi3_i1): Likewise.
4077
4078 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4079
4080         PR tree-optimization/49749
4081         * tree-ssa-reassoc.c (get_rank): New forward declaration.
4082         (PHI_LOOP_BIAS): New macro.
4083         (phi_rank): New function.
4084         (loop_carried_phi): Likewise.
4085         (propagate_rank): Likewise.
4086         (get_rank): Add calls to phi_rank and propagate_rank.
4087
4088 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
4089
4090         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
4091         of TARGET_64BIT.
4092         (PTRDIFF_TYPE): Likewise.
4093
4094 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
4095
4096         PR target/49920
4097         * config/i386/i386.md (strset): Do not expand strset_singleop
4098         when %eax or $edi are fixed.
4099         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
4100         (*strsetsi_1): Ditto.
4101         (*strsethi_1): Ditto.
4102         (*strsetqi_1): Ditto.
4103         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
4104         (*rep_stossi): Ditto.
4105         (*rep_stosqi): Ditto.
4106         (*strlenqi_1): Ditto.
4107         (cmpstrnsi): Also fail when %ecx is fixed.
4108         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
4109         (*cmpstrnqi_1): Ditto.
4110         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
4111         (*strmovsi_1): Ditto.
4112         (*strmovhi_1): Ditto.
4113         (*strmovqi_1): Ditto.
4114         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
4115         (*rep_movsi): Ditto.
4116         (*rep_movqi): Ditto.
4117
4118 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
4119
4120         PR target/47908
4121         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
4122         Disable instruction scheduling for non-ColdFire targets.
4123         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4124
4125 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4126
4127         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
4128         of anti-dep edge from a branch.
4129         (add_cross_iteration_register_deps): Create anti-dep edge from
4130         a branch.
4131
4132 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4133
4134         * modulo-sched.c: Change comment.
4135         (reset_sched_times): Fix print message.
4136         (print_partial_schedule): Add print info.
4137
4138 2011-07-31  Tom de Vries  <tom@codesourcery.com>
4139
4140         PR middle-end/43513
4141         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
4142         get_object_alignment and TYPE_ALIGN.
4143
4144 2011-07-30  Tom de Vries  <tom@codesourcery.com>
4145
4146         PR middle-end/43513
4147         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
4148         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
4149
4150 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4151
4152         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
4153         <sys/sbd.h>.
4154         (cpu_types): New array.
4155         (cputype): New function.
4156         (host_detect_local_cpu): Only define buf, f if !__sgi__.
4157         Use scaninvent instead of /proc/cpuinfo if __sgi__.
4158         * config.host: Also use driver-native.o, mips/x-native on
4159         mips-sgi-irix*.
4160         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
4161         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
4162         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
4163
4164 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR middle-end/49897
4167         PR middle-end/49898
4168         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
4169         in nested parallel and outer is a gimple_reg, mark it as addressable
4170         and set its bit in task_shared_vars bitmap too.
4171
4172 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4173
4174         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
4175
4176 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4177
4178         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
4179         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
4180         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
4181         AMASK_LOCKPFTCHOK): Define.
4182         (host_detect_local_cpu): Remove buf, f, cpu_names.
4183         Define cpu_types, implver, amask.
4184         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
4185         native CPU.
4186         * config.host: Also use driver-alpha.o, alpha/x-alpha on
4187         alpha*-dec-osf*.
4188         * config/alpha/osf5.h [__alpha__ || __alpha]
4189         (host_detect_local_cpu): Declare.
4190         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
4191         (DRIVER_SELF_SPECS): Define.
4192
4193 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4194
4195         PR target/47715
4196         * config/i386/i386.md (*load_tp_x32): New.
4197         (*load_tp_x32_zext): Ditto.
4198         (*add_tp_x32): Ditto.
4199         (*add_tp_x32_zext): Ditto.
4200         (*load_tp_<mode>): Disable for TARGET_X32 targets.
4201         (*add_tp_<mode>): Ditto.
4202         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
4203         ptr_mode and convert to Pmode if needed.
4204
4205 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4206
4207         PR target/49687
4208         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
4209         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
4210         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
4211         Add X to register footprint: Clobber r26/r27.
4212
4213 2011-07-29  Richard Guenther  <rguenther@suse.de>
4214
4215         * builtins.c (fold_builtin_signbit): Build the comparison
4216         with a proper type.
4217
4218 2011-07-29  Richard Guenther  <rguenther@suse.de>
4219
4220         PR tree-optimization/49893
4221         * tree-predcom.c (suitable_reference_p): Volatile references
4222         are not suitable.
4223
4224 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4225
4226         PR target/49313
4227         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4228         (__ctzsi2): Result for 0 may be undefined.
4229         (__ctzhi2): Result for 0 may be undefined.
4230         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4231         (__popcountsi2): Ditto. And don't clobber r26.
4232         (__popcountdi2): Ditto. And don't clobber r27.
4233         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4234         (parityhi2): New expand.
4235         (paritysi2): New expand.
4236         (popcounthi2): New expand.
4237         (popcountsi2): New expand.
4238         (clzhi2): New expand.
4239         (clzsi2): New expand.
4240         (ctzhi2): New expand.
4241         (ctzsi2): New expand.
4242         (ffshi2): New expand.
4243         (ffssi2): New expand.
4244         (copysignsf3): New insn.
4245         (bswapsi2): New expand.
4246         (*parityhi2.libgcc): New insn.
4247         (*parityqihi2.libgcc): New insn.
4248         (*paritysihi2.libgcc): New insn.
4249         (*popcounthi2.libgcc): New insn.
4250         (*popcountsi2.libgcc): New insn.
4251         (*popcountqi2.libgcc): New insn.
4252         (*popcountqihi2.libgcc): New insn-and-split.
4253         (*clzhi2.libgcc): New insn.
4254         (*clzsihi2.libgcc): New insn.
4255         (*ctzhi2.libgcc): New insn.
4256         (*ctzsihi2.libgcc): New insn.
4257         (*ffshi2.libgcc): New insn.
4258         (*ffssihi2.libgcc): New insn.
4259         (*bswapsi2.libgcc): New insn.
4260
4261 2011-07-29  Richard Guenther  <rguenther@suse.de>
4262
4263         * tree-vrp.c (get_value_range): Only set parameter default
4264         definitions to varying, leave others at undefined.
4265         (extract_range_from_binary_expr): Fix undefined handling.
4266         (vrp_visit_phi_node): Handle merged undefined state.
4267
4268 2011-07-29  Wei Guozhi  <carrot@google.com>
4269
4270         PR rtl-optimization/49799
4271         * combine.c (make_compound_operation): Check if the bit field is valid
4272         before change it to bit field extraction.
4273
4274 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4275
4276         PR rtl-optimization/49891
4277         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
4278         newly created returnjumps.
4279
4280 2011-07-28  DJ Delorie  <dj@redhat.com>
4281
4282         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
4283         local frame in a naked function, and produce a suitable error for
4284         that specific case.
4285
4286         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
4287         registers to be reloaded in HI classes when the target is HI.
4288
4289 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4290
4291         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
4292         bound_one, bound_two.
4293
4294 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4295
4296         PR middle-end/48648
4297         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
4298         CLAST assignments.
4299         (translate_clast): Same.
4300         (translate_clast_assignment): New.
4301
4302 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4303
4304         PR tree-optimization/49876
4305         * sese.c (rename_uses): Do not return false on gloog_error: set
4306         the new_expr to integer_zero_node and continue code generation.
4307         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
4308
4309 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4310
4311         PR debug/49846
4312         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
4313         arguments also check if they aren't initialized with a MODE_INT
4314         mode of the same size.
4315
4316 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
4317
4318         * expr.c (get_bit_range): Handle *MEM_REF's.
4319
4320 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
4321
4322         * rtlanal.c (tablejump_p): False for returns.
4323         * reorg.c (first_active_target_insn): New static function.
4324         (find_end_label): Set JUMP_LABEL for a new returnjump.
4325         (optimize_skip, get_jump_flags, rare_destination,
4326         mostly_true_jump, get_branch_condition,
4327         steal_delay_list_from_target, own_thread_p,
4328         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
4329         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4330         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
4331         * jump.c (delete_related_insns): Likewise.
4332         (jump_to_label_p): New function.
4333         (redirect_target): New static function.
4334         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
4335         (redirect_jump_1): Assert that the new label is nonnull.
4336         (redirect_jump): Likewise.
4337         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
4338         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
4339         exit block.
4340         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
4341         changed.  Ensure that the right label is passed to redirect_jump.
4342         * function.c (emit_return_into_block,
4343         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
4344         ret_rtx in their JUMP_LABEL.
4345         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
4346         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
4347         pass ret_rtx as label.
4348         * cfglayout.c (fixup_reorder_chain): Use
4349         force_nonfallthru_and_redirect rather than force_nonfallthru.
4350         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
4351         * rtl.h (ANY_RETURN_P): New macro.
4352         (jump_to_label_p): Declare.
4353         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
4354         JUMP_LABELs.
4355         (mark_target_live_regs): Likewise.
4356         * basic-block.h (force_nonfallthru_and_redirect): Declare.
4357         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
4358         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
4359         alpha_tablejump_best_label): Remove functions.
4360         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
4361         alpha_tablejump_best_label): Remove declarations.
4362         * config/sh/sh.c (barrier_align, split_branches): Adjust for
4363         ret_rtx in JUMP_LABELs.
4364         * config/arm/arm.c (is_jump_table): Likewise.
4365
4366 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4367
4368         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
4369         special predicate.  Remove explicit mode checks.
4370
4371 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4372
4373         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
4374         DW_AT_data_member_location containing just DW_OP_plus_uconst.
4375
4376         PR debug/49871
4377         * dwarf2out.c (size_of_die, value_format, output_die): Use
4378         DW_FORM_udata instead of DW_FORM_data[48] for
4379         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
4380
4381 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4382
4383         * config/i386/i386.md (*tls_global_dynamic_64): Update
4384         length attribute.
4385
4386 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4387
4388         PR target/47715
4389         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
4390         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
4391         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
4392         (tls_dynamic_gnu2_64): Ditto.
4393         (*tls_dynamic_gnu2_lea_64): Ditto.
4394         (*tls_dynamic_gnu2_call_64): Ditto.
4395         (*tls_dynamic_gnu2_combine_64): Ditto.
4396
4397 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4398
4399         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
4400
4401 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4402
4403         PR target/47364
4404         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
4405
4406 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4407
4408         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
4409         before the core constraints. Adjust attributes.
4410         ("*thumb2_movdf_vfp"): Likewise.
4411
4412 2011-07-28  Kai Tietz  <ktietz@redhat.com>
4413
4414         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
4415         (simplify_truth_ops_using_ranges): Likewise.
4416         (build_assert_expr_for): Likewise.
4417         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
4418         and handle BIT_NOT_EXPR for truth-operation.
4419
4420 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4421
4422         PR target/49313
4423         Undo r176835 from trunk
4424         2011-07-27  Georg-Johann Lay
4425
4426 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4427
4428         PR target/49687
4429         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
4430         Add _muluhisi3, _mulshisi3, _usmulhisi3.
4431         * config/avr/libgcc.S (__mulsi3): Rewrite.
4432         (__mulhisi3): Rewrite.
4433         (__umulhisi3): Rewrite.
4434         (__usmulhisi3): New.
4435         (__muluhisi3): New.
4436         (__mulshisi3): New.
4437         (__mulohisi3): New.
4438         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
4439         declare.
4440         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
4441         (pseudo_register_or_const_int_operand): New.
4442         (combine_pseudo_register_operand): New.
4443         (u16_operand): New.
4444         (s16_operand): New.
4445         (o16_operand): New.
4446         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
4447         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
4448         (any_extend, any_extend2): New code iterators.
4449         (extend_prefix): New code attribute.
4450         (mulsi3): Rewrite. Turn insn to expander.
4451         (mulhisi3): Ditto.
4452         (umulhisi3): Ditto.
4453         (usmulhisi3): New expander.
4454         (*mulsi3): New insn-and-split.
4455         (mulu<mode>si3): New insn-and-split.
4456         (muls<mode>si3): New insn-and-split.
4457         (mulohisi3): New insn-and-split.
4458         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
4459         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
4460         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
4461         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
4462         insn-and-split.
4463         (*mulsi3_call): Rewrite.
4464         (*mulhisi3_call): Rewrite.
4465         (*umulhisi3_call): Rewrite.
4466         (*usmulhisi3_call): New insn.
4467         (*muluhisi3_call): New insn.
4468         (*mulshisi3_call): New insn.
4469         (*mulohisi3_call): New insn.
4470         (extendqihi2): Use combine_pseudo_register_operand as predicate
4471         for operand 1.
4472         (extendqisi2): Ditto.
4473         (zero_extendqihi2): Ditto.
4474         (zero_extendqisi2): Ditto.
4475         (zero_extendhisi2): Ditto.
4476         (extendhisi2): Ditto. Don't early-clobber operand 0.
4477
4478 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4479
4480         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
4481
4482 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4483
4484         PR tree-optimization/49471
4485         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
4486         iv only when the largest type is unsigned.  Do not call
4487         lang_hooks.types.type_for_size.
4488
4489 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4490
4491         PR middle-end/45450
4492         * graphite-poly.c (apply_poly_transforms): Disable legality check
4493         after an openscop read.
4494
4495 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4496
4497         PR middle-end/47691
4498         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
4499         copy_bb_and_scalar_dependences.
4500         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
4501         (graphite_copy_stmts_from_block): Update call to rename_uses.
4502         (copy_bb_and_scalar_dependences): Update call to
4503         graphite_copy_stmts_from_block.
4504         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4505
4506 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
4507
4508         PR target/49313
4509         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4510         (__ctzsi2): Result for 0 may be undefined.
4511         (__ctzhi2): Result for 0 may be undefined.
4512         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4513         (__popcountsi2): Ditto. And don't clobber r26.
4514         (__popcountdi2): Ditto. And don't clobber r27.
4515         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4516         (parityhi2): New expand.
4517         (paritysi2): New expand.
4518         (popcounthi2): New expand.
4519         (popcountsi2): New expand.
4520         (clzhi2): New expand.
4521         (clzsi2): New expand.
4522         (ctzhi2): New expand.
4523         (ctzsi2): New expand.
4524         (ffshi2): New expand.
4525         (ffssi2): New expand.
4526         (copysignsf3): New insn.
4527         (bswapsi2): New expand.
4528         (*parityhi2.libgcc): New insn.
4529         (*parityqihi2.libgcc): New insn.
4530         (*paritysihi2.libgcc): New insn.
4531         (*popcounthi2.libgcc): New insn.
4532         (*popcountsi2.libgcc): New insn.
4533         (*popcountqi2.libgcc): New insn.
4534         (*popcountqihi2.libgcc): New insn-and-split.
4535         (*clzhi2.libgcc): New insn.
4536         (*clzsihi2.libgcc): New insn.
4537         (*ctzhi2.libgcc): New insn.
4538         (*ctzsihi2.libgcc): New insn.
4539         (*ffshi2.libgcc): New insn.
4540         (*ffssihi2.libgcc): New insn.
4541         (*bswapsi2.libgcc): New insn.
4542
4543 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4544
4545         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
4546         the mode of symbolic_opreand RTXes.
4547
4548 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4549
4550         * config/i386/predicates.md (x86_64_movabs_operand): Return false
4551         for pic_32bit_operand RTXes.
4552         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
4553         in DImode.
4554
4555 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4556
4557         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
4558         for 32-bit, too.
4559         (ix86_handle_abi_attribute): Allow function attributes
4560         ms_abi/sysv_abi in 32-bit mode, too.
4561         * doc/extend.texi: Adjust attribute documentation.
4562
4563         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
4564         expression handling.
4565         (and_var_with_comparison_1): Likewise.
4566
4567 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
4568
4569         * params.h (ALLOW_STORE_DATA_RACES): New.
4570         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
4571         * Makefile.in (expr.o): Depend on PARAMS_H.
4572         * machmode.h (get_best_mode): Add argument.
4573         * fold-const.c (optimize_bit_field_compare): Add argument to
4574         get_best_mode.
4575         (fold_truthop): Same.
4576         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
4577         * expr.c (emit_group_store): Same.
4578         (copy_blkmode_from_reg): Same.
4579         (write_complex_part): Same.
4580         (optimize_bitfield_assignment_op): Add argument.
4581         Add argument to get_best_mode.
4582         (get_bit_range): New.
4583         (expand_assignment): Calculate maxbits and pass it down accordingly.
4584         (store_field): New argument.
4585         (expand_expr_real_2): New argument to store_field.  Include params.h.
4586         * expr.h (store_bit_field): New argument.
4587         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
4588         into account maxbits.
4589         * calls.c (store_unaligned_arguments_into_pseudos): New argument
4590         to store_bit_field.
4591         * expmed.c (store_bit_field_1): New argument.  Use it.
4592         (store_bit_field): Same.
4593         (store_fixed_bit_field): Same.
4594         (store_split_bit_field): Same.
4595         (extract_bit_field_1): Pass new argument to get_best_mode.
4596         (extract_bit_field): Same.
4597         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
4598         * doc/invoke.texi: Document parameter allow-store-data-races.
4599
4600 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
4601
4602         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
4603
4604 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4605
4606         * tree-vrp.c (extract_range_from_binary_expr): Remove
4607         TRUTH-binary cases and add new bitwise-cases.
4608         (extract_range_from_assignment): Likewise.
4609         (register_edge_assert_for_1): Likeiwise.
4610         (register_edge_assert_for): Likewise.
4611         (simplify_truth_ops_using_ranges): Likewise.
4612         (simplify_stmt_using_ranges): Likewise.
4613
4614 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
4615
4616         PR target/47372
4617         * config/i386/i386.c (ix86_delegitimize_address): Call
4618         simplify_gen_subreg for PIC with mode of x only if modes of
4619         x and orig_x are different.
4620
4621 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
4622
4623         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
4624         to GC allocated copy of the string.
4625         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
4626         before .debug_line, not after it.
4627
4628 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4629
4630         PR middle-end/47046
4631         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
4632         evolution_function_is_affine_p on CHREC_RIGHT.
4633
4634 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4635
4636         * tree-data-ref.c (max_stmt_executions_tree): Do not call
4637         lang_hooks.types.type_for_size.
4638
4639 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4640
4641         PR middle-end/47653
4642         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
4643         loops using wrapping semantics.
4644
4645 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4646
4647         PR middle-end/48805
4648         * tree-scalar-evolution.c (instantiate_scev_r): Return
4649         chrec_dont_know for ADDR_EXPR.
4650
4651 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4652             H.J. Lu  <hongjiu.lu@intel.com>
4653
4654         PR target/47369
4655         PR target/49853
4656         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
4657         if legitimize_tls_address returned operand in wrong mode. Allow
4658         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
4659         if legitimize_pic_address returned operand in wrong mode.
4660
4661 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4662
4663         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
4664         return false for invariants.
4665
4666 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4667
4668         * config/i386/i386.md (add->lea splitter): Implement using SWI
4669         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
4670         (add->lea zext splitter): Change operand 2 predicate to
4671         x86_64_nonmemory_operand.
4672
4673 2011-07-26  Richard Guenther  <rguenther@suse.de>
4674
4675         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
4676         frequency makes everything hot.
4677
4678 2011-07-26  Richard Guenther  <rguenther@suse.de>
4679
4680         PR tree-optimization/49840
4681         * tree-vrp.c (range_fits_type_p): Properly handle full
4682         double-int precision.
4683
4684 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4685
4686         PR bootstrap/49786
4687         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
4688         counts.
4689         (update_specialized_profile): Likewise.
4690
4691 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4692             H.J. Lu  <hongjiu.lu@intel.com>
4693
4694         PR target/47381
4695         PR target/49832
4696         PR target/49833
4697         * config/i386/i386.md (i): Change SImode attribute to "e".
4698         (g): Change SImode attribute to "rme".
4699         (di): Change SImode attribute to "nF".
4700         (general_operand): Change SImode attribute to x86_64_general_operand.
4701         (general_szext_operand): Change SImode attribute to
4702         x86_64_szext_general_operand.
4703         (immediate_operand): Change SImode attribute to
4704         x86_64_immediate_operand.
4705         (nonmemory_operand): Change SImode attribute to
4706         x86_64_nonmemory_operand.
4707         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
4708         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
4709         (*lea_1): Use SWI48 mode iterator.
4710         (*lea_1_zext): New insn pattern.
4711         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
4712         (*bt<mode>): Ditto.
4713         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
4714         Update operand constraints.
4715         (addsi_1_zext): Ditto.
4716         (*add<mode>2): Ditto.
4717         (*addsi_3_zext): Ditto.
4718         (*subsi_1_zext): Ditto.
4719         (*subsi_2_zext): Ditto.
4720         (*subsi_3_zext): Ditto.
4721         (*addsi3_carry_zext): Ditto.
4722         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
4723         (*mulsi3_1_zext): Ditto.
4724         (*andsi_1): Ditto.
4725         (*andsi_1_zext): Ditto.
4726         (*andsi_2_zext): Ditto.
4727         (*<any_or:code>si_1_zext): Ditto.
4728         (*<any_or:code>si_2_zext): Ditto.
4729         (*test<mode>_1): Use <general_operand> predicate for operand 1.
4730         (*and<mode>_2): Ditto.
4731         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
4732         (add->lea splitter): Check operand modes in insn constraint.  Extend
4733         operands less than SImode wide to SImode.
4734         (add->lea zext splitter): Do not extend input operands to DImode.
4735         (*lea_general_1): Handle only QImode and HImode operands.
4736         (*lea_general_2): Ditto.
4737         (*lea_general_3): Ditto.
4738         (*lea_general_1_zext): Remove.
4739         (*lea_general_2_zext): Ditto.
4740         (*lea_general_3_zext): Ditto.
4741         (*lea_general_4): Check operand modes in insn constraint.  Extend
4742         operands less than SImode wide to SImode.
4743         (ashift->lea splitter): Ditto.
4744         * config/i386/i386.c (ix86_print_operand_address): Print address
4745         registers with 'q' modifier on 64bit targets.
4746         * config/i386/predicates.md (pic_32bit_opreand): Define as special
4747         predicate.  Reject non-SI and non-DI modes.
4748
4749 2011-07-25  Andrew Pinski  <apinski@cavium.com>
4750
4751         PR tree-opt/49671
4752         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
4753         TREE_THIS_NOTRAP into the inner most MEM_REF.
4754         Always copy TREE_THIS_VOLATILE.
4755         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
4756         arguments are not volatile references.
4757
4758 2011-07-25  Richard Henderson  <rth@redhat.com>
4759
4760         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
4761         * final.c (final_scan_insn): Don't test for it.
4762         (rest_of_clean_state): Likewise.
4763
4764 2011-07-25  Richard Henderson  <rth@redhat.com>
4765
4766         PR debug/49841
4767         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
4768         (emit_frame_save): Likewise.
4769         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
4770         insn onto a dummy blockage insn after the join label.
4771
4772 2011-07-25  Richard Henderson  <rth@redhat.com>
4773
4774         * dwarf2cfi.c (dw_trace_info): Add ID member.
4775         (get_trace_index): Remove.  Change users to use ID member.
4776         (before_next_cfi_note): New.
4777         (connect_traces): Remove unreachable traces before the main loop.
4778         Look across one trace and generate remember/restore_state if needed.
4779
4780 2011-07-25  Richard Henderson  <rth@redhat.com>
4781
4782         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
4783
4784 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
4785
4786         * genattr.c (write_upcase, gen_attr <enum definition writing>):
4787         Move to ...
4788         * genattr-common.c ... here.
4789         (main): Call gen_attr.
4790         * optc-gen.awk: Make generated program include insn-attr-common.h .
4791         * Makefile.in (oprions.o): Depend on insn-attr-common.h
4792
4793 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4794
4795         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4796         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4797         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
4798         m32c_print_operand, m32c_print_operand_address): Remove.
4799         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
4800         Change return type to bool. Change argument type to bool.
4801         (m32c_print_operand, m32c_print_operand_address): Make static.
4802         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4803         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4804
4805 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4806
4807         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
4808         attributes): Document mmap.
4809
4810 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4811
4812         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4813         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4814         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
4815         mmix_print_operand, mmix_print_operand_address): Remove.
4816         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
4817         Change return type to bool. Change argument type to bool.
4818         (mmix_print_operand, mmix_print_operand_address): Make static.
4819         (mmix_intval, mmix_output_condition): Change 'x' argument type
4820         to const_rtx.
4821         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4822         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4823
4824 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
4825
4826         PR target/39386
4827         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
4828         shift counter for x << x and x >> x shifts.
4829
4830 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4831
4832         PR target/47124
4833         * config.gcc: Reject *-*-solaris2 configuration.
4834
4835 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
4836
4837         PR tree-optimization/49809
4838         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
4839         gimple_get_lhs instead of gimple_assign_lhs.
4840
4841 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4842
4843         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
4844
4845 2011-07-25  Richard Guenther  <rguenther@suse.de>
4846
4847         PR tree-optimization/49822
4848         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
4849         more.  Make sure to preserve stmts with side-effects.  Properly
4850         handle virtual defs, follow a longer def chain.
4851
4852 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
4853
4854         PR plugins/45348
4855         PR plugins/48425
4856         PR plugins/46577
4857         * Makefile.in: Do not flatten c-family directory when installing
4858         plugin headers.
4859
4860 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4861
4862         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
4863         original nodes if we are dealing with virtual clones.
4864
4865 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
4866
4867         * common/config/c6x/c6x-common.c: New file.
4868
4869 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
4870
4871         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
4872
4873 2011-07-25  Richard Guenther  <rguenther@suse.de>
4874
4875         PR tree-optimization/49715
4876         * tree-vrp.c: Include expr.h and optabs.h.
4877         (range_fits_type_): New function.
4878         (simplify_float_conversion_using_ranges): Likewise.
4879         (simplify_stmt_using_ranges): Call it.
4880         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
4881         * optabs.c (can_float_p): Export.
4882         * optabs.h (can_float_p): Declare.
4883
4884 2011-07-25  Richard Guenther  <rguenther@suse.de>
4885
4886         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
4887         (get_value_range): For out-of-range SSA names or names created
4888         after propagation return a read-only varying range.
4889         (dump_all_value_ranges): Adjust.
4890         (vrp_initialize): Likewise.
4891         (vrp_finalize): Likewise.
4892
4893 2011-07-24  Richard Henderson  <rth@redhat.com>
4894
4895         PR debug/49831
4896         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
4897         them entirely.
4898
4899 2011-07-24  Richard Henderson  <rth@redhat.com>
4900
4901         PR debug/49825
4902         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
4903         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
4904
4905 2011-07-24  Richard Henderson  <rth@redhat.com>
4906
4907         PR debug/49827
4908         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
4909
4910 2011-07-24  Richard Henderson  <rth@redhat.com>
4911
4912         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
4913         Zero args_size for abnormal edges.  Adjust all callers.
4914
4915 2011-07-24  Richard Henderson  <rth@redhat.com>
4916
4917         PR debug/49825
4918         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
4919
4920 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
4921
4922         PR bootstrap/49835
4923         * collect2.c (demangle_flag): Removed.
4924
4925 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
4926
4927         * configure.ac (demangler_in_ld): Default to yes.
4928         * configure: Regenerated.
4929         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
4930         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
4931         --no-demangle options straight through to ld.  When
4932         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
4933         way that has the intended effect on Windows.
4934
4935 2011-07-23  Richard Henderson  <rth@redhat.com>
4936
4937         * dwarf2cfi.c: Include basic-block.h.
4938         (dw_label_info): Remove.
4939         (trace_work_list, trace_index): New.
4940         (remember_row, emit_cfa_remember): Remove.
4941         (dw_trace_info_hash, dw_trace_info_eq): New.
4942         (get_trace_index, get_trace_info): New.
4943         (save_point_p): New.
4944         (free_cfi_row): Remove.
4945         (add_cfi): Do not emit DW_CFA_remember_state.
4946         (cfa_row_equal_p): New.
4947         (barrier_args_size): Remove.
4948         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
4949         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
4950         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
4951         (dwarf2out_cfi_begin_epilogue): Remove.
4952         (dwarf2out_frame_debug_restore_state): Remove.
4953         (connect_traces, create_pseudo_cfg): New.
4954         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
4955         * Makefile.in (dwarf2cfi.o): Update.
4956
4957 2011-07-23  Richard Henderson  <rth@redhat.com>
4958
4959         * dwarf2cfi.c (dw_trace_info): New.
4960         (dw_label_info): New.
4961         (cie_return_save): New.
4962         (cur_trace): New.
4963         (queued_args_size): Rename from args_size.  Update all users.
4964         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
4965         (def_cfa_1): Use cur_trace instead of cfa_*.
4966         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
4967         (clobbers_queued_reg_save, reg_saved_in): Likewise.
4968         (dwarf2out_frame_debug_expr): Likewise.
4969         (create_cie_data): Split out from ...
4970         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
4971
4972 2011-07-23  Richard Henderson  <rth@redhat.com>
4973
4974         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
4975         Update all users to match.
4976         (execute_dwarf2_frame): Free reg_saved_in_data.
4977
4978 2011-07-23  Richard Henderson  <rth@redhat.com>
4979
4980         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
4981         (queued_reg_saves): Don't GTY.  Change to a VEC.
4982         (queue_reg_save): Update to match.
4983         (dwarf2out_flush_queued_reg_saves): Likewise.
4984         (clobbers_queued_reg_save): Likewise.
4985         (reg_saved_in): Likewise.
4986         (execute_dwarf2_frame): Free queued_reg_saves.
4987
4988 2011-07-23  Richard Henderson  <rth@redhat.com>
4989
4990         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
4991
4992 2011-07-23  Richard Henderson  <rth@redhat.com>
4993
4994         * dwarf2cfi.c (add_cfi_args_size): Split out from...
4995         (dwarf2out_args_size): ... here.
4996         (add_cfi_restore): Split out from ...
4997         (dwarf2out_frame_debug_cfa_restore): ... here.
4998         (def_cfa_0): Split out from ...
4999         (def_cfa_1): ... here.
5000         (cfi_oprnd_equal_p, cfi_equal_p): New.
5001         (change_cfi_row): New.
5002         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
5003         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
5004         (output_cfis): Remove.
5005         * dwarf2out.c (output_fde): Simplify output_cfi loop.
5006         (dwarf2out_switch_text_section): Don't call output_cfis.
5007         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
5008         * dwarf2out.h: Update decls.
5009         (enum dw_val_class): Add dw_val_class_none.
5010
5011 2011-07-23  Richard Henderson  <rth@redhat.com>
5012
5013         * dwarf2cfi.c (update_row_reg_save): New.
5014         (dwarf2out_frame_debug_cfa_expression): Use it.
5015         (dwarf2out_frame_debug_cfa_restore): Likewise.
5016         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
5017
5018 2011-07-23  Richard Henderson  <rth@redhat.com>
5019
5020         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
5021
5022 2011-07-23  Richard Henderson  <rth@redhat.com>
5023
5024         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
5025         (cie_cfi_row): New.
5026         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
5027         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
5028         (cur_row, remember_row): New.
5029         (def_cfa_1): Use cur_row instead of the old_* variables.
5030         (dwarf2out_frame_debug_restore_state): Similarly.
5031         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
5032         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
5033         (dwarf2out_frame_debug_adjust_cfa): Likewise.
5034         (dwarf2out_frame_debug_cfa_offset): Likewise.
5035         (dwarf2out_frame_debug_expr): Likewise.
5036         (execute_dwarf2_frame): Set up cur_row.
5037         * dwarf2out.h (struct cfa_loc): Mark for GTY.
5038
5039 2011-07-23  Richard Henderson  <rth@redhat.com>
5040
5041         * basic-block.h (EDGE_PRESERVE): New.
5042         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
5043         * bb-reorder.c: Include except.h.
5044         (fix_up_crossing_landing_pad): New.
5045         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
5046         landing pads in the right partition.  Duplicate as necessary.
5047         (partition_hot_cold_basic_blocks): Fix up DF info after
5048         duplicating landing pads.
5049         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
5050         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
5051         is set properly.  Validate that EH edges are not CROSSING.
5052         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
5053         (dw2_build_landing_pads): ... here.
5054         (convert_to_eh_region_ranges): Remove code to fixup crossing
5055         landing pads.
5056         * except.h (expand_dw2_landing_pad_for_region): Declare.
5057         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
5058
5059 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
5060
5061         PR target/49816
5062         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
5063
5064 2011-07-22  Jason Merrill  <jason@redhat.com>
5065
5066         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
5067
5068 2011-07-22  Richard Henderson  <rth@redhat.com>
5069
5070         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
5071
5072 2011-07-22  Richard Henderson  <rth@redhat.com>
5073
5074         * jump.c (maybe_propagate_label_ref): Split out of...
5075         (mark_all_labels): ... here.  Do not attempt label_ref
5076         propagation while in cfglayout mode.
5077
5078 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5079
5080         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
5081         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
5082         (dwarf_attr_name): Handle DW_AT_GNU_macros.
5083         (dwarf2out_define): If the vector is empty and
5084         lineno is 0, emit a dummy entry first.
5085         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
5086         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
5087         optimize_macinfo_range): New functions.
5088         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
5089         mergeable, optimize longer strings using
5090         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
5091         optimize longer sequences of define/undef ops from headers
5092         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
5093         emit a section headers.
5094         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
5095         and macinfo_section_label to DEBUG_MACRO_SECTION
5096         resp. DEBUG_MACRO_SECTION_LABEL.
5097         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
5098         instead of DW_AT_macro_info.
5099
5100         PR other/32998
5101         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
5102         options.
5103         * dwarf2out.c: Include opts.h.
5104         (dchar_p): New typedef.  Define heap VEC for it.
5105         (producer_string): New variable.
5106         (gen_producer_string): New function.
5107         (gen_compile_unit_die): Use it.
5108         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
5109         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
5110         * doc/invoke.texi: Document -grecord-gcc-switches and
5111         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
5112         to -frecord-gcc-switches description.
5113
5114 2011-07-22  Jason Merrill  <jason@redhat.com>
5115
5116         PR c++/30112
5117         * c-decl.c (c_linkage_bindings): Define.
5118
5119 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5120
5121         PR debug/49815
5122         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
5123
5124 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
5125
5126         * config/i386/i386.c (ix86_option_override_internal): Disallow
5127         MS ABI in x32 mode.
5128         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
5129         only for TARGET_LP64.
5130         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
5131
5132 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
5133
5134         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
5135         avoid warnings when GCC is built with a C++ compiler.
5136
5137 2011-07-22  Martin Jambor  <mjambor@suse.cz>
5138
5139         PR lto/49796
5140         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
5141         if decl node is in another partition, call cgraph_get_node only once.
5142
5143 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
5144
5145         * config.gcc (x86_64-*-linux*): Set
5146         default_gnu_indirect_function to yes.
5147
5148 2011-07-22  Richard Guenther  <rguenther@suse.de>
5149
5150         PR tree-optimization/45819
5151         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5152         preserve volatile and notrap flags.
5153
5154 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5155             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5156
5157         PR bootstrap/49794
5158         * configure.ac: Test AM_ICONV with CXX.
5159         * configure: Regenerate.
5160         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
5161
5162 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5163
5164         PR bootstrap/49797
5165         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
5166         (set_cloog_options): Use it.
5167
5168 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5169
5170         PR c++/49756
5171         * gcc.c (main): Call stack_limit_increase (64MB).
5172         * toplev.c (toplev_main): Likewise.
5173
5174 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5175
5176         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
5177         instead of force_reg.
5178
5179 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5180
5181         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
5182         needed and use force_reg after convert.
5183         (ix86_expand_call): Likewise.
5184         (ix86_expand_special_args_builtin): Likewise.
5185         (ix86_expand_builtin): Likewise.
5186
5187 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5188
5189         PR middle-end/47654
5190         PR middle-end/49649
5191         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
5192         in parameter.  Initialize v1 and v2 based on the values returned
5193         by clast_name_to_lb_ub.
5194         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
5195         values.
5196         (type_for_clast_bin): Same.
5197         (type_for_clast_expr): Same.
5198         (type_for_clast_eq): Update calls to type_for_clast_expr.
5199         (type_for_clast_for): Same.
5200         (build_iv_mapping): Same.
5201         * graphite-ppl.h (value_min): New.
5202
5203 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5204
5205         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
5206         types whenever possible.
5207
5208 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5209
5210         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
5211         and ub fields.
5212         (new_clast_name_index): Add lb and ub parameters.
5213         (free_clast_name_index): New.
5214         (clast_name_to_lb_ub): New.
5215         (save_clast_name_index): Add lb and ub parameters.
5216         (compute_bounds_for_param): New.
5217         (type_for_level): Removed.
5218         (type_for_clast_for): Removed level parameter.  Do not call
5219         type_for_level.
5220         (graphite_create_new_loop): Store the lb and ub for the clast_name
5221         of the iterator of the loop that has been generated.
5222         (graphite_create_new_loop_guard): Remove parameter level.
5223         (create_params_index): Store the lb and ub of each parameter.
5224         (gloog): Use free_clast_name_index.  Pass to create_params_index
5225         the current scop.
5226
5227 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5228
5229         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
5230         (max_precision_type): Inline max_signed_precision_type.
5231         (type_for_clast_red): Use max_precision_type.
5232         (type_for_clast_bin): Same.
5233         (type_for_clast_for): Same.
5234
5235 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5236
5237         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
5238         type_for_interval.
5239         (gcc_type_for_value): Renamed type_for_value.
5240         (gcc_type_for_clast_term): Renamed type_for_clast_term.
5241         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
5242         (gcc_type_for_clast_red): Renamed type_for_clast_red.
5243         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
5244         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
5245         (graphite_translate_clast_equation): Update calls.
5246         (compute_type_for_level): Renamed type_for_level.
5247         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
5248         (build_iv_mapping): Update calls.
5249         (graphite_create_new_loop_guard): Same.
5250
5251 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5252
5253         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
5254         comment.
5255
5256 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5257
5258         * graphite-clast-to-gimple.c (struct ivs_params): New.
5259         (clast_name_to_gcc): Use ivs_params to pass around parameters.
5260         (clast_to_gcc_expression): Same.
5261         (clast_to_gcc_expression_red): Same.
5262         (gcc_type_for_clast_term): Same.
5263         (gcc_type_for_clast_expr): Same.
5264         (gcc_type_for_clast_red): Same.
5265         (gcc_type_for_clast_bin): Same.
5266         (gcc_type_for_clast_eq): Same.
5267         (graphite_translate_clast_equation): Same.
5268         (graphite_create_guard_cond_expr): Same.
5269         (graphite_create_new_guard): Same.
5270         (graphite_create_new_loop): Same.
5271         (build_iv_mapping): Same.
5272         (translate_clast_user): Same.
5273         (graphite_create_new_loop_guard): Same.
5274         (translate_clast): Same.
5275         (translate_clast_for_loop): Same.
5276         (translate_clast_for): Same.
5277         (translate_clast_guard): Same.
5278         (initialize_cloog_names): Fix typo.
5279         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
5280
5281 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5282
5283         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
5284         (new_clast_name_index): Add level parameter.
5285         (clast_name_to_level): New.
5286         (save_clast_name_index): Add level parameter.
5287         (newivs_to_depth_to_newiv): Removed.
5288         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
5289         (graphite_create_new_loop): Add level parameter.  Pass level to
5290         save_clast_name_index.
5291         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
5292         (create_params_index): Pass level to save_clast_name_index.
5293
5294 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5295
5296         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
5297         recompute type, lb, and ub.  Get them from...
5298         (graphite_create_new_loop_guard): ...here.  Pass in parameter
5299         pointers to type, lb, and ub.
5300         (translate_clast_for_loop): Update function calls.
5301         (translate_clast_for): Same.
5302
5303 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5304
5305         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
5306         psct_dynamic_dim.
5307         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
5308         (gcc_type_for_iv_of_clast_loop): Update use of level.
5309         (gloog): Start counting nesting level from 0.
5310         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
5311         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
5312         psct_dynamic_dim on level.
5313
5314 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5315
5316         * config/i386/i386.c (ix86_legitimize_address): Convert to
5317         Pmode if needed.
5318
5319 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5320
5321         * config/i386/i386.c (function_value_64): Always return pointers
5322         in Pmode.
5323         (ix86_promote_function_mode): New.
5324         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
5325
5326 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5327
5328         PR tree-optimization/49749
5329         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
5330         remove no-longer-used maxrank variable.
5331
5332 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5333
5334         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
5335
5336 2011-07-21  Jason Merrill  <jason@redhat.com>
5337
5338         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
5339         * recog.h (struct insn_data_d): Check it instead of
5340         HAVE_DESIGNATED_INITIALIZERS.
5341         * genoutput.c (output_insn_data): Likewise.
5342
5343 2011-07-21  Richard Guenther  <rguenther@suse.de>
5344
5345         PR tree-optimization/49770
5346         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
5347         valueized any operand.  Renamed from ...
5348         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
5349         (valueize_shared_reference_ops_from_ref): Return whether we
5350         valueized any operand.
5351         (vn_reference_lookup): Only when we valueized any operand
5352         use the valueized reference for alias analysis.  Do not preserve
5353         the original reference tree in this case.
5354
5355 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
5356
5357         * config/i386/i386.c (ix86_decompose_address): Reject all but
5358         register operands and subregs of DImode hard registers in index.
5359
5360 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5361
5362         * fold-const.c (fold_unary_loc): Preserve indirect
5363         comparison cast to none-boolean type.
5364         * tree-ssa.c (useless_type_conversion_p): Preserve cast
5365         from/to boolean-type.
5366         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
5367         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
5368         * tree-cfg.c (verify_gimple_comparison): Check result
5369         type of comparison expression.
5370         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
5371         of condition result and disallow type-cast sinking into comparison.
5372
5373 2011-07-21  Richard Guenther  <rguenther@suse.de>
5374
5375         * tree-ssa-forwprop.c (combine_conversions): Return whether
5376         we have to run cfg-cleanup.  Properly remove dead stmts.
5377         (ssa_forward_propagate_and_combine): Adjust.
5378
5379 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
5380
5381         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
5382
5383 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5384
5385         * tree-ssa-propagate.c (substitute_and_fold): Use
5386         do_dce flag to deside, if BB's statements are scanned
5387         in last to first, or first to last order.
5388
5389 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5390
5391         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
5392
5393 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
5394             Uros Bizjak  <ubizjak@gmail.com>
5395             Richard Henderson  <rth@redhat.com>
5396
5397         * config/i386/constraints.md (w): New.
5398
5399         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
5400         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
5401
5402         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
5403         instead of TARGET_64BIT.
5404
5405         * config/i386/i386.md (indirect_jump): Replace
5406         nonimmediate_operand with indirect_branch_operand.
5407         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
5408         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
5409         Convert operand 0 to Pmode for x32 if not PIC.
5410         (*tablejump_1): Replace nonimmediate_operand with
5411         indirect_branch_operand.  Replace constraint "m" with "w".
5412         (*call_vzeroupper): Replace constraint "m" with "w".
5413         (*call): Likewise.
5414         (*call_rex64_ms_sysv_vzeroupper): Likewise.
5415         (*call_rex64_ms_sysv): Likewise.
5416         (*call_value_vzeroupper): Likewise.
5417         (*call_value): Likewise.
5418         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
5419         (*call_value_rex64_ms_sysv): Likewise.
5420         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
5421
5422         * config/i386/predicates.md (indirect_branch_operand): New.
5423         (call_insn_operand): Support x32.
5424
5425 2011-07-20  Michael Eager  <eager@eagercon.com>
5426
5427         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
5428
5429 2011-07-20  Richard Henderson  <rth@redhat.com>
5430
5431         * cfg.c (dump_bb_info): Dump basic_block->flags.
5432         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
5433
5434 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5435
5436         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5437         of DImode hard registers in index.
5438         (ix86_legitimate_address_p): Allow subregs of base and index to span
5439         more than a word.  Assert that subregs of base and index satisfy
5440         register_no_elim_operand predicates.  Reject addresses where
5441         base and index have different modes.
5442
5443 2011-07-20  Robert Millan  <rmh@gnu.org>
5444
5445         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
5446
5447 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5448
5449         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
5450         removing now-unnecessary assignment.
5451
5452 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5453
5454         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
5455         memory address space to the type's address space.
5456
5457 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5458
5459         PR target/36467
5460         PR target/49687
5461         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
5462         and expand appropriately if there is a CONST_INT in operand2.
5463         (usmulqihi3): New insn.
5464         (*sumulqihi3): New insn.
5465         (*osmulqihi3): New insn.
5466         (*oumulqihi3): New insn.
5467         (*muluqihi3.uconst): New insn_and_split.
5468         (*muluqihi3.sconst): New insn_and_split.
5469         (*mulsqihi3.sconst): New insn_and_split.
5470         (*mulsqihi3.uconst): New insn_and_split.
5471         (*mulsqihi3.oconst): New insn_and_split.
5472         (*ashifthi3.signx.const): New insn_and_split.
5473         (*ashifthi3.signx.const7): New insn_and_split.
5474         (*ashifthi3.zerox.const): New insn_and_split.
5475         (mulsqihi3): New insn.
5476         (muluqihi3): New insn.
5477         (muloqihi3): New insn.
5478         * config/avr/predicates.md (const_2_to_7_operand): New.
5479         (const_2_to_6_operand): New.
5480         (u8_operand): New.
5481         (s8_operand): New.
5482         (o8_operand): New.
5483         (s9_operand): New.
5484         (register_or_s9_operand): New.
5485
5486 2011-07-20  Kai Tietz  <ktietz@redhat.com>
5487
5488         * builtins.c (fold_builtin_expect): See through the cast
5489         from truthvalue_type_node to long.
5490
5491 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
5492
5493         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
5494         where we can use them from the standard and altivec instruction
5495         sets, instead of always using the 3 operand VSX forms that require
5496         the destination to overlap one of the inputs.
5497         (vsx_fms*): Ditto.
5498         (vsx_fnma*): Ditto.
5499         (vsx_fnms*): Ditto.
5500
5501         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
5502         for DF types.
5503         (fmsdf4_fpr): Ditto.
5504         (nfmadf4_fpr): Ditto.
5505         (nfmsdf4_fpr): Ditto.
5506
5507 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
5508
5509         * genrecog.c (make_insn_sequence): Correct position numbering
5510         when filtering out match_scratch and match_dup.
5511
5512 2011-07-20  Richard Guenther  <rguenther@suse.de>
5513
5514         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5515         against already removed statements.
5516         (forward_propagate_into_comparison): Remove dead defining stmts.
5517         (forward_propagate_into_gimple_cond): Likewise.
5518         (forward_propagate_into_cond): Simplify.
5519         (ssa_forward_propagate_and_combine): Handle changed cfg from
5520         forward_propagate_into_comparison.
5521         * tree-ssa-phiopt.c (conditional_replacement): Use proper
5522         locations for newly built statements.
5523
5524 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5525
5526         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
5527
5528 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5529
5530         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
5531         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
5532
5533 2011-07-20  Richard Guenther  <rguenther@suse.de>
5534
5535         PR middle-end/18908
5536         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
5537         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
5538         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
5539
5540 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
5541
5542         * config/frv/frv.c (frv_register_move_cost): Define explicitly
5543         costs for subclasses of GR_REGS.
5544
5545 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5546
5547         PR target/49780
5548         * config/i386/predicates.md (no_seg_addres_operand): No more special.
5549         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5550         of DImode hard registers in base.
5551         (ix86_legitimate_address_p): Allow SImode and DImode base and index
5552         registers.
5553
5554 2011-07-20  Richard Guenther  <rguenther@suse.de>
5555
5556         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
5557         (unify_nodes): Deal with that.
5558         (solve_graph): Likewise.
5559
5560 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
5561
5562         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
5563         canonicalize left operand from ZERO_EXTEND to AND.
5564
5565 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
5566
5567         * target.def (class_max_nregs): New hook.
5568         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
5569         * doc/tm.texi: Regenerate.
5570         * targhooks.c (default_class_max_nregs): New function.
5571         * targhooks.h (default_class_max_nregs): Declare.
5572         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
5573         x_ira_reg_class_min_nregs arrays to unsigned char.
5574         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
5575         hook instead of CLASS_MAX_NREGS macro.
5576         * reginfo.c (restore_register_info): Ditto.
5577         * ira-conflicts.c (process_regs_for_copy): Use
5578         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5579         Change type rclass and aclass vars to reg_class_t.
5580         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
5581         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
5582         reg_class_t.
5583         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
5584         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5585
5586         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
5587         * config/i386/i386.c (ix86_class_max_nregs): New function.
5588         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
5589         instead of CLASS_MAX_NREGS macro.
5590         (TARGET_CLASS_MAX_NREGS): Define.
5591         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
5592         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
5593         * config/avr/avr.c (class_max_nregs): Remove function.
5594         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
5595         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
5596         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
5597         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
5598         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
5599         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
5600         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
5601         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
5602         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
5603         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
5604         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
5605         * config/score/score.h (CLASS_MAX_NREGS): Remove.
5606         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
5607         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
5608         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
5609
5610 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
5611
5612         * cif-code.def (OVERWRITABLE): Fix typo and move around.
5613         (TARGET_OPTIMIZATION_MISMATCH): Delete.
5614         (EH_PERSONALITY): Fix typo.
5615         (NON_CALL_EXCEPTIONS): Fix message.
5616         (OPTIMIZATION_MISMATCH): Adjust message.
5617         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
5618
5619 2011-07-19  Ian Lance Taylor  <iant@google.com>
5620
5621         * doc/install.texi (Configuration): Document
5622         --enable-build-poststage1-with-cxx.
5623
5624 2011-07-19  Robert Millan  <rmh@gnu.org>
5625
5626         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
5627         (GLIBC_DYNAMIC_LINKER): Remove.
5628
5629         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
5630         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5631         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5632         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
5633         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
5634         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
5635
5636         * config/mips/linux.h: Remove everything except for ...
5637         (GLIBC_DYNAMIC_LINKER): ... this macro.
5638
5639         * config/mips/linux64.h: Remove everything except for ...
5640         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5641         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5642         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
5643         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
5644         (GNU_USER_LINK_EMULATIONN32): New macros.
5645
5646         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
5647         Use the new headers.
5648
5649 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5650
5651         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
5652         Add offset_known_p and size_known_p fields.
5653         (MEM_OFFSET_KNOWN_P): Update accordingly.
5654         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
5655         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
5656         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
5657         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
5658         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
5659         (init_emit_regs): Likewise.
5660
5661 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5662
5663         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
5664         (MEM_OFFSET): Change from returning an rtx to returning a
5665         HOST_WIDE_INT.
5666         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
5667         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
5668         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5669         (clear_mem_offset): Declare.
5670         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
5671         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
5672         MEM_OFFSET to get a HOST_WIDE_INT offset.
5673         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
5674         (adjust_offset_for_component_ref): Take a bool "known_p"
5675         parameter and a HOST_WIDE_INT "offset" parameter.
5676         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
5677         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
5678         than an rtx.  Use clear_mem_offset to clear the offset.
5679         * cfgcleanup.c (merge_memattrs): Likewise.
5680         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
5681         * function.c (assign_parm_find_stack_rtl): Likewise.
5682         (assign_parm_setup_stack): Likewise.
5683         * print-rtl.c (print_rtx): Likewise.
5684         * reload.c (find_reloads_subreg_address): Likewise.
5685         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5686         * var-tracking.c (INT_MEM_OFFSET): Likewise.
5687         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
5688         (get_mem_align_offset): Likewise.
5689         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5690         (clear_mem_offset): New function.
5691         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
5692         offset rather than an rtx.  Assume both the expressio and offset
5693         are available.
5694         (r10k_needs_protection_p_1): Update accordingly, checking the
5695         expression and offset availability here instead.
5696
5697 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5698
5699         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
5700         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
5701         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
5702         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
5703         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5704         (clear_mem_size): Declare.
5705         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5706         (clear_mem_size): New function.
5707         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
5708         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
5709         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
5710         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
5711         to clear the size.
5712         (nonoverlapping_memrefs_p): Likewise.
5713         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
5714         (expand_builtin_init_trampoline): Likewise.
5715         * calls.c (compute_argument_addresses): Likewise.
5716         * cfgcleanup.c (merge_memattrs): Likewise.
5717         * dce.c (find_call_stack_args): Likewise.
5718         * dse.c (record_store, scan_insn): Likewise.
5719         * dwarf2out.c (dw_sra_loc_expr): Likewise.
5720         * expr.c (emit_block_move_hints): Likewise.
5721         * function.c (assign_parm_find_stack_rtl): Likewise.
5722         * print-rtl.c (print_rtx): Likewise.
5723         * reload.c (find_reloads_subreg_address): Likewise.
5724         * rtlanal.c (may_trap_p_1): Likewise.
5725         * var-tracking.c (track_expr_p): Likewise.
5726         * varasm.c (assemble_trampoline_template): Likewise.
5727         * config/arm/arm.c (arm_print_operand): Likewise.
5728         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
5729         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
5730         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
5731         (expand_constant_setmem_prologue): Likewise.
5732         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
5733         * config/rs6000/rs6000.c (expand_block_move): Likewise.
5734         (adjacent_mem_locations): Likewise.
5735         * config/s390/s390.c (s390_expand_setmem): Likewise.
5736         (s390_expand_insv): Likewise.
5737         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
5738         (*extendqi<mode>2_short_displ): Likewise.
5739         * config/sh/sh.c (expand_block_move): Likewise.
5740         * config/sh/sh.md (extv, extzv): Likewise.
5741
5742 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5743
5744         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
5745         (mem_attrs_htab_eq): ...here.
5746         (find_mem_attrs): Replace with...
5747         (set_mem_attrs): ...this function.  Take a mem_attrs structure
5748         rather than individual fields.
5749         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5750         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5751         (set_mem_size, change_address, adjust_address_1, offset_address)
5752         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5753         Update accordingly.
5754
5755 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5756
5757         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
5758         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
5759         Provide a dummy definition of MEM_ADDR_SPACE for generators.
5760         (target_rtl): Add x_mode_mem_attrs.
5761         (mode_mem_attrs): New macro.
5762         (get_mem_attrs): New function.
5763         * emit-rtl.c (get_mem_attrs): Rename to...
5764         (find_mem_attrs): ...this.
5765         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5766         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5767         (set_mem_size, change_address, adjust_address_1, offset_address)
5768         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5769         Update accordingly.
5770         (init_emit_regs): Initialize mode_mem_attrs.
5771
5772 2011-07-19  Richard Guenther  <rguenther@suse.de>
5773
5774         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
5775         TRUTH_*_EXPR handling.
5776         * tree-ssa-operands.c (get_expr_operands): Likewise.
5777         * tree-ssa-pre.c (fully_constant_expression): Likewise.
5778         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
5779         Likewise.
5780         (is_and_or_or): Likewise.
5781         (is_norm_cond_subset_of): Likewise.
5782
5783 2011-07-19  Richard Guenther  <rguenther@suse.de>
5784
5785         * tree.h (fold_build_pointer_plus_loc): New helper function.
5786         (fold_build_pointer_plus_hwi_loc): Likewise.
5787         (fold_build_pointer_plus): Define.
5788         (fold_build_pointer_plus_hwi): Likewise.
5789         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
5790         (fold_builtin_memory_op): Likewise.
5791         (fold_builtin_stpcpy): Likewise.
5792         (fold_builtin_memchr): Likewise.
5793         (fold_builtin_strstr): Likewise.
5794         (fold_builtin_strchr): Likewise.
5795         (fold_builtin_strrchr): Likewise.
5796         (fold_builtin_strpbrk): Likewise.
5797         (fold_builtin_strcat): Likewise.
5798         (expand_builtin_memory_chk): Likewise.
5799         (fold_builtin_memory_chk): Likewise.
5800         * c-typeck.c (build_unary_op): Likewise.
5801         * cgraphunit.c (thunk_adjust): Likewise.
5802         * fold-const.c (build_range_check): Likewise.
5803         (fold_binary_loc): Likewise.
5804         * omp-low.c (extract_omp_for_data): Likewise.
5805         (expand_omp_for_generic): Likewise.
5806         (expand_omp_for_static_nochunk): Likewise.
5807         (expand_omp_for_static_chunk): Likewise.
5808         * tree-affine.c (add_elt_to_tree): Likewise.
5809         * tree-data-ref.c (split_constant_offset_1): Likewise.
5810         * tree-loop-distribution.c (generate_memset_zero): Likewise.
5811         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
5812         * tree-predcom.c (ref_at_iteration): Likewise.
5813         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5814         (add_to_parts): Likewise.
5815         (create_mem_ref): Likewise.
5816         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5817         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
5818         (number_of_iterations_le): Likewise.
5819         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
5820         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5821         (vect_create_addr_base_for_vector_ref): Likewise.
5822         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
5823         (vect_create_cond_for_alias_checks): Likewise.
5824         * tree-vrp.c (extract_range_from_assert): Likewise.
5825         * config/alpha/alpha.c (alpha_va_start): Likewise.
5826         (alpha_gimplify_va_arg_1): Likewise.
5827         * config/i386/i386.c (ix86_va_start): Likewise.
5828         (ix86_gimplify_va_arg): Likewise.
5829         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5830         * config/mep/mep.c (mep_expand_va_start): Likewise.
5831         (mep_gimplify_va_arg_expr): Likewise.
5832         * config/mips/mips.c (mips_va_start): Likewise.
5833         (mips_gimplify_va_arg_expr): Likewise.
5834         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5835         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
5836         (rs6000_gimplify_va_arg): Likewise.
5837         * config/s390/s390.c (s390_va_start): Likewise.
5838         (s390_gimplify_va_arg): Likewise.
5839         * config/sh/sh.c (sh_va_start): Likewise.
5840         (sh_gimplify_va_arg_expr): Likewise.
5841         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
5842         * config/spu/spu.c (spu_va_start): Likewise.
5843         (spu_gimplify_va_arg_expr): Likewise.
5844         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5845         Likewise.
5846         (xstormy16_gimplify_va_arg_expr): Likewise.
5847         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
5848         (xtensa_gimplify_va_arg_expr): Likewise.
5849
5850 2011-07-19  Richard Guenther  <rguenther@suse.de>
5851
5852         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
5853         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
5854         handling.
5855
5856         PR middle-end/18908
5857         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
5858         result of BIT_*_EXPR to bitfield precision.
5859
5860 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
5861
5862         PR tree-optimization/49742
5863         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
5864         as a potential write.
5865
5866 2011-07-19  Richard Guenther  <rguenther@suse.de>
5867
5868         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
5869         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
5870         (forward_propagate_comparison): Simplify, remove obsolete code.
5871
5872 2011-07-19  Richard Guenther  <rguenther@suse.de>
5873
5874         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
5875         BIT_XOR_EXPR, same as the RTL expander does.
5876         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
5877         (verify_gimple_assign_unary): Likewise.
5878         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
5879         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
5880         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
5881
5882 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
5883
5884         PR tree-optimization/49768
5885         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
5886         if offset is smaller than bitoffset, but offset+size is bigger
5887         than bitoffset.
5888
5889 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
5890
5891         PR tree-optimization/49771
5892         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
5893         zero step, set segment length to the size of the data-ref's type.
5894
5895 2011-07-18  Martin Jambor  <mjambor@suse.cz>
5896
5897         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
5898         comments.
5899         (ipcp_values_pool): Declare.
5900         (ipcp_sources_pool): Likewise.
5901         (ipcp_lattice): Changed to forward declaration.
5902         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
5903         cannot_devirtualize.
5904         (ipa_node_params): New fields descriptors, lattices, known_vals,
5905         clone_for_all_contexts and node dead, removed fields params and
5906         count_scale.
5907         (ipa_set_param_count): Removed.
5908         (ipa_get_param_count): Made to work with descriptors vector.
5909         (ipa_get_param): Updated.
5910         (ipa_param_cannot_devirtualize_p): Removed.
5911         (ipa_param_types_vec_empty): Likewise.
5912         (ipa_set_param_used): New function.
5913         (ipa_get_param_used): Updated to use descriptors vector.
5914         (ipa_func_list): Removed.
5915         (ipa_init_func_list): Removed declaration.
5916         (ipa_push_func_to_list_1): Likewise.
5917         (ipa_pop_func_from_list): Likewise.
5918         (ipa_push_func_to_list): Removed.
5919         (ipa_lattice_from_jfunc): Remove declaration.
5920         (ipa_get_jf_pass_through_result): Declare.
5921         (ipa_get_jf_ancestor_result): Likewise.
5922         (ipa_value_from_jfunc): Likewise.
5923         (ipa_get_lattice): Update.
5924         (ipa_lat_is_single_const): New function.
5925         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
5926         (ipa_init_func_list): Likewise.
5927         (ipa_pop_func_from_list): Likewise.
5928         (ipa_get_param_decl_index): Fix coding style.
5929         (count_formal_params): Removed.
5930         (count_formal_params_1): Renamed to count_formal_params.
5931         (ipa_populate_param_decls): Update to use descriptors vector.
5932         (ipa_initialize_node_params): Likewise.
5933         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
5934         (ipa_analyze_params_uses): Likewise.
5935         (ipa_free_node_params_substructures): Likewise and free also lattices
5936         and known values.
5937         (duplicate_array): Removed.
5938         (ipa_edge_duplication_hook): Add the new edge to the list of edge
5939         clones.
5940         (ipa_node_duplication_hook): Update to use new lattices.
5941         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
5942         (ipa_free_all_structures_after_iinln): Likewise.
5943         (ipa_write_node_info): Update to use new lattices.
5944         (ipa_read_node_info): Likewise.
5945         (ipa_get_jf_pass_through_result): New function.
5946         (ipa_get_jf_ancestor_result): Likewise.
5947         (ipa_value_from_jfunc): Likewise.
5948         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
5949         * ipa-cp.c: Reimplemented.
5950         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
5951         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
5952         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
5953         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
5954         * doc/invoke.texi (devirt-type-list-size): Removed description.
5955         (ipa-cp-value-list-size): Added description.
5956
5957 2011-07-18  Richard Henderson  <rth@redhat.com>
5958
5959         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
5960         before calling create_basic_block.
5961
5962 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
5963
5964         PR middle-end/49675
5965         * tree.c (build_common_builtin_nodes): Register
5966         __builtin_return_address, __cyg_profile_func_enter
5967         and __cyg_profile_func_exit.
5968
5969 2011-07-18  Richard Henderson  <rth@redhat.com>
5970
5971         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
5972         (add_labels_and_missing_jumps): ... here.
5973         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
5974
5975 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
5976
5977         PR target/47744
5978         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5979         of DImode hard registers in PLUS address chains.
5980
5981 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5982
5983         PR bootstrap/49769
5984         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
5985         (alpha*-*-freebsd*): Likewise.
5986         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5987         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
5988         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
5989         crtprec80.o, crtfastmath.o to extra_parts for all targets.
5990         (ia64*-*-elf*): Remove extra_parts.
5991         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
5992         (sparc64-*-linux*): Likewise.
5993         (sparc64-*-freebsd*): Likewise.
5994
5995         Revert:
5996         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
5997         (ia64*-*-linux*): Likewise.
5998         (mips64*-*-linux*): Likewise.
5999         (mips*-*-linux*): Likewise.
6000
6001 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
6002
6003         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
6004
6005 2011-07-18  Richard Guenther  <rguenther@suse.de>
6006
6007         * gimplify.c (gimplify_expr): Use input_location, not saved_location
6008         when building new trees.
6009
6010 2011-07-18  Richard Guenther  <rguenther@suse.de>
6011
6012         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
6013         expansion result to bitfield precision if required.
6014
6015 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6016
6017         * config.gcc (i[3456x]86-*-netware*): Remove.
6018
6019         * gthr-nks.h: Remove.
6020         * configure.ac (enable_threads): Remove nks.
6021         * configure: Regenerate.
6022
6023         * config/i386/i386.c (ix86_encode_section_info): Remove netware
6024         reference.
6025         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
6026         <netware.h> reference.
6027
6028         * config/i386/netware-libgcc.c,
6029         gcc/config/i386/netware-libgcc.def,
6030         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
6031         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
6032         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
6033         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
6034
6035         * doc/extend.texi (Function Attributes,
6036         callee_pop_aggregate_return): Remove i?86-netware reference.
6037         * doc/install.texi (Configuration, --enable-threads): Remove nks.
6038
6039 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6040
6041         PR target/49746
6042         Revert:
6043         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6044
6045         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
6046         patterns.
6047
6048 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
6049
6050         PR middle-end/49732
6051         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
6052
6053 2011-07-16  Matthias Klose  <doko@ubuntu.com>
6054
6055         * doc/install.texi: Document --enable-static-libjava.
6056
6057 2011-07-15  Richard Henderson  <rth@redhat.com>
6058
6059         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6060         Replace all three arguments by returning a VEC of edges.
6061         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
6062         pointers and counts.
6063         (fix_edges_for_rarely_executed_code): Merge ...
6064         (rest_of_handle_partition_blocks): ... into...
6065         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
6066         any work was performed.
6067         (pass_partition_blocks): Clear todo_flags_finish.
6068
6069 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
6070             Jakub Jelinek  <jakub@redhat.com>
6071             Jonathan Wakely  <jwakely.gcc@gmail.com>
6072
6073         PR libstdc++/49745
6074         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
6075         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
6076
6077 2011-07-15  Jason Merrill  <jason@redhat.com>
6078
6079         PR testsuite/49741
6080         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
6081         rather than --tool_opts.
6082
6083 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
6084
6085         * doc/plugins.texi (Building GCC plugins): gengtype needs its
6086         corresponding gtype.state.
6087
6088 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6089
6090         PR target/49723
6091         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
6092
6093 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6094
6095         PR target/48220
6096         * doc/md.texi (Standard Names): Document window_save.
6097         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
6098         expand_debug_expr and expand_debug_source_expr.  If the target has
6099         a window_save instruction, adjust the ENTRY_VALUE_EXP.
6100         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
6101         SSA_NAME_VAR is a parameter.
6102         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
6103         * var-tracking.c (parm_reg_t): New type and associated vector type.
6104         (windowed_parm_regs): New variable.
6105         (adjust_insn): If the target has a window_save instruction and this
6106         is the instruction, make its effect on parameter registers explicit.
6107         (next_non_note_insn_var_location): New function.
6108         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
6109         (vt_add_function_parameter): If the target has a window_save insn,
6110         adjust the incoming RTL and record that in windowed_parm_regs.
6111         (vt_finalize): Free windowed_parm_regs.
6112
6113 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
6114
6115         * doc/invoke.texi (C6X Options): New section.
6116         * doc/md.texi (TI C6X family): New section.
6117         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
6118         tic6x-*-uclinux.
6119         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
6120         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
6121         Provide C6X definitions.
6122         * config/c6x/c6x.md: New file.
6123         * config/c6x/constraints.md: New file.
6124         * config/c6x/predicates.md: New file.
6125         * config/c6x/c6x-sched.md.in: New file.
6126         * config/c6x/c6x-sched.md: New file.
6127         * config/c6x/gensched.sh: New file.
6128         * config/c6x/c6x-mult.md.in: New file.
6129         * config/c6x/genmult.sh: New file.
6130         * config/c6x/c6x-mult.md: New file.
6131         * config/c6x/sync.md: New file.
6132         * config/c6x/c6x-protos.h: New file.
6133         * config/c6x/sfp-machine.h: New file.
6134         * config/c6x/c6x.c: New file.
6135         * config/c6x/c6x.h: New file.
6136         * config/c6x/crti.s: New file.
6137         * config/c6x/crtn.s: New file.
6138         * config/c6x/lib1funcs.asm: New file.
6139         * config/c6x/c6x-modes.def: New file.
6140         * config/c6x/genopt.sh: New file.
6141         * config/c6x/c6x.opt: New file.
6142         * config/c6x/c6x-tables.opt: New file.
6143         * config/c6x/c6x-opts.h: New file.
6144         * config/c6x/c6x-isas.def: New file.
6145         * config/c6x/elf.h: New file.
6146         * config/c6x/elf-common.h: New file.
6147         * config/c6x/uclinux-elf.h: New file.
6148         * config/c6x/t-c6x: New file.
6149         * config/c6x/t-c6x-elf: New file.
6150         * config/c6x/t-c6x-uclinux: New file.
6151         * config/c6x/t-c6x-softfp: New file.
6152         * config/c6x/gtd.c: New file.
6153         * config/c6x/gtf.c: New file.
6154         * config/c6x/ltd.c: New file.
6155         * config/c6x/ltf.c: New file.
6156         * config/c6x/ged.c: New file.
6157         * config/c6x/gef.c: New file.
6158         * config/c6x/led.c: New file.
6159         * config/c6x/lef.c: New file.
6160         * config/c6x/eqd.c: New file.
6161         * config/c6x/eqf.c: New file.
6162         * config/c6x/libgcc-c6xeabi.ver: New file.
6163
6164         Revert
6165         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6166         PR rtl-optimization/11320
6167         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
6168         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
6169         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
6170         current_sched_info->compute_jump_reg_dependencies. Record which
6171         registers are used and which registers are set by the jump.
6172         Clear deps->reg_conditional_sets after a barrier.
6173         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
6174         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
6175         (init_deps): Initialize reg_conditional_sets.
6176         (free_deps): Clear reg_conditional_sets.
6177         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
6178         Mark registers live on entry of the fallthrough block and conditionally
6179         set as set by the jump. Mark registers live on entry of non-fallthrough
6180         blocks as used by the jump.
6181         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
6182         Mark new parameters as unused.
6183
6184 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
6185
6186         PR tree-opt/49309
6187         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
6188         Use fold_build2_loc instead of build2.
6189         Use the correct type for the new tree.
6190
6191 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6192
6193         PR rtl-optimization/11320
6194         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
6195         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
6196
6197 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6198
6199         PR target/49487
6200         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
6201         of REG.
6202         (*rotw<mode>): Use const_int_operand for operand2.
6203         Use match_scatch for operand3.
6204         (*rotb<mode>): Ditto
6205         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
6206
6207 2011-07-14  Richard Guenther  <rguenther@suse.de>
6208
6209         PR tree-optimization/49651
6210         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6211         handle dereferences with subvariables.
6212
6213 2011-07-14  Richard Guenther  <rguenther@suse.de>
6214
6215         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
6216         (fold_stmt_1): Do it here directly on gimple and as a first thing.
6217
6218 2011-07-14  Richard Guenther  <rguenther@suse.de>
6219
6220         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
6221         not bool_var when folding bool_var != 1 or bool_var == 0.
6222
6223 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6224
6225         * haifa-sched.c (schedule_insns): Remove outdated comment.
6226         (schedule_block): When computing a known value for TODO_SPEC,
6227         just set it rather than using logical operations.
6228         (try_ready): Likewise.  Use a local variable rather than a
6229         pointer to TODO_SPEC.  Reorder an if statement to move the
6230         easy case to the then block.
6231         * sched-deps.c (dep_spec_p): New static function.
6232         (update_dep): Use it to decide whether to call
6233         change_spec_dep_to_hard.
6234         (get_back_and_forw_lists): Use it.
6235         (sd_resolve_dep): Likewise.
6236         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
6237         (haifa_note_mem_dep): Likewise.
6238         (check_dep): Likewise.
6239         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
6240         (sched_free_deps): Free in two passes.
6241
6242 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
6243
6244         PR middle-end/49736
6245         * expr.c (all_zeros_p): Undo bogus part of last change.
6246
6247 2011-07-14  Matthias Klose <doko@ubuntu.com>
6248
6249         * doc/extend.texi (optimize attribute): Fix typo.
6250
6251 2011-07-14  Richard Guenther  <rguenther@suse.de>
6252
6253         * gimplify.c (gimplify_expr): Only do required conversions.
6254
6255 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6256
6257         PR target/43746
6258         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
6259         i.e. use default_elf_select_section.
6260         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
6261         (READONLY_DATA_SECTION_ASM_OP): Remove.
6262         (TARGET_ASM_NAMED_SECTION): Move from here...
6263         * config/avr/avr.c: ...to here.
6264         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
6265         (avr_asm_named_section): Make static.
6266
6267 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6268
6269         PR bootstrap/49739
6270         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
6271         and crtfastmath.o for Linux/x86.
6272
6273 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6274
6275         * haifa-sched.c: Include "hashtab.h"
6276         (sched_no_dce): New global variable.
6277         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
6278         SHADOW_P): New macros.
6279         (last_clock_var, cycle_issued_insns): Move declarations.
6280         (must_backtrack): New static variable.
6281         (struct delay_pair): New structure.
6282         (delay_htab, delay_htab_i2): New static variables.
6283         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
6284         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
6285         functions.
6286         (dep_cost_1): If delay pairs exist, try to look up the insns and
6287         use the correct pair delay if we find them.
6288         (rank-for_schedule): Tweak priority for insns that must be scheduled
6289         soon to avoid backtracking.
6290         (queue_insn): Detect conditions which force backtracking.
6291         (ready_add): Likewise.
6292         (struct sched_block_state): Add member shadows_only_p.
6293         (struct haifa_save_data): New structure.
6294         (backtrack_queue): New static variable.
6295         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
6296         unschedule_insns_until, restore_last_backtrack_point,
6297         free_topmost_backtrack_point, free_backtrack_queue,
6298         estimate_insn_tick, estimate_shadow_tick): New functions.
6299         (prune_ready_list): New arg shadows_only_p.  All callers changed.
6300         If true, remove everything that isn't SHADOW_P.  Look up delay
6301         pairs and estimate ticks to avoid scheduling the first insn too early.
6302         (verify_shadows): New function.
6303         (schedule_block): Add machinery to enable backtracking.
6304         (sched_init): Take sched_no_dce into account when setting
6305         DF_LR_RUN_DCE.
6306         (free_delay_pairs): New function.
6307         (init_h_i_d): Initialize INSN_EXACT_TICK.
6308         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
6309         * sched-deps.c (sd_unresolve_dep): New function.
6310         * sched-int. (struct haifa_sched_info): New fields save_state
6311         and restore_state.
6312         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
6313         feeds_backtrack_insn and shadow_p.
6314         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
6315         (sched_no_dce): Declare variable.
6316         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
6317         sd_unresolve_dep): Declare functions.
6318         * modulo-sched.c (sms_sched_info): Clear the two new fields.
6319         * sched-rgn.c (rgn_const_sched_info): Likewise.
6320         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6321         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
6322         (ebb_sched_info): Add them for the two new fields.
6323         (add_deps_for_risky_insns): Call add_delay_dependencies.
6324
6325 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6326
6327         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
6328         Rename -mr11.
6329         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
6330         (rs6000_call_indirect_aix): Ditto.
6331         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
6332         (call_indirect_aix<ptrsize>_internal): Ditto.
6333         (call_indirect_aix<ptrsize>_nor11): Ditto.
6334         (call_indirect_aix<ptrsize>_internal2): Ditto.
6335         (call_value_indirect_aix<ptrsize>): Ditto.
6336         (call_value_indirect_aix<ptrsize>_internal): Ditto.
6337         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
6338         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
6339         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
6340
6341 2011-07-13  Jason Merrill  <jason@redhat.com>
6342
6343         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
6344
6345 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6346
6347         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
6348         * config/spu/spu.md ("clrsb<mode>2"): New expander.
6349
6350 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
6351
6352         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
6353         * configure: Regenerate.
6354
6355 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6356
6357         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
6358         (asm_file_start): Remove.
6359         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
6360         free_bb_for_insn around code that modifies insns before
6361         restarting df analysis.
6362
6363 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6364
6365         PR target/49541
6366         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
6367         (LINK_SPEC): ... here.
6368
6369 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6370
6371         * haifa-sched.c (struct sched_block_state): New.
6372         (schedule_block): Move some local variables into such a structure.
6373
6374 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6375
6376         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
6377         * config/i386/t-crtpc: Remove.
6378         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6379         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
6380         tmake_file.
6381         (x86_64-*-darwin*): Likewise.
6382         (i[34567]86-*-linux*): Likewise.
6383         (x86_64-*-linux*): Likewise.
6384
6385         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
6386         Handle -mpc32, -mpc64, -mpc80.
6387
6388 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6389
6390         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
6391         * config/alpha/t-crtfm: Remove.
6392         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
6393         * config/i386/t-crtfm: Remove.
6394         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
6395         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
6396         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
6397         * config/sparc/t-crtfm: Remove.
6398
6399         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
6400         (alpha*-*-freebsd*): Likewise.
6401         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
6402         (x86_64-*-darwin*): Likewise.
6403         (i[34567]86-*-linux*): Likewise.
6404         (x86_64-*-linux*): Likewise.
6405         (x86_64-*-mingw*): Likewise.
6406         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
6407         (ia64*-*-freebsd*): Likewise.
6408         (ia64*-*-linux*): Likewise.
6409         (mips64*-*-linux*): Likewise.
6410         (mips*-*-linux*): Likewise.
6411         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
6412         (sparc64-*-linux*): Likewise.
6413         (sparc64-*-freebsd*): Likewise.
6414
6415 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6416
6417         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
6418         * config/darwin-crt3.c: Move to ../libgcc/config.
6419         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6420         ($(T)crt3$(objext)): Remove.
6421         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
6422         ($(T)crt2$(objext)): Remove.
6423         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
6424         (powerpc64-*-darwin*): Likewise.
6425
6426 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6427
6428         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
6429
6430         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
6431         (addsi_1_zext): This.
6432
6433 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6434
6435         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
6436         * doc/tm.texi: Regenerate.
6437         * target.def (mergeable_rodata_prefix): New defhookpod.
6438         * varasm.c (mergeable_string_section, mergeable_constant_section):
6439         Use it. Allocate name with alloca.
6440
6441 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6442
6443         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
6444
6445 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6446
6447         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
6448         overlap check.
6449
6450 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6451
6452         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
6453         (count_type_elements): Delete.
6454         (complete_ctor_at_level_p): Declare.
6455         * expr.c (flexible_array_member_p): New function, split out from...
6456         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
6457         parameter with for_ctor_p.  When for_ctor_p is true, return the
6458         number of elements that should appear in the top-level constructor,
6459         otherwise return an estimate of the number of scalars.
6460         (categorize_ctor_elements): Replace p_must_clear with p_complete.
6461         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
6462         (complete_ctor_at_level_p): New function, borrowing union logic
6463         from old categorize_ctor_elements_1.
6464         (mostly_zeros_p): Return true if the constructor is not complete.
6465         (all_zeros_p): Update call to categorize_ctor_elements.
6466         * gimplify.c (gimplify_init_constructor): Update call to
6467         categorize_ctor_elements.  Don't call count_type_elements.
6468         Unconditionally prevent clearing for variable-sized types,
6469         otherwise rely on categorize_ctor_elements to detect
6470         incomplete initializers.
6471
6472 2011-07-13  Richard Guenther  <rguenther@suse.de>
6473
6474         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
6475         the final type is integral.
6476
6477 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6478
6479         * sched-int.h (struct _dep): Add member cost.
6480         (DEP_COST, UNKNOWN_DEP_COST): New macros.
6481         * sched-deps.c (init_dep_1): Initialize DEP_COST.
6482         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
6483         (sched_change_pattern): Reset it for dependent insns.
6484
6485 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6486
6487         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
6488         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
6489         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
6490         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
6491         (CRT0_S, MCRT0_S): Remove.
6492         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
6493         Remove.
6494         (s-crt0): Remove.
6495         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
6496
6497 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
6498
6499         * cse.c (insert_with_costs): Put semi-colon after empty loop body
6500         on the next line.
6501         * emit-rtl.c (push_to_sequence): Likewise.
6502         * haifa-sched.c (max_issue): Likewise.
6503         * matrix-reorg.c (add_allocation_site): Likewise.
6504         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
6505         * reload.c (alternative_allows_const_pool_ref): Likewise.
6506         * sched-rgn.c (rgn_add_block): Likewise.
6507         (rgn_fix_recovery_cfg): Likewise.
6508         * tree.c (attribute_list_contained): Likewise.
6509
6510 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
6511
6512         * config/i386/i386.c: Tidy processor feature bitmasks.
6513         (m_P4_NOCONA): New.
6514
6515 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
6516
6517         PR rtl-opt/49474
6518         * cprop.c (find_implicit_sets): Correct the condition.
6519
6520 2011-07-12  Richard Henderson  <rth@redhat.com>
6521
6522         PR target/49713
6523         * dwarf2out.h (dwarf_frame_regnum): Remove.
6524         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
6525         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
6526         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
6527         (execute_dwarf2_frame): Initialize them.
6528         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
6529         users of the macros with the variables.
6530         (expand_builtin_dwarf_sp_column): Revert last change.
6531         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
6532         result of DWARF_FRAME_REGNUM into a local variable.
6533
6534 2011-07-12  Richard Henderson  <rth@redhat.com>
6535
6536         PR target/49714
6537         * config/i386/i386.c (x86_output_mi_thunk): Use
6538         machopic_indirect_call_target instead of machopic_indirection_name
6539         directly.
6540
6541 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
6542             Eric Botcazou  <ebotcazou@adacore.com>
6543
6544         * prefix.h: Wrap up in extern "C" block.
6545
6546 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
6547
6548         AMD bdver2 Enablement
6549         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
6550         (case ${target}): Add bdver2.
6551         * config/i386/driver-i386.c (host_detect_local_cpu): Let
6552         -march=native recognize bdver2 processors.
6553         * config/i386/i386-c.c (ix86_target_macros_internal): Add
6554         bdver2 def_and_undef
6555         * config/i386/i386.c (struct processor_costs bdver2_cost): New
6556         bdver2 cost table.
6557         (m_BDVER2): New definition.
6558         (m_AMD_MULTIPLE): Includes m_BDVER2.
6559         (initial_ix86_tune_features): Add bdver2 tuning.
6560         (processor_target_table): Add bdver2 entry.
6561         (static const char *const cpu_names): Add bdver2 entry.
6562         (ix86_option_override_internal): Add bdver2 instruction sets.
6563         (ix86_issue_rate): Add bdver2.
6564         (ix86_adjust_cost): Add bdver2.
6565         (has_dispatch): Add bdver2.
6566         * config/i386/i386.h (TARGET_BDVER2): New definition.
6567         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
6568         (enum processor_type): Add PROCESSOR_BDVER2.
6569         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
6570         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
6571         description.
6572
6573 2011-07-12  Richard Henderson  <rth@redhat.com>
6574
6575         PR target/49714
6576         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
6577         destination address in memory on some paths.
6578
6579 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
6580
6581         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
6582         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
6583         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
6584         * function.c (locate_and_pad_parm): Take it into account.
6585         * target.def (function_arg_round_boundary): New hook.
6586         * targhooks.c (default_function_arg_round_boundary): New function.
6587         * targhooks.h (default_function_arg_round_boundary): Declare.
6588         * doc/tm.texi: Regenerate.
6589
6590 2011-07-12  Richard Guenther  <rguenther@suse.de>
6591
6592         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
6593         Do not perform no-op changes.
6594
6595 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
6596
6597         * config/arm/predicates.md (neon_struct_operand): Make a normal
6598         predicate.
6599         (neon_struct_or_register_operand): New predicate.
6600         * config/arm/neon.md (movmisalign<mode>): Replace predicates
6601         with neon_struct_or_register_operand.
6602         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
6603         neon_struct_operand instead of memory_operand.
6604
6605 2011-07-12  Martin Jambor  <mjambor@suse.cz>
6606
6607         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
6608         * cgraph.c (cgraph_get_node_or_alias): Removed.
6609         (change_decl_assembler_name): Changed all calls to
6610         cgraph_get_node_or_alias to a call to cgraph_get_node.
6611         (cgraph_make_decl_local): Likewise.
6612         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
6613         * varasm.c (default_binds_local_p_1): Likewise.
6614         (decl_binds_to_current_def_p): Likewise.
6615
6616 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
6617
6618         PR tree-optimization/49712
6619         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
6620
6621 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
6622
6623         * genautomata.c (add_arc): Return void.  All callers changed.
6624         (make_automaton): Remove dead code.
6625
6626 2011-07-11  Richard Henderson  <rth@redhat.com>
6627
6628         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
6629         (DW_FRAME_POINTER_REGNUM): New.
6630         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
6631         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
6632         (dwf_regno): New.
6633         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
6634         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
6635         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
6636         Use it.
6637         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
6638         * dwarf2out.h (dwarf_frame_regnum): New.
6639         (struct cfa_loc): Document the domain of the reg member.
6640
6641 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
6642
6643         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
6644         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
6645
6646 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
6647
6648         PR debug/49676
6649         * dwarf2out.c (int_shift_loc_descriptor): New function.
6650         (int_loc_descriptor): If shorter, emit i as
6651         (i >> shift), shift, DW_OP_shl for suitable shift value.
6652         Similarly, try to optimize large negative values using
6653         DW_OP_neg of a positive value if shorter.
6654         (size_of_int_shift_loc_descriptor): New function.
6655         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
6656         changes.
6657         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
6658         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
6659         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
6660         is shorter.
6661         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
6662         addend as added DW_OP_plus if it is shorter.
6663
6664 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6665
6666         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
6667         (DTORS_SECTION_ASM_OP): Define.
6668
6669 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6670
6671         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
6672         * config/t-dfprules: Move to ../libgcc/config.
6673         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6674         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6675         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
6676         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
6677         Likewise.
6678         (i[34567]86-*-cygwin*): Likewise.
6679         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
6680         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
6681         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
6682         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
6683         D64PBIT_FUNCS, D128PBIT_FUNCS.
6684
6685 2011-07-11  Richard Guenther  <rguenther@suse.de>
6686
6687         * tree-vrp.c (simplify_conversion_using_ranges): Manually
6688         translate the source value-range through the conversion chain.
6689
6690 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
6691
6692         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
6693
6694 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6695
6696         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
6697         a bi-arch compiler defaulting to 31-bit. In this case:
6698         (tmake_file): Add s390/t-linux64.
6699         * doc/install.texi: Add s390-linux to the list of targets supporting
6700         --enable-targets=all.
6701
6702 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6703             Matthias Klose <doko@debian.org>
6704
6705         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
6706         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
6707         (tm_file): Add mips/linux64.h.
6708         (tmake_file): Add mips/t-linux64.
6709         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6710         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
6711         instead of hardcoded mabi=n32.
6712         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6713         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6714         convention.
6715
6716 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6717
6718         * passes.c (init_optimization_passes): Add invariant motion pass
6719         after induction variable optimization.
6720
6721 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
6722
6723         PR target/39633
6724         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
6725         offsets 1..5 set cc0 in a usable way.
6726
6727 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
6728
6729         * tree.h (call_expr_arg): Remove.
6730         (call_expr_argp): Likewise.
6731
6732 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
6733
6734         * config/sparc/sparc.md (save_register_window_1): Rename to...
6735         (window_save): ...this.
6736         * config/sparc/sparc.c (emit_save_register_window): Rename to...
6737         (emit_window_save): ...this.
6738         (sparc_expand_prologue): Adjust to above renaming.
6739
6740 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6741
6742         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
6743         of movabs for x32.
6744
6745 2011-07-10  Richard Henderson  <rth@redhat.com>
6746
6747         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
6748         run final, instead of emitting text directly.
6749
6750 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6751
6752         * config/i386/i386.c (ix86_option_override_internal): Turn on
6753         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
6754         small PIC models for TARGET_X32.
6755
6756 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
6757
6758         PR target/49684
6759         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
6760         $(LIBGCC2_CFLAGS).
6761
6762         PR bootstrap/49680
6763         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
6764         stray notes and debug insns by using prev_nonnote_nondebug_insn
6765         instead of PREV_INSN.
6766
6767 2011-07-09  Richard Henderson  <rth@redhat.com>
6768
6769         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
6770         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
6771         * dwarf2out.c: ... here.
6772         (output_all_cfis): Remove.
6773         (dwarf2out_switch_text_section): Use output_cfis directly.
6774         (size_of_locs): Export.
6775         (output_loc_sequence, output_loc_sequence_raw): Export.
6776         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
6777         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
6778         output_cfa_loc_raw): Move to ...
6779         * dwarfcfi.c: ... here.
6780         * dwarf2out.h: Update decls.
6781
6782 2011-07-09  Richard Henderson  <rth@redhat.com>
6783
6784         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
6785         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
6786         * dwarf2cfi.c: ... here.
6787         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
6788         (DWARF_ROUND, DWARF_CIE_ID): Remove.
6789         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
6790         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
6791         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
6792
6793 2011-07-09  Richard Henderson  <rth@redhat.com>
6794
6795         * dwarf2cfi.c (cie_return_save): New.
6796         (queue_reg_save): Use compare_reg_or_pc.
6797         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
6798         (dwarf2out_frame_debug_expr): Likewise.
6799         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
6800         (initial_return_save): Likewise.
6801         (execute_dwarf2_frame): Save and restore initial return save from
6802         the cie to the fde.
6803         * config/mips/mips.c (mips_frame_set): Remove special case for
6804         DWARF_FRAME_RETURN_COLUMN.
6805
6806 2011-07-09  Richard Henderson  <rth@redhat.com>
6807
6808         * dwarf2cfi.c (lookup_cfa): Remove.
6809         (execute_dwarf2_frame): Assert queues are empty on entry.
6810         Setup initial cfa directly, not via lookup_cfa.
6811         Don't clear args_size state here.
6812
6813 2011-07-09  Richard Henderson  <rth@redhat.com>
6814
6815         * dwarf2cfi.c (add_cfi_vec): New.
6816         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
6817         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
6818         (execute_dwarf2_frame): Set add_cfi_vec.
6819
6820 2011-07-09  Richard Henderson  <rth@redhat.com>
6821
6822         * defaults.h (ASM_COMMENT_START): Move here...
6823         * dwarf2asm.c: ... from here.
6824         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
6825         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
6826         * varasm.c: Likewise.
6827
6828 2011-07-09  Richard Henderson  <rth@redhat.com>
6829
6830         PR debug/49686
6831         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
6832         (create_cfi_notes): ... do it here instead.
6833
6834 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
6835
6836         PR debug/49676
6837         * dwarf2out.c (size_of_int_loc_descriptor): New function.
6838         (address_of_int_loc_descriptor): Use it.
6839         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
6840
6841 2011-07-09  Richard Henderson  <rth@redhat.com>
6842
6843         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
6844         (prologue, epilogue): New.
6845         (return, *rts): New.
6846         (blockage, setd, seti): New.
6847         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
6848         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
6849         (pdp11_saved_regno): New.
6850         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
6851         generate rtl instead of text.
6852         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
6853         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
6854         * config/pdp11/pdp11-protos.h: Update.
6855
6856 2011-07-09  Richard Henderson  <rth@redhat.com>
6857
6858         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
6859         try to insert an rtl prologue here.
6860         (rs6000_output_function_epilogue): Similarly.
6861         * config/rs6000/rs6000.md (prologue): Emit a barrier to
6862         satisfy !TARGET_SCHED_PROLOG.
6863         (epilogue, sibcall_epilogue): Likewise.
6864
6865 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
6866
6867         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
6868         (FP_REG_P): Delete.
6869         (IN_OR_GLOBAL_P): Likewise.
6870
6871 2011-07-08  Jason Merrill  <jason@redhat.com>
6872
6873         PR c++/45437
6874         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
6875         compound assignment.
6876
6877         * cgraph.c (cgraph_add_to_same_comdat_group): New.
6878         * cgraph.h: Declare it.
6879         * ipa.c (function_and_variable_visibility): Make sure thunks
6880         have the right visibility.
6881
6882 2011-07-08  Richard Henderson  <rth@redhat.com>
6883
6884         PR bootstrap/49680
6885         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
6886         any tablejump vector.
6887
6888         PR bootstrap/49680
6889         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
6890         end of the prologue.
6891
6892 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
6893
6894         PR target/49621
6895         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
6896         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
6897         * config/rs6000/vector.md (vector_select_<mode>,
6898         vector_select_<mode>_uns): Change second operand of NE to
6899         CONST0_RTX (<MODE>mode) instead of const0_rtx.
6900         * config/rs6000/altivec.md (*altivec_vsel<mode>,
6901         *altivec_vsel<mode>_uns): Expect second operand of NE to be
6902         zero_constant of the corresponding vector mode.
6903         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
6904         Likewise.
6905
6906 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6907
6908         * graphite-dependences.c (build_alias_set_powerset): Remove
6909         continue from loop, add one more assert.
6910
6911 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6912
6913         PR target/46779
6914         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
6915         In particular, allow 8-bit values in r28 and r29.
6916         (avr_hard_regno_scratch_ok): Disallow any register that might be
6917         part of the frame pointer.
6918         (avr_hard_regno_rename_ok): Same.
6919         (avr_legitimate_address_p): Don't allow SUBREGs.
6920
6921 2011-07-08  Julian Brown  <julian@codesourcery.com>
6922
6923         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
6924         big-endian mode.
6925         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
6926         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
6927         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
6928         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
6929         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
6930         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
6931         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
6932         registers in big-endian mode.
6933
6934 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6935
6936         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
6937         in terms of another.
6938         (write_attr_value): Write a cast if necessary.
6939
6940         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
6941         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
6942         (REG_WORDS_BIG_ENDIAN): Document.
6943         * doc/tm.texi: Regenerate.
6944         * reload.c (operands_match_p): Take it into account.
6945         (reload_adjust_reg_for_mode): Likewise.
6946         * rtlanal.c (subreg_get_info): Likewise.
6947
6948 2011-07-08  Richard Guenther  <rguenther@suse.de>
6949
6950         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
6951         folding.
6952
6953 2011-07-08  Kai Tietz  <ktietz@redhat.com>
6954
6955         * fold-const.c (fold_truth_andor): Factored out truth_andor
6956         label from fold_binary as function.
6957         (fold_binary_loc): Replace truth_andor lable
6958         by function fold_truth_andor.
6959
6960 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
6961
6962         PR middle-end/49519
6963         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
6964         check if address is stored in register. If so - give up.
6965         (check_sibcall_argument_overlap_1): Do not perform check of
6966         overlapping when it is call to address.
6967
6968 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6969
6970         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
6971         of magic '31'.
6972
6973 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6974
6975         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
6976         GET_MODE_BITSIZE where appropriate.
6977         (widen_leading, expand_parity, expand_ctz, expand_ffs,
6978         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
6979         expand_float, expand_fix): Likewise.
6980         * expr.c (convert_move, convert_modes, expand_expr_real_2,
6981         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6982         * stor-layout.c (get_mode_bounds): Likewise.
6983         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
6984         Likewise.
6985         * convert.c (convert_to_integer): Likewise.
6986         * expmed.c (expand_shift_1): Likewise.
6987
6988         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
6989         a bitsize.
6990
6991         * optabs.c (expand_binop): Tighten conditions for doubleword
6992         expansions.
6993         (widen_bswap): Assert that mode bitsize and precision are the same.
6994         * stor-layout.c (get_best_mode): Skip modes that have lower
6995         precision than bitsize.
6996         * recog.c (simplify_while_replacing): Assert that bitsize and
6997         precision are the same.
6998
6999 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7000
7001         * Makefile.in (LIBGCOV): Remove.
7002         (libgcc.mvars): Remove LIBGCOV.
7003         * libgov.c: Move to ../libgcc.
7004
7005 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7006
7007         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
7008
7009 2011-07-08  Martin Jambor  <mjambor@suse.cz>
7010
7011         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
7012         is too big for total scalarization.
7013
7014 2011-07-07  Richard Henderson  <rth@redhat.com>
7015
7016         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
7017         (DBX_DEBUGGING_INFO): Undef.
7018
7019 2011-07-07  Richard Henderson  <rth@redhat.com>
7020
7021         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
7022         Handle some opcodes specially for debugging.
7023         * print-rtl.c: Include dwarf2out.h
7024         (print_rtx): Handle NOTE_INSN_CFI.
7025         * Makefile.in (print-rtl.o): Update.
7026
7027 2011-07-07  Richard Henderson  <rth@redhat.com>
7028
7029         * tree-pass.h (pass_dwarf2_frame): Declare.
7030         * passes.c (init_optimization_passes): Add it.
7031         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
7032         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
7033         make static, do not call add_cfis_to_fde.
7034         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
7035         dwarf2out_frame_init): Merge into...
7036         (execute_dwarf2_frame): ... here.  New function.
7037         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
7038         saved_do_cfi_asm to a tri-state variable.
7039         (gate_dwarf2_frame, pass_dwarf2_frame): New.
7040         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
7041         if it has yet to be done.  Don't call dwarf2cfi_function_init.
7042         * dwarf2out.h, debug.h: Update decls.
7043         * final.c (final_start_function): Don't call
7044         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
7045         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
7046         * toplev.c (lang_dependent_init): Likewise.
7047
7048 2011-07-07  Richard Henderson  <rth@redhat.com>
7049
7050         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
7051         FDE_TABLE_INCREMENT): Replace with...
7052         (fde_vec): ... this, a new vector.
7053         (current_fde): Remove.  Replace all users with cfun->fde.
7054         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
7055         (size_of_aranges, dwarf2out_finish): Likewise.
7056         (dwarf2out_alloc_current_fde): Break out from ...
7057         (dwarf2out_begin_prologue): ... here.
7058         (dwarf2out_frame_init): Remove.
7059         * dwarf2cfi.c: Update all users of current_fde.
7060         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
7061         * dwarf2out.h: Update decls.
7062         (dw_fde_node): Add fde_index member.
7063         * function.h (struct function): Add fde member.
7064
7065 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7066             Richard Henderson  <rth@redhat.com>
7067
7068         * dwarf2cfi.c (add_cfi): Remove.
7069         (dwarf2out_cfi_label): Remove force argument.  Only generate the
7070         label name.
7071         (add_fde_cfi): Simplify the different code paths.
7072         (add_cie_cfi): New.
7073         (old_cfa, old_cfa_remember): New.
7074         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
7075         (last_reg_save_label): Remove.
7076         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
7077         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7078         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7079         dwarf2out_frame_debug_cfa_expression,
7080         dwarf2out_frame_debug_cfa_restore,
7081         dwarf2out_frame_debug_cfa_window_save,
7082         dwarf2out_frame_debug_expr): Remove label parameter.
7083         (cfi_label_required_p, add_cfis_to_fde): New.
7084         (dwarf2out_frame_debug_after_prologue): New.
7085         (dwarf2cfi_frame_init): Initialize old_cfa.
7086         (dwarf2out_frame_debug_restore_state): Likewise.
7087         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
7088         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
7089         * final.c (final_start_function): Call
7090         dwarf2out_frame_debug_after_prologue.
7091
7092 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7093             Richard Henderson  <rth@redhat.com>
7094
7095         * dwarf2cfi.c (cfi_insn): New.
7096         (dwarf2out_cfi_label): Don't emit cfi label here.
7097         (add_fde_cfi): Create a NOTE_INSN_CFI.
7098         (dwarf2out_frame_debug): Setup cfi_insn.
7099         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
7100         (dwarf2out_cfi_begin_epilogue): Make static.
7101         (dwarf2out_frame_debug_restore_state): Make static.
7102         * dwarf2out.c (output_cfi_directive): Make static.
7103         (dwarf2out_emit_cfi): New.
7104         * dwarf2out.h: Update.
7105         * final.c (final): Remove CFI notes.
7106         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
7107         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
7108         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
7109         * insn-notes.def (NOTE_INSN_CFI): New.
7110         (NOTE_INSN_CFI_LABEL): New.
7111         * rtl.h (union rtunion_def): Add rt_cfi member.
7112         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
7113
7114 2011-07-07  Richard Henderson  <rth@redhat.com>
7115
7116         * dwarf2cfi.c: New file.
7117         * Makefile.in (OBJS): Add it.
7118         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
7119         * gengtype.c (open_base_files): Include dwarf2out.h.
7120         * coretypes.h (enum var_init_status): Move from ...
7121         * rtl.h: ... here.
7122         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
7123         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
7124         expand_builtin_dwarf_sp_column, init_return_column_size,
7125         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
7126         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
7127         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
7128         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
7129         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
7130         compute_barrier_args_size, dwarf2out_args_size,
7131         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
7132         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
7133         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
7134         queue_reg_save, dwarf2out_flush_queued_reg_saves,
7135         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
7136         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7137         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7138         dwarf2out_frame_debug_cfa_expression,
7139         dwarf2out_frame_debug_cfa_restore,
7140         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
7141         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
7142         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
7143         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
7144         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
7145         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
7146         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
7147         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
7148         dw_loc_descr_node): Move to dwarf2out.h.
7149         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
7150         mem_loc_descriptor): Export.
7151         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
7152         (dwarf2out_frame_init): Extract CIE generation code to
7153         dwarf2cfi_frame_init.
7154
7155 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7156
7157         PR target/49660
7158         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
7159         MASK_V8PLUS, remove commented out flag and reorder.
7160
7161 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7162
7163         PR c/49644
7164         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
7165         one non-complex and one complex argument, call c_save_expr on both
7166         operands.
7167
7168 2011-07-07  Martin Jambor  <mjambor@suse.cz>
7169
7170         PR middle-end/49495
7171         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
7172         (verify_cgraph_node): Some functinality moved to
7173         verify_edge_corresponds_to_fndecl, call it.
7174
7175 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7176
7177         * config.gcc (*local*): Remove.
7178         * doc/install-old.texi: Don't mention local configurations.
7179
7180 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7181
7182         PR debug/49522
7183         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
7184         referencing debug insns that have been reset.
7185         (dead_debug_insert_before): Don't assert reg is non-NULL,
7186         instead return immediately if it is NULL.
7187
7188 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7189
7190         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
7191
7192 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7193
7194         * hw-doloop.c: New file.
7195         * hw-doloop.h: New file.
7196         * Makefile.in (OBJS): Add hw-doloop.o.
7197         (hw-doloop.o): New rule.
7198         ($(obj_out_file)): Add hw-doloop.h dependency.
7199         * config/bfin/bfin.c: Include "hw-doloop.h".
7200         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
7201         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
7202         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
7203         type changed to hwloop_info.  Return bool, true if the loop was
7204         successfully optimized.  Remove code that was moved to
7205         hw-doloop.c, and adjust other parts.
7206         (hwloop_fail): New static function, containing parts that used
7207         to be in bfin_optimize_loop.
7208         (bfin_discover_loop, bfin_discover_loops, free_loops,
7209         bfin_reorder_loops): Remove.
7210         (hwloop_pattern_reg): New static function.
7211         (bfin_doloop_hooks): New variable.
7212         (bfin_reorg_loops): Remove most code, call reorg_loops.
7213         * config/bfin/bfin.md (doloop_end splitter): Also enable if
7214         loop counter is a memory_operand.
7215
7216 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7217
7218         * config.gcc: Support --with-multilib-list for x86 Linux targets.
7219
7220         * configure.ac: Mention x86-64 for --with-multilib-list.
7221         * configure: Regenerated.
7222
7223         * config/i386/gnu-user64.h (SPEC_64): Support x32.
7224         (SPEC_32): Likewise.
7225         (ASM_SPEC): Likewise.
7226         (LINK_SPEC): Likewise.
7227         (TARGET_THREAD_SSP_OFFSET): Likewise.
7228         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
7229         (SPEC_X32): New.
7230
7231         * config/i386/i386.h (TARGET_X32): New.
7232         (TARGET_LP64): New.
7233         (LONG_TYPE_SIZE): Likewise.
7234         (POINTER_SIZE): Likewise.
7235         (POINTERS_EXTEND_UNSIGNED): Likewise.
7236         (OPT_ARCH64): Support x32.
7237         (OPT_ARCH32): Likewise.
7238
7239         * config/i386/i386.opt (mx32): New.
7240
7241         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
7242         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7243         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
7244         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7245
7246         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
7247         (BIONIC_DYNAMIC_LINKERX32): Likewise.
7248         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
7249
7250         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
7251
7252         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
7253
7254         * doc/invoke.texi: Document -mx32.
7255
7256 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7257
7258         * doc/invoke.texi (mwords-little-endian): Deprecate.
7259         * config/arm/arm.opt (mwords-little-endian): Likewise.
7260         * config/arm/arm.c (arm_option_override): Warn about the deprecation
7261         of -mwords-little-endian.
7262
7263 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7264
7265         * reload1.c (choose_reload_regs): Use mode sizes to check whether
7266         an old reload register completely defines the required value.
7267
7268 2011-07-07  Richard Guenther  <rguenther@suse.de>
7269
7270         * fold-const.c (fold_unary_loc): Do not strip sign-changes
7271         for NEGATE_EXPR.
7272
7273 2011-07-07  Richard Guenther  <rguenther@suse.de>
7274
7275         * tree-vrp.c (simplify_conversion_using_ranges): New function.
7276         (simplify_stmt_using_ranges): Call it.
7277
7278 2011-07-07  Kai Tietz  <ktietz@redhat.com>
7279
7280         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
7281         (lookup_logical_inverted_value): Likewise.
7282         (simplify_bitwise_binary_1): Likewise.
7283         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
7284
7285 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7286
7287         * gcc.c (%[Spec]): Don't document.
7288         (struct spec_list): Update comment.
7289         (do_spec_1): Don't handle %[Spec].
7290         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
7291
7292 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7293
7294         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
7295         default based on TARGET_ASM_NAMED_SECTION.
7296         * common/common-target.def (have_named_sections): Default to true.
7297         * common/config/default-common.c: Don't include tm.h.
7298         * common/config/picochip/picochip-common.c
7299         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
7300         * common/config/m32c/m32c-common.c: Remove.
7301         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
7302         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7303         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7304         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7305         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7306         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7307         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7308
7309 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7310
7311         PR middle-end/49640
7312         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
7313         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
7314
7315 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7316
7317         PR libmudflap/49550
7318         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
7319
7320 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7321
7322         PR target/39150
7323         * configure.ac (gcc_cv_as_hidden): Also accept
7324         x86_64-*-solaris2.1[0-9]*.
7325         (gcc_cv_as_cfi_directive): Likewise.
7326         (gcc_cv_as_comdat_group_group): Likewise.
7327         (set_have_as_tls): Likewise.
7328         * configure: Regenerate.
7329         * config.gcc (i[34567]86-*-solaris2*): Also handle
7330         x86_64-*-solaris2.1[0-9]*.
7331         * config.host (i[34567]86-*-solaris2*): Likewise.
7332         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
7333         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
7334         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
7335         (TARGET_LD_EMULATION): Use it.
7336         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
7337         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
7338         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
7339         (ASM_CPU64_DEFAULT_SPEC): Define.
7340         (ASM_CPU_SPEC): Use %(asm_cpu_default).
7341         (ASM_SPEC): Redefine.
7342         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
7343         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
7344         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
7345         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
7346         configuration.
7347         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
7348
7349 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7350
7351         * config/sol2.h (ASM_SPEC): Split into ...
7352         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
7353         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
7354         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
7355         (ASM_SPEC): Use ASM_SPEC_BASE.
7356         * config/sparc/sol2.h (ASM_SPEC): Redefine.
7357
7358 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
7359
7360         * config/avr/avr.md (*reload_insi): Change predicate #1 to
7361         const_int_operand.  Ditto for peep2 producing this insn.
7362         Add argument to output_reload_insisf call.
7363         (*movsi,*movsf): Add argument to output_movsisf call.
7364         (*reload_insf): New insn and new peep2 to produce it.
7365         * config/avr/avr-protos.h (output_movsisf): Change prototype.
7366         (output_reload_insisf): Change prototype.
7367         * config/avr/avr.c (avr_asm_len): New function.
7368         (output_reload_insisf): Rewrite.
7369         (output_movsisf): Change prototype.  output_reload_insisf for
7370         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
7371         (adjust_insn_length): Add argument to output_movsisf and
7372         output_reload_insisf call.
7373
7374 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7375
7376         * emit-rtl.c (paradoxical_subreg_p): New function.
7377         * rtl.h (paradoxical_subreg_p): Declare.
7378         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
7379         apply_distributive_law, simplify_comparison, simplify_set): Use it.
7380         * cse.c (record_jump_cond, cse_insn): Likewise.
7381         * expr.c (force_operand): Likewise.
7382         * rtlanal.c (num_sign_bit_copies1): Likewise.
7383         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
7384         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
7385         (push_reload): Use precision to check for paradoxical subregs.
7386         * expmed.c (extract_bit_field_1): Likewise.
7387
7388         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
7389         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
7390         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
7391         simplify_set, simplify_logical, expand_compound_operation,
7392         make_extraction, force_to_mode, if_then_else_cond, extended_count,
7393         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
7394         record_value_for_reg): Likewise.
7395         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
7396         * simplify-rtx. c (simplify_unary_operation_1,
7397         simplify_binary_operation_1, simplify_const_relational_operation):
7398         Likewise.
7399
7400         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
7401         instead of GET_MODE_BITSIZE where appropriate.
7402         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
7403         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
7404         init_num_sign_bit_copies_in_rep): Likewise.
7405         * cse.c (fold_rtx, cse_insn): Likewise.
7406         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
7407         * simplify-rtx.c (simplify_unary_operation_1,
7408         simplify_const_unary_operation, simplify_binary_operation_1,
7409         simplify_const_binary_operation, simplify_ternary_operation,
7410         simplify_const_relational_operation, simplify_subreg): Likewise.
7411         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
7412         simplify_if_then_else, simplify_set, expand_compound_operation,
7413         expand_field_assignment, make_extraction, if_then_else_cond,
7414         make_compound_operation, force_to_mode, make_field_assignment,
7415         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
7416         extended_count, try_widen_shift_mode, simplify_shift_const_1,
7417         simplify_comparison, record_promoted_value, simplify_compare_const,
7418         record_dead_and_set_regs_1): Likewise.
7419
7420         Revert:
7421         * simplify-rtx.c (simplify_const_binary_operation): Use the
7422         shift_truncation_mask hook instead of performing modulo by width.
7423         Compare against mode precision, not bitsize.
7424         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7425         Use shift_truncation_mask instead of constructing the value manually.
7426
7427 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7428
7429         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
7430         declaration.
7431         (rs6000_save_toc_in_prologue_p): Ditto.
7432
7433         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
7434         up the static chain (r11) during indirect function calls.
7435         (-msave-toc-indirect): New undocumented debug switch.
7436
7437         * config/rs6000/rs6000.c (struct machine_function): Add
7438         save_toc_in_prologue field to note whether the prologue needs to
7439         save the TOC value in the reserved stack location.
7440         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
7441         to save the TOC in the prologue, do so.
7442         (rs6000_trampoline_init): Don't allow creating AIX style
7443         trampolines if -mno-r11 is in effect.
7444         (rs6000_call_indirect_aix): New function to create AIX style
7445         indirect calls, adding support for -mno-r11 to suppress loading
7446         the static chain, and saving the TOC in the prologue instead of
7447         the call body.
7448         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
7449         TOC in the prologue.
7450
7451         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
7452         register numbers.
7453         (TOC_REGNUM): Ditto.
7454         (STATIC_CHAIN_REGNUM): Ditto.
7455         (ARG_POINTER_REGNUM): Ditto.
7456         (SFP_REGNO): Delete, unused.
7457         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
7458         function descriptor offsets.
7459         (TOC_SAVE_OFFSET_64BIT): Ditto.
7460         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
7461         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
7462         (AIX_FUNC_DESC_SC_32BIT): Ditto.
7463         (AIX_FUNC_DESC_SC_64BIT): Ditto.
7464         (ptrload): New mode attribute for the appropriate load of a pointer.
7465         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
7466         (call_indirect_aix64): Ditto.
7467         (call_value_indirect_aix32): Ditto.
7468         (call_value_indirect_aix64): Ditto.
7469         (call_indirect_nonlocal_aix32_internal): Ditto.
7470         (call_indirect_nonlocal_aix32): Ditto.
7471         (call_indirect_nonlocal_aix64_internal): Ditto.
7472         (call_indirect_nonlocal_aix64): Ditto.
7473         (call): Rewrite AIX indirect function calls.  Add support for
7474         eliminating the static chain, and for moving the save of the TOC
7475         to the function prologue.
7476         (call_value): Ditto.
7477         (call_indirect_aix<ptrsize>): Ditto.
7478         (call_indirect_aix<ptrsize>_internal): Ditto.
7479         (call_indirect_aix<ptrsize>_internal2): Ditto.
7480         (call_indirect_aix<ptrsize>_nor11): Ditto.
7481         (call_value_indirect_aix<ptrsize>): Ditto.
7482         (call_value_indirect_aix<ptrsize>_internal): Ditto.
7483         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7484         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7485         (call_nonlocal_aix32): Relocate in the rs6000.md file.
7486         (call_nonlocal_aix64): Ditto.
7487
7488         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
7489         -mno-r11 documentation.
7490
7491 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7492
7493         PR other/49658
7494         * doc/extend.texi (Compound Literals): Fix typo.
7495
7496 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
7497
7498         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
7499
7500 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
7501
7502         * configure.ac (plugin-version.h): Generate
7503         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
7504         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
7505         macros.
7506
7507         * configure: Regenerate.
7508
7509         * doc/plugins.texi (Building GCC plugins): Mention
7510         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
7511
7512 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7513
7514         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
7515         * combine.c (make_extraction, gen_lowpart_or_truncate,
7516         apply_distributive_law, simplify_comparison,
7517         reg_truncated_to_mode, record_truncated_value): Use it.
7518         * cse.c (notreg_cost): Likewise.
7519         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
7520         * expr.c (convert_move, convert_modes): Likewise.
7521         * optabs.c (expand_binop, expand_unop): Likewise.
7522         * postreload.c (move2add_last_label): Likewise.
7523         * regmove.c (optimize_reg_copy_3): Likewise.
7524         * rtlhooks.c (gen_lowpart_general): Likewise.
7525         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7526
7527 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
7528
7529         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
7530
7531 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7532
7533         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
7534         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
7535         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
7536         (simplify_const_unary_operation, simplify_binary_operation_1,
7537         simplify_const_binary_operation, simplify_const_relational_operation):
7538         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
7539         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
7540         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
7541         simplify_shift_const_1, simplify_comparison): Likewise.
7542         * expr.c (convert_modes): Likewise.
7543         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
7544         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
7545         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
7546
7547         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
7548
7549 2011-07-06  Richard Guenther  <rguenther@suse.de>
7550
7551         PR tree-optimization/49645
7552         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
7553         register variables.
7554         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
7555         in type qualification here ...
7556         (copy_reference_ops_from_ref): ... not here.
7557         (vn_reference_lookup_3): ... or here.
7558         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
7559         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
7560
7561 2011-07-06  Ian Lance Taylor  <iant@google.com>
7562
7563         * doc/install.texi (Configuration): It's
7564         --enable-gnu-indirect-function, not --enable-indirect-function.
7565
7566 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7567
7568         * simplify-rtx.c (simplify_const_binary_operation): Use the
7569         shift_truncation_mask hook instead of performing modulo by width.
7570         Compare against mode precision, not bitsize.
7571         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7572         Use shift_truncation_mask instead of constructing the value manually.
7573
7574 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
7575
7576         PR middle-end/47383
7577         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
7578         address computation and convert to address_mode if needed.
7579
7580 2011-07-06  Richard Guenther  <rguenther@suse.de>
7581
7582         * tree.c (build_common_tree_nodes_2): Merge with
7583         build_common_tree_nodes.
7584         * tree.h (build_common_tree_nodes): Adjust prototype.
7585         (build_common_tree_nodes_2): Remove.
7586         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
7587         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
7588
7589 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
7590
7591         PR tree-optimization/49618
7592         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
7593         t recurse on the decl.
7594         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
7595         return true if expr isn't known to be defined in current
7596         TU or some other LTO partition.
7597
7598 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
7599
7600         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
7601         override CASE_VALUES_THRESHOLD.
7602
7603         * stmt.c (toplevel): Include params.h.
7604         (case_values_threshold): Use the --param case-values-threshold
7605         value if non-zero, otherwise use machine dependent value.
7606         (expand_case): Use case_values_threshold.
7607
7608         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
7609
7610         * doc/invoke.texi (--param case-values-threshold): Document.
7611
7612 2011-07-05  Richard Henderson  <rth@redhat.com>
7613
7614         * dwarf2out.c (dwarf2out_cfi_label): Make static.
7615         (dwarf2out_flush_queued_reg_saves): Make static.
7616         (dwarf2out_reg_save): Remove.
7617         (dwarf2out_return_save): Remove.
7618         (dwarf2out_return_reg): Remove.
7619         (dwarf2out_reg_save_reg): Remove.
7620         (dwarf2out_def_cfa): Merge into ...
7621         (dwarf2out_frame_init): ... here.
7622         * dwarf2out.h, tree.h: Remove declarations as necessary.
7623
7624 2011-07-05  Richard Henderson  <rth@redhat.com>
7625
7626         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
7627         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7628         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
7629         the alloc insn.
7630
7631         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
7632         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
7633         (process_epilogue): Don't call dwarf2out_def_cfa.
7634
7635         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
7636         indicate the return address save.
7637         (process_cfa_register): Likewise.
7638
7639         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
7640         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
7641
7642         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
7643         for ar.pfs save at alloc insn.
7644
7645 2011-07-05  Richard Henderson  <rth@redhat.com>
7646
7647         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
7648         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7649         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
7650         stack pointer save.
7651         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
7652         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
7653         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
7654         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
7655
7656 2011-07-05  Richard Henderson  <rth@redhat.com>
7657
7658         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
7659         VUNSPEC_* constants here instead of via define_constants.
7660         (VUNSPEC_PEM): New constant.
7661         (procedure_entry_mask): New insn.
7662         (prologue): New expander.
7663         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
7664         (vax_expand_prologue): Rename from vax_output_function_prologue;
7665         emit rtl instead of text.
7666         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7667         (print_operand): Add 'x' prefix.
7668
7669 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7670
7671         PR middle-end/47715
7672         * calls.c (precompute_register_parameters): Promote the function
7673         argument before checking non-legitimate constant.
7674
7675 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7676
7677         PR tree-optimization/47654
7678         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
7679         (lst_do_strip_mine_loop): Return an int.
7680         (lst_do_strip_mine): Same.
7681         (scop_do_strip_mine): Same.
7682         (scop_do_block): Loop blocking should strip-mine at least two loops.
7683         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
7684         (scop_do_interchange): Same.
7685         * graphite-poly.h (scop_do_interchange): Update declaration.
7686         (scop_do_strip_mine): Same.
7687
7688 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7689
7690         * graphite-clast-to-gimple.c (precision_for_value): Removed.
7691         (precision_for_interval): Removed.
7692         (gcc_type_for_interval): Use mpz_sizeinbase.
7693
7694 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7695
7696         * graphite-ppl.h (value_max): Correct computation of max.
7697
7698 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7699
7700         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
7701
7702 2011-07-05  Richard Guenther  <rguenther@suse.de>
7703
7704         * c-decl.c (c_init_decl_processing): Defer building common
7705         tree nodes to c_common_nodes_and_builtins.
7706
7707 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
7708
7709         PR tree-optimization/49580
7710         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
7711         the loop's number of iterations.
7712         * tree-parloops.c (transform_to_exit_first_loop): Add the
7713         handling of the loop's number of iterations before the call
7714         to gimple_duplicate_sese_tail.
7715         Insert the stmt caclculating the new rhs of the loop's
7716         condition stmt to the preheader instead of iters_bb.
7717
7718 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7719
7720         PR rtl-optimization/47449
7721         * fwprop.c (forward_propagate_subreg): Don't propagate hard
7722         register nor zero/sign extended hard register.
7723
7724 2011-07-05  Richard Guenther  <rguenther@suse.de>
7725
7726         PR tree-optimization/49518
7727         PR tree-optimization/49628
7728         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
7729         irrelevant and invariant data-references.
7730         (vect_analyze_data_ref_access): For invariant loads clear the
7731         group association.
7732
7733 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
7734
7735         PR rtl-optimization/49619
7736         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
7737         pass VOIDmode as op0_mode to recursive call, and return temp even
7738         when different from tor, just if it is not IOR of the original
7739         PLUS arguments.
7740
7741         PR rtl-optimization/49472
7742         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
7743         negating MULT, negate the second operand instead of first.
7744         (simplify_binary_operation_1) <case MULT>: If one operand is
7745         a NEG and the other is MULT, don't attempt to optimize by negation
7746         of the MULT operand if it only moves the NEG operation around.
7747
7748         PR debug/49602
7749         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
7750         get_current_def return value if it can't be trusted to be
7751         the current value of the variable in the current bb.
7752
7753 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
7754
7755         PR target/49600
7756         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
7757         general register to memory for !TARGET_INTER_UNIT_MOVES.
7758
7759 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7760
7761         PR target/44643
7762         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
7763         instead of TREE_READONLY.
7764
7765 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7766
7767         * doc/extend.texi (AVR Built-in Functions): Update documentation
7768         of __builtin_avr_fmul*.
7769         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
7770         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
7771         * config/avr/avr.md (fmul): Rename to fmul_insn.
7772         (fmuls): Rename to fmuls_insn.
7773         (fmulsu): Rename to fmulsu_insn.
7774         (fmul,fmuls,fmulsu): New expander.
7775         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
7776         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
7777         * config/avr/libgcc.S (__fmul): New function.
7778         (__fmuls): New function.
7779         (__fmulsu,__fmulsu_exit): New function.
7780
7781 2011-07-04  Richard Guenther  <rguenther@suse.de>
7782
7783         PR tree-optimization/49615
7784         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
7785         basic-block index check.
7786
7787 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7788
7789         * longlong.h (count_leading_zeros, count_trailing_zeros,
7790         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
7791         resp. 64.
7792
7793 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
7794
7795         PR tree-optimization/49610
7796         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
7797         a basic block.
7798
7799 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7800             Olivier Hainque  <hainque@adacore.com>
7801             Nicolas Setton  <setton@adacore.com>
7802
7803         * tree.h (TYPE_ARTIFICIAL): New flag.
7804         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
7805         the DIE of the type if it is artificial.
7806         (gen_array_type_die): Likewise.
7807         (gen_enumeration_type_die): Likewise.
7808         (gen_struct_or_union_type_die): Likewise.
7809         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
7810         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
7811
7812 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7813
7814         * tree-object-size.c (pass_through_call): Handle
7815         BUILT_IN_ASSUME_ALIGNED.
7816
7817 2011-07-01  Martin Jambor  <mjambor@suse.cz>
7818
7819         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
7820
7821 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
7822
7823         PR middle-end/48016
7824         * explow.c (update_nonlocal_goto_save_area): Use proper mode
7825         for stack save area.
7826         * function.c (expand_function_start): Likewise.
7827
7828 2011-07-01  Richard Guenther  <rguenther@suse.de>
7829
7830         PR middle-end/49596
7831         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
7832         may have unknown refs.
7833
7834 2011-07-01  Kai Tietz  <ktietz@redhat.com>
7835
7836         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
7837
7838 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7839
7840         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
7841         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
7842         (Specific, mips-sgi-irix6): Likewise.
7843
7844 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7845
7846         PR libmudflap/49549
7847         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
7848
7849 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7850
7851         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
7852         [idx]= and [idx1 ... idx2]= before initializers if needed for
7853         array initializers.
7854
7855 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
7856
7857         * config.gcc (score-*-elf): Remove score7.o.
7858         * config/score/t-score-elf: Likewise.
7859         * config/score/score.c: Merge score7 to score.c and
7860         remove forwarding functions.
7861         * config/score/score7.c: Deleted.
7862         * config/score/score7.h: Deleted.
7863
7864 2011-07-01  Richard Guenther  <rguenther@suse.de>
7865
7866         PR tree-optimization/49603
7867         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
7868
7869 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7870
7871         * tree-sra.c (struct access): Rename total_scalarization to
7872         grp_total_scalarization
7873         (completely_scalarize_var): New function.
7874         (sort_and_splice_var_accesses): Set total_scalarization in the
7875         representative access.
7876         (analyze_access_subtree): Propagate total scalarization accross the
7877         tree, no holes in totally scalarized trees, simplify coverage
7878         computation.
7879         (analyze_all_variable_accesses): Call completely_scalarize_var instead
7880         of completely_scalarize_record.
7881
7882 2011-06-30  Richard Henderson  <rth@redhat.com>
7883
7884         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
7885         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
7886         * config/i386/i386.c: Don't include dwarf2out.h.
7887         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
7888         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
7889         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
7890         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
7891         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
7892
7893 2011-06-30  Richard Henderson  <rth@redhat.com>
7894
7895         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
7896         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7897         * final.c (final_scan_insn): Look for it, and invoke
7898         dwarf2out_frame_debug before the insn if found.
7899
7900 2011-06-30  Richard Henderson  <rth@redhat.com>
7901
7902         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
7903         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
7904
7905 2011-06-30  Richard Henderson  <rth@redhat.com>
7906
7907         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
7908         Define a vector of this type.
7909         (regs_saved_in_regs): Use a VEC.
7910         (num_regs_saved_in_regs): Remove.
7911         (compare_reg_or_pc): New.
7912         (record_reg_saved_in_reg): Split out from...
7913         (dwarf2out_flush_queued_reg_saves): ... here.
7914         (clobbers_queued_reg_save): Update for VEC.
7915         (reg_saved_in): Likewise.
7916         (dwarf2out_frame_debug_init): Likewise.
7917         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
7918         (dwarf2out_frame_debug_cfa_register): Likewise.
7919
7920 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7921
7922         PR tree-optimization/49572
7923         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
7924         type of the RHS instead of that of the LHS for the expression type.
7925
7926 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7927
7928         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
7929         unconditionally.
7930
7931 2011-06-30  Richard Guenther  <rguenther@suse.de>
7932
7933         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
7934         * tree-ssa-structalias.c (create_variable_info_for): Do not
7935         add initial constraints for non-var-decls.  Properly handle
7936         globals in other ltrans partitions.
7937         (intra_create_variable_infos): Manually create constraints for
7938         the fake no-alias parameter.
7939         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
7940         and assert there are no clones.
7941
7942 2011-06-30  Richard Guenther  <rguenther@suse.de>
7943
7944         PR tree-optimization/46787
7945         * tree-data-ref.c (dr_address_invariant_p): Remove.
7946         (find_data_references_in_stmt): Invariant accesses are ok now.
7947         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
7948         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7949         invariant loads.
7950
7951 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7952
7953         PR tree-optimization/49094
7954         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
7955         (build_accesses_from_assign): Use it.
7956
7957 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7958
7959         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7960         handling of BUILT_IN_ASSUME_ALIGNED.
7961
7962         PR debug/49364
7963         * dwarf2out.c (output_abbrev_section): Don't return early
7964         if abbrev_die_table_in_use is 1.
7965         (dwarf2out_finish): Instead don't call output_abbrev_section
7966         nor emit abbrev_section_label in that case.
7967
7968 2011-06-30  Nick Clifton  <nickc@redhat.com>
7969
7970         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
7971         for the V850E.
7972
7973 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7974
7975         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7976         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
7977
7978 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
7979
7980         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
7981         both pattern and original statements if necessary.
7982         (vect_transform_loop): Likewise.
7983         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
7984         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
7985         Mark the pattern statement only if the original statement doesn't
7986         have its own uses.
7987         (process_use): Call vect_mark_relevant with additional parameter.
7988         (vect_mark_stmts_to_be_vectorized): Likewise.
7989         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
7990         (vect_analyze_stmt): Handle both pattern and original statements
7991         if necessary.
7992         (vect_transform_stmt): Don't store vectorized pattern statement
7993         in the original statement.
7994         (vect_is_simple_use_1): Use related pattern statement only if the
7995         original statement is irrelevant.
7996         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
7997
7998 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
7999
8000         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
8001         option.
8002         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
8003         entry.
8004         (TARGET_AVX128_OPTIMAL): New definition.
8005         * config/i386/i386.c (initial_ix86_tune_features): Initialize
8006         X86_TUNE_AVX128_OPTIMAL entry.
8007         (ix86_option_override_internal): Enable the generation
8008         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
8009         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
8010         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
8011
8012 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
8013
8014         PR tree-optimization/49539
8015         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
8016         names by means of stmt_references_abnormal_ssa_name.
8017         (associate_plusminus): Call can_propagate_from before propagating
8018         from definition statements.
8019         (ssa_forward_propagate_and_combine): Remove superfluous newline.
8020
8021 2011-06-29  Richard Guenther  <rguenther@suse.de>
8022
8023         * doc/invoke.texi: Document -scev dump modifier.
8024         * tree-pass.h (TDF_SCEV): New dump flag.
8025         * tree-dump.c (dump_option_value_in): Add scev.
8026         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
8027         * tree-scalar-evolution.c: Likewise.
8028
8029 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
8030
8031         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
8032         (cxa_type_match): Correct declaration.
8033         (__gnu_unwind_pr_common): Reconstruct additional indirection
8034         when __cxa_type_match returns succeeded_with_ptr_to_base.
8035
8036 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8037
8038         PR rtl-optimization/49114
8039         * reload.c (struct replacement): Remove SUBREG_LOC member.
8040         (push_reload): Do not set it.
8041         (push_replacement): Likewise.
8042         (subst_reload): Remove dead code.
8043         (copy_replacements): Remove assertion.
8044         (copy_replacements_1): Do not handle SUBREG_LOC.
8045         (move_replacements): Likewise.
8046         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
8047         Detect subregs via recursive descent instead of via SUBREG_LOC.
8048
8049 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8050
8051         * config/avr/avr.c (avr_encode_section_info): Dispatch to
8052         default_encode_section_info.
8053
8054 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
8055
8056         PR tree-optimization/49545
8057         * builtins.c (get_object_alignment_1): Update function comment.
8058         Do not use DECL_ALIGN for functions, but test
8059         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
8060         * fold-const.c (get_pointer_modulus_and_residue): Don't check
8061         for functions here.
8062         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
8063
8064 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
8065
8066         PR debug/49567
8067         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
8068         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
8069
8070 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8071
8072         PR target/34734
8073         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
8074         about uninitialized data attributed 'progmem' from here...
8075         (avr_encode_section_info): ...to this new function.
8076         (TARGET_ENCODE_SECTION_INFO): New define.
8077         (avr_section_type_flags): For data in ".progmem.data", remove
8078         section flag SECTION_WRITE.
8079
8080 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8081
8082         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
8083         _xmulhisi3_exit.
8084         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
8085         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
8086         (__umulhisi3): Ditto.
8087         * config/avr/avr.md (mulhisi3): New insn expender.
8088         (umulhisi3): New insn expender.
8089         (*mulhisi3_call): New insn.
8090         (*umulhisi3_call): New insn.
8091
8092 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8093
8094         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
8095
8096 2011-06-28  Richard Henderson  <rth@redhat.com>
8097
8098         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
8099         all code and arguments that handled pushes.  Update all callers.
8100
8101 2011-06-28  Richard Henderson  <rth@redhat.com>
8102
8103         * config/arm/arm.c (arm_output_function_prologue): Don't call
8104         thumb1_output_function_prologue.
8105         (arm_expand_prologue): Avoid dead store.
8106         (number_of_first_bit_set): Use ctz_hwi.
8107         (thumb1_emit_multi_reg_push): New.
8108         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
8109         to emit the entire prologue as rtl.
8110         (thumb1_output_interwork): Split out from
8111         thumb1_output_function_prologue.
8112         (thumb1_output_function_prologue): Remove.
8113         (arm_attr_length_push_multi): Handle thumb1.
8114         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
8115         (prologue_thumb1_interwork): New.
8116         (*push_multi): Allow thumb1; use push_mult_memory_operand.
8117         * config/arm/predicates.md (push_mult_memory_operand): New.
8118
8119 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8120
8121         * config/sparc/sync.md (*stbar): Delete.
8122         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
8123
8124 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8125
8126         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
8127
8128 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8129
8130         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
8131         (TARGET_64BIT_DEFAULT): Define.
8132         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
8133         of tm_file.
8134         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
8135
8136 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8137
8138         * common.opt (in_lto_p): New Variable entry.
8139         * flags.h (in_lto_p): Move to common.opt.
8140         * gcc.c: Include params.h.
8141         (set_option_handlers): Also use common_handle_option and
8142         target_handle_option.
8143         (main): Call global_init_params, finish_params and init_options_struct.
8144         * opts.c (debug_type_names): Move from toplev.c.
8145         (print_filtered_help): Access quiet_flag through opts pointer.
8146         (common_handle_option): Return early in the driver for some options.
8147         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
8148         opts pointer.
8149         * toplev.c (in_lto_p): Move to common.opt.
8150         (debug_type_names): Move to opts.c.
8151         * Makefile.in (OBJS): Remove opts.o.
8152         (OBJS-libcommon-target): Add opts.o.
8153         (gcc.o): Update dependencies.
8154
8155 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8156
8157         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
8158
8159 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8160
8161         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
8162         with '=' constraint modifier.
8163         (*divdf3_vfp): Likewise.
8164         ("*mulsf3_vfp"): Likewise.
8165         ("*muldf3_vfp"): Likewise.
8166         ("*mulsf3negsf_vfp"): Likewise.
8167         ("*muldf3negdf_vfp"): Likewise.
8168
8169 2011-06-28  Nick Clifton  <nickc@redhat.com>
8170
8171         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
8172         relaxation when performing an incremental link.
8173
8174 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8175
8176         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
8177         within BB from last to first.
8178
8179 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8180
8181         * genattr-common.c: New.  Based on genattr.c.
8182         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
8183         (MOSTLYCLEANFILES): Add insn-attr-common.h.
8184         (opts.o): Update dependencies.
8185         (.PRECIOUS): Add insn-attr-common.h.
8186         (simple_rtl_generated_h): Add insn-attr-common.h.
8187         (build/genattr-common.o): New.
8188         (genprogrtl): Add attr-common.
8189         * genattr.c (main): Include insn-attr-common.h.  Don't generate
8190         definitions of DELAY_SLOTS or INSN_SCHEDULING.
8191         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
8192
8193 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
8194
8195         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
8196         avr-*-* and avr-*-rtems* targets.
8197
8198         * config/avr/elf.h: New file.
8199         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
8200         (TARGET_ASM_SELECT_SECTION): Define.
8201         (INIT_SECTION_ASM_OP): Undefine.
8202         (FINI_SECTION_ASM_OP): Undefine.
8203         (READONLY_DATA_SECTION_ASM_OP): Undefine.
8204         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
8205         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
8206         * config/avr/avr.h:
8207         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
8208         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
8209         (MAX_OFILE_ALIGNMENT): Move to elf.h.
8210         (STRING_LIMIT): Move to elf.h.
8211         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
8212         (ASM_DECLARE_OBJECT_NAME): Remove.
8213         (ESCAPES): Remove.
8214         (ASM_OUTPUT_SKIP): Remove.
8215         (DWARF2_DEBUGGING_INFO): Remove.
8216         (OBJECT_FORMAT_ELF): Remove.
8217         (USER_LABEL_PREFIX): Remove.
8218         (ASM_OUTPUT_EXTERNAL): Remove.
8219         (ASM_OUTPUT_ASCII): Remove.
8220         (TYPE_ASM_OP): Remove.
8221         (SIZE_ASM_OP): Remove.
8222         (WEAK_ASM_OP): Remove.
8223         (STRING_ASM_OP): Remove.
8224         (SET_ASM_OP): Remove.
8225         (ASM_WEAKEN_LABEL): Remove.
8226         (TYPE_OPERAND_FMT): Remove.
8227         (ASM_DECLARE_FUNCTION_SIZE): Remove.
8228         (ASM_FINISH_DECLARE_OBJECT): Remove.
8229         (NO_DOLLAR_IN_LABEL): Remove.
8230         (ASM_GENERATE_INTERNAL_LABEL): Remove.
8231         (ASM_OUTPUT_CASE_LABEL): Remove.
8232         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
8233         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
8234         (gas_output_ascii): Remove.
8235         (gas_output_limited_string): Remove.
8236         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8237         * config/avr/avr-protos.h
8238         (gas_output_ascii): Remove prototye.
8239         (gas_output_limited_string): Remove prototype.
8240
8241 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
8242
8243         PR target/48637
8244         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
8245         asm operands.
8246
8247 2011-06-27  Jan Hubicka  <jh@suse.cz>
8248
8249         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
8250         node instead of references in node.
8251
8252 2011-06-27  Richard Henderson  <rth@redhat.com>
8253
8254         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
8255         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
8256         inside ifdef.
8257
8258 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
8259
8260         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
8261
8262         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
8263         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
8264         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
8265         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
8266         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
8267         (evaluate_stmt, execute_fold_all_builtins): Handle
8268         BUILT_IN_ASSUME_ALIGNED.
8269         * tree-ssa-dce.c (propagate_necessity): Likewise.
8270         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8271         call_may_clobber_ref_p_1): Likewise.
8272         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
8273         (expand_builtin_assume_aligned): New function.
8274         * doc/extend.texi (__builtin_assume_aligned): Document.
8275
8276         PR debug/49544
8277         * cselib.c (promote_debug_loc): If cselib_preserve_constants
8278         and l has two DEBUG_INSN owned locs instead of just one, adjust
8279         the second location's setting_insn too.
8280
8281 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8282
8283         PR libmudflap/38738
8284         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
8285
8286 2011-06-27  Nick Clifton  <nickc@redhat.com>
8287
8288         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
8289         bit position of highest bit set into a count of the high zero bits.
8290
8291 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8292
8293         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
8294
8295 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8296
8297         PR lto/48492
8298         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
8299         to a NULL parent.
8300
8301 2011-06-27  Richard Guenther  <rguenther@suse.de>
8302
8303         PR tree-optimization/49394
8304         * passes.c (execute_one_pass): Restore current_pass after
8305         applying IPA transforms.
8306
8307 2011-06-27  Kai Tietz  <ktietz@redhat.com>
8308
8309         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
8310         out of type precision after operation.
8311         (find_bswap): Take for limit value the integer auto-promotion
8312         into account.
8313
8314 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8315
8316         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
8317         forward scan as well.
8318
8319 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8320
8321         PR target/44241
8322         * config/vms/vms-protos.h: New file.
8323         * config/vms/vms-crtlmap.map: New file.
8324         * config/vms/vms.c: New file.
8325         * config/vms/make-crtlmap.awk: New file.
8326         * config/vms/vms-crtl.h: File removed.
8327         * config/vms/vms-crtl-64.h: File removed.
8328         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
8329         * config/alpha/vms64.h: Do not include vms-crtl-64.h
8330         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
8331         clear some builtins on VMS.  Calls vms_patch_builtins.
8332         (avms_asm_output_external): Remove.
8333         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
8334         (struct crtl_name_spec): Remove
8335         (DO_CTRL_NAMES): Remove.
8336         * config/ia64/vms.h (struct crtl_name_spec): Remove
8337         (DO_CTRL_NAMES): Remove.
8338         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
8339         clear some builtins on VMS.  Calls vms_patch_builtins.
8340         (ia64_asm_output_external): Remove DO_CRTL_NAME.
8341         * config/ia64/vms64.h: Do not include vms-crtl-64.h
8342         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
8343
8344 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8345
8346         * config/alpha/alpha.c (alpha_end_function): Always generate .end
8347         directive on VMS.
8348
8349 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8350
8351         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
8352         the function receives nonlocal gotos.
8353
8354 2011-06-27  Richard Guenther  <rguenther@suse.de>
8355
8356         PR tree-optimization/49536
8357         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
8358         For non-scalar inner types use a scalar type according to
8359         the scalar inner mode.
8360
8361 2011-06-27  Richard Guenther  <rguenther@suse.de>
8362
8363         PR tree-optimization/49365
8364         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
8365
8366 2011-06-27  Richard Guenther  <rguenther@suse.de>
8367
8368         PR tree-optimization/49169
8369         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
8370         the alignment of function decls.
8371
8372 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
8373
8374         PR target/47997
8375         * config/darwin.c (darwin_mergeable_string_section): Place string
8376         constants in '.cstring' rather than '.const' when CF/NSStrings are
8377         active.
8378
8379 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
8380
8381         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
8382         (emit_save_register_window): Likewise.
8383         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
8384         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
8385         Swap back %o7/%i7 in register naming.
8386
8387 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
8388
8389         PR driver/49371
8390         * config/darwin.c (darwin_override_options): Improve warning when
8391         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
8392         is given with fpie/fPIE.
8393         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
8394         * config/darwin9.h (PIE_SPEC): New.
8395
8396 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
8397
8398         * timevar.c (timevar_print): Increase width for display of timevar
8399         name.
8400
8401 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
8402
8403         PR c++/46400
8404         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
8405         instead of TYPE_CHAIN for chain_next for types.
8406
8407 2011-06-24  Richard Henderson  <rth@redhat.com>
8408
8409         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
8410         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
8411         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
8412         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
8413         (sparc_flat_expand_prologue): Emit individual instructions
8414         instead of one of the above.
8415
8416 2011-06-24  Easwaran Raman  <eraman@google.com>
8417
8418         PR rtl-optimization/49429
8419         PR target/49454
8420         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
8421         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
8422         used to copy y into x.
8423         * calls.c (initialize_argument_information): Mark
8424         an argument addressable if it is passed by invisible reference.
8425         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
8426         if it is passed by reference.
8427
8428 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8429
8430         PR rtl-optimization/49504
8431         * rtlanal.c (nonzero_bits1): Properly handle addition or
8432         subtraction of a pointer in Pmode if pointers extend unsigned.
8433         (num_sign_bit_copies1): Likewise.
8434
8435 2011-06-24  Martin Jambor  <mjambor@suse.cz>
8436
8437         PR tree-optimizations/49516
8438         * tree-sra.c (sra_modify_assign): Choose the safe path for
8439         aggregate copies if we also did scalar replacements.
8440
8441 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8442
8443         PR target/49335
8444         * config/arm/predicates.md (add_operator): New.
8445         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
8446
8447 2011-06-24  Andi Kleen  <ak@linux.intel.com>
8448
8449         * tree-sra.c (type_internals_preclude_sra_p): Add msg
8450         parameter. Split up ifs and report reason in *msg.
8451         (reject): Add.
8452         (find_var_candiate): Add msg variable.
8453         Split up ifs and report reason to reject.
8454         (find_param_candidates): Add msg variable.
8455         Pass msg to type_internals_preclude_sra_p.
8456
8457 2011-06-23  Jeff Law  <law@redhat.com>
8458
8459         PR middle-end/48770
8460         * reload.h (reload): Change to return a bool.
8461         * ira.c (ira): If requested by reload, run a fast DCE pass after
8462         reload has completed.  Fix comment typo.
8463         * reload1.c (need_dce): New file scoped static.
8464         (reload): Set reload_completed here.  Return whether or not a DCE
8465         pass after reload is needed.
8466         (delete_dead_insn): Set need_dce as needed.
8467
8468         PR middle-end/49465
8469         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
8470         to detect threading through joiner block.  If there was already
8471         an edge to the new target, then do not change the PHI nodes.
8472
8473 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
8474
8475         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8476         get_pointer_alignment to see if base isn't sufficiently aligned.
8477
8478 2011-06-23  Jan Hubicka  <jh@suse.cz>
8479
8480         PR tree-optimize/49373
8481         * tree-pass.h (all_late_ipa_passes): Declare.
8482         * cgraphunit.c (init_lowered_empty_function): Fix properties.
8483         (cgraph_optimize): Execute late passes; remove unreachable funcions
8484         after materialization.
8485         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
8486         LTOing.
8487         * passes.c (all_late_ipa_passes): Declare.
8488         (dump_passes, register_pass): Handle late ipa passes.
8489         (init_optimization_passes): Move ipa_pta to late passes; schedule
8490         fixup_cfg at beggining of all_passes.
8491         (apply_ipa_transforms): New function.
8492         (execute_one_pass): When doing simple ipa pass, apply all transforms.
8493
8494 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
8495
8496         * params.c: Include common/common-target.h.  Don't include tm.h.
8497         (lang_independent_params): Move from toplev.c.
8498         (global_init_params): New.
8499         * params.h (global_init_params): Declare.
8500         * target.def (default_params): Move to common-target.def.
8501         * toplev.c (lang_independent_options): Remove.
8502         (lang_independent_params): Move to params.c.
8503         (general_init): Use global_init_params.
8504         * common/common-target.def (option_default_params): Move from
8505         target.def.
8506         * common/config/ia64/ia64-common.c: Include params.h.
8507         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8508         from ia64.c.
8509         * common/config/rs6000/rs6000-common.c: Include params.h.
8510         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8511         from rs6000.c.
8512         * common/config/sh/sh-common.c: Include params.h.
8513         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8514         from sh.c.
8515         * common/config/spu/spu-common.c: Include params.h.
8516         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8517         from spu.c.
8518         * config/ia64/ia64.c (ia64_option_default_params,
8519         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
8520         * config/rs6000/rs6000.c (rs6000_option_default_params,
8521         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
8522         * config/sh/sh.c (sh_option_default_params,
8523         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
8524         * config/spu/spu.c (spu_option_default_params,
8525         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
8526         * Makefile.in (OBJS): Remove params.o.
8527         (OBJS-libcommon-target): Add params.o.
8528         (params.o, $(common_out_object_file)): Update dependencies.
8529         * doc/tm.texi: Regenerate.
8530
8531 2011-06-23  Alan Modra  <amodra@gmail.com>
8532
8533         PR bootstrap/49383
8534         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
8535         invocation for 2011-06-09 changes.
8536
8537 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8538
8539         PR libgomp/49490
8540         * omp-low.c (expand_omp_for_static_nochunk): Only
8541         use n ceil/ nthreads size for the first n % nthreads threads in the
8542         team instead of all threads except for the last few ones which
8543         get less work or none at all.
8544
8545         PR debug/49496
8546         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
8547         uses.
8548
8549 2011-06-22  Richard Guenther  <rguenther@suse.de>
8550
8551         PR tree-optimization/49493
8552         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
8553         Refer to the alias target of variables.
8554         (associate_varinfo_to_alias_1): Remove.
8555         (ipa_pta_execute): Do not associate aliases with anything.
8556         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
8557         (cgraph_function_node): Likewise.
8558         (cgraph_function_or_thunk_node): Likewise.
8559         (varpool_variable_node): Likewise.
8560
8561 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8562
8563         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
8564         * config.gcc (arm*-*-linux*): Default to gnu tls.
8565         (arm*-*-*): Add --with-tls option.
8566         (all_defaults): Add 'tls'.
8567
8568 2011-06-22  Richard Henderson  <rth@redhat.com>
8569
8570         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
8571         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8572         (dwarf2out_frame_debug_cfa_window_save): Rename from
8573         dwarf2out_window_save; make static.
8574         * tree.h (dwarf2out_window_save): Don't declare.
8575
8576         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
8577         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8578         (emit_save_register_window): Rename from gen_save_register_window;
8579         emit the insn and add REG_CFA_* notes.
8580         (sparc_expand_prologue): Update to match.
8581         * config/sparc/sparc.md (save_register_window_1): Simplify from
8582         save_register_window<P:mode>.
8583
8584 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
8585
8586         PR target/49497
8587         * config/i386/i386.md (*lea_general_2): Always allow SImode.
8588         (*lea_general_2_zext): Likewise.
8589         (imul to lea peepholes): Use const359_operand and check
8590         TARGET_PARTIAL_REG_STALL.
8591
8592         * config/i386/predicates.md (const359_operand): New.
8593
8594 2011-06-22  Michael Matz  <matz@suse.de>
8595
8596         * cgraphunit.c (assemble_thunk): Use correct return type.
8597
8598 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
8599             Dmitry Melnik  <dm@ispras.ru>
8600
8601         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
8602         (neon_output_shift_immediate): Ditto.
8603         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
8604         prototype.
8605         (neon_output_shift_immediate): Ditto.
8606         * config/arm/neon.md (vashl<mode>3): Modified constraint.
8607         (vashr<mode>3_imm): New insn pattern.
8608         (vlshr<mode>3_imm): Ditto.
8609         (vashr<mode>3): Modified constraint.
8610         (vlshr<mode>3): Ditto.
8611         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
8612         predicate.
8613         (imm_for_neon_rshift_operand): Ditto.
8614         (imm_lshift_or_reg_neon): Ditto.
8615         (imm_rshift_or_reg_neon): Ditto.
8616
8617         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
8618
8619 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8620
8621         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
8622         builtin calls even if likelyvalue is not CONSTANT.
8623         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
8624         Return get_value_for_expr of first operand
8625         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
8626         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8627         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
8628         their non-checking counterparts.
8629         (call_may_clobber_ref_p_1): Likewise.
8630         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
8631         like their non-checking counterparts.
8632         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8633         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
8634         like their non-checking counterparts.
8635         (find_func_clobbers): Likewise.
8636         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
8637         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
8638
8639         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
8640         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
8641         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
8642         of base type reference as argument.
8643         (resolve_addr_in_expr): Likewise.  Fix keep computation.
8644         (convert_descriptor_to_signed): Renamed to...
8645         (convert_descriptor_to_mode): ... this.  For wider types convert to
8646         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
8647         (typed_binop): New function.
8648         (scompare_loc_descriptor, ucompare_loc_descriptor,
8649         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
8650         default to unsigned type instead of signed.
8651
8652         PR debug/47858
8653         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
8654         (gimple_build_debug_source_bind_stat): New prototype.
8655         (gimple_build_debug_source_bind): Define.
8656         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
8657         gimple_debug_source_bind_get_value,
8658         gimple_debug_source_bind_get_value_ptr,
8659         gimple_debug_source_bind_set_var,
8660         gimple_debug_source_bind_set_value): New inlines.
8661         * gimple.c (gimple_build_debug_source_bind_stat): New function.
8662         * gimple-pretty-print.c (dump_gimple_debug): Handle
8663         GIMPLE_DEBUG_SOURCE_BIND.
8664         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
8665         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8666         * tree-parloops.c (eliminate_local_variables,
8667         separate_decls_in_region): Likewise.
8668         (separate_decls_in_region_debug): Renamed from
8669         separate_decls_in_region_debug_bind.  Handle
8670         gimple_debug_source_bind_p.
8671         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
8672         prototypes.
8673         (DECL_HAS_DEBUG_ARGS_P): Define.
8674         (struct tree_function_decl): Add has_debug_args_flag field.
8675         * tree.c (debug_args_for_decl): New variable.
8676         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
8677         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
8678         (rewrite_debug_stmt_uses): New function.
8679         (rewrite_stmt): Use it to rewrite debug stmt uses.
8680         * rtl.def (DEBUG_PARAMETER_REF): New.
8681         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
8682         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
8683         DEBUG_PARAMETER_REF.
8684         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
8685         * print-rtl.c (print_rtx): Likewise.
8686         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
8687         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
8688         debug stmts in the first bb.
8689         * tree-inline.c (remap_ssa_name): If remapping default def
8690         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
8691         a source bind debug stmt.
8692         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
8693         (maybe_move_debug_stmts_to_successors): Likewise.
8694         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
8695         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
8696         debug args vector from old_decl to new_decl.
8697         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
8698         or modified parameters, add debug bind stmts before call
8699         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
8700         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
8701         on DECL_DEBUG_EXPRs from debug args vector.
8702         (expand_debug_source_expr): New function.
8703         (expand_debug_locations): Use it for source bind insns.
8704         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
8705         * var-tracking.c (prepare_call_arguments): Add debug args
8706         to call_arguments if any.
8707         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
8708         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
8709         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
8710         (get_ref_die_offset, parameter_ref_descriptor): New functions.
8711         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
8712         (gen_subprogram_die): Handle parameters identified by
8713         DEBUG_PARAMETER_REF.
8714
8715 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8716
8717         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
8718         * doc/install.texi (Configuration): Document --with-tls.
8719         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
8720         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
8721         (arm_tls_descseq_addr): New.
8722         (legitimize_tls_address): Add tlsdesc support.
8723         (arm_cannot_copy_insn_p): Check for tlscall.
8724         (arm_emit_tls_decoration): Likewise.
8725         * config/arm/arm.h (TARGET_GNU2_TLS): New.
8726         (OPTION_DEFAULT_SPECS): Add with-tls support.
8727         * config/arm/arm.md (R1_REGNUM): Define.
8728         (tlscall): New.
8729         * config/arm/arm.opt (tls_type): New enumeration type and values.
8730         (mtls-dialect): New switch.
8731         * config/arm/arm-opts.h (enum tls_type): New.
8732
8733 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8734
8735         * attribs.c (register_attribute): Added assert to check that all
8736         attribute specs are registered with a name that is not empty and
8737         does not start with '_'.
8738         (decl_attributes): Avoid the lookup of the "naked" attribute spec
8739         if the function has no attributes.
8740         * tree.c (is_attribute_with_length_p): Removed.
8741         (is_attribute_p): Removed.
8742         (private_is_attribute_p): New.
8743         (private_lookup_attribute): New.
8744         (lookup_attribute): Removed.
8745         (lookup_ident_attribute): New.
8746         (remove_attribute): Require the first argument to be in the form
8747         'text', not '__text__'.  Updated asserts.
8748         (merge_attributes): Use lookup_ident_attributes instead of
8749         lookup_attribute.
8750         (merge_dllimport_decl_attributes): Use remove_attribute.
8751         (attribute_list_contained): Likewise.
8752         (attribute_list_equal): Immediately return 1 if the arguments are
8753         identical pointers.
8754         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
8755         'int'.  Require the first argument to be in the form 'text', not
8756         '__text__'.  Require the second argument to be an identifier.
8757         (lookup_attribute): Made inline.  Require the first argument to be
8758         in the form 'text', not '__text__'.
8759         (private_is_attribute_p, private_lookup_attribute): New.
8760         Updated comments.
8761
8762 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
8763
8764         * builtins.c: Add sync_ or SYNC__ to builtin names.
8765         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
8766         * omp-low.c: Add sync_ or SYNC__ to builtin names.
8767
8768 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8769
8770         PR target/33049
8771         * config/avr/avr.md (extzv): New expander.
8772         (*extzv): New insn.
8773         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
8774         * config/avr/constraints.md (C04): New constraint.
8775         * doc/md.texi (Machine Constraints): Document it.
8776
8777 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8778
8779         PR middle-end/49489
8780         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
8781         unsignedp argument instead of 1 for clrsb_optab.
8782         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
8783         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
8784         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
8785         * optabs.c (widen_leading): Call widen_operand and expand_unop
8786         with 0 as unsignedp argument instead of 1 for clrsb_optab.
8787         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
8788
8789 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8790
8791         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
8792
8793 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
8794
8795         * gensupport.c (add_define_attr): New static function.
8796         (is_predicable): Allow multi-alternative lists for the "predicable"
8797         attribute.
8798         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
8799         (process_one_cond_exec): Call alter_attrs_for_insn.
8800         * doc/md.texi (Defining Attributes): Mention some standard names.
8801         (Conditional Execution): Update documentation for "predicable".
8802
8803         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
8804         __builtin_clrsbll): Document.
8805         * doc/rtl.texi (clrsb): New entry.
8806         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
8807         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
8808         (expand_unop): Handle clrsb_optab.
8809         (init_optabs): Initialize it.
8810         * optabs.h (enum optab_index): New entry OTI_clrsb.
8811         (clrsb_optab): Define.
8812         * genopinit.c (optabs): Add an entry for it.
8813         * builtins.c (expand_builtin): Handle clrsb builtin functions.
8814         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
8815         BUILT_IN_CLRSBLL): New.
8816         * rtl.def (CLRSB): New code.
8817         * dwarf2out.c (mem_loc_descriptor): Handle it.
8818         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8819         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
8820         and popcount.
8821         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
8822         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
8823         (__ctzDI2): Move declaration.
8824         * config/bfin/bfin.md (clrsbsi2): New expander.
8825         (signbitssi2): Use the CLRSB rtx.
8826         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
8827         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
8828
8829 2011-06-21  Richard Guenther  <rguenther@suse.de>
8830
8831         * ipa-inline-transform.c (inline_transform): Fix previous change.
8832
8833 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
8834
8835         PR tree-optimization/49478
8836         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
8837         with constant operand.
8838
8839 2011-06-21  Richard Guenther  <rguenther@suse.de>
8840
8841         * ipa-inline-transform.c (inline_transform): Fix typo.
8842
8843 2011-06-21  Richard Guenther  <rguenther@suse.de>
8844
8845         PR tree-optimization/49483
8846         * tree-vect-stmts.c (vectorizable_assignment): Also handle
8847         VIEW_CONVERT_EXPR conversions.
8848
8849 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
8850
8851         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
8852         * config/avr/avr-tables.opt: New file (generated).
8853         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
8854         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
8855         avr-mcus.def.
8856         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
8857         (avr_option_override): Don't process -mmcu= argument here.  Set
8858         avr_current_device using avr_mcu_index.
8859         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
8860         * config/avr/avr.opt (mmcu=): Use Enum.
8861         * config/avr/t-avr (avr-devices.o): Update dependencies.
8862         ($(srcdir)/config/avr/avr-tables.opt): New.
8863         * target.def (help): Remove.
8864         * doc/tm.texi.in (TARGET_HELP): Remove.
8865         * doc/tm.texi: Regenerate.
8866         * opts.c: Don't include target.h.
8867         (common_handle_option): Don't call targetm.help.
8868         * system.h (TARGET_HELP): Poison.
8869         * Makefile.in (opts.o): Update dependencies.
8870
8871 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8872
8873         * config/usegld.h: New file.
8874         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
8875         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
8876         (LIB_SPEC): Likewise.  Search /lib.
8877         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
8878         (RDYNAMIC_SPEC): Handle GNU ld.
8879         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
8880         Define.
8881         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
8882         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
8883         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
8884         (STACK_CHECK_STATIC_BUILTIN): Define.
8885         * config/sol2.opt (compat-bsd): Remove.
8886         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
8887         * config/sol2-bi.h: New file.
8888         * config/sol2-gld.h: Remove.
8889         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
8890         (NO_DBX_BNSYM_ENSYM): Remove.
8891         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8892         (STACK_CHECK_STATIC_BUILTIN): Remove.
8893         Test USE_GLD instead of TARGET_GNU_LD.
8894         * config/i386/sol2-10.h: Rename to ...
8895         * config/i386/sol2-bi.h .. this.
8896         (SUBTARGET_EXTRA_SPECS): Redefine.
8897         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
8898         (MULTILIB_DEFAULTS): Remove.
8899         (DEFAULT_ARCH32_P): Define.
8900         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
8901         (ARCH64_SUBDIR): Define.
8902         Test USE_GLD instead of TARGET_GNU_LD.
8903         (I386_EMULATION): Rename to ...
8904         (ARCH32_EMULATION): ... this.
8905         (X86_64_EMULATION): Rename to ...
8906         (ARCH64_EMULATION): ... this.
8907         (TARGET_LD_EMULATION): Remove.
8908         (LINK_ARCH_SPEC): Remove.
8909         * config/i386/sol2-gas.h: Remove.
8910         * config/i386/t-sol2-10: Rename to ...
8911         * config/i386/t-sol2-64: ... this.
8912         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
8913         (AS_SPARC64_FLAG): Define.
8914         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
8915         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
8916         depending on TARGET_CPU_DEFAULT.
8917         (CPP_CPU_SPEC): Redefine.
8918         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
8919         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
8920         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
8921         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
8922         ASM_ARCH_DEFAULT_SPEC): Redefine.
8923         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8924         LINK_ARCH_DEFAULT_SPEC.
8925         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
8926         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
8927         (ARCH64_SUBDIR): Define.
8928         (LINK_ARCH64_SPEC): Redefine.
8929         (CC1_SPEC): Redefine.
8930         (OPTION_DEFAULT_SPECS): Redefine.
8931         (MULTILIB_DEFAULTS): Define.
8932         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
8933         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
8934         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
8935         (NO_DBX_BNSYM_ENSYM): Remove.
8936         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8937         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
8938         (TARGET_ASM_NAMED_SECTION): Likewise.
8939         (STACK_CHECK_STATIC_BUILTIN): Remove.
8940         * config/sparc/sol2-bi.h: Remove.
8941         * config/sparc/sol2-gas-bi.h: Remove.
8942         * config/sparc/sol2-gas.h: Remove.
8943         * config/sparc/sol2-gld-bi.h: Remove.
8944         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
8945         common parts ...
8946         (*-*-solaris2*): ... here.
8947
8948 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8949
8950         PR other/43564
8951         * ipa-inline.c (can_inline_edge_p): Check
8952         !DECL_DISREGARD_INLINE_LIMITS.
8953
8954 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8955
8956         PR middle-end/49139
8957         * cgraphunit.c (process_function_and_variable_attributes): warn when
8958         always_inline functions that are not inline.
8959         * ipa-inline-transform.c (inline_transform): Always call
8960         optimize_inline.
8961         * tree-inline.c (tree_inlinable_function_p): Use error instead
8962         of sorry.
8963         (expand_call_inline): Likewise.
8964
8965 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8966
8967         * Makefile.in (dg_target_exps): Set.
8968         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
8969         instead of 7, try to divide it more evenly.
8970
8971 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
8972
8973         PR target/49089
8974         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
8975         (avx256_split_unaligned_store): New definition.
8976         (ix86_option_override_internal): Enable avx256 unaligned load/store
8977         splitting only when avx256_split_unaligned_load/store is set.
8978
8979 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
8980
8981         * regrename.c (scan_rtx_reg): Handle the case where we write to an
8982         open chain in a smaller mode without failing the entire block.
8983
8984 2011-06-21  Alan Modra  <amodra@gmail.com>
8985
8986         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
8987         CONST high part large-toc address.
8988         (rs6000_tls_referenced_p): Make static.
8989         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
8990
8991 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8992
8993         PR target/49385
8994         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
8995         one of the operands is a register.
8996
8997 2011-06-20  Kai Tietz  <ktietz@redhat.com>
8998
8999         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
9000         operations in combination with binary and.
9001
9002 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
9003
9004         * regrename.c (do_replace): Don't update notes.
9005
9006 2011-06-20  Alan Modra  <amodra@gmail.com>
9007
9008         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
9009         of toc-relative address in CONST.
9010         (rs6000_delegitimize_address): Recognize changed address.
9011         (rs6000_legitimize_reload_address): Likewise.
9012         (rs6000_emit_move): Don't force these constants to memory.
9013         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
9014         toc-relative address in CONST.
9015         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
9016         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
9017
9018 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9019
9020         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
9021         (count_trailing_zeros): Likewise.
9022
9023 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9024
9025         PR other/49325
9026         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
9027         .init_array can be used with .ctors on targets.
9028         * configure: Regenerated.
9029
9030 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
9031
9032         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
9033         if the element type is volatile.
9034
9035 2011-06-18  Jan Hubicka  <jh@suse.cz>
9036
9037         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
9038         extra name aliases.
9039         (lto_symtab_resolve_can_prevail_p): Likewise.
9040         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
9041         * cgraphbuild.c (record_reference): Remove extra body alias code.
9042         (mark_load): Likewise.
9043         (mark_store): Likewise.
9044         * cgraph.h (varpool_node): Remove extra_name filed;
9045         add alias_of and extraname_alias.
9046         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
9047         (varpool_alias_aliased_node): New inline function.
9048         (varpool_variable_node): New function.
9049         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
9050         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
9051         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
9052         (input_varpool_node): Likewise.
9053         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
9054         (varpool_externally_visible_p): Remove extra body alias code.
9055         (function_and_variable_visibility): Likewise.
9056         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
9057         (ipa_pta_execute): Use it.
9058         * varpool.c (varpool_remove_node): Remove extra name alias code.
9059         (varpool_mark_needed_node): Likewise.
9060         (varpool_analyze_pending_decls): Analyze aliases.
9061         (assemble_aliases): New functoin.
9062         (varpool_assemble_decl): Use it.
9063         (varpool_create_variable_alias): New function.
9064         (varpool_extra_name_alias): Rewrite.
9065         (varpool_for_node_and_aliases): New function.
9066
9067 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
9068
9069         PR target/49411
9070         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
9071         last_arg_constant and last argument doesn't match its predicate,
9072         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
9073         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
9074         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
9075         spelling of error message.
9076         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
9077         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
9078         const_0_to_255_operand instead of const_int_operand.
9079
9080         Revert:
9081         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9082
9083         * config/i386/sse.md (blendbits): Remove mode attribute.
9084         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9085         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9086         Check integer value of operand 3 in insn constraint.
9087
9088 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
9089
9090         PR rtl-optimization/48542
9091         * reload.c (find_equiv_reg): Stop looking when finding a
9092         setjmp-type call.
9093         * reload1.c (reload_as_needed): Invalidate all reload
9094         registers when crossing a setjmp-type call.
9095
9096 2011-06-16  Jeff Law  <law@redhat.com>
9097
9098         * tree-ssa-threadupdate.c (struct redirection_data): New field
9099         intermediate_edge.
9100         (THREAD_TARGET2): Define.
9101         (redirection_data_eq): Also check that the intermediate edge is equal.
9102         (lookup_redirection_data): Drop useless argument.  Extract the
9103         outgoing_edge and intermediate edge from E.  Callers updated.
9104         (copy_phi_args, update_destination_phis): New functions.
9105         (fix_duplicate_block_edges): Likewise.
9106         (create_edge_and_update_destination_phis): Duplicate all the edges
9107         hung off e->aux.  Use copy_phi_args.
9108         (create_duplicates): Use fix_duplicate_block_edges.
9109         (fixup_template_block): Likewise.
9110         (redirect_edges): If necessary, redirect the joiner block's incoming
9111         edge to the duplicate of the joiner block.
9112         (thread_block): Don't muck up loops when threading through a joiner
9113         block.
9114         (thread_through_loop_header): Handle threading through a joiner block.
9115         (mark_threaded_blocks, register_jump_thread): Likewise.
9116         * tree-flow.h (register_jump_thread): Add new argument.  Callers
9117         updated.
9118         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
9119         (thread_across_edge): Handle threading through a joiner block.
9120
9121 2011-06-16  Martin Jambor  <mjambor@suse.cz>
9122
9123         PR tree-optimization/49343
9124         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
9125         calculate offset, provide 2nd operand for the new COMPONENT_REF.
9126
9127 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
9128
9129         * config/darwin-protos.h (machopic_select_rtx_section): Move to
9130         inside RTX_CODE ifdef.
9131
9132 2011-06-16  Tom de Vries  <tom@codesourcery.com>
9133
9134         PR target/45098
9135         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
9136         Disallow NULL pointer for pointer arithmetic.
9137
9138 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9139
9140         PR target/49398
9141         Revert.
9142         2011-06-10  Wei Guozhi  <carrot@google.com>
9143
9144         PR target/45335
9145         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9146         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9147         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9148         related peephole2.
9149         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9150         related peephole2.
9151         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9152         (arm_legitimate_ldrd_p): New prototype.
9153         (arm_output_ldrd): New prototype.
9154         * config/arm/arm.c (arm_check_ldrd_operands): New function.
9155         (arm_legitimate_ldrd_p): New function.
9156         (arm_output_ldrd): New function.
9157
9158 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9159
9160         PR middle-end/46500
9161         * doc/tm.texi.in: Update Copyright date.
9162         * doc/tm.texi: Regenerate.
9163         * targhooks.c (default_setup_incoming_varargs): Replace
9164         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9165         (default_pretend_outgoing_varargs_named): Likewise.
9166         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9167         (hook_callee_copies_named): Likewise.
9168         (default_function_arg_advance): Likewise.
9169         (default_function_arg): Likewise.
9170         (default_function_incoming_arg): Likewise.
9171         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9172         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9173         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9174         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9175         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9176         * targhooks.h (default_setup_incoming_varargs): Likewise.
9177         (default_pretend_outgoing_varargs_named): Likewise.
9178         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9179         (hook_callee_copies_named): Likewise.
9180         (default_function_arg_advance): Likewise.
9181         (default_function_arg): Likewise.
9182         (default_function_incoming_arg): Likewise.
9183         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9184         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9185         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9186         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9187         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9188         * target.def (pass_by_reference): Likewise.
9189         (setup_incoming_varargs, strict_argument_naming): Likewise.
9190         (pretend_outgoing_varargs_named, callee_copies): Likewise.
9191         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
9192         (function_incoming_arg): Likewise.
9193         * target.h: Don't include "tm.h" .
9194         (cumulative_args_t): New typedef.
9195         [GCC_TM_H] (get_cumulative_args): New static inline function.
9196         [GCC_TM_H] (pack_cumulative_args): Likewise.
9197         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
9198         argument type with cumulative_args_t.
9199         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
9200         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
9201         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
9202         (frv_arg_partial_bytes, frv_function_arg): Likewise.
9203         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
9204         (frv_function_arg_1): Likewise.
9205         * config/s390/s390.c (s390_pass_by_reference): Likewise.
9206         (s390_function_arg_advance, s390_function_arg): Likewise.
9207         * config/m32c/m32c.c (m32c_function_arg): Likewise.
9208         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
9209         (m32c_strict_argument_naming): Likewise.
9210         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
9211         (spu_function_arg_advance): Likewise.
9212         (spu_setup_incoming_varargs): Likewise.  Make static.
9213         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
9214         Remove prototype.
9215         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
9216         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9217         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
9218         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
9219         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
9220         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
9221         (mep_pass_by_reference, mep_function_arg): Likewise.
9222         (mep_function_arg_advance): Likewise.
9223         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
9224         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
9225         (m32r_function_arg, m32r_function_arg_advance): Likewise.
9226         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
9227         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
9228         (ix86_function_arg, ix86_pass_by_reference): Likewise.
9229         (ix86_setup_incoming_varargs): Likewise.
9230         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
9231         (sh_strict_argument_naming): Likewise.
9232         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
9233         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
9234         (sh_function_arg_advance, sh_function_arg): Likewise.
9235         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
9236         (pdp11_function_arg_advance): Likewise.
9237         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9238         Likewise.
9239         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
9240         * config/avr/avr.c (avr_function_arg): Likewise.
9241         (avr_function_arg_advance): Likewise.
9242         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
9243         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
9244         (xtensa_function_arg_1): Likewise.
9245         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
9246         Likewise.
9247         (xstormy16_function_arg): Likewise.
9248         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
9249         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
9250         (fr30_function_arg_advance): Likewise.
9251         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9252         (lm32_function_arg, lm32_function_arg_advance): Likewise.
9253         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
9254         (moxie_function_arg, moxie_function_arg_advance): Likewise.
9255         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
9256         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
9257         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
9258         (cris_function_arg, cris_function_incoming_arg): Likewise.
9259         (cris_function_arg_advance, cris_function_arg_1): Likewise.
9260         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
9261         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
9262         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
9263         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
9264         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
9265         (mn10300_arg_partial_bytes): Likewise.
9266         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
9267         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
9268         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
9269         (ia64_function_arg_1): Likewise.
9270         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
9271         (m68k_function_arg): Likewise.
9272         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
9273         (rs6000_function_arg, setup_incoming_varargs): Likewise.
9274         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
9275         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
9276         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
9277         (picochip_arg_advance): Likewise.
9278         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
9279         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
9280         (mcore_function_arg_advance): Likewise.
9281         * config/score/score.c (score_pass_by_reference): Likewise.
9282         (score_function_arg_advance): Likewise.
9283         (score_arg_partial_bytes): Likewise.  Make static.
9284         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
9285         * config/arm/arm.c (arm_arg_partial_bytes): Replace
9286         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9287         (arm_function_arg, arm_function_arg_advance): Likewise.
9288         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
9289         * config/pa/pa.c (pa_pass_by_reference): Likewise.
9290         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
9291         (pa_function_arg): Likewise.
9292         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
9293         (mips_function_arg, mips_function_arg_advance): Likewise.
9294         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
9295         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
9296         * config/vax/vax.c (vax_function_arg): Likewise.
9297         (vax_function_arg_advance): Likewise.
9298         * config/h8300/h8300.c (h8300_function_arg): Likewise.
9299         (h8300_function_arg_advance): Likewise.
9300         * config/v850/v850.c (v850_pass_by_reference): Likewise.
9301         (v850_strict_argument_naming, v850_function_arg): Likewise.
9302         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
9303         (v850_setup_incoming_varargs): Likewise.
9304         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
9305         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
9306         (mmix_function_arg, mmix_pass_by_reference): Likewise.
9307         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
9308         with const void *.
9309         * config/bfin/bfin.c (setup_incoming_varargs): Replace
9310         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9311         (bfin_function_arg_advance, bfin_function_arg): Likewise.
9312         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
9313         * calls.c (emit_call_1): Change type of args_so_far to
9314         cumulative_args_t.  Changed all callers.
9315         (initialize_argument_information): Likewise.
9316         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
9317         * dse.c (get_call_args): Likewise.
9318         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9319         * function.c (pass_by_reference, reference_callee_copied): Likewise.
9320         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
9321         New member args_so_far_v.  Changed all users.
9322         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
9323         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9324         * config/mips/mips.c (mips_output_args_xfer): Likewise.
9325         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9326         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9327         * config/microblaze/microblaze.c (microblaze_expand_prologue):
9328         Likewise.
9329         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
9330         m32r_pass_by_reference.
9331
9332 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
9333
9334         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
9335         argument to be a VEC of statements.
9336         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
9337         assert that pattern statements have to have their vector type set.
9338         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
9339         Change the first argument to be a VEC of statements.  Update
9340         documentation.
9341         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
9342         (vect_handle_widen_mult_by_const): New function.
9343         (vect_recog_widen_mult_pattern):  Change the first argument to be a
9344         VEC of statements.  Update documentation.  Check that the constant is
9345         INTEGER_CST.  Support multiplication by a constant that fits an
9346         intermediate type - call vect_handle_widen_mult_by_const.
9347         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
9348         call.  Handle additional pattern statements if necessary.
9349
9350 2011-06-16  Nick Clifton  <nickc@redhat.com>
9351
9352         PR target/49427
9353         * config.gcc: Set cpu_type to v850 for any V850 architecture.
9354         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
9355         md_file, extra_modes, out_file and extra_options are these are all
9356         deduced from cpu_type.
9357
9358 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9359
9360         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
9361         truncation mask to 63.
9362
9363 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9364
9365         PR target/49313
9366         PR target/29524
9367         * longlong.h: Add AVR support:
9368         (count_leading_zeros): New macro.
9369         (count_trailing_zeros): New macro.
9370         (COUNT_LEADING_ZEROS_0): New macro.
9371         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
9372         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
9373         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
9374         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
9375         (LIB2FUNCS_EXCLUDE): Add _clz.
9376         * config/avr/libgcc.S (XCALL): Move up in file.
9377         (XJMP): New C Macro.
9378         (DEFUN): New asm macro.
9379         (ENDF): New asm macro.
9380         (__ffssi2): New function.
9381         (__ffshi2): New function.
9382         (__loop_ffsqi2): New function.
9383         (__ctzsi2): New function.
9384         (__ctzhi2): New function.
9385         (__clzdi2): New function.
9386         (__clzsi2): New function.
9387         (__clzhi2): New function.
9388         (__paritydi2): New function.
9389         (__paritysi2): New function.
9390         (__parityhi2): New function.
9391         (__parityqi2): New function.
9392         (__popcounthi2): New function.
9393         (__popcountsi2): New function.
9394         (__popcountdi2): New function.
9395         (__popcountqi2): New function.
9396         (__bswapsi2): New function.
9397         (__bswapdi2): New function.
9398         (__ashldi3): New function.
9399         (__ashrdi3): New function.
9400         (__lshrdi3): New function.
9401         Fix suspicous lines.
9402
9403 2011-06-16  Richard Guenther  <rguenther@suse.de>
9404
9405         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
9406         the same as x != 0.
9407         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
9408         to (bool) X & 1.
9409         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
9410         equality compares against zero for the lower bit.
9411
9412 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
9413
9414         PR tree-optimization/49419
9415         * tree-vrp.c (execute_vrp): Call init_range_assertions
9416         before estimate_numbers_of_iterations, call
9417         free_number_of_iterations_estimates before calling
9418         remove_range_assertions.
9419
9420 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9421
9422         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
9423         (struct partial_schedule): Add rows_length field.
9424         (verify_partial_schedule): Check rows_length.
9425         (ps_insert_empty_row): Handle rows_length.
9426         (create_partial_schedule): Likewise.
9427         (free_partial_schedule): Likewise.
9428         (reset_partial_schedule): Likewise.
9429         (create_ps_insn): Remove rest_count argument.
9430         (remove_node_from_ps): Update rows_length.
9431         (add_node_to_ps): Update rows_length and call create_ps_insn
9432         without passing row_rest_count.
9433         (rotate_partial_schedule): Update rows_length.
9434
9435 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9436
9437         * ddg.c (add_intra_loop_mem_dep): New function.
9438         (build_intra_loop_deps): Call it.
9439
9440 2011-06-13  Jeff Law  <law@redhat.com>
9441
9442         * df-problems.c (df_lr_local_compute): Manually CSE
9443         PIC_OFFSET_TABLE_REGNUM.
9444         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
9445         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
9446
9447 2011-06-13  Jan Hubicka  <jh@suse.cz>
9448
9449         * cgraphunit.c (handle_alias_pairs): New function.
9450         (cgraph_finalize_compilation_unit): Use it.
9451         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
9452         as externally visible.
9453
9454 2011-06-15  Richard Guenther  <rguenther@suse.de>
9455
9456         * expr.c (expand_expr_real_2): Reduce all integral types to
9457         bitfield precision.
9458         (expand_expr_real_1): Likewise.
9459
9460 2011-06-15  Martin Jambor  <mjambor@suse.cz>
9461
9462         PR tree-optimization/48613
9463         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
9464         ipa_node_params_vector is NULL.
9465
9466 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
9467
9468         PR debug/49382
9469         * dwarf2out.c (dw_loc_list_node): Add force field.
9470         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
9471         location in the list, even if it is modified before first real insn.
9472         (output_loc_list): Emit empty ranges with force flag set.
9473         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
9474
9475 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
9476
9477         PR target/49349
9478         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
9479         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
9480         above a fence.  Update comments.
9481         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
9482         placed just above it.  Do not allow NULL place_to_insert.
9483
9484 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
9485
9486         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
9487         (slpeel_tree_peel_loop_to_edge): Don't call
9488         remove_dead_stmts_from_loop.
9489         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
9490         remove irrelevant pattern statements.  For irrelevant statements
9491         check if it is the last statement of a detected pattern, use
9492         corresponding pattern statement instead.
9493         (destroy_loop_vec_info): No need to remove pattern statements,
9494         only free stmt_vec_info.
9495         (vect_transform_loop): For irrelevant statements check if it is
9496         the last statement of a detected pattern, use corresponding
9497         pattern statement instead.
9498         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
9499         pattern statements.  Set basic block for the new statement.
9500         (vect_pattern_recog): Update documentation.
9501         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
9502         operands of pattern statements.
9503         (vectorizable_call): Fix printing.  In case of a pattern statement
9504         use the lhs of the original statement when creating a dummy
9505         statement to replace the original call.
9506         (vect_analyze_stmt): For irrelevant statements check if it is
9507         the last statement of a detected pattern, use corresponding
9508         pattern statement instead.
9509         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
9510         statements use gsi of the original statement.
9511
9512 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9513
9514         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
9515         common/common-target-def.h.
9516         * target.def (default_target_flags, handle_option,
9517         supports_split_stack, optimization_table, init_struct,
9518         except_unwind_info, unwind_tables_default, have_named_sections):
9519         Move to common/common-target.def.
9520         * target.h (enum opt_levels, struct default_options): Move to
9521         common/common-target.h.
9522         * targhooks.c (default_except_unwind_info,
9523         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9524         default_target_handle_option, empty_optimization_table): Move to
9525         common/common-targhooks.c.
9526         * targhooks.h (default_except_unwind_info,
9527         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9528         default_target_handle_option, empty_optimization_table): Move to
9529         common/common-targhooks.h.
9530         * common/common-target-def.h: Include common/common-targhooks.h.
9531         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
9532         defined.
9533         * common/common-target.def (handle_option, option_init_struct,
9534         option_optimization_table, default_target_flags,
9535         except_unwind_info, supports_split_stack, unwind_tables_default,
9536         have_named_sections): Move from target.def.
9537         (HOOK_PREFIX): Undefine at end of file.
9538         * common/common-target.h: Include input.h.
9539         (enum opt_levels, struct default_options): Move from target.h.
9540         * common/common-targhooks.c, common/common-targhooks.h: New.
9541         * config.gcc (target_has_targetm_common): Default to yes.
9542         (moxie*): Set target_has_targetm_common=no.
9543         (hppa*-*-*): Don't set target_has_targetm_common=yes.
9544         * doc/tm.texi: Regenerate.
9545         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
9546         (C_TARGET_DEF_H): Add common/common-targhooks.h.
9547         (GCC_OBJS): Remove vec.o.
9548         (OBJS): Remove hooks.o and vec.o.
9549         (OBJS-libcommon-target): Add vec.o, hooks.o and
9550         common/common-targhooks.o.
9551         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
9552         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
9553         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
9554         cfglayout.o, $(out_object_file), $(common_out_object_file)):
9555         Update dependencies.
9556         (common/common-targhooks.o): New.
9557         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
9558         * common/config/pa/pa-common.c: Include more headers.  Take
9559         copyright dates from pa.c.
9560         (pa_option_optimization_table, pa_handle_option,
9561         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
9562         TARGET_HANDLE_OPTION): Move from pa.c.
9563         * common/config/alpha/alpha-common.c,
9564         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
9565         common/config/bfin/bfin-common.c,
9566         common/config/cris/cris-common.c,
9567         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
9568         common/config/h8300/h8300-common.c,
9569         common/config/i386/i386-common.c,
9570         common/config/ia64/ia64-common.c,
9571         common/config/iq2000/iq2000-common.c,
9572         common/config/lm32/lm32-common.c,
9573         common/config/m32c/m32c-common.c,
9574         common/config/m32r/m32r-common.c,
9575         common/config/m68k/m68k-common.c,
9576         common/config/mcore/mcore-common.c,
9577         common/config/mep/mep-common.c,
9578         common/config/microblaze/microblaze-common.c,
9579         common/config/mips/mips-common.c,
9580         common/config/mmix/mmix-common.c,
9581         common/config/mn10300/mn10300-common.c,
9582         common/config/pdp11/pdp11-common.c,
9583         common/config/picochip/picochip-common.c,
9584         common/config/rs6000/rs6000-common.c,
9585         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
9586         common/config/score/score-common.c, common/config/sh/sh-common.c,
9587         common/config/sparc/sparc-common.c,
9588         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
9589         common/config/vax/vax-common.c,
9590         common/config/xstormy16/xstormy16-common.c,
9591         common/config/xtensa/xtensa-common.c: New.
9592         * config/alpha/alpha.c: Include common/common-target.h.
9593         (alpha_option_optimization_table, alpha_handle_option,
9594         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9595         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
9596         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
9597         * config/arm/arm.c (arm_option_optimization_table,
9598         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9599         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
9600         arm-common.c.
9601         * config/avr/avr.c (avr_option_optimization_table,
9602         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9603         to avr-common.c.
9604         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
9605         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
9606         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
9607         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
9608         * config/cris/cris.c (cris_option_optimization_table,
9609         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9610         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
9611         cris-common.c.
9612         * config/fr30/fr30.c (fr30_option_optimization_table,
9613         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
9614         to fr30-common.c.
9615         * config/frv/frv.c (frv_option_optimization_table,
9616         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
9617         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
9618         * config/h8300/h8300.c (h8300_option_optimization_table,
9619         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9620         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
9621         * config/i386/i386-protos.h (ix86_handle_option): Declare.
9622         * config/i386/i386.c: Include common/common-target.h.
9623         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
9624         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
9625         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
9626         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
9627         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
9628         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
9629         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
9630         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
9631         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
9632         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
9633         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
9634         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
9635         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
9636         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
9637         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
9638         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
9639         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
9640         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
9641         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
9642         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
9643         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
9644         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
9645         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
9646         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
9647         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
9648         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
9649         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
9650         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
9651         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
9652         ix86_option_optimization_table, ix86_option_init_struct,
9653         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
9654         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9655         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
9656         i386-common.c.
9657         * config/i386/t-i386 (i386.o): Update dependencies.
9658         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
9659         * config/ia64/ia64.c (ia64_option_optimization_table,
9660         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9661         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9662         ia64_handle_option): Move to ia64-common.c.
9663         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
9664         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
9665         * config/lm32/lm32.c (lm32_option_optimization_table,
9666         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9667         to lm32-common.c.
9668         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
9669         m32c-common.c.
9670         * config/m32r/m32r.c (m32r_option_optimization_table,
9671         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9672         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9673         m32r_handle_option): Move to m32r-common.c.
9674         (m32r_memory_move_cost): Remove comment referring to
9675         TARGET_HANDLE_OPTION.
9676         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
9677         Move to m68k-common.c.
9678         * config/mcore/mcore.c (mcore_option_optimization_table,
9679         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9680         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
9681         * config/mep/mep.c (mep_option_optimization_table,
9682         mep_handle_option, TARGET_HANDLE_OPTION,
9683         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
9684         Move to mep-common.c.
9685         * config/microblaze/microblaze.c
9686         (microblaze_option_optimization_table,
9687         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9688         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
9689         * config/mips/mips.c (mips_handle_option,
9690         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9691         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
9692         mips-common.c.
9693         * config/mmix/mmix.c (mmix_option_optimization_table,
9694         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9695         Move to mmix-common.c.
9696         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
9697         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
9698         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9699         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
9700         * config/pa/pa.c: Include common/common-target.h.
9701         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9702         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9703         pa_handle_option): Move to pa-common.c.
9704         (pa_option_override): Use targetm_common.except_unwind_info.
9705         (pa_asm_output_mi_thunk, pa_function_section): Use
9706         targetm_common.have_named_sections.
9707         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
9708         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9709         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9710         pdp11_handle_option, pdp11_option_init_struct): Move to
9711         pdp11-common.c.
9712         * config/picochip/picochip.c (picochip_option_optimization_table,
9713         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
9714         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
9715         * config/rs6000/rs6000.c: Include common/common-target.h.
9716         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
9717         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
9718         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
9719         rs6000_handle_option): Move to rs6000-common.c.
9720         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9721         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
9722         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9723         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
9724         * config/s390/s390.c (processor_flags_table,
9725         s390_option_optimization_table, s390_option_init_struct,
9726         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
9727         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9728         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
9729         * config/s390/s390.h (processor_flags_table): Declare.
9730         * config/score/score.c (score_option_optimization_table,
9731         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9732         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
9733         score_handle_option): Move to score-common.c.
9734         * config/sh/sh.c (sh_option_optimization_table,
9735         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9736         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9737         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
9738         * config/sparc/sparc.c: Include common/common-target.h.
9739         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9740         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
9741         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
9742         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
9743         spu_option_init_struct): Move to spu-common.c.
9744         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
9745         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
9746         * config/v850/v850.c (small_memory_physical_max,
9747         v850_handle_memory_optionn v850_handle_option,
9748         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9749         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
9750         v850-common.c.
9751         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
9752         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
9753         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9754         Move to xtensa-common.c.
9755         * cfglayout.c: Include common/common-target.h.
9756         (fixup_reorder_chain): Use targetm_common.have_named_sections.
9757         * cfgrtl.c: Include common/common-target.h.
9758         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
9759         targetm_common.have_named_sections.
9760         * dbxout.c: Include common/common-target.h.
9761         (dbxout_function_end): Use targetm_common.have_named_sections.
9762         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
9763         targetm_common.except_unwind_info.
9764         * dwarf2out.c: Include common/common-target.h.
9765         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
9766         dwarf2out_begin_prologue, dwarf2out_frame_init,
9767         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
9768         targetm_common.except_unwind_info.
9769         * except.c: Include common/common-target.h.
9770         (init_eh, finish_eh_generation,
9771         output_one_function_exception_table): Use
9772         targetm_common.except_unwind_info.
9773         (switch_to_exception_section): Use targetm_common.have_named_sections.
9774         * explow.c: Include common/common-target.h.
9775         * expr.c: Include common/common-target.h.
9776         (build_personality_function): Use targetm_common.except_unwind_info.
9777         * function.c: Include common/common-target.h.
9778         (expand_function_end): Use targetm_common.except_unwind_info.
9779         * haifa-sched.c: Include common/common-target.h.
9780         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
9781         * lto-opts.c: Include common/common-target.h instead of target.h.
9782         (lto_reissue_options): Use targetm_common.handle_option.
9783         * opts.c: Include common/common-target.h.
9784         (target_handle_option): Use targetm_common.handle_option.
9785         (init_options_struct): Update comment referring to
9786         targetm.target_option.optimization.  Use
9787         targetm_common.default_target_flags,
9788         targetm_common.unwind_tables_default and
9789         targetm_common.option_init_struct.
9790         (default_options_optimization): Use
9791         targetm_common.option_optimization_table.
9792         (finish_options): Use targetm_common.except_unwind_info,
9793         targetm_common.unwind_tables_default,
9794         targetm_common.have_named_sections and
9795         targetm_common.supports_split_stack.
9796         * toplev.c: Include common/common-target.h.
9797         (process_options): Use targetm_common.have_named_sections.
9798         * tree-tailcall.c: Include common/common-target.h.
9799         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
9800         * tree.c: Include common/common-target.h.
9801         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
9802         * varasm.c: Include common/common-target.h.
9803         (resolve_unique_section, hot_function_section,
9804         default_function_section): Use targetm_common.have_named_sections.
9805
9806 2011-06-14  Easwaran Raman  <eraman@google.com>
9807
9808         PR rtl-optimization/44194
9809         * dse.c: Include tree-flow.h
9810         (insn_info): Add new field non_frame_wild_read.
9811         (group_info): Add new fields escaped_n and escaped_p.
9812         (kill_on_calls): New variable.
9813         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
9814         (dse_step0): Initialize kill_on_calls.
9815         (can_escape): New function.
9816         (set_usage_bits): Add additional parameter; record information
9817         about escaped locations.
9818         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
9819         (dse_step2_nospill): Set kill_on_calls based on
9820         group->escaped_n and group->escaped_n.
9821         (add_wild_read): Refactor into...
9822         (reset_active_stores): ... New function, and
9823         (free_read_records): ... New function.
9824         (add_non_frame_wild_read): New function.
9825         (scan_insn): Call add_non_frame_wild_read on non-const calls.
9826         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
9827         (dse_step5_nospill): Call scan_reads_nospill for instructions
9828         marked as non_frame_wild_read.
9829         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
9830
9831 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9832
9833         * common/common-target-def.h, common/common-target.def,
9834         common/common-target.h, common/config/default-common.c,
9835         common/config/pa/pa-common.c: New files.
9836         * Makefile.in (common_out_file, common_out_object_file,
9837         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
9838         (OBJS-libcommon-target): Include $(common_out_object_file).
9839         (prefix.o): Update dependencies.
9840         ($(common_out_object_file), common/common-target-hooks-def.h,
9841         s-common-target-hooks-def-h): New.
9842         (s-tm-texi): Also check timestamp on common-target.def.
9843         (build/genhooks.o): Update dependencies.
9844         * config.gcc (common_out_file, target_has_targetm_common): Define.
9845         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
9846         TARGET_ALWAYS_STRIP_DOTDOT.
9847         * configure.ac (common_out_object_file): Define.
9848         (common_out_file, common_out_object_file): Substitute.
9849         (common): Create directory.
9850         * configure: Regenerate.
9851         * doc/tm.texi.in (targetm_common): Document.
9852         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
9853         * doc/tm.texi: Regenerate.
9854         * genhooks.c (hook_array): Also include common/common-target.def.
9855         * prefix.c (tm.h): Don't include.
9856         (common/common-target.h): Include.
9857         (ALWAYS_STRIP_DOTDOT): Don't define.
9858         (update_path): Use targetm_common.always_strip_dotdot instead of
9859         ALWAYS_STRIP_DOTDOT.
9860         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
9861
9862 2011-06-14  David Li  <davidxl@google.com>
9863
9864         * passes.c (execute_function_todo): Remove TODO_dump_func.
9865         (execute_one_pass): Remove TODO_dump_func.
9866         (execute_function_dump): New function.
9867         * tree-vrp.c: Remove TODO_dump_func.
9868         * regrename.c: Remove TODO_dump_func.
9869         * fwprop.c: Remove TODO_dump_func.
9870         * tree-into-ssa.c: Remove TODO_dump_func.
9871         * tree-complex.c: Remove TODO_dump_func.
9872         * tracer.c: Remove TODO_dump_func.
9873         * tree-loop-distribution.c: Remove TODO_dump_func.
9874         * postreload-gcse.c: Remove TODO_dump_func.
9875         * postreload.c: Remove TODO_dump_func.
9876         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
9877         * tree-tailcall.c: Remove TODO_dump_func.
9878         * ipa-cp.c: Remove TODO_dump_func.
9879         * final.c: Remove TODO_dump_func.
9880         * tree-emutls.c: Remove TODO_dump_func.
9881         * omp-low.c: Remove TODO_dump_func.
9882         * tree-ssa-dse.c: Remove TODO_dump_func.
9883         * tree-ssa-uncprop.c: Remove TODO_dump_func.
9884         * auto-inc-dec.c: Remove TODO_dump_func.
9885         * reorg.c: Remove TODO_dump_func.
9886         * tree-ssa-copyrename.c: Remove TODO_dump_func.
9887         * tree-ssa-ccp.c: Remove TODO_dump_func.
9888         * compare-elim.c: Remove TODO_dump_func.
9889         * mode-switching.c: Remove TODO_dump_func.
9890         * modulo-sched.c: Remove TODO_dump_func.
9891         * tree-call-cdce.c: Remove TODO_dump_func.
9892         * cse.c: Remove TODO_dump_func.
9893         * web.c: Remove TODO_dump_func.
9894         * tree-stdarg.c: Remove TODO_dump_func.
9895         * lto-streamer-out.c: Remove TODO_dump_func.
9896         * tree-ssa-math-opts.c: Remove TODO_dump_func.
9897         * tree-ssa-dom.c: Remove TODO_dump_func.
9898         * tree-nrv.c: Remove TODO_dump_func.
9899         * loop-init.c: Remove TODO_dump_func.
9900         * gimple-low.c: Remove TODO_dump_func.
9901         * ipa-inline.c: Remove TODO_dump_func.
9902         * tree-ssa-sink.c: Remove TODO_dump_func.
9903         * jump.c: Remove TODO_dump_func.
9904         * ifcvt.c: Remove TODO_dump_func.
9905         * tree-ssa-loop.c: Remove TODO_dump_func.
9906         * recog.c: Remove TODO_dump_func.
9907         * dse.c: Remove TODO_dump_func.
9908         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
9909         * matrix-reorg.c: Remove TODO_dump_func.
9910         * tree-eh.c: Remove TODO_dump_func.
9911         * regmove.c: Remove TODO_dump_func.
9912         * function.c: Remove TODO_dump_func.
9913         * tree-vectorizer.c: Remove TODO_dump_func.
9914         * ipa-split.c: Remove TODO_dump_func.
9915         * gcse.c: Remove TODO_dump_func.
9916         * tree-if-conv.c: Remove TODO_dump_func.
9917         * init-regs.c: Remove TODO_dump_func.
9918         * tree-ssa-phiopt.c: Remove TODO_dump_func.
9919         * implicit-zee.c: Remove TODO_dump_func.
9920         * lower-subreg.c: Remove TODO_dump_func.
9921         * bt-load.c: Remove TODO_dump_func.
9922         * tree-dfa.c: Remove TODO_dump_func.
9923         * except.c: Remove TODO_dump_func.
9924         * emit-rtl.c: Remove TODO_dump_func.
9925         * store-motion.c: Remove TODO_dump_func.
9926         * cfgexpand.c: Remove TODO_dump_func.
9927         * tree-cfgcleanup.c: Remove TODO_dump_func.
9928         * cfgcleanup.c: Remove TODO_dump_func.
9929         * tree-ssa-pre.c: Remove TODO_dump_func.
9930         * tree-sra.c: Remove TODO_dump_func.
9931         * tree-mudflap.c: Remove TODO_dump_func.
9932         * tree-ssa-copy.c: Remove TODO_dump_func.
9933         * cfglayout.c: Remove TODO_dump_func.
9934         * tree-ssa-forwprop.c: Remove TODO_dump_func.
9935         * tree-ssa-dce.c: Remove TODO_dump_func.
9936         * ira.c: Remove TODO_dump_func.
9937         * tree-ssa.c: Remove TODO_dump_func.
9938         * integrate.c: Remove TODO_dump_func.
9939         * tree-optimize.c: Remove TODO_dump_func.
9940         * tree-ssa-phiprop.c: Remove TODO_dump_func.
9941         * tree-object-size.c: Remove TODO_dump_func.
9942         * combine.c: Remove TODO_dump_func.
9943         * bb-reorder.c: Remove TODO_dump_func.
9944         * cprop.c: Remove TODO_dump_func.
9945         * var-tracking.c: Remove TODO_dump_func.
9946         * tree-profile.c: Remove TODO_dump_func.
9947         * tree-vect-generic.c: Remove TODO_dump_func.
9948         * reg-stack.c: Remove TODO_dump_func.
9949         * sched-rgn.c: Remove TODO_dump_func.
9950         * tree-ssa-structalias.c: Remove TODO_dump_func.
9951         * tree-switch-conversion.c: Remove TODO_dump_func.
9952         * tree-cfg.c: Remove TODO_dump_func.
9953         * tree-ssa-reassoc.c: Remove TODO_dump_func.
9954         * combine-stack-adj.c: Remove TODO_dump_func.
9955         * dce.c: Remove TODO_dump_func.
9956         * tree-ssanames.c: Remove TODO_dump_func.
9957         * regcprop.c: Remove TODO_dump_func.
9958
9959 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9960
9961         PR middle-end/47364
9962         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
9963         and properly handle result not in Pmode.
9964
9965 2011-06-14  Robert Millan  <rmh@gnu.org>
9966
9967         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
9968         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
9969         `config/linux.h'.
9970
9971         * config/i386/kfreebsd-gnu64.h: New file.
9972         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
9973         with `i386/kfreebsd-gnu64.h'.
9974
9975         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
9976         (GNU_USER_LINK_EMULATION64): New macros.
9977         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
9978         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
9979         of hardcoding `elf_i386' and `elf_x86_64'.
9980
9981 2011-06-14  Nick Clifton  <nickc@redhat.com>
9982
9983         PR target/49403
9984         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
9985
9986         PR target/49402
9987         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
9988
9989 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
9990
9991         PR fortran/49103
9992         * tree.h (DECL_NONSHAREABLE): Define.
9993         (struct tree_decl_common): Change decl_common_unused to
9994         decl_nonshareable_flag.
9995         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
9996         Ignore vars with DECL_NONSHAREABLE bit set.
9997         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
9998         on stores to automatic aggregate vars.
9999
10000         PR rtl-optimization/49390
10001         Revert:
10002         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10003
10004         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10005         MEM_ALIAS_SET.
10006
10007 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
10008             Tom de Vries  <tom@codesourcery.com>
10009
10010         PR target/45098
10011         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
10012         Document changed semantics.
10013         (max_stmt_executions, max_stmt_executions_int): Declare.
10014         * tree-data-ref.c (estimated_loop_iterations)
10015         (estimated_loop_iterations_int): Move functions...
10016         * tree-ssa-loop-niter.c (estimated_loop_iterations)
10017         (estimated_loop_iterations_int): here.
10018         (record_estimate): Change nb_iterations_upper_bound and
10019         nb_iterations_estimate semantics.
10020         (max_stmt_executions, max_stmt_executions_int): New function.
10021         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
10022         (max_stmt_executions_tree): this.
10023         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
10024         estimated_loop_iterations_tree.
10025         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
10026         max_stmt_executions_int instead of estimated_loop_iterations_int.
10027         * predict.c (predict_loops): Idem.
10028         * tree-parloops.c (parallelize_loops): Idem.
10029         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
10030         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
10031         (init_omega_for_ddr_1): Idem.
10032         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
10033         (loop_prefetch_arrays): Idem
10034         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
10035         max_stmt_executions instead of estimated_loop_iterations.
10036         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
10037         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
10038         instead of nb_iterations_upper_bound.
10039
10040 2011-06-13  Jan Hubicka  <jh@suse.cz>
10041
10042         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
10043
10044 2011-06-14  Richard Henderson  <rth@redhat.com>
10045
10046         PR debug/48459
10047         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
10048         (based_loc_descr): Assert it's true.
10049         (compute_frame_pointer_to_fb_displacement): Set it, rather than
10050         aborting immediately.
10051
10052 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
10053             Mingfeng Wu  <mingfeng@faraday-tech.com>
10054
10055         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
10056
10057 2011-06-13  Jan Hubicka  <jh@suse.cz>
10058
10059         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
10060
10061 2011-06-13  Jan Hubicka  <jh@suse.cz>
10062
10063         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
10064         similarly to DECL_COMDAT.
10065         * cgraphunit.c (cgraph_analyze_function): Likewise.
10066         * ipa.c (function_and_variable_visibility): Likewise.
10067
10068 2011-06-13  Jan Hubicka  <jh@suse.cz>
10069
10070         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
10071         BINFO_VIRTUALS when streaming for ltrans unit.
10072
10073 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
10074
10075         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
10076         (movdi_internal64): Same.
10077
10078 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
10079
10080         PR target/44618
10081         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
10082         a set of similar patterns, where the MATCH_OPERAND for the function
10083         argument is replaced with individual references to hardware registers.
10084         (save_fpregs_<mode>): Ditto
10085         (restore_gpregs_<mode>): Ditto
10086         (return_and_restore_gpregs_<mode>): Ditto
10087         (return_and_restore_fpregs_<mode>): Ditto
10088         (return_and_restore_fpregs_aix_<mode>): Ditto
10089
10090 2011-06-13  Jan Hubicka  <jh@suse.cz>
10091
10092         * ipa-utils.c (postorder_stack): New structure.
10093         (ipa_reverse_postorder): Handle aliases.
10094
10095 2011-06-13  Jan Hubicka  <jh@suse.cz>
10096
10097         * ipa-inline.c (reset_edge_caches): Walk aliases.
10098         (update_caller_keys): Do not test inlinability of aliases.
10099         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
10100         (do_estimate_growth): Fix typo.
10101
10102 2011-06-13  Jan Hubicka  <jh@suse.cz>
10103
10104         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
10105         (can_remove_node_now_p): ... here; handle same comdat groups.
10106         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
10107         (inline_call): Update use of can_remove_node_now_p.
10108
10109 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10110
10111         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
10112         condition to disallow non-identical memory locations.
10113         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
10114         preference to bit manipulation instructions.
10115
10116 2011-06-13  Jan Hubicka  <jh@suse.cz>
10117
10118         * cgraph.c (cgraph_for_node_thunks_and_aliases,
10119         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
10120         (nonremovable_p): New function.
10121         (cgraph_can_remove_if_no_direct_calls_p): New function.
10122         (used_from_object_file_p): New functoin.
10123         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
10124         references from aliases.
10125         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
10126         * ipa-inline.c (check_caller_edge): New function.
10127         (want_inline_function_called_once_p): Use it; accept aliases called
10128         once, too.
10129         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
10130
10131 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10132
10133         PR target/48454
10134         * config/arm/neon.md (vec_pack_trunc): Set the lengths
10135         correctly for the case with Quad vectors.
10136
10137 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
10138            Ira Rosen  <ira.rosen@linaro.org>
10139
10140         PR tree-optimization/49352
10141         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
10142         all, make sure loop_use_stmt after the loop is a def stmt of a used
10143         SSA_NAME that is the only one defined inside of the loop.  Don't
10144         check for COND_EXPR and GIMPLE_BINARY_RHS.
10145         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
10146         check_reduction is true.
10147
10148 2011-06-11  Jan Hubicka  <jh@suse.cz>
10149
10150         PR middle-end/49373
10151         * ipa.c (cgraph_externally_visible_p): Check resolution info.
10152
10153 2011-06-11  Jan Hubicka  <jh@suse.cz>
10154
10155         PR middle-end/48836
10156         * ipa-inline-transform.c: Include tree-pass.h
10157         (inline_transform): Set TODO_update_ssa_only_virtuals.
10158         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
10159
10160 2011-06-11  Jan Hubicka  <jh@suse.cz>
10161
10162         PR middle-end/49378
10163         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
10164         aliases and thunks.
10165
10166 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
10167
10168         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
10169         Take number of iterations to peel into account for equally frequent
10170         misalignment values.
10171
10172 2011-06-11  Jan Hubicka  <jh@suse.cz>
10173
10174         * lto-streamer-out.c (produce_symtab): Stream out the newly
10175         represented aliases.
10176
10177 2011-06-11  Jan Hubicka  <jh@suse.cz>
10178
10179         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
10180         varying args.
10181         (ipa_update_after_lto_read): Likewise.
10182         (ipa_write_node_info): Do not sream call_with_var_arguments.
10183         (ipa_read_node_info): Likewise.
10184
10185 2011-06-11  Jan Hubicka  <jh@suse.cz>
10186
10187         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
10188
10189 2011-06-11  Jan Hubicka  <jh@suse.cz>
10190
10191         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
10192         (lto_symtab_resolve_can_prevail_p): Likewise.
10193         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
10194         * cgraph.c (same_body_aliases_done): New global var.
10195         (cgraph_same_body_alias_1): Rename to ...
10196         (cgraph_create_function_alias): ... this one; reorg to new
10197         representation.
10198         (cgraph_same_body_alias): Use cgraph_create_function_alias;
10199         record references when asked to.
10200         (cgraph_add_thunk): Fix formating.
10201         (cgraph_get_node): Kill same body alias code.
10202         (cgraph_node_for_asm): Likewise.
10203         (cgraph_remove_same_body_alias): Remove.
10204         (cgraph_remove_node): Kill same body alias code.
10205         (cgraph_mark_address_taken_node): Mark also the aliased function
10206         as having address taken.
10207         (dump_cgraph_node): Dump same body aliases.
10208         (cgraph_for_node_thunks_and_aliases): Update for new alias
10209         representation.
10210         (cgraph_for_node_and_aliases): Likewise.
10211         * cgraph.h (same_body): Kll pointer.
10212         (same_body_alias): Update comment.
10213         (same_body_aliases_done): Declare.
10214         (cgraph_remove_same_body_alias): Remove declaration.
10215         (cgraph_create_function_alias): Declare.
10216         (cgraph_process_same_body_aliases): Declare.
10217         (cgraph_function_with_gimple_body_p): Check for alias.
10218         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
10219         (cgraph_alias_aliased_node): New function.
10220         (cgraph_function_node): Update for new aliases.
10221         (cgraph_function_or_thunk_node): Likewise.
10222         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
10223         (inline_call): Remove dead aliases.
10224         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
10225         name hack for same body aliases.
10226         (clone_of_p): Look through aliases.
10227         (verify_cgraph_node): Verify aliases.
10228         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
10229         (cgraph_process_same_body_aliases): New function.
10230         (process_function_and_variable_attributes): Disable weakref warning on
10231         alias.
10232         (cgraph_analyze_functions): Handle aliases.
10233         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
10234         (assemble_thunks): Rename to ...
10235         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
10236         (cgraph_expand_function): Remove alias output code.
10237         (cgraph_output_in_order): Skip aliases.
10238         (cgraph_preserve_function_body_p): Aliases don't need preserving.
10239         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
10240         (ipa_record_reference): Do not assert on alias references.
10241         (ipa_ref_has_aliases_p): New function.
10242         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
10243         (ipa_ref_has_aliases_p): Declare.
10244         * lto-cgraph.c (lto_output_node): Handle aliases.
10245         (input_node): Likewise.
10246         * lto-streamer-out.c (lto_output): Skip aliases.
10247         (produce_symtab): Kill same_body_alias code.
10248         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
10249         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
10250         * ipa-inline.c (update_caller_keys): Walk aliases.
10251         (inline_small_functions): Fix thinko in previous patch.
10252         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
10253         (function_and_variable_visibility): Do not walk same body aliases.
10254         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
10255         (ipa_pta_execute): Use it.
10256
10257 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10258
10259         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
10260         (*vec_dupv2df): Rename from vec_dupv2df.
10261         (vec_dupv2df): New expander.
10262
10263 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10264
10265         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
10266
10267 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10268
10269         * config/i386/i386.md: Use default value in "isa" attribute.
10270         * config/i386/sse.md: Ditto.
10271         * config/i386/mmx.md: Ditto.
10272
10273 2011-06-10  Wei Guozhi  <carrot@google.com>
10274
10275         PR target/45335
10276         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
10277         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
10278         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
10279         related peephole2.
10280         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
10281         related peephole2.
10282         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
10283         (arm_legitimate_ldrd_p): New prototype.
10284         (arm_output_ldrd): New prototype.
10285         * config/arm/arm.c (arm_check_ldrd_operands): New function.
10286         (arm_legitimate_ldrd_p): New function.
10287         (arm_output_ldrd): New function.
10288
10289 2011-06-10  David Li  <davidxl@google.com>
10290
10291         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10292         * passes.c (passr_eq): New function.
10293         (create_pass_tab): New function.
10294         (pass_traverse): New function.
10295         (dump_one_pass): New function.
10296         (dump_pass_list): New function.
10297         (dump_passes): New function.
10298
10299 2011-06-10  Jan Hubicka  <jh@suse.cz>
10300
10301         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
10302         setting the nothrow flag.
10303         * ipa-reference.c (propagate): Skip aliases.
10304         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
10305         (propagate_nothrow): Skip aliases; do not update cgraph.
10306         (local_pure_const): Do not update cgraph.
10307         * tree-profile.c (tree_profiling): Do fixup_cfg.
10308
10309 2011-06-10  Jan Hubicka  <jh@suse.cz>
10310
10311         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
10312         (cgraph_local_node_p): ... here; handle aliases.
10313         (has_addr_references_p): Break out from ...;
10314         (cgraph_remove_unreachable_nodes) ... here.
10315
10316 2011-06-10  Jan Hubicka  <jh@suse.cz>
10317
10318         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
10319         * common.opt (flag_inline_functions_called_once): Do not
10320         initialize to 1.
10321
10322 2011-06-10  Jan Hubicka  <jh@suse.cz>
10323
10324         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
10325         (ipcp_initialize_node_lattices): Do not deal with aliases;
10326         Do not try to propagate through thunks.
10327         (ipcp_change_tops_to_bottom): Do not deal with aliases.
10328
10329 2011-06-10  Jan Hubicka  <jh@suse.cz>
10330
10331         * ipa-prop.c (ipa_write_node_info): Stream jump functions
10332         for indirect calls.
10333         (ipa_read_node_info): Likewise.
10334
10335 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10336
10337         PR lto/49302
10338         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
10339         (build_and_insert_call): Likewise.
10340         (build_and_insert_ref): New.
10341         (gimple_expand_builtin_pow): Minor cleanup.
10342         (gimple_expand_builtin_cabs): New.
10343         (execute_cse_sincos): Add case for BUILT_IN_CABS.
10344
10345 2011-06-10  Jan Hubicka  <jh@suse.cz>
10346
10347         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
10348         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
10349         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
10350         (ipcp_propagate_stage): Skip aliases when propagating.
10351         (ipcp_need_redirect_p): Skip aliases.
10352         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
10353         collect_callers_of_node.
10354         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
10355         for aliases.
10356         (ipa_compute_jump_functions): Look through aliases.
10357
10358 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10359
10360         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
10361
10362 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10363
10364         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
10365         Adjust comments.
10366         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
10367
10368 2011-06-10  Jan Hubicka  <jh@suse.cz>
10369
10370         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
10371         Update call of gimple_get_virt_method_for_binfo.
10372         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
10373         refuse_thunks parameter.
10374         (gimple_fold_call): Update.
10375         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
10376
10377 2011-06-10  Jan Hubicka  <jh@suse.cz>
10378
10379         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
10380         (not_all_callers_have_enough_arguments_p): ... this one; turn into
10381         worker for cgraph_for_node_and_aliases.
10382         (convert_callers_for_node): Break out from ...
10383         (convert_callers): ... here.
10384         (modify_function): Use collect_callers_of_node.
10385         (ipa_early_sra): Use cgraph_for_node_and_aliases.
10386
10387 2011-06-10  Richard Guenther  <rguenther@suse.de>
10388
10389         PR tree-optimization/49361
10390         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
10391         when not already in gimple form.
10392
10393 2011-06-10  Richard Guenther  <rguenther@suse.de>
10394
10395         PR bootstrap/49344
10396         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
10397         FOR_EACH_PHI_OR_STMT_USE.
10398
10399 2011-06-10  Jan Hubicka  <jh@suse.cz>
10400
10401         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
10402         (clone_inlined_nodes): ... here.
10403         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
10404         to real destination prior inlining.
10405         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
10406         can_early_inline_edge_p, want_early_inline_function_p,
10407         want_early_inline_function_p, want_inline_small_function_p,
10408         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
10409         edge_badness, update_all_callee_keys, lookup_recursive_calls,
10410         add_new_edges_to_heap, inline_small_functions, flatten_function,
10411         inline_always_inline_functions, early_inline_small_functions): Use
10412         cgraph_function_or_thunk_node.
10413         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
10414         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
10415         (do_estimate_edge_growth_1): Break out from ...
10416         (do_estimate_growth) ... here; walk aliases.
10417         (inline_generate_summary): Skip aliases.
10418
10419 2011-06-10  Richard Guenther  <rguenther@suse.de>
10420
10421         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
10422         forward when combining, visit inserted stmts when a stmt was changed.
10423
10424 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
10425
10426         * tree.h (error_operand_p): Add.
10427         * dbxout.c (dbxout_type_fields): Use the latter.
10428         * c-decl.c (add_stmt): Likewise.
10429         * gimplify.c (omp_add_variable, omp_notice_variable,
10430         gimplify_scan_omp_clauses): Likewise.
10431
10432 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
10433
10434         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
10435         when a value is actually passed in regs.
10436
10437 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
10438             Laurent Rougé  <laurent.rouge@menta.fr>
10439
10440         * doc/invoke.texi (SPARC options): Add -mflat.
10441         * config/sparc/sparc.opt: Likewise.
10442         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
10443         (sparc_flat_expand_prologue): Declare.
10444         (sparc_flat_expand_epilogue): Likewise.
10445         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
10446         (CPP_ENDIAN_SPEC): Replace with...
10447         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
10448         (CPP_SPEC): Adjust to above change.
10449         (EXTRA_SPECS): Likewise.
10450         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
10451         (INCOMING_REGNO): Likewise.
10452         (OUTGOING_REGNO): Likewise.
10453         (LOCAL_REGNO): Likewise.
10454         (SETUP_FRAME_ADDRESSES): Likewise.
10455         (FIXED_REGISTERS): Set 0 for %fp.
10456         (CALL_USED_REGISTERS): Likewise.
10457         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
10458         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
10459         (RETURN_ADDR_REGNUM): Define.
10460         (RETURN_ADDR_RTX): Use it.
10461         (INCOMING_RETURN_ADDR_REGNUM): Define.
10462         (INCOMING_RETURN_ADDR_RTX): Use it.
10463         (DWARF_FRAME_RETURN_COLUMN): Likewise.
10464         (EH_RETURN_REGNUM): Define.
10465         (EH_RETURN_STACKADJ_RTX): Use it.
10466         (EH_RETURN_HANDLER_RTX): Delete.
10467         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
10468         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
10469         Delete.
10470         (struct machine_function): Add frame_size, apparent_frame_size,
10471         frame_base_reg, frame_base_offset, n_global_fp_regs and
10472         save_local_in_regs_p fields.
10473         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
10474         sparc_frame_base_offset, sparc_n_global_fp_regs,
10475         sparc_save_local_in_regs_p): New macros.
10476         (sparc_option_override): Error out if -fcall-saved-REG is specified
10477         for Out registers.
10478         (eligible_for_restore_insn): Fix formatting.
10479         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
10480         (eligible_for_sibcall_delay): Likewise.
10481         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
10482         (sparc_legitimate_address_p): Adjust to above change.
10483         (save_global_or_fp_reg_p): New predicate.
10484         (return_addr_reg_needed_p): Likewise.
10485         (save_local_or_in_reg_p): Likewise.
10486         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
10487         (SORR_SAVE, SORR_RESTORE): Delete.
10488         (sorr_pred_t): New typedef.
10489         (sorr_act_t): New enum.
10490         (save_or_restore_regs): Rename to...
10491         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
10492         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
10493         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
10494         mechanism.  Add CFI information for double-word saves in 32-bit mode.
10495         (emit_adjust_base_to_offset): New function extracted from...
10496         (emit_save_or_restore_regs): ...this.  Rename the rest to...
10497         (emit_save_or_restore_regs_global_fp_regs): ...this.
10498         (emit_save_or_restore_regs_local_in_regs): New function.
10499         (gen_create_flat_frame_[123]): New functions.
10500         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
10501         (sparc_flat_expand_prologue): New function.
10502         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
10503         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
10504         (sparc_flat_expand_epilogue): New function.
10505         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
10506         (output_return): Likewise.
10507         (output_sibcall): Likewise.
10508         (sparc_output_mi_thunk): Likewise.
10509         (sparc_frame_pointer_required): Likewise.
10510         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
10511         function optimization.
10512         * config/sparc/sparc.md (flat): New attribute.
10513         (prologue): Add TARGET_FLAT handling.
10514         (save_register_window): Disable if TARGET_FLAT.
10515         (create_flat_frame_[123]): New patterns.
10516         (epilogue): Add TARGET_FLAT handling.
10517         (sibcall_epilogue): Likewise.
10518         (eh_return): New expander.
10519         (eh_return_internal): New insn and splitter.
10520         (return_internal): Add TARGET_FLAT handling.
10521         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
10522         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
10523         (nonlocal_goto): Add TARGET_FLAT handling.
10524         * config/sparc/t-elf: Add -mflat multilib.
10525         * config/sparc/t-leon: Likewise.
10526
10527 2011-06-10  Jan Hubicka  <jh@suse.cz>
10528
10529         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
10530         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
10531         (self_recursive_p): Use cgraph_function_node.
10532         (propagate_pure_const): Likewise.
10533         (propagate_nothrow): Likewise.
10534         * ipa-reference.c (ipa_reference_get_not_read_global): Use
10535         cgraph_function_node.
10536         (propagate_bits): Likewise.
10537         (propagate): Likewise.
10538
10539 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10540             Richard Earnshaw  <rearnsha@arm.com>
10541
10542         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
10543         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
10544         (*thumb2_movdi_vfp): Delete.
10545         (*arm_movdi_vfp_cortexa8): Delete.
10546         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
10547         (*movdi_vfp_cortexa8): Likewise.
10548
10549 2011-06-10  Richard Guenther  <rguenther@suse.de>
10550
10551         * stor-layout.c (initialize_sizetypes): Give names to all
10552         sizetype kinds.
10553
10554 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
10555
10556         PR tree-optimization/49318
10557         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
10558         irrelevant pattern statements.
10559
10560 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10561
10562         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
10563
10564         PR bootstrap/49354
10565         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
10566         to last assignment.
10567
10568 2011-06-09  Jan Hubicka  <jh@suse.cz>
10569
10570         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
10571         do not recompute reachable flag.
10572         (cgraph_finalize_function, cgraph_analyze_functions): Set
10573         redefined_extern_inline here.
10574
10575 2011-06-09  Jan Hubicka  <jh@suse.cz>
10576
10577         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
10578         (cgraph_only_called_directly_p): ... this one; bring offline.
10579         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10580         varpool_used_from_object_file_p): Drop names from the declaratoin.
10581         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
10582         collect_callers_of_node): New.
10583         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
10584         (cgraph_edge_recursive_p): Use cgraph_function_node.
10585         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
10586         (cgraph_node_cannot_be_local_p_1): Break out from ...
10587         (cgraph_node_can_be_local_p): ... here; walk aliases.
10588         (cgraph_for_node_thunks_and_aliases): New function.
10589         (cgraph_for_node_and_aliases): New function.
10590         (cgraph_make_node_local_1): Break out from ...
10591         (cgraph_make_node_local) ... here; use
10592         cgraph_for_node_thunks_and_aliases.
10593         (cgraph_set_nothrow_flag_1): Break out from ...
10594         (cgraph_set_nothrow_flag) ... here;
10595         use cgraph_for_node_thunks_and_aliases.
10596         (cgraph_set_const_flag_1): Break out from ...
10597         (cgraph_set_const_flag) ... here;
10598         use cgraph_for_node_thunks_and_aliases.
10599         (cgraph_set_pure_flag_1): Break out from ...
10600         (cgraph_set_pure_flag) ... here;
10601         use cgraph_for_node_thunks_and_aliases.
10602         (cgraph_propagate_frequency_1): Break out from ...
10603         (cgraph_propagate_frequency) ... here; use
10604         cgraph_for_node_thunks_and_aliases.
10605         (cgraph_used_from_object_file_p): Do not care about aliases.
10606         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
10607         New functions.
10608         (collect_callers_of_node_1, collect_callers_of_node): New functions.
10609
10610 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10611
10612         PR rtl-optimization/49154
10613         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
10614         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
10615         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
10616         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
10617         * config/cris/cris.h (cris_register_move_cost): Remove
10618         !TARGET_V32 code.  Tweak comments.
10619
10620 2011-06-09  Jan Hubicka  <jh@suse.cz>
10621
10622         * cgraphbuild.c (record_eh_tables): Mark personality function as having
10623         address taken.
10624
10625 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10626
10627         PR rtl-optimization/49154
10628         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
10629         is a matching slot in the hashtable, assign it to classes_ptr.
10630
10631         PR rtl-optimization/49154
10632         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
10633         register classes.
10634         * doc/tm.texi: Regenerate.
10635
10636 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10637
10638         PR target/49307
10639         * config/sh/sh.md (UNSPEC_CHKADD): New.
10640         (chk_guard_add): New define_insn_and_split.
10641         (symGOT_load): Use chk_guard_add instead of blockage.
10642
10643 2011-06-09  Kai Tietz  <ktietz@redhat.com>
10644
10645         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
10646
10647 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10648
10649         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
10650
10651 2011-06-09  Wei Guozhi  <carrot@google.com>
10652
10653         PR target/46975
10654         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
10655         (peephole2 for conditional move): Generate 16 bit instructions.
10656
10657 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
10658
10659         * config/i386/i386.md (*movdi_internal_rex64): Merge
10660         alternatives 6 and 8.
10661
10662 2011-06-09  David Li  <davidxl@google.com>
10663
10664         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10665         * passes.c (passr_eq): New function.
10666         (create_pass_tab): New function.
10667         (pass_traverse): New function.
10668         (dump_one_pass): New function.
10669         (dump_pass_list): New function.
10670         (dump_passes): New function.
10671
10672 2011-06-09  David Li  <davidxl@google.com>
10673
10674         * tree-complex.c (tree_lower_complex): Gate cleanup.
10675         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
10676         (execute_optimize_stdarg): Ditto.
10677         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
10678         (execute_cleanup_eh_1): Ditto.
10679         (execute_cleanup_eh): Ditto.
10680         * gcse.c (gate_rtl_pre): Ditto.
10681         (execute_rtl_pre): Ditto.
10682         * except.c (finish_eh_generation): Ditto.
10683         (convert_to_eh_region_ranges): Ditto.
10684         * cprop.c (one_cprop_pass): Ditto.
10685
10686 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
10687
10688         PR target/48673
10689         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
10690         in all basic blocks.
10691
10692 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10693
10694         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
10695         (HAVE_ENABLE_EXECUTE_STACK): Define.
10696         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
10697         (HAVE_ENABLE_EXECUTE_STACK): Define.
10698         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
10699         (HAVE_ENABLE_EXECUTE_STACK): Define.
10700         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
10701         (ENABLE_EXECUTE_STACK): Remove.
10702         (HAVE_ENABLE_EXECUTE_STACK): Define.
10703         [IN_LIBGCC2]: Don't include <windows.h>.
10704         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10705         (HAVE_ENABLE_EXECUTE_STACK): Define.
10706         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
10707         (HAVE_ENABLE_EXECUTE_STACK): Define.
10708         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
10709         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
10710         (HAVE_ENABLE_EXECUTE_STACK): Define.
10711         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
10712         (HAVE_ENABLE_EXECUTE_STACK): Define.
10713         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
10714         (HAVE_ENABLE_EXECUTE_STACK): Define.
10715         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10716         (HAVE_ENABLE_EXECUTE_STACK): Define.
10717         * config/alpha/alpha.c (alpha_trampoline_init): Test
10718         HAVE_ENABLE_EXECUTE_STACK.
10719         * config/i386/i386.c (ix86_trampoline_init): Likewise.
10720         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10721         (sparc64_initialize_trampoline): Likewise.
10722         * libgcc2.c [L_enable_execute_stack]: Remove.
10723         * system.h (ENABLE_EXECUTE_STACK): Poison.
10724         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
10725         * doc/tm.texi: Regenerate.
10726         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
10727
10728 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
10729
10730         PR middle-end/49308
10731         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
10732         variable.  After resetting and rescanning insn continue with previous
10733         statement.
10734
10735 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10736
10737         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
10738         (gcc_cv_ld_hidden): Likewise.
10739         * configure: Regenerate.
10740         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
10741         (ix86_stack_protect_fail): Mark unused.
10742         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
10743         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
10744         [TARGET_MACHO]: Don't define.
10745         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
10746         (TARGET_STACK_PROTECT_FAIL): Likewise.
10747         (rs6000_stack_protect_fail): Mark unused.
10748         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
10749         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
10750
10751 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10752
10753         * varasm.c (get_section): Print location of other conflict
10754         for section conflicts.
10755
10756 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10757
10758         * config/i386/driver-i386.c (host_detect_local_cpu):
10759         Add model 0x2d Intel CPU.
10760
10761 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10762
10763         * reginfo.c (global_regs_decl): Add.
10764         (globalize_reg): Add decl parameter. Compute location.  Pass location
10765         to warnings and add inform. Store decl in global_regs_decl.
10766         * rtl.h (globalize_reg): Update prototype.
10767         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
10768
10769 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
10770
10771         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
10772
10773 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10774
10775         PR target/49305
10776         * config/sh/predicates.md (general_movsrc_operand): Check
10777         mode for memory with indexed address for QI and HImode.
10778         (general_movdst_operand): Likewise.
10779
10780 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10781
10782         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
10783
10784 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
10785
10786         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
10787         (num_ssa_operands): Likewise.
10788         (op_iter_init_phiuse): Forward-declare.
10789         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
10790
10791 2011-06-08  Nick Clifton  <nickc@redhat.com>
10792
10793         * doc/invoke.texi (ARM Options): Update description of
10794         -mthumb-interwork.
10795
10796 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
10797
10798         * config/i386/driver-i386.c (host_detect_local_cpu): Support
10799         unknown Intel family 0x6 CPUs.
10800
10801 2011-06-08  Martin Jambor  <mjambor@suse.cz>
10802
10803         * tree-sra.c (mark_rw_status): Removed.
10804         (analyze_access_subtree): New parameter parent instead of
10805         mark_read and mark_write, propagate from that.
10806
10807 2011-06-08  Julian Brown  <julian@codesourcery.com>
10808
10809         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
10810         for double-precision helper functions in hard-float mode if only
10811         single-precision arithmetic is supported in hardware.
10812
10813 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
10814
10815         PR rtl-optimization/49303
10816         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
10817         code_motion_path_driver returned 0 or 1.
10818         (sel_region_finish): Clear h_d_i_d.
10819
10820 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10821
10822         * config/sh/sh.c (prepare_move_operands): Set pic register
10823         appropriately for global and local dynamic tls models even
10824         if flag_pic is unset.
10825
10826 2011-06-07  Jason Merrill  <jason@redhat.com>
10827
10828         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
10829
10830 2011-06-07  Xinliang David Li  <davidxl@google.com>
10831         * passes.c (enable_disable_pass): Handle assembler name.
10832         (is_pass_explicitly_enabled_or_disabled): Ditto.
10833
10834 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10835
10836         PR tree-optimization/48497
10837         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
10838
10839 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10840
10841         PR tree-optimization/46728
10842         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
10843         to use gimple_val_nonnegative_real_p.
10844         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
10845         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
10846
10847 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
10848
10849         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
10850
10851 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
10852
10853         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
10854         constant vectors.
10855
10856 2011-06-07  Richard Guenther  <rguenther@suse.de>
10857
10858         * stor-layout.c (initialize_sizetypes): Initialize all
10859         sizetypes based on target definitions.
10860         (set_sizetype): Remove.
10861         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
10862         * tree.h (set_sizetype): Remove.
10863
10864 2011-06-07  Nick Clifton  <nickc@redhat.com>
10865
10866         * config.gcc: Unify V850 architecture options and add support for
10867         newer V850 architectures.
10868         * config/v850/t-v850e: Delete.
10869
10870 2011-06-07  Richard Guenther  <rguenther@suse.de>
10871
10872         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
10873         Call set_sizetype from here.
10874
10875 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
10876
10877         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
10878         (*maddhisi4tb, *maddhisi4tt): New define_insns.
10879
10880 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
10881             Andrew Stubbs  <ams@codesourcery.com>
10882
10883         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
10884         multiplies.
10885         * doc/md.texi (Canonicalization of Instructions): Document widening
10886         multiply canonicalization.
10887
10888 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
10889
10890         PR gcov-profile/49299
10891         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
10892
10893 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
10894
10895         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
10896         a pointer.
10897         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
10898         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
10899         vect_recog_pow_pattern): Likewise.
10900         (vect_pattern_recog_1): Remove declaration.
10901         (widened_name_p): Remove declaration.  Add new argument to specify
10902         whether to check that both types are either signed or unsigned.
10903         (vect_recog_widen_mult_pattern): Update documentation.  Handle
10904         unsigned patterns and multiplication by constants.
10905         (vect_pattern_recog_1): Update vect_recog_func references.  Use
10906         statement information from the statement returned from pattern
10907         detection functions.
10908         (vect_pattern_recog): Update vect_recog_func reference.
10909         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
10910         multiplication by a constant use the type of the other operand.
10911
10912 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
10913
10914         PR rtl-optimization/49145
10915         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
10916
10917 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
10918
10919         PR debug/49262
10920         * dwarf2out.c (native_encode_initializer): Decrement count in each
10921         iteration.
10922
10923         PR debug/49294
10924         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
10925         non-MODE_INT modes.
10926
10927         PR c++/49264
10928         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
10929         if stmt folded into nothing.
10930         * tree-inline.c (fold_marked_statements): If a builtin at the end of
10931         a bb folded into nothing, just update cgraph edges and move to next bb.
10932         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
10933         to be NULL.  Don't compute count and frequency if new_call is NULL.
10934
10935 2011-06-04  Diego Novillo  <dnovillo@google.com>
10936
10937         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
10938         (cgraph.o): Likewise.
10939         (cgraphunit.o): Likewise.
10940         * cgraphunit.c: Include lto-streamer.h
10941         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
10942         if LTO is enabled.
10943         * lto-streamer-in.c (unpack_value_fields): Call
10944         streamer_hooks.unpack_value_fields if set.
10945         (lto_materialize_tree): For unhandled nodes, first try to
10946         call lto_streamer_hooks.alloc_tree, if it exists.
10947         (lto_input_ts_decl_common_tree_pointers): Move reading of
10948         DECL_INITIAL to lto_streamer_read_tree.
10949         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
10950         (lto_streamer_read_tree): New.
10951         (lto_reader_init): Rename from lto_init_reader.
10952         Move initialization code to lto/lto.c.
10953         * lto-streamer-out.c (pack_value_fields): Call
10954         streamer_hooks.pack_value_fields if set.
10955         (lto_output_tree_ref): For tree nodes that are not normally indexable,
10956         call streamer_hooks.indexable_with_decls_p before giving up.
10957         (lto_output_ts_decl_common_tree_pointers): Move handling
10958         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
10959         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
10960         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
10961         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
10962         (lto_streamer_write_tree): New.
10963         (lto_output): Call lto_streamer_init directly.
10964         (lto_writer_init): Remove.
10965         * lto-streamer.c (streamer_hooks): New.
10966         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
10967         instead of lto_preload_common_nodes.
10968         (lto_is_streamable): Move from lto-streamer.h
10969         (lto_streamer_hooks_init): New.
10970         (streamer_hooks): New.
10971         (streamer_hooks_init): New.
10972         * lto-streamer.h (struct output_block): Forward declare.
10973         (struct lto_input_block): Likewise.
10974         (struct data_in): Likewise.
10975         (struct bitpack_d): Likewise.
10976         (struct streamer_hooks): Declare.
10977         (streamer_hooks): Declare.
10978         (lto_streamer_hooks_init): Declare.
10979         (lto_streamer_write_tree): Declare.
10980         (lto_streamer_read_tree): Declare.
10981         (streamer_hooks_init): Declare.
10982         (lto_is_streamable): Move to lto-streamer.c
10983
10984 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10985
10986         * longlong.h (smul_ppmm): The resulting register pair contains the
10987         higher order word first.
10988
10989 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10990
10991         PR tree-optimization/46728
10992         * builtins.c (powi_table): Remove.
10993         (powi_lookup_cost): Remove.
10994         (powi_cost): Remove.
10995         (expand_powi_1): Remove.
10996         (expand_powi): Remove.
10997         (expand_builtin_pow_root): Remove.
10998         (expand_builtin_pow): Remove.
10999         (expand_builtin_powi): Eliminate handling of constant exponent.
11000         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
11001
11002 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11003
11004         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
11005
11006 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11007
11008         * dce.c (reset_unmarked_insns_debug_uses): New.
11009         (delete_unmarked_insns): Skip debug insns.
11010         (prescan_insns_for_dce): Likewise.
11011         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
11012         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
11013         active reg can be found.
11014         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
11015         (convert_regs_1): Use it.
11016
11017 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11018
11019         * tree-pretty-print.c (dump_function_header): Add flags.
11020         Don't dump decl_uid with nouid.
11021         * tree-pretty-print.h (dump_function_header): Adjust.
11022         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
11023         * passes.c (pass_init_dump_file): Pass dump_flags on.
11024         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
11025
11026 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11027
11028         PR bootstrap/49270
11029         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
11030
11031 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
11032
11033         PR tree-optimization/49243
11034         * calls.c (setjmp_call_p): Also check if fndecl has the
11035         returns_twice attribute.
11036
11037 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11038
11039         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
11040         -ffast-math etc.
11041
11042 2011-06-06  Richard Henderson  <rth@redhat.com>
11043             Georg-Johann Lay  <avr@gjlay.de>
11044
11045         PR target/42210
11046         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
11047         New predicates.
11048         * config/avr/avr.md ("insv"): New insn expander.
11049         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
11050         "*insv.not.io", "*insv.reg"): New insns.
11051
11052 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
11053
11054         PR target/49285
11055         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
11056         to nonimmediate_operand from memory_operand for the operand that is to
11057         be forced to memory by the expander.  Lose the constraints.
11058
11059 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
11060
11061         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
11062         EH return when delayed branches are disabled.
11063
11064 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
11065
11066         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
11067         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
11068         calculation.
11069         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
11070         Simplify MODE_V1DF and MODE_V2SF handling.
11071         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
11072         Simplify MODE_SF handling.
11073
11074 2011-06-04  Jan Hubicka  <jh@suse.cz>
11075
11076         PR tree-optimization/48893
11077         PR tree-optimization/49091
11078         PR tree-optimization/49179
11079         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
11080         Bounds check.
11081
11082 2011-06-04  Jan Hubicka  <jh@suse.cz>
11083
11084         PR lto/48954
11085         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
11086         bitmaps.
11087
11088 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11089
11090         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
11091
11092 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
11093
11094         PR target/49281
11095         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
11096         to be strictly smaller than 1 << shiftcount.
11097
11098 2011-06-04  Jan Hubicka  <jh@suse.cz>
11099
11100         PR tree-optimize/48929
11101         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
11102         of empty predicate.
11103
11104 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
11105
11106         PR debug/48333
11107         * calls.c (emit_call_1): Prefer the __builtin declaration of
11108         builtin functions.
11109
11110 2011-06-03   Diego Novillo  <dnovillo@google.com>
11111
11112         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
11113         (lto_input_tree_pointers): Likewise.
11114         * lto-streamer-out.c (pack_value_fields): Likewise.
11115         (lto_output_tree_pointers): Likewise.
11116         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
11117         and OPTIMIZATION_NODE.
11118
11119 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11120
11121         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
11122         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
11123         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
11124         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
11125         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
11126         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
11127         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
11128         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
11129         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
11130         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
11131         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
11132         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
11133         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
11134         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
11135         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
11136         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
11137         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
11138         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
11139         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
11140         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
11141         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
11142         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
11143         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
11144         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
11145         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
11146         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
11147         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
11148         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
11149         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
11150         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
11151         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
11152         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
11153         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
11154         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
11155         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
11156         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
11157         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
11158         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
11159         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
11160         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
11161         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
11162         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
11163         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
11164         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
11165         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
11166         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
11167         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
11168         * system.h (MD_UNWIND_SUPPORT): Poison.
11169         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
11170         * doc/tm.texi: Regenerate.
11171         * unwind-dw2.c: Include md-unwind-support.h instead of
11172         MD_UNWIND_SUPPORT.
11173         * config/ia64/unwind-ia64.c: Likewise.
11174         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11175
11176 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
11177
11178         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
11179
11180 2011-06-03  Richard Henderson  <rth@redhat.com>
11181             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11182
11183         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
11184         (sigill_hdlr): Correct insn, insn size.
11185         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
11186
11187 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11188
11189         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
11190         t-slibgcc-dummy.
11191         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
11192         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
11193         * config/mips/t-iris: Remove.
11194         * config/mips/t-irix6: New file.
11195         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
11196
11197 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11198
11199         * Makefile.in (LIB2ADDEHDEP): Remove.
11200         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
11201         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
11202         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
11203         * config/t-darwin (LIB2ADDEHDEP): Remove.
11204         * config/t-freebsd (LIB2ADDEHDEP): Remove.
11205         * config/t-linux (LIB2ADDEHDEP): Remove.
11206
11207 2011-06-03  Diego Novillo  <dnovillo@google.com>
11208
11209         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
11210         (lto_register_var_decl_in_symtab): Likewise.
11211         (lto_register_function_decl_in_symtab): Likewise.
11212         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
11213         logic to uniquify_nodes.
11214
11215 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11216
11217         * config/alpha/t-osf5: Remove.
11218         * config/alpha/t-osf-pthread: Remove.
11219         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
11220         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
11221
11222 2011-06-03  Julian Brown  <julian@codesourcery.com>
11223
11224         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
11225         (strongarm1110): Use strongarm tuning.
11226         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
11227         * config/arm/arm.c (arm_strongarm_tune): New.
11228         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11229         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
11230         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
11231         setting, using previous defaults or 1 for Cortex-A5.
11232         (arm_option_override): Set max_insns_skipped from current tuning.
11233
11234 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
11235
11236         * doc/install.texi (Options specification): Document --with-specs.
11237
11238 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11239
11240         * config/arm/neon.md (orndi3_neon): Actually split it.
11241
11242 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11243
11244         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
11245         * var-tracking.c (reverse_op): Limite recurse depth to 5.
11246
11247 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11248
11249         PR debug/47590
11250         * target.def (delay_sched2, delay_vartrack): New.
11251         * doc/tm.texi.in: Update.
11252         * doc/tm.texi: Rebuild.
11253         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
11254         * var-tracking.c (gate_handle_var_tracking): Likewise.
11255         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
11256         (bfin_flag_var_tracking): Drop.
11257         (output_file_start): Don't save and override flag_var_tracking.
11258         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
11259         (bfin_reorg): Test original variables.
11260         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11261         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
11262         (ia64_flag_var_tracking): Drop.
11263         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11264         (ia64_file_start): Don't save and override flag_var_tracking.
11265         (ia64_override_options_after_change): Ditto
11266         flag_schedule_insns_after_reload.
11267         (ia64_reorg): Test original variables.
11268         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
11269         (picochip_flag_var_tracking): Drop.
11270         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11271         (picochip_option_override): Don't save and override
11272         flag_schedule_insns_after_reload.
11273         (picochip_asm_file_start): Ditto flag_var_tracking.
11274         (picochip_reorg): Test original variables.
11275         * config/spu/spu.c (spu_flag_var_tracking): Drop.
11276         (TARGET_DELAY_VARTRACK): Define.
11277         (spu_var_tracking): New.
11278         (spu_machine_dependent_reorg): Call it.
11279         (asm_file_start): Don't save and override flag_var_tracking.
11280
11281 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
11282
11283         PR target/49163
11284         * config/sh/predicates.md (general_movsrc_operand): Return 0
11285         for memory and memory subreg of which address is an invalid
11286         indexed address for QI and HImode.
11287         (general_movdst_operand): Likewise.
11288
11289 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11290
11291         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
11292         edges only, when there is a non-local label in the function.
11293         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
11294
11295 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11296
11297         * config/i386/constraints.md (Y3): New register constraint.
11298         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
11299         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
11300         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
11301         *sse2_interleave_lowv2df.
11302
11303 2011-06-02  Julian Brown  <julian@codesourcery.com>
11304
11305         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
11306         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
11307         (arm_cortex_a5_tune): New.
11308
11309 2011-06-02  Julian Brown  <julian@codesourcery.com>
11310
11311         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
11312         * config/arm/arm.c (arm_default_branch_cost): New.
11313         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11314         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
11315         (arm_fa726_tune): Set branch_cost field using
11316         arm_default_branch_cost.
11317         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
11318         current_tune structure.
11319         * dojump.c (tm_p.h): Include file.
11320
11321 2011-06-02  Julian Brown  <julian@codesourcery.com>
11322
11323         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
11324         tuning.
11325         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
11326         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
11327         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
11328         field.
11329         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
11330         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
11331         (arm_fa726te_tune): Add prefer_constant_pool setting.
11332         (arm_v6t2_tune, arm_cortex_tune): New.
11333         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
11334         prefer_constant_pool setting.
11335
11336 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11337
11338         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
11339         switch statement.
11340         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
11341         (*movdf_internal) <case 6,7,8>: Ditto.
11342
11343         * config/i386/constraints.md (Y4): New register constraint.
11344         * config/i386/sse.md (vec_set<mode>_0): Merge with
11345         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
11346         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
11347         *vec_extractv2di_1_sse.
11348         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
11349         and *vec_concatv2di_rex64_sse.
11350
11351 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
11352
11353         PR target/48807
11354         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
11355         of cgraph_local_info for null before attempting to use it.
11356
11357 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11358
11359         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
11360         (current_function_dynamic_alloc_count): Delete.
11361         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
11362         (expand_builtin_nonlocal_goto): Remove obsolete comment.
11363         (expand_builtin_update_setjmp_buf): Remove dead code.
11364         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
11365         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
11366         support.
11367         * function.c (instantiate_virtual_regs): Likewise.
11368         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
11369         for a block with a single abnormal incoming edge.
11370         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
11371         (SETJMP_VIA_SAVE_AREA): Delete.
11372         * config/sparc/sparc-protos.h (load_got_register): Declare.
11373         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
11374         (load_got_register): Make global.
11375         (sparc_frame_pointer_required): Add 'static'.
11376         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
11377         (sparc_builtin_setjmp_frame_value): New function.
11378         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
11379         (save_stack_nonlocal): New expander.
11380         (restore_stack_nonlocal): Likewise.
11381         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
11382         (nonlocal_goto_internal): New insn.
11383         (goto_handler_and_restore): Delete.
11384         (builtin_setjmp_setup): Likewise.
11385         (do_builtin_setjmp_setup): Likewise.
11386         (setjmp): Likewise.
11387         (builtin_setjmp_receiver): New expander.
11388
11389 2011-06-01  David Li  <davidxl@google.com>
11390
11391         PR middle-end/49261
11392         * tree-pretty-print.c (dump_function_header): Format cleanup.
11393
11394 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
11395
11396         PR target/49238
11397         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
11398         needed when original operands are used for msw_skip comparison.
11399
11400 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11401
11402         PR debug/49250
11403         * var-tracking.c (add_uses, add_stores): Don't call
11404         cselib_subst_to_values on ENTRY_VALUE.
11405
11406 2011-06-01  Diego Novillo  <dnovillo@google.com>
11407
11408         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
11409         output_record_start with LTO_null instead of output_zero.
11410         (lto_output_ts_binfo_tree_pointers): Likewise.
11411         (lto_output_tree): Likewise.
11412         (output_eh_try_list): Likewise.
11413         (output_eh_region): Likewise.
11414         (output_eh_lp): Likewise.
11415         (output_eh_regions): Likewise.
11416         (output_bb): Likewise.
11417         (output_function): Likewise.
11418         (output_unreferenced_globals): Likewise.
11419         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
11420         instead of NUM_TREE_CODES.
11421         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
11422         (lto_output_int_in_range): Change << to >> when shifting VAL.
11423
11424 2011-06-01  Diego Novillo  <dnovillo@google.com>
11425
11426         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
11427         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
11428
11429 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11430
11431         PR target/45074
11432         * optabs.h (valid_multiword_target_p): Declare.
11433         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
11434         doing multi-word operations.
11435         * optabs.c (expand_binop): Likewise.
11436         (expand_doubleword_bswap): Likewise.
11437         (expand_absneg_bit): Likewise.
11438         (expand_unop): Likewise.
11439         (expand_copysign_bit): Likewise.
11440         (multiword_target_p): New function.
11441
11442 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11443
11444         PR rtl-optimization/48830
11445         PR rtl-optimization/48808
11446         PR rtl-optimization/48792
11447         * reload.c (push_reload): Check contains_reg_of_mode.
11448         * reload1.c (strip_paradoxical_subreg): New function.
11449         (gen_reload_chain_without_interm_reg_p): Use it to handle
11450         paradoxical subregs.
11451         (emit_output_reload_insns, gen_reload): Likewise.
11452
11453 2011-06-01  David Li  <davidxl@google.com>
11454
11455         * predict.c : Change pass name
11456         * ipa.c: Ditto.
11457         * dce.c: Ditto.
11458         * tree-profile.c: Ditto.
11459         * except.c: Ditto.
11460
11461 2011-06-01  David Li  <davidxl@google.com>
11462
11463         * tree-pretty-print.c (dump_function_header): New function.
11464         * final.c (rest_of_clean_state): Use header dumper.
11465         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
11466         * passes.c (pass_init_dump_file): Use header dumper.
11467
11468 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11469
11470         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
11471         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
11472         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
11473         New functions.
11474         (mem_loc_descriptor): Use them.
11475
11476         * var-tracking.c (create_entry_value): New function.
11477         (vt_add_function_parameter): Use it.
11478
11479 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11480
11481         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
11482         Include <signal.h>, <ucontext.h>.
11483         (sigill_caught): Define.
11484         (sigill_hdlr): New function.
11485         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
11486         insns can be executed.
11487         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
11488         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
11489
11490 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11491
11492         * config/t-slibgcc-darwin: Move to ...
11493         * config/t-slibgcc-dummy: ... this.  Clarify comments.
11494         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
11495         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
11496         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
11497         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
11498         Remove i386/t-crtstuff from tmake_file.
11499         (i[34567]86-*-solaris2*): Remove t-svr4,
11500         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
11501         t-slibgcc-dummy.
11502         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
11503         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
11504         sparc/t-crtfm from tmake_file.
11505         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
11506         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
11507         Remove extra_parts.
11508         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
11509         * config/i386/t-nwld (SHLIB_LINK): Remove.
11510         * config/i386/t-rtems-i386: Rename to ...
11511         * config/i386/t-rtems: ... this.
11512         ($(T)crti.o, $(T)crtn.o): Remove.
11513         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
11514         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
11515         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
11516         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
11517         EXTRA_MULTILIB_PARTS): Remove.
11518         * config/sparc/t-sol2-64: Likewise.
11519         * config/sparc/t-sol2: Remove.
11520         * config/sparc/t-crtin: Remove.
11521         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
11522         * config/i386/gmon-sol2.c: Remove.
11523         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
11524         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
11525         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
11526         * config/i386/sol2-gc1.asm: Remove.
11527         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
11528         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
11529         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
11530         * config/t-slibgcc-sld: Remove.
11531
11532 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11533
11534         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
11535         base_type_for_mode with op_mode instead of mode.
11536
11537 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
11538
11539         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
11540         Cortex-A15.
11541         * config/arm/arm-tune.md: Regenerate.
11542         * config/arm/arm-tables.opt: Regenerate.
11543         * config/arm/arm.c (FL_DIV): Rename...
11544         (FL_THUMB_DIV): ... to this.
11545         (FL_ARM_DIV): Define.
11546         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
11547         (arm_arch_hwdiv): Remove.
11548         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
11549         (arm_issue_rate): Add cortexr5.
11550         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
11551         __ARM_ARCH_EXT_IDIV__.
11552         (TARGET_IDIV): Define.
11553         (arm_arch_hwdiv): Remove.
11554         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
11555         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
11556         (divsi3, udivsi3): New patterns.
11557         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
11558         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
11559
11560 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11561
11562         * ipa-utils.c (ipa_dfs_info): New field scc_no.
11563         * ipa-utils.c (searchc): Set scc_no.
11564
11565 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11566
11567         * ipa-utils.c (searchc_env): New field allow_overwritable.
11568         (searchc): do not ignore edges to overwritable nodes if indicated
11569         by env->allow_overwritable.
11570         (ipa_reduced_postorder): Set env.allow_overwritable.
11571
11572 2011-06-01  Richard Guenther  <rguenther@suse.de>
11573
11574         * tree.c (free_lang_data): Do not reset boolean_type_node nor
11575         char_type_node.
11576         * lto-streamer.c (lto_record_common_node): Take node pointer,
11577         do not register types.
11578         (lto_preload_common_nodes): Explicitly skip preloading nodes
11579         that differ between frontends.
11580
11581 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11582
11583         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
11584         NON_FLOAT_REGS.
11585
11586 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11587
11588         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
11589         parameter value for dump. Dump cost on outermost call only.
11590         (rs6000_memory_move_cost): Dump cost on outermost call only.
11591
11592 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11593
11594         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
11595         DW_OP_GNU_convert ops.
11596
11597         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
11598         cselib_preserve_constants.
11599         (cselib_lookup_1): If cselib_preserve_constants,
11600         a new VALUE is being created for REG and there is a VALUE for the
11601         same register in wider mode, add another loc with lowpart SUBREG of
11602         the wider VALUE.
11603         (cselib_subst_to_values): Handle ENTRY_VALUE.
11604         * var-tracking.c  (replace_expr_with_values): Return NULL for
11605         ENTRY_VALUE too.
11606         * dwarf2out.c (convert_descriptor_to_signed): New function.
11607         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
11608         instead of two shifts.
11609         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
11610         the right mode if needed.
11611         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
11612         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
11613         convert_descriptor_to_signed.
11614         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
11615         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
11616
11617         PR target/48688
11618         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
11619
11620 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11621
11622         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
11623         of X87MODEI12 and SWI48x instead of SSEMODEI24.
11624         (SWI248x): New mode iterator, rename from X87MODEI.
11625         (X87MODEI): Remove mode iterator.
11626         (X87MODEI12): Ditto.
11627         (SSEMODEI24): Ditto.
11628
11629 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11630
11631         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
11632         * doc/invoke.texi: Document max-vartrack-expr-depth.
11633         * var-tracking.c (EXPR_DEPTH): New.
11634         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
11635
11636 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11637
11638         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
11639         * config/i386/sse.md: Add n to negated FMA pattern names.
11640
11641 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11642
11643         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
11644
11645 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11646
11647         * gengtype-state.c (read_state_params_structs): Initialize previous.
11648
11649 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11650
11651         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
11652         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
11653
11654 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11655
11656         * config/i386/i386.md (*movtf_internal): Avoid allocating general
11657         registers.  Penalize F*r->o alternative to prevent partial memory
11658         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
11659         CONST_DOUBLE immediates when optimizing function for size.  Do not move
11660         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11661         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
11662         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
11663         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
11664         alternatives.
11665         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
11666
11667         (fp_register_operand splitters): Use fp_register_operand
11668         constraint.  Do not use FP_REG_P in insn condition.
11669         (any_fp_register_operand splitters): Use any_fp_register_operand
11670         constraint.  Do not use ANY_FP_REG_P in insn condition.
11671
11672 2011-05-31  Jan Hubicka  <jh@suse.cz>
11673
11674         * cgraph.h (cgraph_inline_failed_t): Give enum a name
11675         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
11676         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
11677         (lto_output_edge): Use output_enum and var_len_unsigned.
11678         (lto_output_varpool_node): Likewise.
11679         (input_overwrite_node): Do not take resolution parameter;
11680         extract it from a bitpack.
11681         (input_node): Do not read resolution; use input_enum and
11682         var_len_unsigned.
11683         (input_varpool_node): Likewise.
11684         (input_edge): Likewise.
11685         (input_cgraph_1): Likewise.
11686
11687 2011-05-31  Richard Guenther  <rguenther@suse.de>
11688
11689         * gimple.c (gimple_register_canonical_type): Do not register
11690         any types via gimple_register_type.
11691
11692 2011-05-31  Jan Hubicka  <jh@suse.cz>
11693
11694         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
11695         of thunks.
11696
11697 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11698
11699         PR rtl-optimization/49235
11700         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
11701         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
11702
11703 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
11704
11705         PR tree-optimization/49093
11706         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
11707         data references.
11708
11709 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
11710
11711         PR debug/49047
11712         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
11713         for concrete functions containing the code of cloned functions.
11714
11715 2011-05-31  Richard Guenther  <rguenther@suse.de>
11716
11717         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
11718         to ...
11719         (forward_propagate_into_comparison_1): ... this.
11720         (forward_propagate_comparison): Rename to ...
11721         (forward_propagate_into_comparison): ... this.  Split out
11722         real forward propagation code to ...
11723         (forward_propagate_comparison): ... this.
11724         (forward_propagate_into_gimple_cond): Remove looping.
11725         (forward_propagate_into_cond): Likewise.
11726         (simplify_not_neg_expr): Return whether we have done something.
11727         (simplify_gimple_switch): Likewise.
11728         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
11729         (ssa_forward_propagate_and_combine): ... this.  Re-structure
11730         to do a forward forward-propagation walk on BBs and a backward
11731         stmt combining walk on BBs.  Consistently re-scan changed statements.
11732         (pass_forwprop): Adjust.
11733
11734 2011-05-30  Ian Lance Taylor  <iant@google.com>
11735
11736         * godump.c (go_format_type): Correct length of name added to
11737         obstack for anonymous field.
11738
11739 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11740
11741         PR target/49186
11742         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
11743         part of the second operand is 0.
11744
11745 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
11746
11747         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
11748         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
11749         to memory for !TARGET_MEMORY_MISMATCH_STALL.
11750         (*movdf_internal_rex64): Do not penalize F->r alternative.
11751         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
11752         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
11753         when optimizing function for size.  Do not move CONST_DOUBLEs
11754         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11755         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
11756         SUBREGs.  Do not check for MEM_P operands in the insn condition,
11757         check for ANY_FP_REGNO_P instead.
11758         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
11759         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
11760         function for speed.
11761         * config/i386/i386.c (ix86_option_override_internal): Do not
11762         set TARGET_INTEGER_DFMODE_MOVES here.
11763
11764 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
11765
11766         PR target/49168
11767         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
11768
11769 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11770
11771         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
11772         DW_TAG_rvalue_reference_type even for
11773         -gdwarf-4 -fno-debug-types-section.
11774
11775 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11776
11777         PR tree-optimization/46728
11778         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
11779         (build_and_insert_binop): New.
11780         (gimple_expand_builtin_pow): Reorder args for
11781         build_and_insert_call; use build_and_insert_binop; add more
11782         optimizations for fractional exponents.
11783
11784 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
11785
11786         PR bootstrap/49190
11787
11788         Revert:
11789         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
11790
11791         * tree.h (struct tree_identifier): Inherit from tree_typed, not
11792         tree_common.
11793         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11794         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11795         TS_BASE instead of TS_COMMON.
11796         * varasm.c (assemble_name): Remove assert.
11797
11798 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
11799
11800         * config.gcc: Keep obselete list sorted.
11801
11802 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11803             Eric Botcazou  <ebotcazou@adacore.com>
11804
11805         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
11806         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
11807         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
11808         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
11809         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
11810
11811 2011-05-30  Richard Guenther  <rguenther@suse.de>
11812
11813         * gimple.c (gimple_types_compatible_p_1): Compare record
11814         and union type members properly.
11815
11816 2011-05-30  Richard Guenther  <rguenther@suse.de>
11817
11818         PR tree-optimization/49210
11819         * ipa-split.c (split_function): Care for the case where the call
11820         result is not trivially convertible to the result holding variable.
11821
11822 2011-05-30  Richard Guenther  <rguenther@suse.de>
11823
11824         PR tree-optimization/49218
11825         * tree-vrp.c (adjust_range_with_scev): Properly check whether
11826         overflow occured.
11827
11828 2011-05-30  Richard Guenther  <rguenther@suse.de>
11829
11830         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
11831         New function split out from ...
11832         (forward_propagate_into_gimple_cond): ... here.  Adjust.
11833         (forward_propagate_into_cond): Likewise.
11834         (forward_propagate_comparison): Also propagate into
11835         comparisons on assignment RHS.  Change return value to
11836         behave similar to forward_propagate_into_cond.
11837         (tree_ssa_forward_propagate_single_use_vars): Handle
11838         strict-overflow warnings properly for forward_propagate_comparison.
11839
11840 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11841
11842         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
11843         from plugin linker.
11844         * configure: Regenerate.
11845
11846 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
11847
11848         PR tree-optimization/49199
11849         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
11850         non-reduction operands are either defined in the loop or by induction.
11851
11852 2011-05-29  Xinliang David Li  <davidxl@google.com>
11853
11854         * opts-global.c (handle_common_deferred_options): Handle new options.
11855         * passes.c (register_one_dump_file): Call register_pass_name.
11856         (execute_one_pass): Check explicit enable/disable flag.
11857         (passr_hash): New function.
11858         (passr_eq): Ditto.
11859         (register_pass_name): Ditto.
11860         (get_pass_by_name): Ditto.
11861         (pass_hash): Ditto.
11862         (pass_eq): Ditto.
11863         (enable_pass): Ditto.
11864         (disable_pass): Ditto.
11865         (is_pass_explicitly_enabled_or_disabled): Ditto.
11866
11867 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
11868
11869         * config/i386/i386.md (*movoi_internal_avx): Use
11870         standard_sse_constant_opcode for alternative 0.
11871         (*movti_internal_sse): Ditto.
11872         (*movti_internal_rex64): Use standard_sse_constant_opcode for
11873         alternative 2.
11874         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
11875         sselog1 type moves.
11876         (*movsi_internal): Ditto.
11877         (*movdi_internal): Ditto.  Add ssecvt type moves.
11878
11879 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
11880
11881         PR target/48830
11882         * rtlanal.c (simplify_subreg_regno): Adjust comment.
11883
11884 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
11885
11886         PR rtl-optimization/49095
11887         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
11888         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
11889
11890 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11891
11892         PR target/43995
11893         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
11894         recurse_p argument.  Only follow register copies if it is set,
11895         and prevent mips_find_pic_call_symbol from recursing.
11896         (mips_find_pic_call_symbol): Add a recurse_p argument.
11897         Pass it to mips_pic_call_symbol_from_set.
11898         (mips_annotate_pic_calls): Update accordingly.
11899
11900 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11901
11902         * emit-rtl.c (try_split): Use a loop to search for
11903         NOTE_INSN_CALL_ARG_LOCATIONs.
11904
11905 2011-05-29  Richard Guenther  <rguenther@suse.de>
11906
11907         PR tree-optimization/49217
11908         * ipa-pure-const.c (propagate_pure_const): Fix typos.
11909
11910 2011-05-28  Jan Hubicka  <jh@suse.cz>
11911
11912         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
11913         length.
11914         (string_slot_free): Remove
11915         (create_output_block): Initialize obstack.
11916         (destroy_output_block): Free obstack.
11917         (lto_string_index): Add PERSISTENT parameter; do not duplicate
11918         the string unless it needs to be added into the hash.
11919         (lto_output_string_with_length): Add persistent attribute;
11920         handle NULL strings.
11921         (lto_output_string): Add PERSISTENT parameter.
11922         (output_string_cst, output_identifier): Simplify.
11923         (lto_output_location_bitpack): Update.
11924         (lto_output_builtin_tree): Update.
11925         * lto-streamer.h (struct output_block): Add obstack.
11926         (lto_output_string, lto_output_string_with_length): Remove
11927         declarations; functions are static now.
11928
11929 2011-05-28  Jan Hubicka  <jh@suse.cz>
11930
11931         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
11932         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
11933         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
11934         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
11935         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
11936         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
11937         unpack_ts_decl_with_vis_value_fields,
11938         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
11939         lto_get_builtin_tree): Use enum and variable length i/o.
11940         * basic-block.h (profile_status_d): Add PROFILE_LAST.
11941         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
11942         New functions.
11943         (bp_pack_enum, bp_unpack_enum): New macros.
11944
11945 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11946
11947         * genrecog.c: Remove redundant forward declarations.
11948
11949 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11950
11951         * config.gcc: Deprecate mips*-*-openbsd*.
11952
11953 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11954
11955         PR bootstrap/49195
11956         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
11957         for match_op_dup.
11958
11959 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
11960
11961         PR middle-end/48981
11962         * gengtype.c (vec_prefix_type): New function.
11963         (note_def_vec): Use vec_prefix_type and change the length
11964         attribute to be based on the prefix.
11965         * vec.c: Include coretypes.h before vec.h.
11966         (struct vec_prefix): Remove.
11967         (vec_gc_p_reserve): Change the offsetof to sizeof.
11968         (vec_gc_p_reserve_exact): Likewise.
11969         (vec_heap_p_reserve): Likewise.
11970         (vec_heap_p_reserve_exact): Likewise.
11971         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
11972         (vec_stack_p_reserve): Change the offsetof to sizeof.
11973         (vec_stack_p_reserve_exact): Likewise.
11974         * vec.h (struct vec_prefix): New struct definition.
11975         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
11976         (VEC_T_GTY(T,B)): Likewise.
11977         (DEF_VEC_FUNC_P(T)): Use prefix field.
11978         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
11979         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
11980
11981 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11982
11983         PR tree-optimization/46728
11984         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
11985         (powi_as_mults): Add gimple_set_location.
11986         (build_and_insert_call): New.
11987         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
11988         0.5, 0.25, 0.75, 1./3., or 1./6.
11989
11990 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
11991
11992         * doc/contrib.texi: Update copyright years.
11993         (Contributors): Add Zdenek Sojka.
11994
11995 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
11996
11997         * c-decl.c (c_push_function_context): Copy the current statement
11998         list stack.
11999         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
12000         (finish_struct): Call building_stmt_list_p instead of checking
12001         cur_stmt_list.
12002         * c-parser.c (c_parser_postfix_expression): Likewise.
12003         * c-typeck.c (c_end_compound_stmt): Likewise.
12004         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
12005         * tree-iterator.c (stmt_list_cache): Change to a VEC.
12006         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
12007         (free_stmt_list): Likewise.
12008         * tree.h (struct tree_statement_list): Include typed_tree instead
12009         of tree_common.
12010         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
12011         as TS_TYPED instead of TS_COMMON.
12012
12013 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12014             Uros Bizjak  <ubizjak@gmail.com>
12015
12016         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
12017         (HAVE_AS_IX86_TLSGDPTL): Define.
12018         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
12019         (HAVE_AS_IX86_TLSLDMPLT): Define.
12020         * configure: Regenerate.
12021         * config.in: Regenerate.
12022         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
12023         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
12024         TARGET_SUN_TLS, use @tlsgdplt or @plt.
12025         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
12026         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
12027         @tlsldmplt or @plt.
12028         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
12029
12030 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12031
12032         * sched-int.h (struct _haifa_deps_insn_data): New members cond
12033         and reverse_cond.
12034         (INSN_COND, INSN_REVERSE_COND): New macros.
12035         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
12036         once.
12037         (sched_get_condition_with_rev): Cache the results, and look them up
12038         if possible.
12039         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
12040         are clobbered by the current insn.
12041         * target.def (exposed_pipline): New sched data hook.
12042         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
12043         * doc/tm.texi: Regenerate.
12044
12045 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12046
12047         PR tree-optimization/49170
12048         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
12049         sincos or cexp.
12050
12051 2011-05-27  Richard Guenther  <rguenther@suse.de>
12052
12053         PR middle-end/49189
12054         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
12055         of comparisons.
12056
12057 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12058
12059         * haifa-sched.c (sched_scan_info): Remove.
12060         (schedule_block): Call sched_extend_luids rather than sched_init_luids
12061         with NULL args.
12062         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
12063         Remove functions.
12064         (sched_scan): Remove.
12065         (sched_extend_luids): Renamed from luids_extend_insn and no longer
12066         static.  All callers changed.
12067         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
12068         static.  All callers changed.
12069         (sched_init_luids): Remove all arguments except the first.  All
12070         callers changed.  Don't use sched_scan.
12071         (haifa_init_h_i_d): Likewise.
12072         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
12073         manually rather than using sched_init_luids.  Likewise with
12074         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
12075         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
12076         rather than sched_init_luids with NULL args.
12077         * sel-sched-ir.c (new_insns): Remove variable.
12078         (sched_scan): New static function, previously in haifa-sched.c.  Remove
12079         all arguments but the first two; all callers changed.
12080         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
12081         rather than sched_init_luids.
12082         (sel_init_bbs): Remove second argument.  All callers changed.
12083         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
12084         with NULL arguments.
12085         (create_insn_rtx_from_pattern): Likewise.
12086         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
12087         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
12088         (sched_init_insn_luid, sched_extend_luids): Declare.
12089         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
12090         declarations.
12091
12092 2011-05-27  Richard Guenther  <rguenther@suse.de>
12093
12094         PR middle-end/49177
12095         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
12096         A CMP B ? (T) true : (T) false for non-integral types T again.
12097
12098 2011-05-27  Jan Hubicka  <jh@suse.cz>
12099
12100         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
12101         so 0 means NULL string.
12102         (lto_output_string_with_length): ... here.
12103         (lto_output_string, output_string_cst, output_identifier): Update
12104         handling of NULL strings.
12105         (lto_output_location_bitpack): New function.
12106         (lto_output_location): Use it.
12107         (lto_output_tree_ref): Use output_record_start.
12108         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
12109         len values.
12110         * lto-streamer-in.c (string_for_index): Break out from ...; offset
12111         values by 1.
12112         (input_string_internal): ... here;
12113         (input_string_cst, input_identifier, lto_input_string): Update handling
12114         of NULL strings.
12115         (lto_input_location_bitpack): New function
12116         (lto_input_location): Use it.
12117         (unpack_ts_type_common_value_fields): Pack align & alias in var len
12118         values.
12119         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
12120         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
12121         (bp_pack_value): Sanity check the value range.
12122         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
12123         New functions.
12124         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
12125         New functions.
12126
12127 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
12128
12129         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
12130         call_arg_location instructions down the floor.
12131
12132 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
12133
12134         PR rtl-optimization/49154
12135         * ira.c (setup_pressure_classes): Process class without sublcasses
12136         as a candidate for pressure classes.
12137
12138 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
12139
12140         PR rtl-optimization/48575
12141         * genrecog.c (position_type): New enum.
12142         (position): New structure.
12143         (decision): Use position structure instead of a string.
12144         (root_pos, peep2_insn_pos_list): New variables.
12145         (next_position, compare_positions): New functions.
12146         (new_decision): Use position structures instead of strings.
12147         (maybe_both_true): Likewise.
12148         (change_state): Likewise.
12149         (write_tree): Likewise.
12150         (make_insn_sequence): Likewise.
12151
12152 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12153
12154         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
12155         TS_BASE instead of TS_COMMON.
12156         (find_decls_types_r): Check for TS_TYPED structure before looking at
12157         TREE_TYPE.
12158         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
12159         Add chain field.
12160         (BLOCK_CHAIN): Use new chain field.
12161
12162 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
12163
12164         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
12165         moves expensive on Power7 also.
12166
12167 2011-05-26  Richard Guenther  <rguenther@suse.de>
12168
12169         * fold-const.c (fold_unary_loc): Remove bogus code.
12170
12171 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12172
12173         * tree.h (struct tree_identifier): Inherit from tree_typed, not
12174         tree_common.
12175         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12176         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12177         TS_BASE instead of TS_COMMON.
12178         * varasm.c (assemble_name): Remove assert.
12179
12180 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12181
12182         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
12183         substituted first.
12184         * libgcc-std.ver: Delete file.
12185
12186 2011-05-26  Richard Guenther  <rguenther@suse.de>
12187
12188         PR tree-optimization/48702
12189         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
12190         only when we know the base address is within bounds.
12191         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
12192         assume the base address of TARGET_MEM_REFs is in bounds.
12193
12194 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12195
12196         PR target/49099
12197         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
12198         declaration in TARGET_SOLARIS.
12199
12200 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
12201
12202         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
12203         The instruction is then expanded explicitly.
12204         (supported_compare): Callable instruction.
12205         (compare): Likewise.
12206
12207 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12208
12209         PR c++/49165
12210         * gimplify.c (shortcut_cond_r): Don't special case
12211         COND_EXPRs if they have void type on one of their arms.
12212
12213 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12214
12215         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
12216         to reduce duplication, and to achieve a slightly more logical order
12217         of operations.
12218
12219 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12220
12221         PR tree-optimization/49161
12222         * tree-vrp.c (struct case_info): New type.
12223         (compare_case_labels): Sort case_info structs instead of
12224         trees, and not primarily by CASE_LABEL uids but by
12225         label_for_block indexes.
12226         (find_switch_asserts): Put case labels into struct case_info
12227         array instead of TREE_VEC, adjust sorting, compare label_for_block
12228         values instead of CASE_LABELs.
12229
12230 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12231
12232         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
12233         ("orndi3_neon"): Likewise.
12234         ("bic<mode>3_neon"): Likewise.
12235
12236 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
12237
12238         PR tree-optimization/49038
12239         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
12240         Ensure at least one epilogue iteration if required by data
12241         accesses with gaps.
12242         * tree-vectorizer.h (struct _loop_vec_info): Add new field
12243         to mark loops that require peeling for gaps.
12244         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
12245         (vect_get_known_peeling_cost): Take peeling for gaps into
12246         account.
12247         (vect_transform_loop): Generate epilogue if required by data
12248         access with gaps.
12249         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
12250         loop as requiring an epilogue if there are gaps in the end of
12251         the strided group.
12252
12253 2011-05-25  Ian Lance Taylor  <iant@google.com>
12254
12255         * godump.c (go_format_type): Output the first field with a usable
12256         Go type, if any.
12257
12258 2011-05-25  Ian Lance Taylor  <iant@google.com>
12259
12260         * godump.c (go_format_type): Check for invalid type names, pointer
12261         target types, and struct field types.
12262
12263 2011-05-25  Jason Merrill  <jason@redhat.com>
12264
12265         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
12266
12267 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
12268
12269         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
12270
12271 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12272
12273         * config/i386/i386.md (*movqi_extv_1)): Put back
12274         "register_operand" check in "type" calculation.
12275         (*movqi_extzv_2): Likewise.
12276
12277 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12278
12279         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
12280
12281 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12282
12283         PR bootstrap/49160
12284         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
12285         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
12286         __divxc3, __divtc3): Wrap definitions in #ifndef.
12287
12288 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12289
12290         PR target/49142
12291         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
12292         "register_operand" check and replace q_regs_operand with
12293         QIreg_operand in "type" calculation.
12294         (*movqi_extv_1): Likewise.
12295         (*movqi_extzv_2_rex64): Likewise.
12296         (*movqi_extzv_2): Likewise.
12297
12298         * config/i386/predicates.md (QIreg_operand): New.
12299
12300 2011-05-25  Richard Guenther  <rguenther@suse.de>
12301
12302         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
12303         type-based offset disambiguation, streamline MEM_REF and
12304         TARGET_MEM_REF handling.
12305
12306 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12307
12308         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
12309         (bdesc_special_args): Add pause intrinsic.
12310
12311         * config/i386/i386.md (UNSPEC_PAUSE): New.
12312         (pause): Likewise.
12313         (*pause): Likewise.
12314         * config/i386/ia32intrin.h (__pause): Likewise.
12315
12316         * doc/extend.texi (X86 Built-in Functions): Add documentation for
12317         pause intrinsic.
12318
12319 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12320
12321         PR tree-optimization/46728
12322         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
12323         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
12324
12325 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
12326
12327         * tree.h (struct tree_exp): Inherit from struct tree_typed.
12328         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
12329         instead of TS_COMMON.
12330
12331 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12332
12333         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
12334         LIBGCC2_GNU_PREFIX is defined.
12335         (__N): New macro.
12336         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
12337         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
12338         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
12339         __clz_tab): Define using __N.
12340         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
12341         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
12342         * target.def (libfunc_gnu_prefix): New hook.
12343         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
12344         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
12345         * doc/tm.texi: Regenerate.
12346         * system.h (LIBGCC2_GNU_PREFIX): Poison.
12347         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
12348         account.
12349         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
12350         (init_optabs): Likewise for the bswap libfuncs.
12351         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
12352         and divide.
12353         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
12354         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
12355         * libgcc-std.ver: Remove.
12356         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
12357         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
12358         libgcc-std.ver.
12359         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12360         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
12361         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
12362         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
12363         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
12364         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12365         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12366         * config/fixed-bit.h (FIXED_OP): Define differently depending on
12367         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
12368         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
12369
12370 2011-05-25  Jan Hubicka  <jh@suse.cz>
12371
12372         * lto-streamer-out.c (output_record_start): Use lto_output_enum
12373         (lto_output_tree): Use output_record_start.
12374         * lto-streamer-in.c (input_record_start): Use lto_input_enum
12375         (lto_get_pickled_tree): Use input_record_start.
12376         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
12377         (lto_value_range_error): New function.
12378         * lto-streamer.h (lto_value_range_error): Declare.
12379         (lto_output_int_in_range, lto_input_int_in_range): New functions.
12380         (lto_output_enum, lto_input_enum): New macros.
12381
12382 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12383
12384         * common.opt (flag_stack_usage_info): New variable.
12385         (-Wstack-usage): New option.
12386         * doc/invoke.texi (Warning options): Document -Wstack-usage.
12387         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
12388         <OPT_fstack_usage>: Likewise.
12389         * toplev.c (output_stack_usage): Handle -Wstack-usage.
12390         * calls.c (expand_call): Test flag_stack_usage_info variable instead
12391         of flag_stack_usage.
12392         (emit_library_call_value_1): Likewise.
12393         * explow.c (allocate_dynamic_stack_space): Likewise.
12394         * function.c (instantiate_virtual_regs ): Likewise.
12395         (prepare_function_start): Likewise.
12396         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
12397         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12398         * config/arm/arm.c (arm_expand_prologue): Likewise.
12399         (thumb1_expand_prologue): Likewise.
12400         * config/avr/avr.c (expand_prologue): Likewise.
12401         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12402         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12403         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
12404         * config/mips/mips.c (mips_expand_prologue): Likewise.
12405         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12406         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12407         * config/s390/s390.c (s390_emit_prologue): Likewise.
12408         * config/sh/sh.c (sh_expand_prologue): Likewise.
12409         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12410         * config/spu/spu.c (spu_expand_prologue): Likewise.
12411
12412 2011-05-25  Richard Guenther  <rguenther@suse.de>
12413
12414         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
12415         (gimple_canonical_types_compatible_p): Likewise.
12416
12417 2011-05-25  Jan Hubicka  <jh@suse.cz>
12418
12419         PR middle-end/49062
12420         * ipa.c (function_and_variable_visibility): Only add to same
12421         comdat group list if DECL_ONE_ONLY.
12422
12423 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
12424
12425         PR rtl-optimization/49014
12426         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
12427
12428 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
12429
12430         PR target/49128
12431         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
12432
12433 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12434
12435         PR rtl-optimization/48757
12436         * ira-build.c (loop_with_eh_edge_p): Rename to
12437         loop_with_complex_edge_p, check edges on complexity, make function
12438         conditional.
12439         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
12440         conditional.
12441
12442 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12443
12444         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
12445         force flag_ira_share_save_slots to 0.
12446
12447 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12448
12449         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
12450         (vt_initialize): Set PROLOGUE_BB unconditionally.
12451         Add block comment about CFA_BASE_RTX machinery.
12452         Reset FP_CFA_OFFSET to -1 on all invalid paths.
12453         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
12454
12455 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12456
12457         PR objc/48187
12458         * c-parser.c (c_parser_objc_class_instance_variables): More robust
12459         parsing of syntax error in ObjC instance variable lists.  In
12460         particular, avoid an infinite loop if there is a stray ']'.
12461         Updated error message.
12462
12463 2011-05-24  Ian Lance Taylor  <iant@google.com>
12464
12465         * godump.c (go_define): Don't accept a string immediately after
12466         another operand.
12467
12468 2011-05-24  Ian Lance Taylor  <iant@google.com>
12469
12470         * godump.c (struct godump_container): Add invalid_hash field.
12471         (go_format_type): Return false if type is found in invalid_hash.
12472         (go_output_typedef): Add invalid type to invalid_hash.
12473         (go_finish): Create and delete invalid_hash.
12474
12475 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12476
12477         PR tree-optimization/46728
12478         * tree-ssa-math-opts.c (powi_table): New.
12479         (powi_lookup_cost): New.
12480         (powi_cost): New.
12481         (powi_as_mults_1): New.
12482         (powi_as_mults): New.
12483         (gimple_expand_builtin_powi): New.
12484         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
12485         (gate_cse_sincos): Remove sincos/cexp restriction.
12486
12487 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12488
12489         PR target/3746
12490         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
12491         mips-tdump native.
12492         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
12493         * mips-tdump.c: Likewise.
12494
12495 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12496
12497         PR target/49128
12498         * config/i386/driver-i386.c (host_detect_local_cpu): Always
12499         add -mno-XXX.  Handle FMA.
12500
12501 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12502
12503         PR rtl-optimization/48633
12504         * ira-build.c (loop_with_eh_edge_p): New function.
12505         (mark_loops_for_removal): Use it.
12506
12507 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12508
12509         PR rtl-optimization/48971
12510         * ira.c (setup_pressure_classes): Don't check register move cost
12511         for classes with one registers.  Don't add pressure class if there
12512         is a pressure class with the same available hard registers.
12513         Check contains_reg_of_mode.  Fix a typo in collecting
12514         temp_hard_regset.  Ignore hard registers not belonging to a class.
12515
12516 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
12517
12518         PR target/49133
12519         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
12520
12521 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12522             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12523
12524         PR gcov-profile/48845
12525         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
12526
12527 2011-05-24  Richard Guenther  <rguenther@suse.de>
12528
12529         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
12530         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
12531         (gimple_types_compatible_p_1): Adjust.
12532         (iterative_hash_canonical_type): Do not bother about complete vs.
12533         incomplete types.
12534         (gimple_canonical_types_compatible_p): Likewise.
12535
12536 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12537
12538         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
12539
12540 2011-05-24  Richard Guenther  <rguenther@suse.de>
12541
12542         PR bootstrap/49078
12543         * gimple.c (gimple_register_canonical_type): Revert
12544         previous change.
12545         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
12546         does not for a tree for the case where it matters.  Cache
12547         pointer-type alias-sets.
12548
12549 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
12550
12551         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
12552         (OBJS): Remove options.o, opts-common.o and prefix.o.
12553         (OBJS-libcommon-target): New.
12554         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
12555         (BACKEND): Include libcommon-target.a.
12556         (MOSTLYCLEANFILES): Include libcommon-target.a.
12557         (libcommon-target.a): New.
12558         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
12559         prefix.o.
12560
12561 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
12562
12563         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
12564         parts of output shared with the driver.
12565         * optc-gen.awk: Don't generate parts of output not shared with the
12566         driver.
12567         * opth-gen.awk: Remove GCC_DRIVER conditionals.
12568         * doc/options.texi (SourcerInclude): Mention options-save.c.
12569         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
12570         (OBJS): Add options-save.o.
12571         (options-save.c, options-save.o): New.
12572         (options.o): Update dependencies.
12573         (gcc-options.o): Remove.
12574         (mostlyclean): Remove options-save.c.
12575
12576 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12577
12578         PR debug/49032
12579         * dbxout.c: Include cgraph.h.
12580         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
12581         and without value expr, return NULL if no varpool node exists for
12582         it or if it is not needed.
12583         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
12584
12585         PR c/49120
12586         * c-decl.c (start_decl): Convert expr to void_type_node.
12587
12588 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
12589
12590         PR rtl-optimization/48826
12591         * emit-rtl.c (try_split): When splitting a call that is followed
12592         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
12593
12594 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12595
12596         * cfgexpand.c (expand_debug_expr): For unused non-addressable
12597         parameters passed in memory prefer using DECL_INCOMING_RTL over
12598         the pseudos it will be copied into.
12599
12600 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12601
12602         PR target/47315
12603         * config/i386/i386.c (ix86_option_override_internal): Save the
12604         initial options after checking vzeroupper.
12605
12606 2011-05-23  David Li  <davidxl@google.com>
12607
12608         PR tree-optimization/48988
12609         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
12610         Initialize has_valid_pred for each pred chain.
12611
12612 2011-05-23  Richard Guenther  <rguenther@suse.de>
12613
12614         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
12615         (iterative_hash_gimple_type): Always hash type names.
12616
12617 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
12618
12619         * c-typeck.c (build_function_call_vec): Tweak call to
12620         check_function_arguments.
12621
12622 2011-05-23  Richard Guenther  <rguenther@suse.de>
12623
12624         PR tree-optimization/49115
12625         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
12626         is not necessarily carried out, do not claim it kills the ref.
12627         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
12628
12629 2011-05-23  Richard Guenther  <rguenther@suse.de>
12630
12631         PR middle-end/15419
12632         * builtins.c (fold_builtin_memory_op): Be less restrictive about
12633         what pointer types we accept for folding.
12634
12635 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12636
12637         * gthr-gnat.c: Remove.
12638         * gthr-gnat.h: Remove.
12639         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
12640         * config/t-freebsd (LIB2ADDEH): Likewise.
12641         * config/t-linux (LIB2ADDEH): Likewise.
12642         * config/t-sol2 (LIB2ADDEH): Likewise.
12643         * config/ia64/t-vms (LIB2ADDEH): Likewise.
12644         * configure.ac (target_thread_file): Remove gnat handling.
12645         * configure: Regenerate.
12646         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
12647
12648 2011-05-23  Tristan Gingold  <gingold@adacore.com>
12649             Eric Botcazou  <ebotcazou@adacore.com>
12650
12651         * gcov.c (create_file_names): If no object directory is specified,
12652         keep the directory of the file.
12653
12654 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12655
12656         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
12657         * configure: Regenerate.
12658
12659 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12660
12661         PR middle-end/48973
12662         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
12663         failed and the comparison has a single bit signed type, use
12664         constm1_rtx instead of const1_rtx for true value.
12665         (do_store_flag): If ops->type is single bit signed type, disable
12666         signel bit test optimization and pass -1 instead of 1 as last
12667         parameter to emit_store_flag_force.
12668
12669 2011-05-23  Tom de Vries  <tom@codesourcery.com>
12670
12671         PR target/45098
12672         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
12673         function.
12674         (infer_loop_bounds_from_undefined): Use new function.
12675
12676 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12677
12678         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
12679         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
12680         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
12681         and -O0 otherwise.
12682         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
12683
12684 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12685
12686         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
12687         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
12688         returns true.
12689
12690 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12691
12692         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
12693
12694 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12695
12696         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
12697         UNSPEC_MOVE_PIC pattern.
12698
12699 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12700
12701         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
12702         (sparc-*-rtems*): Likewise.
12703         (sparc64-*-elf*): Likewise.
12704         (sparc64-*-rtems*): Likewise.
12705         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
12706         * config/sparc/t-crtin: New file.
12707         * config/sparc/t-sol2 (crti.o): Delete rule.
12708         (crtn.o): Likewise.
12709         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
12710         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
12711         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
12712         (ENDFILE_SPEC): Add crtn.o.
12713
12714 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12715
12716         PR middle-end/48689
12717         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
12718         CODE_CONTAINS_STRUCT (TS_COMMON).
12719
12720 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
12721
12722         PR middle-end/49029
12723         * expmed.c (extract_fixed_bit_field): Test whether target can be used
12724         only after deciding which mode to use.
12725
12726 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12727
12728         PR target/45098
12729         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
12730         for call to get_shiftadd_cost.
12731
12732 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
12733
12734         PR target/49104
12735         * config/i386/cpuid.h (bit_MMXEXT): New define.
12736
12737 2011-05-22  Nick Clifton  <nickc@redhat.com>
12738
12739         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
12740         initialisation of non-existant args[2] element.  Use args[] array
12741         not arg[] array to pass arguments to build_function_type_list.
12742
12743 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
12744
12745         PR tree-optimization/49087
12746         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
12747
12748 2011-05-21  Jason Merrill  <jason@redhat.com>
12749
12750         PR c++/49092
12751         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
12752         static storage duration.
12753
12754 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12755
12756         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
12757         frame pointer.
12758
12759 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12760
12761         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
12762         false if there are call-saved registers here...
12763         (sparc_can_use_return_insn_p): ...but here instead.
12764         (save_or_restore_regs): Fix thinko.
12765         (sparc_expand_prologue): Use current_function_is_leaf.
12766         (sparc_frame_pointer_required): Likewise.
12767
12768 2011-05-21  Nick Clifton  <nickc@redhat.com>
12769
12770         PR target/49098
12771         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
12772
12773 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12774
12775         * gengtype.c (walk_type): Implemented "atomic" GTY option.
12776         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
12777
12778 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
12779
12780         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
12781         * optc-gen.awk: Move common code to opt-read.awk.
12782         * opth-gen.awk: Likewise.
12783         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
12784
12785 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
12786
12787         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
12788
12789 2011-05-20  Tom de Vries  <tom@codesourcery.com>
12790
12791         PR target/45098
12792         * tree-ssa-loop-ivopts.c: Include expmed.h.
12793         (get_shiftadd_cost): New function.
12794         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
12795
12796 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12797
12798         PR bootstrap/49086
12799         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
12800         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
12801
12802 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12803
12804         * Makefile.in: Update comment referring to $(OBJS-common).
12805
12806 2011-05-20  Ian Lance Taylor  <iant@google.com>
12807
12808         * godump.c (go_output_typedef): Put enum constants in the macro
12809         hash table to avoid duplicate Go const definitions.
12810
12811 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12812
12813         * Makefile.in (LIBDEPS): Add libcommon.a.
12814         (LIBS): Likewise.
12815         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
12816         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
12817         pretty-print.o and version.o.
12818         (OBJS-libcommon): New.
12819         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
12820         (BACKEND): Add libcommon.a.
12821         (MOSTLYCLEANFILES): Likewise.
12822         (libcommon.a): New.
12823         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
12824         (cpp$(exeext)): Likewise.
12825         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
12826         pretty-print.o and input.o.
12827         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
12828         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
12829         (errors.o): Remove.
12830         (mips-tfile): Don't explicitly use version.o.
12831         (mips-tdump): Likewise.
12832         (gcov.o): Depend on $(DIAGNOSTIC_H).
12833         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
12834         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
12835         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
12836         * gcov-dump.c: Include intl.h and diagnostic.h.
12837         (main): Initialize diagnostics.
12838         * gcov.c: Include diagnostic.h.
12839         (fnotice): Remove.
12840         (main): Initialize diagnostics.
12841         * lto-wrapper.c: Include diagnostic.h.
12842         (main): Initialize diagnostics.
12843
12844 2011-05-20  Michael Matz  <matz@suse.de>
12845
12846         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
12847
12848 2011-05-20  Michael Matz  <matz@suse.de>
12849             Richard Guenther  <rguenther@suse.de>
12850
12851         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
12852         use lto_streamer_cache_append directly instead of returning a VEC.
12853         (preload_common_node): Remove.
12854         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
12855         track seen nodes.
12856         (lto_streamer_cache_create): Call lto_preload_common_nodes.
12857
12858 2011-05-20  Richard Guenther  <rguenther@suse.de>
12859
12860         PR tree-optimization/49079
12861         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
12862         MEM_REFs correctly for the trailing array access detection.
12863         Special case constants the same way as decls for overall size
12864         constraining.
12865
12866 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
12869         argument expansion.
12870
12871 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12872
12873         PR tree-optimization/49073
12874         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
12875         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
12876         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
12877
12878 2011-05-20  Richard Guenther  <rguenther@suse.de>
12879
12880         PR middle-end/48849
12881         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
12882         of pointer types the same way the middle-end does.
12883
12884 2011-05-20  Richard Guenther  <rguenther@suse.de>
12885
12886         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
12887         or pointer-to chains.  Delay all fixup to uniquify_nodes.
12888
12889 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
12890
12891         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
12892         (fma4_fmaddsub): Likewise
12893
12894 2011-05-19  Jan Hubicka  <jh@suse.cz>
12895
12896         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
12897         (GIMPLE_TYPE_PAIR_SIZE): New macro.
12898         (type_pair_cache): New static var.
12899         (lookup_type_pair): Use fixed sized custom hash; make inline.
12900         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
12901         calls of lookup_type_pair.
12902         (print_gimple_types_stats): Remove cache stats.
12903         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
12904         and gtc_ob.
12905
12906 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
12907
12908         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
12909         when TARGET_RDRND is active.
12910         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
12911         Generate dummy SImode target register when target is NULL.
12912
12913 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12914
12915         * config/arm/arm-fpus.def: New.
12916         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
12917         arm-fpus.def.
12918         * config/arm/arm-tables.opt: Regenerate.
12919         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
12920         (arm_option_override): Don't decode FPU name to string here.
12921         * config/arm/arm.opt (mfpu=): Use Enum.
12922         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
12923         Update dependencies.
12924
12925 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12926
12927         * collect2.c: Include diagnostic.h.
12928         (fatal_perror, fatal, error, fancy_abort): Remove.
12929         (main): Set progname.  Call xmalloc_set_program_name and
12930         diagnostic_initialize.
12931         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
12932         scan_libraries, resolve_lib_name): Call fatal_error instead of
12933         fatal and fatal_perror.
12934         * collect2.h (error, fatal, fatal_perror): Don't declare.
12935         * tlink.c: Include diagnostic-core.h.
12936         (recompile_files): Call fatal_error instead of fatal_perror.
12937         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
12938         pretty-print.o and input.o.
12939         (collect2.o, tlink.o): Update dependencies.
12940
12941 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12942
12943         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
12944
12945 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12946
12947         PR target/40483
12948         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
12949         COMDAT group syntax, both SPARC and x86 variants.
12950         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
12951         * configure: Regenerate.
12952         * config/sol2.h (TARGET_SOLARIS): Define.
12953         (PUSHSECTION_FORMAT): Remove.
12954         (SECTION_NAME_FORMAT): Define.
12955         * config/sol2.c: Include hashtab.h.
12956         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
12957         expansion, using SECTION_NAME_FORMAT.
12958         (solaris_comdat_htab): New variable.
12959         (struct comdat_entry): Define.
12960         (comdat_hash): New function.
12961         (comdat_eq): New function.
12962         (solaris_elf_asm_comdat_section): New function.
12963         (solaris_define_comdat_signature): New function.
12964         (solaris_code_end): New function.
12965         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
12966         (solaris_code_end): Declare.
12967         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
12968         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
12969         solaris_code_end.
12970         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
12971         Remove ATTRIBUTE_UNUSED.
12972         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
12973         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
12974         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
12975         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
12976         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
12977         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
12978         (PUSHSECTION_FORMAT): Remove.
12979         (SECTION_NAME_FORMAT): Redefine.
12980
12981 2011-05-19  Kai Tietz  <ktietz@redhat.com>
12982
12983         * tree-cfg.c (verify_gimple_assign_binary): Barf on
12984         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
12985         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
12986
12987 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
12988             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12989
12990         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
12991
12992 2011-05-19  Richard Guenther  <rguenther@suse.de>
12993
12994         PR middle-end/48985
12995         * tree-object-size.c (addr_object_size): If the pointed-to
12996         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
12997
12998 2011-05-19  Richard Guenther  <rguenther@suse.de>
12999
13000         * gimple.c (gimple_types_compatible_p_1): Compare names of
13001         the types themselves.
13002         (iterative_hash_gimple_type): And hash them that way.
13003         (gimple_register_type_1): If we register a main variant properly
13004         initialize the leader to ourselves.
13005
13006 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13007
13008         PR target/45098
13009         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
13010         get_loop_invariant_expr_id.
13011         (get_loop_invariant_expr_id): Use get_expr_id.
13012         (parm_decl_cost): New function.
13013         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
13014         Improve bound cost estimation.  Use different inv_expr_id for elim and
13015         express cases.
13016
13017 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13018
13019         PR target/45098
13020         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
13021         cost_base.cost == 0.
13022
13023 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
13024
13025         PR target/49002
13026         * config/i386/sse.md
13027         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
13028         load cast.
13029
13030 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13031
13032         PR tree-optimization/49039
13033         * tree-vrp.c (extract_range_from_binary_expr): For
13034         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
13035         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
13036
13037 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13038
13039         PR target/45098
13040         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
13041
13042 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
13043
13044         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
13045         (*tls_global_dynamic_64): Ditto.
13046         (*tls_local_dynamic_base_32_gnu): Ditto.
13047         (*tls_local_dynamic_base_64): Ditto.
13048         (tls_initial_exec_64_sun): Ditto.
13049
13050 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
13051
13052         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
13053         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
13054         bf592-none.
13055         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
13056         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
13057         * config/bfin/bfin.c (bfin_cpus): Add bf592.
13058         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
13059         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
13060         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
13061         * config/bfin/elf.h (LIB_SPEC): Add bf592.
13062
13063 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
13064
13065         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
13066         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
13067         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
13068         target_thread_pointer, arm_structure_size_boundary, struct
13069         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
13070         struct abi_name, arm_all_abis): Remove.
13071         (arm_option_override) Don't process most enumerated option values here.
13072         Don't process target_fpe_name here.  Work with integer not string for
13073         structure size boundary; use separate diagnostics for each case.
13074         * config/arm/arm.h (enum float_abi_type, enum
13075         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
13076         to arm-opts.h.
13077         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
13078         arm_structure_size_boundary): Remove.
13079         * config/arm/arm.opt (mabi=): Use Enum and Init.
13080         (arm_abi_type): New Enum and EnumValue entries.
13081         (mfloat-abi=): Use Enum and Init.
13082         (float_abi_type): New Enum and EnumValue entries.
13083         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
13084         (mfp16-format=): Use Enum and Init.
13085         (arm_fp16_format_type): New Enum and EnumValue entries.
13086         (mstructure-size-boundary=): Use UInteger and Init.
13087         (mtp=): Use Enum and Init.
13088         (arm_tp_type): New Enum and EnumValue entries.
13089
13090 2011-05-18  Richard Guenther  <rguenther@suse.de>
13091
13092         PR tree-optimization/49018
13093         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
13094         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
13095         gimple_has_side_effects.
13096
13097 2011-05-18  Richard Guenther  <rguenther@suse.de>
13098
13099         * gimple.c (gimple_register_type_1): New function, split out from ...
13100         (gimple_register_type): ... here.  Avoid infinite recursion.
13101
13102 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13103
13104         PR tree-optimization/41881
13105         * tree-vectorizer.h (struct _loop_vec_info): Add new field
13106         reduction_chains along with a macro for its access.
13107         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
13108         (destroy_loop_vec_info): Free reduction chains.
13109         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
13110         (vect_is_slp_reduction): New function.
13111         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
13112         (vect_create_epilog_for_reduction): Support SLP reduction chains.
13113         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
13114         definition types for reduction chains.
13115         (vect_supported_load_permutation_p): Don't allow permutations for
13116         reduction chains.
13117         (vect_analyze_slp_instance): Support reduction chains.
13118         (vect_analyze_slp): Try to build SLP instance from reduction chains.
13119         (vect_get_constant_vectors):  Handle reduction chains.
13120         (vect_schedule_slp_instance): Mark the first statement of the
13121         reduction chain as reduction.
13122
13123 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13124
13125         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
13126         names for group elements access.
13127         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
13128         reduction chains as well.  Remove data reference and interleaving
13129         related words from the fields names.
13130         * tree-vect-loop.c (vect_transform_loop): Use new names for group
13131         elements access.
13132         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
13133         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
13134         vect_update_interleaving_chain, vect_same_range_drs,
13135         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
13136         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
13137         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
13138         vect_analyze_group_access, vect_analyze_data_ref_access,
13139         vect_create_data_ref_ptr, vect_transform_strided_load,
13140         vect_record_strided_load_vectors): Likewise.
13141         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
13142         vect_model_load_cost, vectorizable_store, vectorizable_load,
13143         vect_remove_stores, new_stmt_vec_info): Likewise.
13144         * tree-vect-slp.c (vect_build_slp_tree,
13145         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
13146
13147 2011-05-18  Richard Guenther  <rguenther@suse.de>
13148
13149         PR middle-end/48989
13150         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
13151         operand verification.
13152         (verify_gimple_assign_binary): Likewise.
13153         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
13154         to non-1-precision BOOLEAN_TYPEs.
13155
13156 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13157
13158         PR target/45098
13159         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
13160
13161 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13162
13163         PR tree-optimization/49000
13164         * tree-ssa.c (execute_update_addresses_taken): Call
13165         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
13166         be rewritten and decl has been marked for renaming, reset
13167         the debug stmt.
13168
13169 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
13170
13171         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
13172         enum_opts_set when testing if attributes have set -mfpmath=.
13173
13174 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
13175
13176         * config/mips/mips.c (mips_handle_option): Remove unused variable.
13177
13178 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13179
13180         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
13181         info->entry with 0
13182         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
13183         id.transform_lang_insert_block with NULL.
13184
13185 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13186
13187         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
13188         (output_fp_compare): Change args 3 and 4 to bool.
13189         (ix86_expand_call): Change arg 6 to bool.
13190         (ix86_attr_length_immediate_default): Change arg 2 to bool.
13191         (ix86_attr_length_vex_default): Change arg 3 to bool.
13192         * config/i386/i386.md: Update all uses.
13193         * config/i386/i386.c: Ditto.
13194         (ix86_flags_dependent): Change return type to bool.
13195
13196 2011-05-17  Richard Guenther  <rguenther@suse.de>
13197
13198         * gimple.c (type_hash_pair_compare): Fix comparison.
13199
13200 2011-05-17  Richard Guenther  <rguenther@suse.de>
13201
13202         * gimple.c (iterative_hash_gimple_type): Simplify singleton
13203         case some more, fix final hash value of the non-singleton case.
13204
13205 2011-05-17  Richard Guenther  <rguenther@suse.de>
13206
13207         PR bootstrap/49013
13208         Revert
13209         2011-05-16  Richard Guenther  <rguenther@suse.de>
13210
13211         * gimple.c (gimple_types_compatible_p_1): Use names of the
13212         type itself, not its main variant.
13213         (iterative_hash_gimple_type): Likewise.
13214
13215 2011-05-17  Richard Guenther  <rguenther@suse.de>
13216
13217         * gimple.c (gimple_register_canonical_type): Use the main-variant
13218         leader for computing the canonical type.
13219
13220 2011-05-17  Nick Clifton  <nickc@redhat.com>
13221
13222         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
13223         moves.
13224
13225         * config/rx/rx.md: Add peephole to remove redundant extensions
13226         after loads.
13227         (bitset_in_memory): Use rx_restricted_mem_operand.
13228         (bitinvert_in_memory): Likewise.
13229         (bitclr_in_memory): Likewise.
13230
13231 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
13232             Nick Clifton  <nickc@redhat.com>
13233
13234         * config/rx/rx.md: Add peepholes to match a register move followed
13235         by a comparison of the moved register.  Replace these with an
13236         addition of zero that does both actions in one instruction.
13237
13238 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
13239
13240         PR target/48986
13241         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
13242         predicate to allow CONST_INT.
13243         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
13244
13245 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13246
13247         * opts-common.c (opt_enum_arg_to_value): New.
13248         * opts.h (opt_enum_arg_to_value): Declare.
13249         * config/i386/i386.opt (fpmath): Remove.
13250         (mfpmath=): Use Enum, Init and Save.
13251         (fpmath_unit): New Enum and EnumValue entries.
13252         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
13253         name for function fpmath state.
13254         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
13255         * config/i386/i386.c: Include diagnostic.h.
13256         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
13257         (ix86_target_string): Take enum fpmath_unit value instead of string.
13258         (ix86_debug_options): Update call to ix86_target_string.
13259         (ix86_option_override_internal): Don't process fpmath strings here.
13260         (x86_function_specific_save, ix86_function_specific_restore):
13261         Don't handle fpmath state specially.
13262         (ix86_function_specific_print): Pass fpmath state to
13263         ix86_target_string instead of printing in this function.
13264         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
13265         Handle enum attributes.
13266         (IX86_ATTR_ENUM, ix86_opt_enum): New.
13267         (ix86_valid_target_attribute_tree): Update option_strings
13268         handling.  Handle fpmath as enum option.
13269         (ix86_can_inline_p): Update field names for function fpmath state.
13270         (ix86_expand_builtin): Update call to ix86_target_string.
13271         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
13272         (ix86_fpmath): Remove.
13273         * config/i386/t-i386 (i386.o): Update dependencies.
13274
13275 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13276
13277         PR preprocessor/48677
13278         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
13279         from decoded_options[0], not from itself.
13280
13281 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
13282
13283         * config/i386/constraints.md (z): New constraint.
13284         * config/i386/i386.c (c): New mode attribute.
13285         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
13286         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
13287         constraint for operand 0.
13288         (*call_vzeroupper): Ditto.
13289         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
13290         (*call_rex64_ms_sysv_vzeroupper): Ditto.
13291         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
13292         Use "lzm" constraint for operand 0.
13293         (*call_pop_vzeroupper): Ditto.
13294         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
13295         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
13296         constraint for operand 0.
13297         (*sibcall_vzeroupper): Ditto.
13298         (*sibcall_rex64_ms_sysv): Ditto.
13299         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
13300         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
13301         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
13302         (*sibcall_pop_vzeroupper): Ditto.
13303         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
13304         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
13305         mode iterator.  Use "<c>zm" constraint for operand 1.
13306         (*call_value_vzeroupper): Ditto.
13307         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
13308         for operand 1.
13309         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
13310         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
13311         *call_value_pop_1.  Use "lzm" constraint for operand 1.
13312         (*call_value_pop_vzeroupper): Ditto.
13313         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
13314         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
13315         mode iterator.  Use "Uz" constraint for operand 1.
13316         (*sibcall_value_vzeroupper): Ditto.
13317         (*sibcall_value_rex64_ms_sysv): Ditto.
13318         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
13319         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
13320         constraint for operand 1.
13321         (*sibcall_value_pop_vzeroupper): Ditto.
13322         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
13323         and "z" constraint for operand 2.
13324         (*tls_global_dynamic_32_gnu): Ditto.
13325         (*tls_local_dynamic_base_32_gnu): Ditto.
13326         (*tls_local_dynamic_base_64): Ditto.
13327         (*tls_local_dynamic_32_once): Ditto.
13328         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
13329         Update all callers.
13330         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
13331
13332 2011-05-16  Richard Guenther  <rguenther@suse.de>
13333
13334         * gimple.c (gimple_types_compatible_p_1): Use names of the
13335         type itself, not its main variant.
13336         (iterative_hash_gimple_type): Likewise.
13337
13338 2011-05-16  Richard Guenther  <rguenther@suse.de>
13339
13340         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
13341         always visit pointer target and function result and argument types.
13342
13343 2011-05-16  Jason Merrill  <jason@redhat.com>
13344
13345         PR c++/48999
13346         * tree-inline.c (copy_statement_list): Put back recursion.
13347
13348 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13349
13350         PR target/27663
13351         PR target/41076
13352         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
13353         * config/avr/avr.md ("*ior<mode>qi.byte0",
13354         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
13355
13356 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13357
13358         PR target/45099
13359         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
13360         register is needed for a function argument.
13361
13362 2011-05-16  Richard Guenther  <rguenther@suse.de>
13363
13364         * gimple.c (struct type_hash_pair): New type.
13365         (type_hash_pair_compare): New function.
13366         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
13367
13368 2011-05-16  Revital Eres  <revital.eres@linaro.org>
13369
13370         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
13371
13372 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13373
13374         * config/i386/i386.md (floating point move splitters): Fix
13375         usage of standard_80387_constant_p.
13376         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
13377
13378 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13379
13380         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
13381
13382 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13383
13384         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
13385         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
13386         (tree_ssa_lim_finalize): Likewise.
13387
13388 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
13389
13390         * config/i386/constraint.md (Yd, Yx): New register constraints.
13391         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
13392         Yd conditional register constraint.
13393         (*movtf_internal): Use standard_sse_constant_opcode.
13394         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
13395         Yx conditional register constraint.
13396         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
13397         Yd conditional register constraint.  Use standard_sse_constant_p to
13398         check for valid SSE constants and call standard_sse_constant_opcode to
13399         output SSE insn.
13400         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
13401         constants and call standard_sse_constant_opcode to output SSE insn.
13402         * config/i386/i386.c (ix86_option_ovverride_internal): Set
13403         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
13404         optimize_size is set.
13405         (standard_sse_constant_opcode): Output conditional AVX insn templates.
13406
13407 2011-05-14  Tobias Burnus  <burnus@net-b.de>
13408
13409         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
13410
13411 2011-05-13  Martin Jambor  <mjambor@suse.cz>
13412
13413         * ipa-prop.c (ipa_cst_from_jfunc): New function.
13414         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
13415         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
13416         (evaluate_conditions_for_ipcp_clone): Removed.
13417         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
13418         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
13419         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
13420
13421 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
13422
13423         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
13424         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
13425         lieu of MAY_HAVE_DEBUG_STMTS.
13426         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
13427         debug statements if !MAY_HAVE_DEBUG_STMTS.
13428
13429 2011-05-13  Martin Thuresson  <martint@google.com>
13430
13431         PR gcov-profile/47793
13432         * libgcov.c (gcov_exit): Support relative profile paths.
13433         * doc/invoke.texi (-fprofile-dir): Update for above change.
13434
13435 2011-05-13  Richard Guenther  <rguenther@suse.de>
13436
13437         * gimple.c (gimple_canonical_types_compatible_p): Do not use
13438         type-pair caching, do not compare hashes.
13439
13440 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
13441
13442         PR middle-end/48965
13443         * tree-cfg.c (edge_to_cases_cleanup): Return true.
13444         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
13445
13446 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13447
13448         * gimplify.c (gimplify_expr): Make sure operand is boolified.
13449         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
13450         compatible type for TRUTH_NOT_EXPR.
13451
13452 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13453
13454         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
13455         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
13456         can_create_pseudo_p ().
13457
13458 2011-05-13  Richard Guenther  <rguenther@suse.de>
13459
13460         PR lto/48978
13461         * gimple.c (iterative_hash_gimple_type): Revert change in
13462         pointer target and function result and argument hashing.
13463
13464 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
13465
13466         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
13467         (*movxf_internal_nointeger): Ditto.
13468         (*movdf_internal_rex64): Ditto.
13469         (*movdf_internal): Ditto.
13470         (*movdf_internal_nointeger): Ditto.
13471         (*movsf_internal): Ditto.
13472         (sincos splitters): Use can_create_pseudo ().
13473
13474 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
13475
13476         * config/i386/i386-opts.h: New.
13477         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
13478         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
13479         ix86_section_threshold): Remove.
13480         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
13481         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
13482         OPT_mbranch_cost_.
13483         (ix86_option_override_internal): Don't decode strings for options
13484         other than -march=, -mtune= and -mfpmath=.  Don't allow for
13485         __attribute__ uses in remaining diagnostics for options with
13486         string arguments.  Don't check for integer arguments being negative.
13487         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
13488         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
13489         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
13490         ix86_branch_cost, ix86_section_threshold): Remove.
13491         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
13492         HeaderInclude.
13493         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
13494         but not Var.
13495         (masm=): Use Enum and Init.
13496         (asm_dialect): New Enum and EnumValue entries.
13497         (mbranch-cost=): Use UInteger.
13498         (mlarge-data-threshold=): Use UInteger and Init.
13499         (mcmodel=): Use Enum and Init.
13500         (cmodel): New Enum and EnumValue entries.
13501         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
13502         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
13503         mregparm=): Use UInteger.
13504         (mstringop-strategy=): Use Enum and Init.
13505         (stringop_alg): New Enum and EnumValue entries.
13506         (mtls-dialect=): Use Enum and Init.
13507         (tls_dialect): New Enum and EnumValue entries.
13508         (mabi=): Use Enum and Init.
13509         (calling_abi): New Enum and EnumValue entries.
13510         (mveclibabi=): Use Enum and Init.
13511         (ix86_veclibabi): New Enum and EnumValue entries.
13512
13513 2011-05-13  Nick Clifton  <nickc@redhat.com>
13514
13515         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
13516         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
13517
13518 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13519
13520         PR middle-end/48984
13521         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
13522         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
13523         (gimple_boolify): Check for cast for boolean_type_node instead for
13524         BOOLEAN_TYPE.
13525
13526 2011-05-13  Richard Guenther  <rguenther@suse.de>
13527
13528         PR tree-optimization/48172
13529         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
13530         multiplying by number of iterations for equal step.
13531         (vect_create_cond_for_alias_checks): Likewise.
13532
13533 2011-05-13  Andreas Schwab  <schwab@redhat.com>
13534
13535         * configure.ac: Use AS_HELP_STRING throughout.
13536         * configure: Regenerate.
13537
13538 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13539
13540         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
13541         (ix86_emit_restore_regs_using_mov): Likewise.
13542         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13543
13544 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
13545
13546         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
13547         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
13548         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
13549         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
13550         RTX_OK_FOR_OLO10_P): ...here.
13551         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
13552         SYMBOLIC_CONST.
13553
13554 2011-05-12  Kai Tietz  <ktietz@redhat.com>
13555
13556         * gimplify.c (gimple_boolify): Re-boolify expression
13557         arguments even if expression type is of kind BOOLEAN_TYPE.
13558         (gimplify_boolean_expr): Removed.
13559         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
13560         and XOR. Additional take care that we keep expression's type.
13561         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
13562         of TRUTH_AND|OR|XOR_EXPR.
13563
13564 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13565
13566         PR tree-optimization/48975
13567         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
13568         on all bbs here and free and clear ifc_bbs at the end.
13569
13570 2011-05-12  Richard Guenther  <rguenther@suse.de>
13571
13572         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
13573         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
13574         until after simple checks.
13575         (gimple_types_compatible_p): Likewise.
13576         (iterative_hash_gimple_type): Always hash pointer targets
13577         and function return and argument types.
13578         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
13579         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
13580         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
13581         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
13582         completely in the simple compare section.
13583         (gimple_register_canonical_type): Query the cache again after
13584         registering.
13585
13586 2011-05-12  Richard Guenther  <rguenther@suse.de>
13587
13588         PR tree-optimization/48172
13589         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
13590         the number of iterations from the segment size calculation.
13591         (vect_create_cond_for_alias_checks): Adjust.
13592
13593 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13594
13595         PR debug/48967
13596         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
13597         if validate_subreg fails.
13598
13599 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
13600
13601         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
13602         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
13603         early.
13604
13605 2011-05-12  DJ Delorie  <dj@redhat.com>
13606
13607         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
13608         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
13609         created builtin into rx_builtins array.
13610         (rx_builtin_decl): New function.
13611         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
13612
13613 2011-05-12  DJ Delorie  <dj@redhat.com>
13614             Nick Clifton  <nickc@redhat.com>
13615
13616         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
13617         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
13618         (rx_is_legitimate_address): Add pre-decrement and post-increment
13619         addressing in HImode and QImode.  Fix test for out of range
13620         REG+INT addressing.
13621         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
13622         (rx_align_for_label): Test label before extracting its usage count.
13623         (rx_adjust_insn_lengths): Fix selection of insn codes.
13624         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
13625
13626 2011-05-11  Jason Merrill  <jason@redhat.com>
13627
13628         * tree.c (type_hash_canon): Use struct tree_type_non_common.
13629
13630 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13631
13632         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
13633         reindent the subsequent block.
13634
13635 2011-05-11  Satoru Takabayashi  <satorux@google.com>
13636             Paul Pluzhnikov  <ppluzhnikov@google.com>
13637
13638         * doc/install.texi (Configuration): Document --with-linker-hash-style.
13639         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
13640         * config.in: Add LINKER_HASH_STYLE.
13641         * configure.ac: Add --with-linker-hash-style.
13642         * configure: Regenerate.
13643
13644 2011-05-11  Richard Guenther  <rguenther@suse.de>
13645
13646         PR middle-end/48964
13647         * gimple.c (iterative_hash_canonical_type): Fix typo.
13648
13649 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
13650
13651         * config/i386/i386.c (legitimize_tls_address)
13652         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13653         expanders directly for TARGET_GNU2_TLS.  Determine pic and
13654         __tls_get_addr symbol reference here.  Update call to
13655         gen_tls_global_dynamic_{32,64} for added arguments.
13656         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13657         expanders directly for TARGET_GNU2_TLS.  Determine
13658         __tls_get_addr symbol reference here.  Update call to
13659         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
13660         unique UNSPEC REG_EQUIV to libcall block.
13661         (ix86_tls_get_addr): Declare static.
13662         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
13663         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
13664         Do not determine pic and __tls_get_addr symbol reference here. Do not
13665         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
13666         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
13667         (tls_global_dynamic_64): Add operand 2.  Do not determine
13668         __tls_get_addr symbol reference here.  Do not call
13669         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
13670         (tls_local_dynamic_base64): Ditto for operand 1.
13671
13672 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13673
13674         * function.c (expand_function_start): Initialize stack_check_probe_note
13675         only if the generic stack checking mechanism is used.
13676
13677 2011-05-11  Richard Guenther  <rguenther@suse.de>
13678
13679         PR tree-optimization/15256
13680         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
13681         (A & B) | C, combine (A op CST1) op CST2.
13682         (tree_ssa_forward_propagate_single_use_vars): Only bother to
13683         visit assigns that have uses.
13684
13685 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
13686
13687         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
13688         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
13689         (unpack_ts_type_common_value_fields): ...this.  Update comment.
13690         (unpack_value_fields): Adjust for renaming.
13691         (lto_input_ts_type_tree_pointers): Split into...
13692         (lto_input_ts_type_common_tree_pointer): ...this and...
13693         (lto_input_ts_type_non_common_tree_pointers): ...this.
13694         (lto_input_tree_pointers): Adjust for above split.
13695         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
13696         (pack_ts_type_common_value_fields): ...this.  Update comment.
13697         (lto_output_ts_type_tree_pointers): Split into...
13698         (lto_output_ts_type_common_tree_pointers): ...this and...
13699         (lto_output_ts_type_non_common_tree_pointers): ...this.
13700         (lto_output_tree_pointers): Adjust for above split.
13701         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
13702         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
13703         * stor-layout.c (vector_type_mode): Adjust location of mode field.
13704         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
13705         Define.
13706         (struct tree_type): Split into...
13707         (struct tree_type_common: ...this and...
13708         (struct tree_type_with_lang_specific): ...this and...
13709         (struct tree_type_non_common): ...this.  Adjust accessor macros
13710         accordingly.
13711         (TYPE_VALUES_RAW): Define.
13712         (union tree_node): Update for above changes.
13713         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
13714         TS_TYPE_NON_COMMON.
13715         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
13716         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
13717         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
13718         * treestructu.def (TS_TYPE): Remove.
13719         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
13720         Define.
13721
13722 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
13723
13724         PR debug/48159
13725         * tree-ssa.c (reset_debug_uses): New function.
13726         * tree-flow.h (reset_debug_uses): New prototype.
13727         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
13728         * tree-loop-distribution.c (generate_loops_for_partition): Call
13729         reset_debug_uses on the stmts that will be removed.  Keep around
13730         all debug stmts, don't count them as bits in partition bitmap.
13731         (generate_builtin): Don't count debug stmts or labels as bits in
13732         partition bitmap.
13733
13734 2011-05-11  Richard Guenther  <rguenther@suse.de>
13735
13736         * gimple.c (gimple_type_hash_1): Merge with ...
13737         (gimple_type_hash): ... this.
13738         (gtc_visit): Remove mode parameter and simplify accordingly.
13739         (gimple_types_compatible_p_1): Likewise.
13740         (gimple_types_compatible_p): Likewise.
13741         (iterative_hash_gimple_type): Likewise.
13742         (visit): Likewise.
13743         (gimple_type_eq): Adjust.
13744
13745 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13746
13747         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
13748         enters the branch create an anti edge in the opposite direction
13749         to prevent the creation of reg-moves.
13750         * modulo-sched.c: Adjust comment to reflect the fact we are
13751         scheduling closing branch.
13752         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
13753         (stage_count): New field in struct partial_schedule.
13754         (calculate_stage_count): New function.
13755         (normalize_sched_times): Rename to reset_sched_times and handle
13756         incrementing the sched time of the nodes by a constant value
13757         passed as parameter.
13758         (duplicate_insns_of_cycles): Skip closing branch.
13759         (sms_schedule_by_order): Schedule closing branch.
13760         (ps_insn_find_column): Handle closing branch.
13761         (sms_schedule): Call reset_sched_times and adjust the code to
13762         support scheduling of the closing branch.
13763         (ps_insert_empty_row): Update calls to normalize_sched_times
13764         and rotate_partial_schedule functions.
13765
13766 2011-05-11  Richard Guenther  <rguenther@suse.de>
13767
13768         PR middle-end/48953
13769         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
13770
13771 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
13772
13773         * opts.c (finish_options): Move warning settings from process_options.
13774         * toplev.c (process_options): Move warning settings to finish_options.
13775
13776 2011-05-11  Richard Guenther  <rguenther@suse.de>
13777
13778         PR tree-optimization/18041
13779         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
13780         (simplify_bitwise_binary): ... this.  Handle operand conversions
13781         by applying them to the result instead.
13782         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
13783
13784 2011-05-11  Richard Guenther  <rguenther@suse.de>
13785
13786         * gimple.c (gimple_canonical_types_compatible_p): Split out
13787         from gimple_types_compatible_p and friends.  Do not recurse
13788         to pointed-to types.
13789         (gimple_canonical_type_eq): Use it.
13790         (iterative_hash_canonical_type): Split out from
13791         iterative_hash_gimple_type and friends.  Do not recurse
13792         to pointed-to types.
13793         (gimple_canonical_type_hash): Use it, allocate the hash here.
13794
13795 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13796
13797         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
13798         recognizing doloop.
13799
13800 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13801
13802         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
13803         instead of PREV_INSN.
13804
13805 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13806
13807         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
13808         * loop-doloop.c (doloop_condition_get): Likewise.
13809         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
13810         (doloop_end): New.
13811         * config/arm/arm.md (*addsi3_compare0): Remove "*".
13812
13813 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
13814
13815         * tree.def (CASE_LABEL_EXPR): Add an operand.
13816         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
13817
13818 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13819
13820         * c-decl.c (c_override_global_bindings_to_false): Remove.
13821         (global_bindings_p): Don't check
13822         c_override_global_bindings_to_false.
13823         * c-tree.h (c_override_global_bindings_to_false): Remove.
13824         * c-typeck.c (composite_type): Don't set
13825         c_override_global_bindings_to_false.
13826
13827 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
13828
13829         PR target/48857, 48495
13830         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
13831         (VSX_MODE): Ditto.
13832         (VSX_MOVE_MODE): Ditto.
13833         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
13834         VSX vector types.  Add V2DImode.
13835         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
13836         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
13837         (MODES_TIEABLE_P): Ditto.
13838
13839         * config/rs6000/rs6000.c (rs6000_emit_move): Use
13840         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
13841         VSX_VECTOR_MODE.
13842         (init_cumulative_args): Ditto.
13843         (rs6000_function_arg_boundary): Ditto.
13844         (rs6000_function_arg_advance_1): Ditto.
13845         (rs6000_function_arg): Ditto.
13846         (rs6000_function_ok_for_sibcall): Ditto.
13847         (emit_frame_save): Ditto.
13848         (rs6000_function_value): Ditto.
13849         (rs6000_libcall_value): Ditto.
13850
13851 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13852
13853         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13854         i386/darwin-lib.h to $libgcc_tm_file.
13855         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
13856
13857 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13858
13859         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
13860
13861 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13862
13863         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
13864         * config/rs6000/rs6000-tables.opt: New file (generated).
13865         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
13866         rs6000/rs6000-tables.opt to extra_options.
13867         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
13868         * config/rs6000/rs6000.c (rs6000_select): Remove.
13869         (processor_target_table): Move contents to rs6000-cpus.def.
13870         (darwin_rs6000_override_options): Check
13871         global_options_set.x_rs6000_cpu_index instead of
13872         rs6000_select[1].string.
13873         (rs6000_option_override_internal): Likewise.
13874         (rs6000_handle_option): Don't assert that global structures are in
13875         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
13876         (rs6000_default_cpu): New variable.
13877         (rs6000_file_start): Set it instead of local default_cpu.  Check
13878         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
13879         global_options_set.x_rs6000_tune_index instead of rs6000_select.
13880         (rs6000_darwin_file_start): Check rs6000_default_cpu and
13881         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
13882         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
13883         rs6000_select): Remove.
13884         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
13885         Remove.
13886         (mcpu=, mtune=): Use Var, Init, Enum and Save.
13887         * config/rs6000/t-rs6000
13888         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
13889         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13890         global_options_set.x_rs6000_cpu_index instead of
13891         rs6000_select[1].string.
13892         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13893         global_options_set.x_rs6000_cpu_index instead of
13894         rs6000_select[1].string.
13895
13896 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13897
13898         * config.gcc (libgcc_tm_file): Define instead of including files
13899         from ../../libgcc/config/ in tm_file.
13900         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
13901         * configure: Regenerate.
13902         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
13903         libgcc_tm.h, cs-libgcc_tm.h): New.
13904         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
13905         (clean): Remove libgcc_tm.h.
13906         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
13907         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
13908         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
13909
13910 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
13911
13912         PR target/48896
13913         * config/avr/avr.c (avr_ret_register): Return unsigned int
13914         instead of int.
13915         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
13916         it to avr_libcall_value.
13917         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
13918         expand_expr.
13919         (avr_expand_binop_builtin): Ditto.
13920         (avr_expand_unop_builtin): Ditto.
13921
13922 2011-05-10  DJ Delorie  <dj@redhat.com>
13923
13924         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
13925         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
13926         * config/rx/rx.c (rx_align_for_label): Add label and
13927         uses_threshold parameters.  Do not align when the label is not
13928         used enough.
13929         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
13930
13931 2011-05-10  Richard Guenther  <rguenther@suse.de>
13932
13933         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
13934         a series of conversions and apply foldings similar to what
13935         fold-const does.
13936         (tree_ssa_forward_propagate_single_use_vars): Call it.
13937
13938 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
13939
13940         PR tree-optimization/48611
13941         PR tree-optimization/48794
13942         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
13943         referenced from RESX or EH_DISPATCH arguments.
13944
13945         PR debug/48928
13946         * dfp.c (decimal_to_decnumber): Handle conversion from
13947         dconst{1,2,m1,half}.
13948
13949 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13950
13951         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
13952         for !flag_prefer_avx128.
13953         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
13954
13955 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13956
13957         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
13958         (fold_ternary_loc): Use expr_location_or.
13959
13960 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13961
13962         PR debug/48853
13963         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
13964         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
13965         Pmode and mem_mode is not VOIDmode.
13966
13967 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
13968
13969         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
13970         TYPE_QUAL_RESTRICT): Convert to enum.
13971
13972 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13973
13974         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
13975         (const_pow2_1_to_8_operand): Ditto.
13976         (const_pow2_1_to_128_operand): Ditto.
13977         (const_pow2_1_to_32768_operand): Ditto.
13978         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
13979         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
13980         in insn constraint to check integer value of operand 3.
13981         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
13982
13983         (PINSR_MODE): New mode iterator.
13984         (sse2p4_1): New mode attribute.
13985         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
13986         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
13987         iterator.  Use const_int_operand instead of
13988         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
13989         exact_log2 in insn constraint to check integer value of operand 3.
13990
13991 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13992
13993         * config/i386/sse.md (blendbits): Remove mode attribute.
13994         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
13995         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
13996         Check integer value of operand 3 in insn constraint.
13997
13998 2011-05-09  Richard Guenther  <rguenther@suse.de>
13999
14000         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
14001         for diagnostics.
14002         (lto_symtab_merge): Likewise.  Do not register types here.
14003         (lto_symtab_merge_decls_2): Likewise.
14004         (lto_symtab_merge_decls_1): Likewise.
14005         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
14006         * gimple.c (enum gtc_mode): Declare.
14007         (gimple_types_compatible_p): Make static.
14008
14009 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14010
14011         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
14012         temporary register to match Pmode.
14013
14014 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14015
14016         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
14017         and *vec_concatv4si_1_avx.
14018
14019 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14020
14021         PR rtl-optimization/48927
14022         * ira-conflicts.c (commutative_constraint_p): Use
14023         recog_data.alternative_enabled_p to disable alternatives where
14024         "enabled" attribute is false.
14025         (get_dup_num): Ditto.
14026         * ira-lives.c (single_reg_class): Ditto.
14027         (ira_implicitly_set_insn_hard_regs): Ditto.
14028
14029 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
14030
14031         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
14032         (dataflow_set_preserve_mem_locs): Likewise.
14033
14034 2011-05-09  Philipp Thomas  <pth@suse.de>
14035
14036         * config/mep/mep.c (mep_validate_vliw): Syntax description
14037         should not be translated.
14038
14039 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
14040
14041         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
14042         * config/mips/mips-tables.opt: New file (generated).
14043         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
14044         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
14045         MIPS_ARCH_OPTION_NATIVE): Define.
14046         * config/mips/mips.c (mips_cpu_info_table): Move contents to
14047         mips-cpus.def.
14048         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
14049         mips_parse_cpu): Remove.
14050         (mips_cpu_info_from_opt, mips_default_arch): New.
14051         (mips_handle_option): Don't assert that global structures are in
14052         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
14053         (mips_option_override): Use new variables and functions to set
14054         state of these options.  Use strcmp to check for individual CPU names.
14055         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
14056         definition.
14057         * config/mips/mips.opt (march=): Use ToLower and Enum.
14058         (mips): Use ToLower, Enum and Var.
14059         (mtune=): Use ToLower and Enum.
14060         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
14061
14062 2011-05-08  Jan Hubicka  <jh@suse.cz>
14063
14064         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
14065         Arrange type pairs to be UID ordered.
14066         (gimple_lookup_type_leader): Make inline.
14067
14068 2011-05-09  Nick Clifton  <nickc@redhat.com>
14069
14070         PR target/48899
14071         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
14072         PROCESSOR_DEFAULT.
14073
14074         PR target/48897
14075         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
14076         variable 's'.
14077
14078 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
14079
14080         * combine.c (simplify_comparison): Abstract out parts into...
14081         (simplify_compare_const): ... new function.
14082         (try_combine): Generalize parallel arithmetic/compare combining
14083         to call simplify_compare_const() and CANONICALIZE_COMPARE().
14084
14085 2011-05-08  Jan Hubicka  <jh@suse.cz>
14086
14087         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
14088         (cgraph_create_virtual_clone): Call hooks once virtual clone
14089         is finished.
14090         * cgraph.h (cgraph_clone_node): Update prototype.
14091         * ipa-cp.c (ipcp_estimate_growth): Use
14092         estimate_ipcp_clone_size_and_time.
14093         * ipa-inline-transform.c (clone_inlined_nodes): Update.
14094         * lto-cgraph.c (input_node): Update.
14095         * ipa-inline.c (recursive_inlining): Update.
14096         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
14097         (evaluate_conditions_for_known_args): Break out from ...
14098         (evaluate_conditions_for_edge): ... here.
14099         (evaluate_conditions_for_ipcp_clone): New function.
14100         (inline_node_duplication_hook): Update clone summary based
14101         on parameter map.
14102         (estimate_callee_size_and_time): Rename to ...
14103         (estimate_node_size_and_time): take NODE instead of EDGE;
14104         take POSSIBLE_TRUTHS as argument.
14105         (estimate_callee_size_and_time): Update.
14106         (estimate_ipcp_clone_size_and_time): New function.
14107         (do_estimate_edge_time): Update.
14108
14109 2011-05-08  Richard Guenther  <rguenther@suse.de>
14110
14111         PR middle-end/48908
14112         PR middle-end/48905
14113         * expmed.c (expand_shift_1): Compute adjusted constant shift
14114         amount manually.
14115
14116 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14117
14118         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
14119
14120 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14121
14122         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
14123
14124 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
14125
14126         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
14127
14128 2011-05-07  Jan Hubicka  <jh@suse.cz>
14129
14130         * ipa-inline-transform.c (inline_call): Account when program size
14131         decreases.
14132         * ipa-inline.c (relative_time_benefit): New function.
14133         (edge_badness): Reorganize to be power 2 based; fix thinko when
14134         computing badness for negative growth; update comments to match
14135         reality; better dumps.
14136
14137 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
14138
14139         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
14140         type to bool and adjust comment.
14141         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
14142         (fold_mathfn_compare): Remove calls to global_bindings_p.
14143         (fold_inf_compare): Likewise.
14144         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
14145         * c-tree.h (global_bindings_p): Adjust prototype.
14146         * c-decl.c (global_bindings_p): Return bool and simplify.
14147
14148 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
14149
14150         PR tree-optimization/48837
14151         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
14152         when accumulator transformation is performed.
14153
14154 2011-05-06  Jan Hubicka  <jh@suse.cz>
14155
14156         * i386.h (ix86_tune_indices): Add
14157         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
14158         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
14159         * i386.c (initial_ix86_tune_features): Add
14160         X86_SOFTARE_PREFETCHING_BENEFICIAL.
14161         (software_prefetching_beneficial_p): Remove predicate.
14162         (ix86_option_override_internal): Use new macro.
14163
14164 2011-05-06  Jan Hubicka  <jh@suse.cz>
14165
14166         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
14167
14168 2011-05-06  Jan Hubicka  <jh@suse.cz>
14169
14170         * cgraph.c (cgraph_add_thunk): Create real function node instead
14171         of alias node; finalize it and mark needed/reachale; arrange visibility
14172         to be right and add it into the corresponding same comdat group list.
14173         (dump_cgraph_node): Dump thunks.
14174         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
14175         cgraph_function_with_gimple_body_p,
14176         cgraph_first_function_with_gimple_body,
14177         cgraph_next_function_with_gimple_body): New functions.
14178         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
14179         New macros.
14180         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
14181         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14182         * cgraphunit.c (cgraph_finalize_function): Only look into possible
14183         devirtualization when optimizing.
14184         (verify_cgraph_node): Verify thunks.
14185         (cgraph_analyze_function): Analyze thunks.
14186         (cgraph_mark_functions_to_output): Output thunks only in combination
14187         with function they are assigned to.
14188         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
14189         alias into normal node.
14190         (assemble_thunks): New functoin.
14191         (cgraph_expand_function): Use it.
14192         * lto-cgraph.c (lto_output_node): Stream thunks.
14193         (input_overwrite_node): Stream in thunks.
14194         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
14195         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
14196         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
14197         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
14198         (inline_analyze_function): Do not care about thunk jump functions.
14199         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
14200         * ipa-prop.c (ipa_prop_write_jump_functions): Use
14201         cgraph_function_with_gimple_body_p.
14202         * passes.c (do_per_function_toporder): Use
14203         cgraph_function_with_gimple_body_p.
14204         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14205         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
14206         (function_called_by_processed_nodes_p): Likewise.
14207
14208 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14209
14210         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
14211         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
14212         entries.
14213         (mabi=): Replace with separate entries for mabi=altivec,
14214         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
14215         mabi=ieeelongdouble and mabi=ibmlongdouble.
14216         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14217         check for -mabi=spe without SPE ABI support here.
14218         (rs6000_handle_option): Replace OPT_mabi_ handling with
14219         OPT_mabi_altivec and OPT_mabi_spe handling.
14220
14221 2011-05-06  Cary Coutant  <ccoutant@google.com>
14222
14223         * dwarf2out.c (contains_subprogram_definition): New function.
14224         (should_move_die_to_comdat): Call it.
14225
14226 2011-05-06  Jeff Law  <law@redhat.com>
14227
14228         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
14229         remove_ctrl_stmt_and_useless_edges.
14230         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
14231         (fixup_template_block, thread_single_edge): Likewise.
14232         (mark_threaded_blocks): Use THREAD_TARGET.
14233
14234 2011-05-06  Alan Modra  <amodra@gmail.com>
14235
14236         PR target/48900
14237         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14238         const0_rtx as the arg to the dummy __tls_get_addr libcall.
14239
14240 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14241
14242         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
14243         constraint modifier to "r".
14244
14245 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14246
14247         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
14248         fall through for OPT_mcmodel_.
14249
14250 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14251
14252         * config/s390/s390.c (s390_asm_trampoline_template): Comment
14253         instruction sizes.
14254         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
14255
14256 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14257
14258         PR target/47930
14259         * config/arm/arm.opt (marm): Document it.
14260         (mthumb): Reject negative variant.
14261
14262 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14263
14264         PR target/48898
14265         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14266         Fix typo in "ccvt" variable name.
14267
14268 2011-05-06  Tristan Gingold  <gingold@adacore.com>
14269
14270         PR target/48895
14271         * config/vms/vms-ar.c (main): Remove cwd variable.
14272
14273 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
14274
14275         PR debug/48902
14276         * var-tracking.c (prepare_call_arguments): Move else before #endif.
14277
14278 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
14279
14280         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
14281         * gimplify.c (gimplify_switch_expr): Likewise.
14282         * omp-low.c (expand_omp_sections): Likewise.
14283         * tree-eh.c (lower_try_finally_switch): Likewise.
14284         (lower_eh_dispatch): Likewise.
14285         * tree.h (build_case_label): Declare.
14286         * tree.c (build_case_label): Define.
14287
14288 2011-05-05  Jason Merrill  <jason@redhat.com>
14289
14290         PR c++/40975
14291         * tree-inline.c (copy_tree_r): Use copy_statement_list.
14292         (copy_statement_list): Don't recurse.
14293         * stor-layout.c (copy_self_referential_tree_r): Don't allow
14294         STATEMENT_LIST.
14295
14296 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14297
14298         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
14299         through from -mfpu= handling.
14300         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
14301
14302 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
14303
14304         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
14305         POST_MODIFY.
14306
14307 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
14308
14309         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
14310         for 11.31.
14311         (hppa[12]*-*-hpux11*): Ditto.
14312         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
14313         * config/ia64/hpux-unix2003.h: New.
14314         * config/pa/pa-hpux1131.opt: New.
14315         * config/pa/pa-hpux1131.h: New.
14316         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
14317         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
14318         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
14319
14320 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14321
14322         PR debug/48853
14323         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
14324         instead of mode as 3rd argument to recursive call.
14325         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
14326         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
14327         VOIDmode.
14328         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
14329         don't give up if mode is Pmode and mem_mode is not VOIDmode.
14330         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
14331         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
14332
14333 2011-05-05  Julian Brown  <julian@codesourcery.com>
14334
14335         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
14336         parenthesis in D-register case.
14337
14338 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14339
14340         * opt-functions.awk (var_type_struct): Handle Enum options.
14341         * optc-gen.awk: Don't check range of variables of character type.
14342         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
14343         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
14344         rs6000_sdata_name, rs6000_explicit_options): Remove.
14345         (rs6000_option_override_internal): Check for -malign-power here.
14346         Use global_options_set instead of rs6000_explicit_options.
14347         (rs6000_parse_fpu_option): Remove.
14348         (rs6000_handle_option): Access variables via opts and opts_set
14349         pointers.  Use error_at and warning_at.  Add fall-through
14350         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
14351         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
14352         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
14353         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
14354         here.  Don't use rs6000_parse_fpu_option.
14355         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
14356         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
14357         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
14358         (mrecip=): Use Var.
14359         (mspe): Use Var and Save.
14360         (mtraceback=): Use Enum and Var.
14361         (rs6000_traceback_type): New Enum and EnumValue entries.
14362         (mfloat-gprs=): Use Enum, Var and Save.
14363         (rs6000_float_gprs): New Enum and EnumValue entries.
14364         (mlong-double-): use Var and Save.
14365         (msched-costly-dep=, minsert-sched-nops=): Use Var.
14366         (malign-): Use Enum and Var.
14367         (rs6000_alignment_flags): New Enum and EnumValue entries.
14368         (mfpu=): Use Enum.
14369         (fpu_type_t): New Enum and EnumValue entries.
14370         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14371         global_options_set instead of rs6000_explicit_options.
14372         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14373         global_options_set instead of rs6000_explicit_options.
14374         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14375         global_options_set instead of rs6000_explicit_options.
14376         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14377         global_options_set instead of rs6000_explicit_options.
14378         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
14379         global_options_set instead of rs6000_explicit_options.
14380         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14381         global_options_set instead of rs6000_explicit_options.
14382         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
14383         definition.
14384         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14385         global_options_set instead of rs6000_explicit_options.
14386         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
14387         (rs6000_cmodel): New Enum and EnumValue entries.
14388         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14389         global_options_set instead of rs6000_explicit_options.
14390         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
14391         (mtls-size=): Use Enum and Var.
14392         (rs6000_tls_size): New Enum and EnumValue entries.
14393
14394 2011-05-05  Michael Matz  <matz@suse.de>
14395
14396         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
14397         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
14398         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
14399         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
14400         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
14401         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
14402         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
14403         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
14404         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
14405         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
14406         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
14407         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
14408         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
14409         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
14410         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
14411         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
14412
14413 2011-05-05  Richard Guenther  <rguenther@suse.de>
14414
14415         * expmed.c (expand_variable_shift): Rename to ...
14416         (expand_shift_1): ... this.  Take an expanded shift amount.
14417         For rotates recurse directly not building trees for the shift amount.
14418         (expand_variable_shift): Wrap around expand_shift_1.
14419         (expand_shift): Adjust.
14420
14421 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14422
14423         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
14424
14425 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14426
14427         * tree.h (get_pending_sizes): Remove prototype.
14428         (put_pending_size): Likewise.
14429         (put_pending_sizes): Likewise.
14430         * stor-layout.c (pending_sizes): Delete.
14431         (get_pending_sizes): Likewise.
14432         (put_pending_size): Likewise.
14433         (put_pending_sizes): Likewise.
14434         (variable_size): Do not call put_pending_size and tidy up.
14435         * function.h (struct function): Remove dont_save_pending_sizes_p.
14436         * lto-streamer-in.c (input_function): Do not stream it.
14437         * lto-streamer-out.c (output_function): Likewise.
14438         * tree-inline.c (initialize_cfun): Do not copy it.
14439         * c-decl.c (store_parm_decls): Do not set it.
14440         * omp-low.c (create_task_copyfn): Likewise.
14441         * tree-optimize.c (tree_rest_of_compilation): Likewise.
14442
14443 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
14444
14445         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
14446         conditions.
14447         (*movdf_internal): Ditto.
14448         (*movdf_internal_nointeger): Ditto.
14449         (*movsf_internal): Ditto.
14450
14451 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14452
14453         * c-decl.c (finish_decl): Don't call get_pending_sizes.
14454         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
14455         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
14456         (c_variable_size): Remove.
14457         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
14458         call put_pending_sizes.
14459         (get_parm_info): Add parameter expr.  Use it to set
14460         arg_info->pending_sizes.
14461         (store_parm_decls): Use arg_info->pending_sizes instead or calling
14462         get_pending_sizes.
14463         * c-parser.c (c_parser_parms_declarator): Update call to
14464         c_parser_parms_list_declarator.
14465         (c_parser_parms_list_declarator): Take parameter expr.  Update
14466         call to push_parm_decl.  Update recursive call.  Don't call
14467         get_pending_sizes.  Update calls to get_parm_info.
14468         (c_parser_objc_method_definition): Update calls to
14469         c_parser_objc_method_decl and objc_start_method_definition.
14470         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
14471         (c_parser_objc_method_decl): Add parameter expr.  Update call to
14472         grokparm.
14473         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
14474         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
14475         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
14476
14477 2011-05-05  Michael Hope  <michael.hope@linaro.org>
14478
14479         PR pch/45979
14480         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
14481         __ARM_EABI__ hosts.
14482
14483 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14484
14485         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14486         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
14487         (spu_output_mi_thunk): New function.
14488
14489 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14490
14491         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
14492         targetm.asm_out.print_operand.
14493         * config/sol2.c: Include target.h.
14494
14495 2011-05-04  Jan Hubicka  <jh@suse.cz>
14496
14497         * ipa-inline.c (reset_edge_caches): New function.
14498         (update_caller_keys): Add check_inlinablity_for; do not
14499         reset edge caches; remove now unnecesary loop.
14500         (update_callee_keys): Add comments; reset node_growth_cache of callee.
14501         (update_all_callee_keys): Likewise.
14502         (inline_small_functions): Sanity check cache; update code
14503         recomputing it.
14504
14505 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
14506
14507         PR rtl-optimization/47612
14508         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
14509         as the last insn of the sequence to be moved.
14510
14511 2011-05-04  Tobias Burnus  <burnus@net-b.de>
14512
14513         PR fortran/48864
14514         * doc/invoke.texi (Ofast): Document that it
14515         enables Fortran's -fno-protect-parens.
14516
14517 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14518
14519         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
14520
14521 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14522
14523         * stor-layout.c (variable_size): Do not issue errors.
14524
14525 2011-05-04  Richard Guenther  <rguenther@suse.de>
14526
14527         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
14528         for array-ref indices.
14529         (tree_coverage_counter_addr): Likewise.
14530         (build_fn_info_type): Use size_int for index types.
14531         (build_gcov_info): Likewise.
14532
14533 2011-05-04  Richard Guenther  <rguenther@suse.de>
14534
14535         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
14536         to build_int_cst.
14537         * c-typeck.c (really_start_incremental_init): Use bitsize_int
14538         for constructor indices.
14539         (push_init_level): Likewise.
14540
14541 2011-05-04  Richard Guenther  <rguenther@suse.de>
14542
14543         * explow.c (promote_mode): Move variable declarations before code.
14544
14545 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
14546
14547         * tree.h (build_function_type_array): Declare.
14548         (build_varargs_function_type_array): Declare.
14549         (build_function_type_vec, build_varargs_function_type_vec): Define.
14550         * tree.c (build_function_type_array_1): New function.
14551         (build_function_type_array): New function.
14552         (build_varargs_function_type_array): New function.
14553
14554 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
14555
14556         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
14557         before setting STMT_VINFO_TYPE.
14558
14559 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14560
14561         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
14562         instead of spu_pass_by_reference.
14563
14564 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14565
14566         * calls.c (emit_library_call_value_1): Invoke
14567         promote_function_mode hook on libcall arguments.
14568         * explow.c (promote_function_mode, promote_mode): Handle TYPE
14569         argument being NULL.
14570         * targhooks.c (default_promote_function_mode): Lisewise.
14571         * config/s390/s390.c (s390_promote_function_mode): Likewise.
14572         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
14573
14574         * doc/tm.texi: Document that TYPE argument might be NULL.
14575
14576 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14577
14578         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
14579
14580 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14581
14582         From Bernd Schmidt
14583         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
14584
14585 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14586
14587         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
14588         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
14589         Move ...
14590         * mips-tfile.c: ... here.
14591         Don't include coretypes.h, tm.h, filenames.h.
14592         (saber_stop): Remove definition and all calls.
14593         [__SABER__]: Remove.
14594         (__LINE__): Remove default.
14595         (Size_t, Ptrdiff_t): Remove definitions.
14596         Replace by size_t, ptrdiff_t.
14597         [!MIPS_DEBUGGING_INFO]: Remove.
14598         (SHASH_SIZE, THASH_SIZE): Remove defaults.
14599         (progname): Add const.
14600         (STATIC): Remove.
14601         Replace all uses by static.
14602         (ALIGN_SYMTABLE_OFFSET): Remove default.
14603         * mips-tdump.c: Don't include coretypes.h, tm.h.
14604         Remove !MIPS_IS_STAB guard.
14605         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
14606         $(TM_H), filenames.h dependencies.
14607         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
14608
14609 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14610
14611         From Jie Zhang
14612         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
14613         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
14614
14615 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14616
14617         From Bernd Schmidt
14618         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
14619         account and save/restore RETS.
14620         (PROFILE_BEFORE_PROLOGUE): Define.
14621         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
14622         the push insn to use predecrement.
14623
14624 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14625
14626         From Jie Zhang
14627         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
14628
14629 2011-05-04  Nick Clifton  <nickc@redhat.com>
14630
14631         * config/mn10300/mn10300.c: Include cfgloop.h.
14632         (DUMP): New macro.
14633         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
14634         Lcc or a FLcc insn into the instruction stream.
14635         (mn10300_block_contains_call): New function.  Returns true if the
14636         given basic block contains a CALL insn.
14637         (mn10300_loop_contains_call_insn): New function.  Returns true if
14638         the given loop contains a CALL insn.
14639         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
14640         to use the SETLB and Lcc or FLcc insns.
14641         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
14642         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
14643         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
14644         disable the SETLB optimization.
14645         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
14646         __SETLB__ or __NO_SETLB__.
14647         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
14648         (movsf_internal): Handle MDR register.
14649         (cmpsi): Make visible.
14650         (setlb): New pattern.
14651         (Lcc): New pattern.
14652         (FLcc): New pattern.
14653
14654 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14655
14656         PR target/48860
14657         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
14658         for reg<->xmm moves.
14659         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
14660         (vec_concatv2di_rex64_sse): Ditto.
14661         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
14662         (*vec_extractv2di_1_rex64): Ditto.
14663
14664         Revert:
14665         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
14666
14667         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14668         reg<->xmm moves.
14669         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
14670
14671 2011-05-04  Richard Guenther  <rguenther@suse.de>
14672
14673         * tree.h (int_const_binop): Remove notrunc argument.
14674         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
14675         create integer constants that are properly truncated.
14676         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
14677         (const_binop): Remove zero notrunc argument to int_const_binop.
14678         (size_binop_loc): Likewise.
14679         (fold_div_compare): Likewise.
14680         (maybe_canonicalize_comparison_1): Likewise.
14681         (fold_comparison): Likewise.
14682         (fold_binary_loc): Likewise.
14683         (multiple_of_p): Likewise.
14684         * expr.c (store_constructor): Likewise.
14685         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14686         (maybe_fold_stmt_addition): Likewise.
14687         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
14688         * stor-layout.c (layout_type): Likewise.
14689         * tree-data-ref.c (tree_fold_divides_p): Likewise.
14690         * tree-sra.c (build_ref_for_offset): Likewise.
14691         (build_user_friendly_ref_for_offset): Likewise.
14692         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
14693         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
14694         * tree-ssa-loop-niter.c (inverse): Likewise.
14695         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14696         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
14697         * tree-switch-conversion.c (check_range): Likewise.
14698         (build_constructors): Likewise.
14699         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
14700         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
14701         (extract_range_from_assert): Likewise.
14702         (vrp_int_const_binop): Likewise.
14703         (extract_range_from_binary_expr): Likewise.
14704         (extract_range_from_unary_expr): Likewise.
14705         (check_array_ref): Likewise.
14706         (find_case_label_range): Likewise.
14707         (simplify_div_or_mod_using_ranges): Likewise.
14708         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
14709         comparing case labels for merging.
14710
14711 2011-05-03  Mark Wielaard  <mjw@redhat.com>
14712
14713         * dwarf2out.c (debug_str_hash_forced): Removed.
14714         (gen_label_for_indirect_string): Removed.
14715         (get_debug_string_label): Removed.
14716         (AT_string_form): Generate label directly.
14717         (output_indirect_string): Test indirect_string_node for
14718         DW_FORM_strp instead of checking label and refcount.
14719         (prune_indirect_string): Removed.
14720         (prune_unused_types): Don't check debug_str_hash_forced or
14721         call prune_indirect_string.
14722
14723 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14724
14725         PR other/48093
14726         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
14727
14728 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14729
14730         PR debug/47994
14731         PR debug/47919
14732         * combine.c (try_combine): Skip debug insns at m_split tests.
14733
14734 2011-04-26  Mark Wielaard  <mjw@redhat.com>
14735
14736         PR42288
14737         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
14738         when info_section_emitted.
14739
14740 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
14741
14742         * config/mips/mips-opts.h: New.
14743         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
14744         to mips-opts.h.
14745         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
14746         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
14747         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
14748         via opts pointer.
14749         * config/mips/mips.h (enum mips_code_readable_setting): Move to
14750         mips-opts.h.
14751         (mips_abi, mips_code_readable): Don't declare.
14752         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
14753         (mabi=): Use Enum and Var.
14754         (mips_abi): New Enum and EnumValue entries.
14755         (mcode-readable=): Use Enum and Var.
14756         (mips_code_readable_setting): New Enum and EnumValue entries.
14757         (mr10k-cache-barrier=): Use Enum and Var.
14758         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
14759
14760 2011-05-03  Jan Hubicka  <jh@suse.cz>
14761
14762         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
14763         replace hash by pointer map.
14764         (cgraph_node_set_element_def, cgraph_node_set_element,
14765         const_cgraph_node_set_element, varpool_node_set_element_def,
14766         varpool_node_set_element, const_varpool_node_set_element): Remove.
14767         (free_cgraph_node_set, free_varpool_node_set): New function.
14768         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
14769         * tree-emutls.c: Free varpool node set.
14770         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
14771         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14772         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
14773         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14774         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
14775         Move here from ipa.c; implement using pointer_map
14776         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
14777         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14778         debug_cgraph_node_set, varpool_node_set_new,
14779         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14780         dump_varpool_node_set, debug_varpool_node_set):
14781         Move to ipa-uitls.c.
14782         * passes.c (ipa_write_summaries): Update.
14783
14784 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14785
14786         From Mike Frysinger:
14787         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
14788         bf542/bf544/bf547/bf548/bf549.
14789
14790 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14791
14792         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
14793
14794 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14795
14796         From Bernd Schmidt:
14797         * config/bfin/bfin.md (MOVCC): New mode_macro.
14798         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
14799         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
14800         comments from generated assembly.
14801
14802 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14803
14804         From Bernd Schmidt
14805         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
14806         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
14807         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
14808         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
14809         * config/bfin/lib1funcs.asm (___muldi3): New function.
14810
14811 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14812
14813         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
14814         build_function_type_list instead of build_function_type.
14815         Rearrange initialization of `args' to do so.
14816
14817 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14818
14819         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
14820         instead of build_function_type.
14821
14822 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14823
14824         * config/rs6000/rs6000.c (spe_init_builtins): Call
14825         build_function_type_list instead of build_function_type.
14826         (paired_init_builtins, altivec_init_builtins): Likewise.
14827         (builtin_function_type): Likewise.
14828
14829 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14830
14831         * config/sh/sh.c (sh_media_init_builtins): Call
14832         build_function_type_list instead of build_function_type.
14833
14834 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14835
14836         * config/sparc/sparc.c (sparc_file_end): Call
14837         build_function_type_list instead of build_function_type.
14838
14839 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14840
14841         * config/alpha/alpha.c (alpha_init_builtins): Call
14842         build_function_type_list instead of build_function_type.
14843
14844 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14845
14846         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
14847         build_function_type_list instead of build_function_type.
14848
14849 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14850
14851         * config/iq2000/i2000.c (iq2000_init_builtins): Call
14852         build_function_type_list instead of build_function_type.
14853         Delete `endlink' variable.
14854
14855 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14856
14857         * config/avr/avr.c (avr_init_builtins): Call
14858         build_function_type_list instead of build_function_type.
14859
14860 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14861
14862         * config/picochip/picochip.c (picochip_init_builtins): Call
14863         build_function_type_list instead of build_function_type.
14864         Delete `endlink' variable.
14865
14866 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14867
14868         * config/bfin/bfin.c (bfin_init_builtins): Call
14869         build_function_type_list instead of build_function_type.
14870
14871 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14872
14873         From Bernd Schmidt
14874         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
14875         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
14876
14877 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14878
14879         From Jie Zhang:
14880         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
14881         libbffastfp overrides libgcc when -mfast-fp.
14882
14883 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14884
14885         Originally from Bernd Schmidt
14886         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
14887         * config/bfin/bfin.c (override_options): Test it and error if
14888         TARGET_FDPIC.
14889
14890 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14891
14892         Originally From Bernd Schmidt
14893         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
14894         FD-PIC.
14895
14896 2011-05-03  Jeff Law  <law@redhat.com>
14897
14898         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
14899         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
14900         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
14901         than accessing AUX field directly.  Free the AUX field before
14902         clearing it.
14903         (thread_block, thread_through_loop_header): Likewise.
14904         (thread_single_edge, mark_threaded_blocks): Likewise.
14905         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
14906         (register_jump_thread): Do not attempt to thread to a NULL edge.
14907
14908 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14909
14910         * function.c (init_function_start): Call decide_function_section.
14911         * varasm.c (decide_function_section): New function.
14912         (assemble_start_function): When not using
14913         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
14914         or first_function_block_is_cold.
14915         * rtl.h (decide_function_section): Declare.
14916
14917 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14918             Jakub Jelinek  <jakub@redhat.com>
14919
14920         PR target/48774
14921         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
14922         only succeed if req_mode is the same as set_mode.
14923
14924 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14925
14926         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
14927         * genemit.c (gen_exp): Handle RETURN.
14928         * emit-rtl.c (verify_rtx_sharing): Likewise.
14929         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
14930         * rtl.c (copy_rtx): RETURN is shared.
14931         * rtl.h (enum global_rtl_index): Add GR_RETURN.
14932         (ret_rtx): New.
14933         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
14934         * config/s390/s390.c (s390_emit_epilogue): Likewise.
14935         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
14936         * config/cris/cris.c (cris_expand_return): Likewise.
14937         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
14938         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
14939         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
14940         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
14941         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
14942         Likewise.
14943         * config/v850/v850.c (expand_epilogue): Likewise.
14944         * config/bfin/bfin.c (bfin_expand_call): Likewise.
14945         * config/arm/arm.md (epilogue): Likewise.
14946         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
14947         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
14948         variable to ret_reg.
14949
14950 2011-05-03  Richard Guenther  <rguenther@suse.de>
14951
14952         PR lto/48846
14953         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
14954         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
14955         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
14956
14957 2011-05-03  Richard Guenther  <rguenther@suse.de>
14958
14959         * c-decl.c (grokdeclarator): Instead of looking at
14960         TREE_OVERFLOW check if the constant fits in the index type.
14961
14962 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14963
14964         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
14965         (vec_store_lanes<mode><mode>): Likewise.
14966
14967 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14968
14969         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
14970         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
14971         convert_optab_index values.
14972         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
14973         * genopinit.c (optabs): Initialize the new optabs.
14974         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
14975         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
14976         (expand_STORE_LANES): New functions.
14977         * tree.h (build_array_type_nelts): Declare.
14978         * tree.c (build_array_type_nelts): New function.
14979         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
14980         (vect_model_load_cost): Likewise.
14981         (vect_store_lanes_supported, vect_load_lanes_supported)
14982         (vect_record_strided_load_vectors): Declare.
14983         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
14984         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
14985         (vect_transform_strided_load): Split out statement recording into...
14986         (vect_record_strided_load_vectors): ...this new function.
14987         * tree-vect-stmts.c (create_vector_array, read_vector_array)
14988         (write_vector_array, create_array_ref): New functions.
14989         (vect_model_store_cost): Add store_lanes_p argument.
14990         (vect_model_load_cost): Add load_lanes_p argument.
14991         (vectorizable_store): Try to use store-lanes functions for
14992         interleaved stores.
14993         (vectorizable_load): Likewise load-lanes and loads.
14994         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
14995         to vect_model_store_cost.
14996         (vect_build_slp_tree): Likewise vect_model_load_cost.
14997
14998 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14999
15000         * hooks.h (hook_bool_mode_uhwi_false): Declare.
15001         * hooks.c (hook_bool_mode_uhwi_false): New function.
15002         * target.def (array_mode_supported_p): New hook.
15003         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
15004         * doc/tm.texi: Regenerate.
15005         * stor-layout.c (mode_for_array): New function.
15006         (layout_type): Use it.
15007         * config/arm/arm.c (arm_array_mode_supported_p): New function.
15008         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
15009
15010 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
15011
15012         PR target/48723
15013         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
15014         for -fstack-check if the size to allocate is negative.
15015
15016 2011-05-02  Lawrence Crowl  <crowl@google.com>
15017
15018         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
15019         (timevar_cond_start): New for starting a timer only when it is not
15020         already running.
15021         (timevar_cond_stop): New for stopping a timer when it was not already
15022         running.
15023
15024         * timevar.c (timevar_stop): Enable start/stop timers to start again.
15025         (timevar_cond_start): New as above.
15026         (timevar_cond_stop): New as above.
15027
15028         * timevar.def: Add start/stop timers for compiler phases,
15029         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
15030         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
15031         and TV_PHASE_FINALIZE.
15032         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
15033         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
15034         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
15035         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
15036         Make unused TV_OVERLOAD into a start/stop timer.
15037
15038         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
15039         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
15040         to indicate that they are start/stop timers.
15041
15042         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
15043         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
15044         Move initialization to do_compile.
15045         (do_compile): Add initialization from above.
15046         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
15047
15048         * c-decl.c (c_write_global_declarations): Add start/stop of
15049         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
15050
15051         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
15052         or TV_PARSE_INLINE, as appropriate.
15053         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
15054         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
15055
15056 2011-05-02  Jason Merrill  <jason@redhat.com>
15057
15058         PR c++/40975
15059         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
15060
15061 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
15062
15063         PR c/35445
15064         * c-decl.c (finish_decl): Only create a composite if the types are
15065         compatible.
15066
15067 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15068
15069         * config/fr30/fr30-protos.h (Mmode): Don't define.
15070         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
15071         definition where used.
15072         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
15073         define.  Expand definitions where used.
15074         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
15075         Expand definitions where used.
15076         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
15077         rx_function_arg, rx_function_arg_advance,
15078         rx_function_arg_boundary): Expand definitions of those macros.
15079         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
15080         definition where used.
15081
15082 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15083
15084         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
15085         reg<->xmm moves.
15086         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
15087         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
15088         with *movv2sf_internal_rex64_avx.
15089         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
15090         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
15091         Use %v prefix in insn mnemonic to handle TARGET_AVX.
15092         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
15093         "vex" in "prefix" attribute calculation.
15094         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
15095
15096 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
15097
15098         PR target/47951
15099         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
15100         inputs match the output.
15101
15102 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
15103
15104         PR target/47955
15105         * config/m68k/m68k.c (m68k_expand_prologue): Set
15106         current_function_static_stack_size.
15107
15108 2011-05-02   Jan Hubicka  <jh@suse.cz>
15109
15110         * lto-streamer.c (lto_streamer_cache_insert_1,
15111         lto_streamer_cache_lookup, lto_streamer_cache_create,
15112         lto_streamer_cache_delete): Use pointer map instead of hashtable.
15113         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
15114
15115 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15116
15117         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
15118         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
15119         config/m68k/t-opts: New files.
15120         * config/m68k/m68k-tables.opt: New file (generated).
15121         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
15122         extra_options and m68k/t-opts to tmake_file.
15123         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
15124         (all_isas): Initialize using m68k-isas.def.
15125         (all_microarchs): Initialize using m68k-microarchs.def.
15126         (m68k_find_selection): Remove.
15127         (m68k_handle_option): Don't assert that global structures are in
15128         use.  Use error_at.  Access variables via opts pointer.  Don't
15129         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
15130         directly for -m68020-40 and -m68020-60.
15131         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
15132         m68k_tune_entry here.
15133         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
15134         to m68k-opts.h.
15135         (m68k_library_id_string): Remove declaration.
15136         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
15137         (m68k_library_id_string): New Variable.
15138         (march=, mcpu=, mtune=): Use Enum and Var.
15139
15140 2011-05-02  Richard Guenther  <rguenther@suse.de>
15141
15142         * varasm.c (output_constructor_regular_field): Compute zero-based
15143         index with double-ints.  Make sure to ICE instead of producing
15144         wrong code.
15145         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
15146         in asserts.  Properly use a signed type.
15147
15148 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15149
15150         * config/i386/sse.md (V): New mode iterator.
15151         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
15152         TARGET_SSE2.
15153         (V_256): Rename from AVX256MODE.
15154         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
15155         condition to all users.
15156         (VF1): Ditto.
15157         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
15158         condition to all users.
15159         (VF_128): Make V4SF mode unconditional.
15160         (VF_256): Rename from AVX256MODEF2P.
15161         (VI4F_128): Rename from SSEMODE4S.
15162         (VI8F_128): Rename from SSEMODE2D.
15163         (VI4F_256): Rename from AVX256MODE8P.
15164         (VI8F_256): Rename from AVX256MODE4P.
15165         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
15166         (ssescalarmodesuffix): Remove SF and DF modes.
15167         (SSEMODE124): Remove.
15168         (SSEMODE1248): Ditto.
15169         (SSEMODEF2P): Ditto.
15170         (AVXMODEF2P): Ditto.
15171         (AVXMODEFDP): Ditto.
15172         (AVXMODEFSP): Ditto.
15173         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
15174         unconditional.
15175         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
15176         unconditional.
15177         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
15178         xop_pcmov_<mode>256.  Use V mode iterator.
15179
15180         Adjust RTX patterns globally for renamed mode attributes.
15181
15182 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15183
15184         * haifa-sched.c (sched_emit_insn): Emit insn before first
15185         non-scheduled insn.  Inform back-end about new insn.  Add
15186         new insn to scheduled_insns list.
15187
15188 2011-05-02  Richard Guenther  <rguenther@suse.de>
15189
15190         PR tree-optimization/48822
15191         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
15192         (process_scc): Indicate which iteration we start.
15193
15194 2011-05-02  Jan Hubicka  <jh@suse.cz>
15195
15196         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
15197         (lto_section_overrun): New.
15198         * lto-section-out.c (append_block): Rename to ...
15199         (lto_append_block): ... this one; export.
15200         (lto_output_1_stream): Move lto lto-streamer.h
15201         (lto_output_data_stream): Update.
15202         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
15203         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
15204         functions.
15205
15206 2011-05-02  Richard Guenther  <rguenther@suse.de>
15207
15208         * tree.c (tree_code_counts): New global array.
15209         (record_node_allocation_statistics): Count individual tree codes.
15210         (dump_tree_statistics): Dump individual code stats.
15211
15212 2011-05-01  Jan Hubicka  <jh@suse.cz>
15213
15214         * ipa-inline.c (caller_growth_limits): Fix thinko when
15215         looking for largest stack frame.
15216         * ipa-inline.h (dump_inline_summary): Declare.
15217         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
15218         on stack usage.
15219         (dump_inline_summary): Export.
15220         (debug_inline_summary): Declare as DEBUG_FUNCTION.
15221
15222 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
15223
15224         * reginfo.c (memory_move_cost): Change rclass argument type form
15225         'enum reg_class' to reg_class_t.
15226         * reload.h (memory_move_cost): Update prototype.
15227         * postreload.c reload_cse_simplify_set): Change type dclass var to
15228         reg_class_t.
15229         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
15230         Update prototype.
15231         (ira_allocate_and_set_costs): Change aclass argument type form
15232         'enum reg_class' to reg_class_t.
15233         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
15234         Change aclass argument type to reg_class_t.
15235         (update_conflict_hard_reg_costs): Change type aclass and pref vars
15236         to reg_class_t.
15237         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
15238         memory_move_cost call.
15239
15240         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
15241         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
15242         Change type tmp var to reg_class_t.
15243
15244 2011-04-30  Jan Hubicka  <jh@suse.cz>
15245
15246         * ipa-inline.c (can_inline_edge_p): Disregard limits when
15247         inlining into function with flatten attribute.
15248         (want_inline_small_function_p): Be more realistic about inlining
15249         cold calls where callee size grows.
15250
15251 2011-04-30  Jan Hubicka  <jh@suse.cz>
15252
15253         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
15254         flags.
15255
15256 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
15257
15258         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15259         PRINT_OPERAND_PUNCT_VALID_P): Remove.
15260         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
15261         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
15262         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15263         (print_operand): Rename to...
15264         (sparc_print_operand): ...this. Make static. Adjust
15265         sparc_print_operand function call.
15266         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
15267         functions.
15268
15269 2011-04-30  Jan Hubicka  <jh@suse.cz>
15270
15271         PR middle-end/48752
15272         * ipa-inline.c (early_inliner): Disable when doing late
15273         addition of function.
15274
15275 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
15276
15277         * dwarf2out.c (get_address_mode): New inline.
15278         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
15279         if not dwarf_strict emit
15280         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
15281         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
15282         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
15283         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
15284         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
15285         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
15286         mem_loc_descriptor callers.
15287         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
15288         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
15289         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
15290         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
15291         (base_types): New variable.
15292         (get_base_type_offset, calc_base_type_die_sizes,
15293         base_type_for_mode, mark_base_types, base_type_cmp,
15294         move_marked_base_types): New functions.
15295         (calc_die_sizes): Assert that die_offset is 0 or equal to
15296         next_die_offset.
15297         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
15298         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
15299         callers.  If not dwarf_strict, call mem_loc_descriptor even for
15300         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
15301         (gen_subprogram_die): Don't give up on call site parameters
15302         with non-integral or large integral modes.  Adjust
15303         mem_loc_descriptor callers.
15304         (prune_unused_types): Call prune_unused_types_mark on base_types
15305         vector entries.
15306         (resolve_addr): Call mark_base_types.
15307         (dwarf2out_finish): Call move_marked_base_types.
15308
15309         PR tree-optimization/48809
15310         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
15311         type.
15312         (gen_inbound_check): Don't compute index_expr - range_min in utype
15313         again, instead reuse SSA_NAME initialized in build_arrays.
15314         Remove two useless gsi_for_stmt calls.
15315
15316 2011-04-29  Jeff Law  <law@redhat.com>
15317
15318         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
15319
15320 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15321
15322         * cgraph.h (cgraph_postorder): Remove declaration.
15323         * ipa-utils.h (ipa_free_postorder_info): Declare.
15324         (ipa_reverse_postorder): Likewise.
15325         * cgraphunit.c: Include ipa-utils.h.
15326         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
15327         * ipa-inline.c: Include ipa-utils.h.
15328         (ipa_inline): Update call to ipa_reverse_postorder.
15329         * ipa-pure-const.c (propagate_pure_const): Update call to
15330         ipa_reduced_postorder and ipa_print_order.  Call
15331         ipa_free_postorder_info to clean up.
15332         (propagate_nothrow): Likewise.
15333         * ipa-reference.c (propagate): Removed a useless call to
15334         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
15335         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
15336         * ipa.c: Include ipa-utils.h.
15337         (ipa_profile): Update call to ipa_reverse_postorder.
15338         (cgraph_postorder): Moved to...
15339         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
15340         (ipa_utils_print_order): Renamed to ipa_print_order.
15341         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
15342         comments.
15343         (ipa_free_postorder_info): New function.
15344         * passes.c: Include ipa-utils.h.
15345         (do_per_function_toporder): Update call to ipa_reverse_postorder.
15346         (ipa_write_summaries): Likewise.
15347         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
15348         (cgraphunit.o): Likewise.
15349         (ipa.o): Likewise.
15350         (ipa-inline.o): Likewise.
15351
15352 2011-04-29  Jan Hubicka  <jh@suse.cz>
15353
15354         * gcc.dg/tree-ssa/inline-10.c: New testcase.
15355         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
15356         * ipa-inline.h (clause_t): Turn into unsigned int.
15357         * ipa-inline-analysis.c (add_clause): Do more simplification.
15358         (and_predicates): Shortcut more cases.
15359         (predicates_equal_p): Move forward; check that clauses are properly
15360         ordered.
15361         (or_predicates): Shortcut more cases.
15362         (edge_execution_predicate): Rewrite as...
15363         (set_cond_stmt_execution_predicate): ... this function; handle
15364         __builtin_constant_p.
15365         (set_switch_stmt_execution_predicate): New .
15366         (compute_bb_predicates): New.
15367         (will_be_nonconstant_predicate): Update TODO.
15368         (estimate_function_body_sizes): Use compute_bb_predicates
15369         and free them later, always try to estimate if stmt is constant.
15370         (estimate_time_after_inlining, estimate_size_after_inlining):
15371         Gracefully handle optimized out edges.
15372         (read_predicate): Fix off by one error.
15373
15374 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
15375
15376         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
15377
15378 2011-04-27  Xinliang David Li  <davidxl@google.com>
15379
15380         * tree-profile.c (init_ic_make_global_vars): Set
15381         tls attribute on ic vars.
15382         * coverage.c (coverage_end_function): Initialize
15383         function_list with zero.
15384
15385 2011-04-29  Richard Guenther  <rguenther@suse.de>
15386
15387         * builtins.c (fold_builtin_classify_type): Use integer_type_node
15388         for the type of the result.
15389         (fold_builtin_isascii): Likewise.
15390         (fold_builtin_toascii): Use integer_type_node where appropriate.
15391         (fold_builtin_logb): Likewise.
15392         (fold_builtin_frexp): Likewise.
15393         (fold_builtin_strstr): Likewise.
15394         (fold_builtin_strpbrk): Likewise.
15395         (fold_builtin_fputs): Likewise.
15396         (fold_builtin_sprintf): Likewise.
15397         (fold_builtin_snprintf): Likewise.
15398         (fold_builtin_printf): Likewise.
15399         (do_mpfr_remquo): Use a proper type for the assigned constant.
15400         (do_mpfr_lgamma_r): Likewise.
15401         * dwarf2out.c (resolve_one_addr): Use size_int.
15402         * except.c (init_eh): Likewise.
15403         (assign_filter_values): Use integer_type_node for filter values.
15404         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
15405         indices.
15406         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
15407         for EH region numbers.
15408         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
15409         for the shift amount.
15410
15411 2011-04-29  Richard Guenther  <rguenther@suse.de>
15412
15413         * expr.h (expand_shift): Rename to ...
15414         (expand_variable_shift): ... this.
15415         (expand_shift): Take a constant shift amount.
15416         * expmed.c (expand_shift): Rename to ...
15417         (expand_variable_shift): ... this.
15418         (expand_shift): New wrapper around expand_variable_shift.
15419         * expr.c (convert_move, emit_group_load_1, emit_group_store,
15420         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
15421         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
15422         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
15423         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
15424         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
15425         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
15426         emit_store_flag_1, emit_store_flag): Likewise.
15427         * builtins.c (expand_builtin_signbit): Likewise.
15428         * calls.c (load_register_parameters): Likewise.
15429         * function.c (assign_parm_setup_block): Likewise.
15430         * lower-subreg.c (resolve_shift_zext): Likewise.
15431         * optabs.c (widen_bswap, expand_abs_nojump,
15432         expand_one_cmpl_abs_nojump, expand_float): Likewise.
15433         * spu/spu.c (spu_expand_extv): Likewise.
15434         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15435
15436 2011-04-29  Richard Guenther  <rguenther@suse.de>
15437
15438         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
15439         for the remapped region number.
15440         * predict.c (build_predict_expr): Use integer_type_node for the
15441         predict kind.
15442         * fold-const.c (fold_binary_loc): Use integer_type_node for
15443         the shift amount.  Use a proper type for the PLUS_EXPR operand.
15444
15445 2011-04-29  Michael Matz  <matz@suse.de>
15446
15447         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
15448         other trees that just builtins.
15449         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
15450
15451 2011-04-29  Richard Guenther  <rguenther@suse.de>
15452
15453         * tree-nested.c (get_trampoline_type): Use size_int.
15454         (get_nl_goto_field): Likewise.
15455         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
15456         for all indexes.
15457         (lower_eh_constructs_2): Likewise.
15458         (lower_resx): Likewise.
15459         (lower_eh_dispatch): Likewise.
15460         * tree-mudflap.c (mf_build_string): Use size_int.
15461         (mudflap_register_call): Use integer_type_node for the flag.
15462         (mudflap_enqueue_constant): Use size_int.
15463         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
15464         instead of rebuilding it.
15465
15466 2011-04-29  Richard Guenther  <rguenther@suse.de>
15467
15468         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
15469         Handle OBJ_TYPE_REF.
15470         (find_func_aliases_for_call): Use it more consistently.
15471
15472 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
15473
15474         * haifa-sched.c (last_nondebug_scheduled_insn): New.
15475         (rank_for_schedule): Use it.
15476         (schedule_block): Set it.
15477
15478 2011-04-28  David Li  <davidxl@google.com>
15479
15480         * tree.c (crc32_string): Use crc32_byte.
15481         (crc32_byte): New function.
15482         * tree.h (crc32_byte): New function.
15483         * gcov.c (read_graph_file): Handle new cfg_cksum.
15484         (read_count_file): Ditto.
15485         * profile.c (instrument_values): Ditto.
15486         (get_exec_counts): Ditto.
15487         (read_profile_edge_counts): Ditto.
15488         (compute_branch_probabilities): Ditto.
15489         (compute_value_histograms): Ditto.
15490         (branch_prob): Ditto.
15491         (end_branch_prob): Ditto.
15492         * coverage.c (read_counts_file): Ditto.
15493         (get_coverage_counts): Ditto.
15494         (tree_coverage_counter_addr): Ditto.
15495         (coverage_checksum_string): Ditto.
15496         (coverage_begin_output): Ditto.
15497         (coverage_end_function): Ditto.
15498         (build_fn_info_type): Ditto.
15499         (build_fn_info_value): Ditto.
15500         * libgcov.c (gcov_exit): Ditto.
15501         * gcov-dump.c (tag_function): Ditto.
15502         (compute_checksum): Remove.
15503
15504 2011-04-29  Alan Modra  <amodra@gmail.com>
15505
15506         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15507         unspec plus offset.  Tidy macho code.
15508
15509 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15510
15511         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
15512         node instead of a decl.  Update all callers.
15513         * cgraph.h: Update declaration.
15514
15515 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
15516
15517         PR tree-optimization/48765
15518         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
15519         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
15520         to indicate if loop aware SLP is being used.  Scan the statements
15521         and update the vectorization factor according to the type of
15522         vectorization before statement analysis.
15523         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
15524         pass it to vect_analyze_loop_operations.
15525         (vectorizable_reduction): Set number of copies to 1 in case of pure
15526         SLP statement.
15527         * tree-vect-stmts.c (vectorizable_conversion,
15528         vectorizable_assignment, vectorizable_shift,
15529         vectorizable_operation, vectorizable_type_demotion,
15530         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
15531         Likewise.
15532         (vectorizable_condition): Move the check that it is not SLP
15533         vectorization before the number of copies check.
15534         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
15535         to vectorize the loop using SLP.
15536
15537 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
15538
15539         PR middle-end/48597
15540         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
15541         inline asm.
15542
15543 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
15544
15545         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
15546         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
15547         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15548         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15549         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
15550         linux*.h headers.
15551         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
15552         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15553         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15554         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15555         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15556         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
15557         REG_NAME.
15558         * config/i386/linux.h (REG_NAME): Don't define.
15559         * config/i386/linux64.h (REG_NAME): Don't define.
15560         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
15561         Undefine before defining.
15562
15563 2011-04-28  Jan Hubicka  <jh@suse.cz>
15564
15565         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
15566         nonconstant_names array.
15567         (estimate_function_body_sizes): Build nonconstant_names array; handle
15568         BUILT_IN_CONSTANT_P.
15569
15570 2011-04-28  Richard Guenther  <rguenther@suse.de>
15571
15572         PR bootstrap/48804
15573         Revert
15574         2011-04-28  Richard Guenther  <rguenther@suse.de>
15575
15576         * tree-ssa-structalias.c (solve_constraints): Build succ graph
15577         as late as possible.
15578
15579 2011-04-28  Richard Guenther  <rguenther@suse.de>
15580
15581         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
15582         (debug_constraint): Do it here.
15583         (dump_constraints): And here.
15584         (rewrite_constraints): And here.
15585         (dump_constraint_edge): Remove.
15586         (dump_constraint_graph): Rewrite to produce DOT output.
15587         (solve_constraints): Build succ graph as late as possible.
15588         Dump constraint graphs before and after solving.
15589
15590 2011-04-28  Richard Guenther  <rguenther@suse.de>
15591
15592         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15593         New function split out from ...
15594         (find_func_aliases): ... here.  Call it.
15595         (find_func_aliases_for_call): Likewise.
15596
15597 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15598
15599         * internal-fn.h (internal_fn_name_array): Declare.
15600         (internal_fn_flags_array): Likewise.
15601
15602 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15603
15604         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
15605         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
15606         Move from sse.md.
15607         (ssemodefsuffix): Remove.
15608         (ssevecmodesuffix): New mode attribute.
15609         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
15610         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
15611         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
15612         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
15613         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
15614         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
15615         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
15616         ssemodesuffix mode attribute.
15617         (float splitters): Use ssevecmodesuffix mode attribute.
15618         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
15619         (sseinsmode): Rename from avxvecmode.
15620         (avxsizesuffix): Rename from avxmodesuffix.
15621         (sseintvecmode): Rename from avxpermvecmode.
15622         (ssedoublevecmode): Rename from ssedoublesizemode.
15623         (ssehalfvecmode): Rename from avxhalfvecmode.
15624         (ssescalarmode): Rename from avxscalarmode.
15625         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
15626         templates for ssemodesuffix mode attribute.
15627         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
15628         mode attribute.
15629
15630         Adjust RTX patterns globally for renamed mode attributes.
15631
15632 2011-04-27  Jan Hubcika  <jh@suse.cz>
15633
15634         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
15635         * ipa-inline-analysis.c: Include alloc-pool.h.
15636         (edge_predicate_pool): New.
15637         (trye_predicate_p): New function
15638         (false_predicate_p): New function.
15639         (add_clause): Sanity check that false clauses are "optimized";
15640         never add clauses to predicate that is already known to be false.
15641         (and_predicate): Use flase_predicate_p.
15642         (evaulate_predicate): Rename to ...
15643         (evaluate_predicate): ... this one; update all callers; assert
15644         that false is not listed among possible truths.
15645         (dump_predicate): Use true_predicate_p.
15646         (account_size_time): Use false_predicate_p.
15647         (evaulate_conditions_for_edge): Rename to ...
15648         (evaluate_conditions_for_edge) ... this one.
15649         (edge_set_predicate): New function.
15650         (inline_edge_duplication_hook): Duplicate edge predicates.
15651         (inline_edge_removal_hook): Free edge predicates.
15652         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
15653         (dump_inline_summary): Update.
15654         (estimate_function_body_sizes): Set edge predicates.
15655         (estimate_calls_size_and_time): Handle predicates.
15656         (estimate_callee_size_and_time): Update.
15657         (remap_predicate): Add toplev_predicate; update comment.
15658         (remap_edge_predicates): New function.
15659         (inline_merge_summary): Compute toplev predicate; update.
15660         (read_predicate): New function.
15661         (read_inline_edge_summary): Use it.
15662         (inline_read_section): Likewise.
15663         (write_predicate): New function.
15664         (write_inline_edge_summary): Use it.
15665         (inline_write_summary): Likewise.
15666         (inline_free_summary): Free alloc pool and edge summary vec.
15667
15668 2011-04-27  Richard Guenther  <rguenther@suse.de>
15669
15670         * tree-ssa-structalias.c (changed_count): Remove.
15671         (changed): Use a bitmap.
15672         (unify_nodes): Adjust.
15673         (do_sd_constraint): Likewise.
15674         (do_ds_constraint): Likewise.
15675         (do_complex_constraint): Likewise.
15676         (solve_graph): Likewise.
15677
15678 2011-04-27  Jan Hubicka  <jh@suse.cz>
15679
15680         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
15681
15682 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15683
15684         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
15685         (avx_vperm2f128_*_operand): Ditto.
15686         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
15687         Use avx_vpermilp_parallel in insn condition.
15688         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
15689         Use avx_vperm2f128_parallel in insn condition.
15690
15691 2011-04-27  Richard Guenther  <rguenther@suse.de>
15692
15693         * Makefile.in (tree-ssa-structalias.o): Remove
15694         gt-tree-ssa-structalias.h dependency.
15695         (GTFILES): Remove tree-ssa-structalias.c.
15696         * tree.c (allocate_decl_uid): New function.
15697         (make_node_stat): Use it.
15698         (copy_node_stat): Likewise.
15699         * tree.h (allocate_decl_uid): Declare.
15700         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
15701         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
15702         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
15703         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
15704         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
15705         (struct heapvar_map): Likewise.
15706         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
15707         heapvar_insert): Likewise.
15708         (make_heapvar_for): Rename to ...
15709         (make_heapvar): ... this.  Simplify.
15710         (fake_var_decl_obstack): New global var.
15711         (build_fake_var_decl): New function.
15712         (make_constraint_from_heapvar): Adjust.
15713         (handle_lhs_call): Likewise.
15714         (create_function_info_for): Likewise.
15715         (intra_create_variable_infos): Likewise.
15716         (init_alias_vars): Allocate fake_var_decl_obstack.
15717         (init_alias_heapvars, delete_alias_heapvars): Remove.
15718         (compute_points_to_sets): Do not call init_alias_heapvars.
15719         (ipa_pta_execute): Likewise.
15720         (delete_points_to_sets): Free fake_var_decl_obstack.
15721
15722 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15723
15724         * config/spu/divmovti4.c (union qword_UTItype): New data type.
15725         (si_from_UTItype, si_to_UTItype): New functions.
15726         (__udivmodti4): Use them to implement type-punning.
15727         * config/spu/multi3.c (union qword_TItype): New data type.
15728         (si_from_TItype, si_to_TItype): New functions.
15729         (__multi3): Use them to implement type-punning.
15730
15731 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15732
15733         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
15734
15735 2011-04-27  Jan Hubicka  <jh@suse.cz>
15736
15737         * ipa-prop.c (function_insertion_hook_holder): New holder.
15738         (ipa_add_new_function): New function.
15739         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
15740         Register/deregister holder.
15741
15742 2011-04-27  Richard Guenther  <rguenther@suse.de>
15743
15744         PR tree-optimization/48772
15745         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
15746
15747 2011-04-27  Richard Guenther  <rguenther@suse.de>
15748
15749         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
15750         TARGET_MEM_REF handling.
15751
15752 2011-04-27  Nick Clifton  <nickc@redhat.com>
15753
15754         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
15755         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
15756         (REG_CLASS_NAMES): Likewise.
15757         (REG_CLASS_CONTENTS): Likewise.
15758         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15759         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15760         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
15761         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
15762         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
15763         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
15764         duplicate register classes.
15765         (frv_class_likely_spilled_p): Likewise.
15766         (frv_register_move_cost): Likewise.
15767
15768         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
15769         end of the regno_reg_class array.
15770
15771 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
15772
15773         PR c/48742
15774         * c-typeck.c (build_binary_op): Don't wrap arguments if
15775         int_operands is true.
15776
15777 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
15778
15779         PR target/48767
15780         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
15781         targetm.calls.must_pass_in_stack for void type.
15782
15783 2011-04-26  Jan Hubicka  <jh@suse.cz>
15784
15785         * cgraphbuild.c (build_cgraph_edges): Update call
15786         of cgraph_create_edge and cgraph_create_indirect_edge.
15787         * cgraph.c (cgraph_create_edge_including_clones,
15788         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
15789         cgraph_update_edges_for_call_stmt_node): Do not take nest
15790         argument; do not initialize call_stmt_size/time.
15791         (dump_cgraph_node): Do not dump nest.
15792         (cgraph_clone_edge): Do not take loop_nest argument;
15793         do not propagate it; do not clone call_stmt_size/time.
15794         (cgraph_clone_node): Likewise.
15795         (cgraph_create_virtual_clone): Update.
15796         * cgraph.h (struct cgraph_edge): Remove
15797         call_stmt_size/call_stmt_time/loop_nest.
15798         (cgraph_create_edge, cgraph_create_indirect_edge,
15799         cgraph_create_edge_including_clones, cgraph_clone_node): Update
15800         prototype.
15801         * tree-emutls.c (gen_emutls_addr): Update.
15802         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
15803         loop_nest; handle indirect calls, too.
15804         (clone_inlined_nodes): Do not care about updating inline summaries.
15805         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
15806         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
15807         stream call_stmt_size/call_stmt_time/loop_nest.
15808         * ipa-inline.c (edge_badness): Update.
15809         (ipa_inline): dump summaries after inlining.
15810         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
15811         New.
15812         (inline_edge_summary): New function.
15813         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
15814         (inline_edge_removal_hook): Handle edge summaries.
15815         (inline_edge_duplication_hook): New hook.
15816         (inline_summary_alloc): Alloc hooks.
15817         (initialize_growth_caches): Do not register removal hooks.
15818         (free_growth_caches); Do not free removal hook.
15819         (dump_inline_edge_summary): New function.
15820         (dump_inline_summary): Use it.
15821         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
15822         (inline_update_callee_summaries): New function.
15823         (inline_merge_summary): Use it.
15824         (do_estimate_edge_time, do_estimate_edge_growth): Update.
15825         (read_inline_edge_summary): New function.
15826         (inline_read_section): Use it.
15827         (write_inline_edge_summary): New function.
15828         (inline_write_summary): Use it.
15829         (inline_free_summary): Free edge new holders.
15830         * tree-inline.c (copy_bb): Update.
15831
15832 2011-04-26  Jason Merrill  <jason@redhat.com>
15833
15834         * tree-eh.c (lower_try_finally_switch): Create the label along with
15835         the CASE_LABEL_EXPR.
15836
15837 2011-04-26  David S. Miller  <davem@davemloft.net>
15838             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15839
15840         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
15841         * configure: Regenerate.
15842
15843 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15844
15845         PR target/48258
15846         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
15847         reduction.
15848         (VEC_reduc): New code iterator and splitters for vector reduction.
15849         (VEC_reduc_name): Ditto.
15850         (VEC_reduc_rtx): Ditto.
15851         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
15852         (reduc_<VEC_reduc_name>_v4sf): Ditto.
15853
15854         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
15855         support for extracting SF on VSX.
15856
15857         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
15858         generating xscvspdp.
15859         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
15860         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
15861         double add, minimum, maximum vector reduction.
15862         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
15863         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
15864         optimize double vector reduction.
15865         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
15866
15867 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
15868
15869         * config/fr30/fr30.h (inhibit_libc): Don't define.
15870         * config/m32r/m32r-protos.h: Correct comment.
15871         * config/v850/v850.h (GHS_default_section_names,
15872         GHS_current_section_names): Use tree, not union tree_node *.
15873
15874 2011-04-26  Xinliang David Li  <davidxl@google.com>
15875
15876         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
15877         * c-family/c-opts.c (c_common_handle_option): Set
15878         warn_maybe_uninitialized.
15879         * opts.c (common_handle_option): Ditto.
15880         * common.opt:  New option.
15881         * tree-ssa.c (warn_uninit): Add one more parameter.
15882         (warn_uninitialized_var): Pass warning code.
15883         * tree-flow.h: Interface change.
15884
15885 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15886
15887         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
15888         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
15889         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
15890
15891 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15892
15893         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
15894         * config/mips/mips.opt (mmips-tfile): Remove.
15895
15896         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
15897         mips-tdump reference to ...
15898         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
15899         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
15900         reference by Tru64 UNIX.
15901
15902 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
15903
15904         PR debug/48768
15905         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
15906         is error_mark_node, set value to NULL.
15907
15908         PR tree-optimization/48734
15909         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
15910         if return value from maybe_fold_*_comparsions isn't something
15911         the code is prepared to handle.
15912
15913 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
15914
15915         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
15916         mode check.
15917         (ext_QIreg_nomode_operands): Remove.
15918         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
15919         (*andsi_1): Ditto.
15920         (*andhi_1): Ditto.
15921
15922 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
15923
15924         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
15925
15926 2011-04-26  Richard Guenther  <rguenther@suse.de>
15927
15928         * c-typeck.c (build_unary_op): Do not expand array-refs via
15929         pointer arithmetic.  Only adjust qualifiers for function types.
15930
15931 2011-04-26  Richard Guenther  <rguenther@suse.de>
15932
15933         PR middle-end/48694
15934         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
15935         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
15936         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
15937         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
15938
15939 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
15940
15941         * doc/extend.texi: Document __underlying_type.
15942
15943 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
15944
15945         * config/rs6000/titan.md (automata_option "progress"): Remove.
15946
15947 2011-04-25  Jeff Law  <law@redhat.com>
15948
15949         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
15950
15951 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
15952
15953         * system.h (ENUM_BITFIELD): Remove.
15954
15955 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
15956             Eric Botcazou  <ebotcazou@adacore.com>
15957
15958         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
15959         for STORE_FLAG_VALUE==-1 case.
15960
15961 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
15962
15963         PR target/43804
15964         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15965         LEGITIMATE_PIC_OPERAND_P.
15966
15967 2011-04-24  Jan Hubicka  <jh@suse.cz>
15968
15969         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
15970         WPA hack.
15971         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
15972         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
15973         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
15974         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
15975         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
15976         Sanity check predicate length.
15977         (remap_predicate): Likewise; sanity check jump functions.
15978         (inline_read_section, inline_write_summary): Sanity check
15979         predicate length.
15980
15981 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
15982
15983         PR other/48748
15984         * doc/extend.texi (Type Traits): Document __is_standard_layout,
15985         __is_literal_type, and __is_trivial; update throughout about
15986         possibly cv-qualified void types.
15987
15988 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
15989
15990         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
15991         testsuite and make it version agnostic.
15992
15993 2011-04-22  Jan Hubicka  <jh@suse.cz>
15994
15995         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
15996
15997 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
15998
15999         PR c/48685
16000         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
16001         to VOID_TYPE even around MODIFY_EXPR.
16002
16003 2011-04-22  Mike Stump  <mikestump@comcast.net>
16004
16005         * gensupport.c (read_md_rtx): Fix typo in comment.
16006         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
16007         comment.
16008
16009 2011-04-22  Jan Hubicka  <jh@suse.cz>
16010
16011         * gengtype.c (open_base_files): Add ipa-inline.h include.
16012         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
16013         ipa-prop.c; update all uses.
16014         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
16015         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
16016         merge summary of inlined function into former caller.
16017         * ipa-inline.c (max_benefit): Remove.
16018         (edge_badness): Compensate for removal of benefits.
16019         (update_caller_keys): Use
16020         reset_node_growth_cache/reset_edge_growth_cache.
16021         (update_callee_keys): Likewise.
16022         (update_all_callee_keys): Likewise.
16023         (inline_small_functions): Do not collect max_benefit; do not reset
16024         estimated_growth; call free_growth_caches and initialize_growth_caches.
16025         * ipa-inline.h (struct condition, type clause_t, struct predicate,
16026         struct size_time_entry): New structures.
16027         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
16028         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
16029         and estimated_growth.
16030         (edge_growth_cache_entry): New structure.
16031         (node_growth_cache, edge_growth_cache): New global vars.
16032         (estimate_growth): Turn into inline.
16033         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
16034         initialize_growth_caches, free_growth_caches): Declare.
16035         (estimate_edge_growth): Rewrite.
16036         (estimate_edge_time): Implement as inline cache lookup.
16037         (reset_node_growth_cache, reset_edge_growth_cache): New inline
16038         functions.
16039         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
16040         (NUM_CONDITIONS): New constant.
16041         (predicate_conditions): New enum.
16042         (IS_NOT_CONSTANT): New constant.
16043         (edge_removal_hook_holder): New var.
16044         (node_growth_cache, edge_growth_cache): New global vars.
16045         (true_predicate, single_cond_predicate, false_predicate,
16046         not_inlined_predicate, add_condition, add_clause, and_predicates,
16047         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
16048         dump_clause, dump_predicate, account_size_time,
16049         evaulate_conditions_for_edge): New functions.
16050         (inline_summary_alloc): Move to heap.
16051         (inline_node_removal_hook): Clear condition and entry vectors.
16052         (inline_edge_removal_hook): New function.
16053         (initialize_growth_caches, free_growth_caches): New function.
16054         (dump_inline_summary): Update.
16055         (edge_execution_predicate): New function.
16056         (will_be_nonconstant_predicate): New function.
16057         (estimate_function_body_sizes): Compute BB and constantness predicates.
16058         (compute_inline_parameters): Do not clear estimated_growth.
16059         (estimate_edge_size_and_time): New function.
16060         (estimate_calls_size_and_time): New function.
16061         (estimate_callee_size_and_time): New function.
16062         (remap_predicate): New function.
16063         (inline_merge_summary): New function.
16064         (do_estimate_edge_time): New function based on...
16065         (estimate_edge_time): ... this one.
16066         (do_estimate_edge_growth): New function.
16067         (do_estimate_growth): New function based on....
16068         (estimate_growth): ... this one.
16069         (inline_analyze_function): Analyze after deciding on jump functions.
16070         (inline_read_section): New function.
16071         (inline_read_summary): Use it.
16072         (inline_write_summary): Write all the new data.
16073         * ipa-prop.c (ipa_get_param_decl_index): Export.
16074         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
16075         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
16076         Declare.
16077         (ipa_get_lattice): Move here from ipa-cp.c
16078         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
16079         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
16080         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
16081         cgraph_edge_inlinable_p): Remove.
16082         * cgraphunit.c: Include ipainline.h
16083         (cgraph_process_new_functions): Update call of
16084         compute_inline_parameters.
16085
16086 2011-04-22  Richard Guenther  <rguenther@suse.de>
16087
16088         * tree.c (build_int_cst): Properly create canonicalized integer
16089         constants.
16090         (build_int_cst_type): Remove scary comments.
16091
16092 2011-04-22  Xinliang David Li  <davidxl@google.com>
16093
16094         * toplev.c (process_options): Enable -Werror=coverage-mismatch
16095         by default when -Wno-error is not specified.
16096         * opts-global.c (decode_options): Remove call to
16097         control_warning_options.
16098
16099 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16100
16101         PR tree-optimization/48717
16102         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
16103         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
16104
16105 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
16106
16107         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
16108         definition where used.
16109
16110 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16111
16112         PR c/48716
16113         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
16114         TREE_STATIC variables declared inside of some OpenMP construct.
16115
16116 2011-04-22  Martin Jambor  <mjambor@suse.cz>
16117
16118         PR middle-end/48585
16119         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
16120
16121 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
16122
16123         PR c/36750
16124         * c-typeck.c (pop_init_level): Do not warn about initializing
16125         with ` = {0}'.
16126
16127 2011-04-22  Alan Modra  <amodra@gmail.com>
16128
16129         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
16130         when returning call_cookie.
16131         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
16132         pointers, to functions with no more vector args than the current
16133         function, and some non-local calls for ABI_V4.
16134         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
16135         sibcall_nonlocal_aix64): Combine to ..
16136         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
16137         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
16138         (sibcall_value_nonlocal_aix<mode>): ..likewise.
16139         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
16140         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
16141         operand.
16142         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
16143         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
16144         sibcall_value_symbolic_64): Delete.
16145
16146 2011-04-21  Xinliang David Li  <davidxl@google.com>
16147
16148         * cgraph.h: Remove pid.
16149         * cgraph.c: Remove pid.
16150         * value-prof.c (init_node_map): New function.
16151         (del_node_map): New function.
16152         (find_func_by_funcdef_no): New function.
16153         (gimple_ic_transform): Call new function.
16154         * cgraphunit.c (cgraph_finalize_function): Remove pid.
16155         * function.c (get_last_funcdef_no): New function.
16156         * function.h (get_last_funcdef_no): New function.
16157         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
16158         to libgcov function.
16159         (tree-profiling): Call node map init and delete function.
16160
16161 2011-04-21  Ian Lance Taylor  <iant@google.com>
16162
16163         * godump.c (go_format_type): Use exported Go name for anonymous
16164         field name.
16165
16166 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16167
16168         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
16169         Call builtin_function_type_list instead of builtin_function_type.
16170         (UNARY, BINARY, TRINARY, QUAD): Likewise.
16171
16172 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16173
16174         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
16175         build_function_type_list instead of build_function_type.
16176         Delete variable `endlink'.
16177
16178 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16179
16180         * config/s390/s390.c (s390_init_builtins): Call
16181         build_function_type_list instead of build_function_type.
16182
16183 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16184
16185         * config/ia64/ia64.c (ia64_init_builtins): Call
16186         build_function_type_list instead of builtin_function_type.
16187
16188 2011-04-21  Easwaran Raman  <eraman@google.com>
16189
16190         * cfgexpand.c (stack_var): Remove OFFSET...
16191         (add_stack_var): ...and its reference here...
16192         (expand_stack_vars): ...and here.
16193         (stack_var_cmp): Sort by descending order of size.
16194         (partition_stack_vars): Change heuristic.
16195         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
16196         (dump_stack_var_partition): Add newline after each partition.
16197
16198 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
16199             Jeff Law  <law@redhat.com>
16200
16201         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
16202         * gengtype.c (matching_file_name_substitute): Likewise.
16203
16204 2011-04-21  Richard Guenther  <rguenther@suse.de>
16205
16206         PR lto/48703
16207         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
16208
16209 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
16210
16211         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
16212
16213 2011-04-21  Richard Guenther  <rguenther@suse.de>
16214
16215         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
16216         file name.
16217
16218 2011-04-21  Richard Guenther  <rguenther@suse.de>
16219
16220         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
16221         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
16222         Use DECL_P, not SSA_VAR_P.
16223         (ptr_derefs_may_alias_p): Likewise.
16224         (ptr_deref_may_alias_ref_p_1): Likewise.
16225         (decl_refs_may_alias_p): Likewise.
16226         (refs_may_alias_p_1): Likewise.
16227         (ref_maybe_used_by_call_p_1): Likewise.
16228         (call_may_clobber_ref_p_1): Likewise.
16229         (indirect_ref_may_alias_decl_p): Assume indirect refrences
16230         are either MEM_REF or TARGET_MEM_REF.
16231         (indirect_refs_may_alias_p): Likewise.
16232         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
16233         for MEM_EXPR of indirect calls.
16234
16235 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16236
16237         * vmsdbgout.c (write_srccorr): Compute file length from the string.
16238         (dst_file_info_struct): Remove flen field.
16239         (lookup_filename): Remove code that set flen field.
16240
16241 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16242
16243         * config/ia64/ia64.c (ia64_start_function): Add a guard.
16244
16245 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
16246
16247         PR target/48708
16248         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
16249         vec_extract and vec_concat for non-SSE4_1 targets.
16250
16251 2011-04-21  Richard Guenther  <rguenther@suse.de>
16252
16253         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
16254         return statements.
16255
16256 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16257
16258         * config/i386/cygming.h (union tree_node, TREE): Don't define or
16259         undefine.
16260         (FILE): Don't undefine.
16261
16262 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16263
16264         * config/alpha/alpha.c (struct machine_function): Use rtx, not
16265         struct rtx_def *.
16266         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
16267         struct rtx_def *.
16268         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
16269         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
16270         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
16271         rtx_def *.
16272         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
16273         definitions where used.
16274         * config/microblaze/microblaze.h (struct microblaze_args): Use
16275         rtx, not struct rtx_def *.
16276         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
16277         rtx_def *.
16278         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
16279         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
16280         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
16281         not struct rtx_def *.
16282         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
16283         struct rtx_def *.
16284         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
16285         rtx_def *.
16286         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
16287
16288 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16289
16290         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
16291         operand_equal_p to compare DR_BASE_ADDRESSes.
16292         (vect_check_interleaving): Likewise.
16293
16294 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16295
16296         PR target/46329
16297         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
16298         for all Neon struct constants.
16299
16300 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16301
16302         * target.def (legitimate_constant_p): New hook.
16303         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
16304         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
16305         * doc/tm.texi: Regenerate.
16306         * hooks.h (hook_bool_mode_rtx_true): Declare.
16307         * hooks.c (hook_bool_mode_rtx_true): Define.
16308         * system.h (LEGITIMATE_CONSTANT_P): Poison.
16309         * calls.c (precompute_register_parameters): Replace uses of
16310         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
16311         (emit_library_call_value_1): Likewise.
16312         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
16313         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
16314         * ira-costs.c (scan_one_insn): Likewise.
16315         * recog.c (general_operand, immediate_operand): Likewise.
16316         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
16317         * reload1.c (init_eliminable_invariants): Likewise.
16318
16319         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
16320         mode argument.
16321         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
16322         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
16323         argument.
16324         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16325         * config/alpha/predicates.md (input_operand): Update call to
16326         alpha_legitimate_constant_p.
16327
16328         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
16329         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
16330         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
16331         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16332         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
16333         (arm_legitimate_constant_p): New functions.
16334         (arm_cannot_force_const_mem): Make static.
16335
16336         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
16337
16338         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
16339         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
16340         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
16341         instead of bfin_legitimate_constant_p.
16342         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
16343         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16344
16345         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
16346
16347         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
16348
16349         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
16350         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
16351         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16352         (frv_legitimate_constant_p): Make static.  Add a mode argument.
16353
16354         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
16355         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
16356         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
16357
16358         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
16359         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
16360         * config/i386/i386.c (legitimate_constant_p): Rename to...
16361         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
16362         argument.
16363         (ix86_cannot_force_const_mem): Update accordingly.
16364         (ix86_legitimate_address_p): Likewise.
16365         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16366         * config/i386/i386.md: Update commentary.
16367
16368         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
16369         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
16370         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16371         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
16372
16373         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
16374
16375         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
16376         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
16377         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16378         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
16379
16380         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
16381         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
16382         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
16383
16384         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
16385         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16386         (m32r_legitimate_constant_p): New function.
16387
16388         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
16389         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
16390         LEGITIMATE_CONSTANT_P.
16391         (LEGITIMATE_CONSTANT_P): Delete.
16392         * config/m68k/m68k.c (m68k_expand_prologue): Call
16393         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
16394         (m68k_legitimate_constant_p): New function.
16395         * config/m68k/m68k.md: Update comments.
16396
16397         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
16398         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16399         (mcore_legitimate_constant_p): New function.
16400
16401         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
16402         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
16403         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
16404         Add a mode argument.
16405         (mep_legitimate_address): Update accordingly.
16406         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16407
16408         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
16409         Delete.
16410         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
16411         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
16412         static.  Check OP's mode for VOIDmode.
16413         (microblaze_legitimate_constant_p): New function.
16414         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16415
16416         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
16417         * config/mips/mips.c (mips_legitimate_constant_p): New function.
16418         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
16419         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16420         * config/mips/predicates.md: Update comments.
16421
16422         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
16423         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
16424         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16425         (mmix_legitimate_constant_p): Make static, return a bool, and take
16426         a mode argument.
16427         (mmix_print_operand_address): Update accordingly.
16428
16429         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
16430         Delete.
16431         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
16432         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
16433         static.  Add a mode argument.
16434         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16435
16436         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
16437
16438         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
16439         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16440         (pa_legitimate_constant_p): New function.
16441
16442         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
16443
16444         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
16445         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16446         (pdp11_legitimate_constant_p): New function.
16447
16448         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
16449         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16450         (rs6000_legitimate_constant_p): New function.
16451
16452         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
16453         (rx_legitimate_constant_p): ...this.
16454         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
16455         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
16456         (rx_legitimate_constant_p): ...this.
16457         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16458         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
16459
16460         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
16461         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
16462         * config/s390/s390.c (legitimate_constant_p): Rename to...
16463         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
16464         and add a mode argument.
16465         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16466
16467         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
16468
16469         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
16470         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16471         (sh_legitimate_constant_p): New function.
16472
16473         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
16474         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
16475         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16476         (legitimate_constant_p): Rename to...
16477         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
16478         argument.
16479         (constant_address_p): Update accordingly.
16480
16481         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
16482         argument and return a bool.
16483         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
16484         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16485         (spu_legitimate_constant_p): Add a mode argument and return a bool.
16486         (spu_rtx_costs): Update accordingly.
16487         * config/spu/predicates.md (vec_imm_operand): Likewise.
16488
16489         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
16490
16491         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
16492         * config/v850/v850.c (v850_legitimate_constant_p): New function.
16493         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16494
16495         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
16496         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
16497         * config/vax/vax.c (legitimate_constant_p): Likewise.
16498
16499         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
16500         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16501         (xtensa_legitimate_constant_p): New function.
16502
16503 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16504
16505         * target.def (cannot_force_const_mem): Add a mode argument.
16506         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
16507         * doc/tm.texi: Regenerate.
16508         * hooks.h (hook_bool_mode_rtx_false): Declare.
16509         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
16510         (hook_bool_mode_const_rtx_true): Likewise.
16511         (hook_bool_mode_rtx_false): New function.
16512         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
16513         to be non-VOID.  Update call to cannot_force_const_mem.
16514         (find_reloads): Update accordingly.
16515         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
16516         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
16517         argument.
16518         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
16519         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
16520         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
16521         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
16522         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
16523         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
16524         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
16525         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16526         (m68k_cannot_force_const_mem): ...this new function.
16527         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
16528         argument.
16529         (mips_const_insns, mips_legitimize_const_move): Update calls.
16530         (mips_secondary_reload_class): Likewise.
16531         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16532         (pa_cannot_force_const_mem): ...this new function.
16533         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
16534         (rs6000_cannot_force_const_mem): ...this new function.
16535         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
16536         argument.
16537         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
16538         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
16539         to...
16540         (xtensa_cannot_force_const_mem): ...this new function.
16541
16542 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16543
16544         * config/mips/mips.c (mips16_build_function_stub): Call
16545         build_function_type_list instead of build_function_type.
16546         (mips16_build_call_stub): Likewise.
16547
16548 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16549
16550         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
16551         instead of build_function_type.
16552
16553 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16554
16555         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
16556         instead of build_function_type.
16557
16558 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
16559
16560         PR target/48678
16561         * config/i386/i386.md (insv): Change operand 0 constraint to
16562         "register_operand".  Change operand 1 and 2 constraint to
16563         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
16564         * config/i386/sse.md (sse4_1_pinsrb): Export.
16565         (sse2_pinsrw): Ditto.
16566         (sse4_1_pinsrd): Ditto.
16567         (sse4_1_pinsrq): Ditto.
16568         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
16569         * config/i386/i386.c (ix86_expand_pinsr): New.
16570
16571 2011-04-20  Easwaran Raman  <eraman@google.com>
16572
16573         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
16574         containing union type only with -fstrict-aliasing.
16575
16576 2011-04-20  Jim Meyering  <meyering@redhat.com>
16577
16578         Remove useless if-before-free tests.
16579         * calls.c (expand_call, save_area): Likewise.
16580         * cfgcleanup.c (try_forward_edges): Likewise.
16581         * collect2.c (collect_execute): Likewise.
16582         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
16583         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
16584         * coverage.c (coverage_checksum_string): Likewise.
16585         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
16586         * cselib.c (cselib_init): Likewise.
16587         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
16588         (df_set_clean_cfg): Likewise.
16589         * function.c (free_after_compilation): Likewise.
16590         * gcc.c (do_spec_1, main): Likewise.
16591         * gcov.c (create_file_names): Likewise.
16592         * gensupport.c (identify_predicable_attribute): Likewise.
16593         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
16594         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
16595         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
16596         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
16597         * ipa-pure-const.c (local_pure_const): Likewise.
16598         * ipa-reference.c (propagate): Likewise.
16599         * ira-costs.c (free_ira_costs): Likewise.
16600         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
16601         * matrix-reorg.c (mat_free): Likewise.
16602         * prefix.c (get_key_value): Likewise.
16603         * profile.c (compute_value_histograms): Likewise.
16604         * reload1.c (free_reg_equiv): Likewise.
16605         * sched-deps.c (free_deps): Likewise.
16606         * sel-sched-ir.c (fence_clear): Likewise.
16607         * sese.c (set_rename, if_region_set_false_region): Likewise.
16608         * tree-data-ref.c (free_rdg): Likewise.
16609         * tree-eh.c (lower_try_finally): Likewise.
16610         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
16611         * tree-ssa-live.c (delete_var_map): Likewise.
16612         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
16613         * tree-ssa-pre.c (phi_trans_add): Likewise.
16614
16615 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
16616
16617         PR tree-optimization/48611
16618         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
16619         beyond ERT_MUST_NOT_THROW region.
16620
16621 2011-04-20  Catherine Moore  <clm@codesourcery.com>
16622
16623         * config/mips/mips.opt (mfix-24k): New.
16624         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
16625         * config/mips/mips.md (length): Increase by 4 for stores if
16626         fixing 24K errata.
16627         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
16628         all noreorder if fixing 24K errata.
16629         * doc/invoke.texi: Document mfix-24k.
16630
16631 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
16632
16633         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
16634         quad-word modes, reduce to 9-bit index range when above 1016 limit.
16635
16636 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16637
16638         * config/arm/arm.c (arm_gen_constant): Move movw support ....
16639         (const_ok_for_op): ... to here.
16640
16641 2011-04-20  Kai Tietz  <ktietz@redhat.com>
16642
16643         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
16644         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
16645
16646 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16647
16648         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
16649
16650 2011-04-20  Richard Guenther  <rguenther@suse.de>
16651
16652         PR tree-optimization/47892
16653         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
16654         are if-convertible.
16655
16656 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
16657
16658         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
16659
16660 2011-04-20  Tristan Gingold  <gingold@adacore.com>
16661
16662         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
16663
16664 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
16665
16666         PR target/18145
16667
16668         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
16669         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
16670         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
16671         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
16672         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
16673
16674         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
16675         New prototype.
16676
16677         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
16678         (avr_asm_named_section, avr_asm_output_aligned_common,
16679         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
16680         New functions to update...
16681         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
16682         (avr_asm_init_sections): Overwrite section callbacks for
16683         data_section, bss_section.
16684         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
16685         from here to...
16686         (avr_file_end): ...here.
16687
16688 2011-04-20  Richard Guenther  <rguenther@suse.de>
16689
16690         PR middle-end/48695
16691         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
16692         objects and types here.  Adjust for their offset before comparing.
16693
16694 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16695
16696         * tree-vect-stmts.c (vectorizable_store): Only chain one related
16697         statement per copy.
16698
16699 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16700
16701         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
16702         (GIMPLE_H): Include $(INTERNAL_FN_H).
16703         (OBJS-common): Add internal-fn.o.
16704         (internal-fn.o): New rule.
16705         * internal-fn.def: New file.
16706         * internal-fn.h: Likewise.
16707         * internal-fn.c: Likewise.
16708         * gimple.h: Include internal-fn.h.
16709         (GF_CALL_INTERNAL): New gf_mask.
16710         (gimple_statement_call): Put fntype into a union with a new
16711         internal_fn field.
16712         (gimple_build_call_internal): Declare.
16713         (gimple_build_call_internal_vec): Likewise.
16714         (gimple_call_same_target_p): Likewise.
16715         (gimple_call_internal_p): New function.
16716         (gimple_call_internal_fn): Likewise.
16717         (gimple_call_fntype): Return null for internal calls.
16718         (gimple_call_set_fntype): Assert that the function is not internal.
16719         (gimple_call_set_fn): Likewise.
16720         (gimple_call_set_fndecl): Likewise.
16721         (gimple_call_set_internal_fn): New function.
16722         (gimple_call_addr_fndecl): Handle null functions.
16723         (gimple_call_return_type): Likewise null types.
16724         * gimple.c (gimple_build_call_internal_1): New function.
16725         (gimple_build_call_internal): Likewise.
16726         (gimple_build_call_internal_vec): Likewise.
16727         (gimple_call_same_target_p): Likewise.
16728         (gimple_call_flags): Handle calls to internal functions.
16729         (gimple_call_fnspec): New function.
16730         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
16731         (gimple_has_side_effects): Handle null functions.
16732         (gimple_rhs_has_side_effects): Likewise.
16733         (gimple_call_copy_skip_args): Handle calls to internal functions.
16734         * cfgexpand.c (expand_call_stmt): Likewise.
16735         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
16736         * gimple-fold.c (gimple_fold_call): Handle null functions.
16737         (gimple_fold_stmt_to_constant_1): Don't fold
16738         calls to internal functions.
16739         * gimple-low.c (gimple_check_call_args): Handle calls to internal
16740         functions.
16741         * gimple-pretty-print.c (dump_gimple_call): Likewise.
16742         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
16743         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
16744         (do_warn_unused_result): Likewise.
16745         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
16746         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
16747         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
16748         the target of a call.
16749         (initialize_hash_element): Update accordingly.
16750         (hashable_expr_equal_p): Use gimple_call_same_target_p.
16751         (iterative_hash_hashable_expr): Handle calls to internal functions.
16752         (print_expr_hash_elt): Likewise.
16753         * tree-ssa-pre.c (can_value_number_call): Likewise.
16754         (eliminate): Handle null functions.
16755         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
16756         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
16757         (find_func_aliases): Likewise.
16758         * value-prof.c (gimple_ic_transform): Likewise.
16759         (gimple_indirect_call_to_profile): Likewise.
16760         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16761         * lto-streamer-out.c (output_gimple_stmt): Likewise.
16762
16763 2011-04-19  Jan Hubicka  <jh@suse.cz>
16764
16765         * ipa-inline-transform.c (save_inline_function_body): Add comments.
16766         * ipa-inline.c (inline_small_functions): Compute summaries first,
16767         populate heap later.
16768
16769 2011-04-19  Jan Hubicka  <jh@suse.cz>
16770
16771         * cgraph.h (save_inline_function_body): Remove.
16772         * ipa-inline-transform.c: New file, broke out of...
16773         * ipa-inline.c: ... this one; Update toplevel comment.
16774         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
16775         make global.
16776         (update_noncloned_frequencies): Move to ipa-inline-transform.c
16777         (cgraph_mark_inline_edge): Rename to inline_call; move to
16778         ipa-inline-transform.c.
16779         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
16780         move to ipa-inline-transform.c
16781         (recursive_inlining, inline_small_functions, flatten_function,
16782         ipa_inline, inline_always_inline_functions,
16783         early_inline_small_functions): Update.
16784         (inline_transform): Move to ipa-inline-transform.c.
16785         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
16786         Declare.
16787         * Makefile.in (ipa-inline-transform.o): New file.
16788         * cgraphunit.c (save_inline_function_body): Move to
16789         ipa-inline-transform.c
16790
16791 2011-04-19  DJ Delorie  <dj@redhat.com>
16792
16793         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
16794         registers if we already know there aren't any.
16795         (m32c_emit_epilogue): Don't emit a barrier here.
16796         (m32c_emit_eh_epilogue): Likewise.
16797         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
16798         operands at expand time.
16799         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
16800         int" wchar type.
16801         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
16802         duplicates.  Provide aliases instead.
16803         * config/m32c/prologue.md (eh_return): Emit a barrier here.
16804         (eh_epilogue): Add a "(return)" here as a hint to other parts of
16805         the compiler.
16806
16807 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
16808
16809         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
16810         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
16811         (general_or_i64_p, sparc_register_move_cost): New function.
16812
16813 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16814
16815         * doc/install.texi (Configuration, --enable-threads): Remove mach.
16816         Add lynx, mipssde.  Sort table.
16817
16818 2011-04-19  Xinliang David Li  <davidxl@google.com>
16819
16820         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
16821         not negative.
16822
16823 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
16824
16825         PR target/48678
16826         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
16827         is a SUBREG with non-MODE_INT mode inside of it.
16828
16829 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16830
16831         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
16832         also according to actual contants.
16833         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
16834         (gimple_fold_call): Use it.
16835         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
16836
16837 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16838
16839         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
16840         non-pointer assignments.
16841
16842 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16843
16844         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
16845         account anc_offset and otr_type from the indirect edge info.
16846         * ipa-prop.c (get_ancestor_addr_info): New function.
16847         (compute_complex_ancestor_jump_func): Assignment analysis moved to
16848         get_ancestor_addr_info, call it.
16849         (ipa_note_param_call): Do not initialize information about polymorphic
16850         calls, return the indirect call graph edge.  Remove the last
16851         parameter, adjust all callers.
16852         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
16853         parameters.  Initialize polymorphic information in the indirect edge.
16854
16855 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16856
16857         PR lto/48148
16858         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
16859         the types if they have different enumeration identifiers.
16860
16861 2011-04-19  Jan Hubicka  <jh@suse.cz>
16862
16863         * cgraph.h (cgraph_optimize_for_size_p): Declare.
16864         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
16865         * predict.c (cgraph_optimize_for_size_p): Break out from ...
16866         (optimize_function_for_size_p) ... here.
16867
16868 2011-04-19  Richard Guenther  <rguenther@suse.de>
16869
16870         PR lto/48207
16871         * tree.c (free_lang_data): Do not reset the decl-assembler-name
16872         langhook.
16873
16874 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16875
16876         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
16877         if DECL_NO_INLINE_WARNING_P is set on the function.
16878
16879 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
16880
16881         PR fortran/47976
16882         * reload1.c (inc_for_reload): Return void. All callers changed.
16883         (emit_input_reload_insns): Don't try to delete previous output
16884         reloads to a register, or record spill_reg_store for autoincs.
16885
16886 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
16887
16888         * gengtype.h: Updated copyright year.
16889         (struct input_file_st): Add inpisplugin field.
16890         (type_fileloc): New function.
16891         * gengtype.c
16892         (write_typed_struct_alloc_def): Add gcc_assert.
16893         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
16894         (write_typed_alloc_defns): Don't output for plugin files.
16895         (input_file_by_name): Clear inpisplugin field.
16896         (main): Set inpisplugin field for plugin files.
16897
16898 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
16899
16900         * gengtype-state.c (string_eq): New.
16901         (read_state): Use string_eq instead of strcmp when creating the
16902         state_ident_tab.
16903
16904 2011-04-19  Wei Guozhi  <carrot@google.com>
16905
16906         PR target/47855
16907         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
16908         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
16909         linkage.
16910         * config/arm/constraints.md (Uu): New constraint.
16911         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
16912
16913 2011-04-19  Tristan Gingold  <gingold@adacore.com>
16914
16915         * config.gcc (-*-*-*vms): Added.
16916         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
16917         definitions moved.
16918         * config/vms/vms-ld.c: New file.
16919         * config/vms/vms-ar.c: New file.
16920         * config/vms/t-vmsnative: New file.
16921
16922 2011-04-18  Xinliang David Li  <davidxl@google.com>
16923
16924         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
16925
16926 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
16927
16928         PR middle-end/48661
16929         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
16930         if TREE_TYPE (v) is non-NULL.
16931
16932         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
16933         gimple_get_virt_mehtod_for_binfo.
16934         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
16935         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
16936         callers.
16937         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16938
16939 2011-04-18  Michael Matz  <matz@suse.de>
16940             Steve Ellcey  <sje@cup.hp.com>
16941
16942         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
16943         use its mode as source mode if it isn't VOIDmode.
16944
16945 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
16946
16947         * doc/passes.texi: Fill crossref nodes.
16948
16949 2011-04-18  Jim Meyering  <meyering@redhat.com>
16950
16951         Fix doubled-word typos in comments and strings
16952         * config/alpha/vms-unwind.h: s/for for/for/
16953         * config/arm/unwind-arm.h: Likewise.
16954         * config/microblaze/microblaze.c: Likewise.
16955         * config/sh/constraints.md: s/in in/in/
16956         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
16957
16958 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
16959
16960         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
16961         (AVX_FLOAT_MODE_P): Ditto.
16962         (AVX128_VEC_FLOAT_MODE_P): Ditto.
16963         (AVX256_VEC_FLOAT_MODE_P): Ditto.
16964         (AVX_VEC_FLOAT_MODE_P): Ditto.
16965         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
16966         (UNSPEC_MASKSTORE): Ditto.
16967         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
16968         Merge from <sse>_movmsk<ssemodesuffix> and
16969         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
16970         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
16971         iterator.
16972         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
16973         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
16974         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
16975
16976 2011-04-18  Jan Hubicka  <jh@suse.cz>
16977
16978         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
16979
16980         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
16981         (want_inline_function_called_once_p): Break out the logic from
16982         ipa_inline.
16983         (edge_badness): Ensure that profile is not misupdated.
16984         (lookup_recursive_calls): Prioritize by call frequencies.
16985         (inline_small_functions): Move program size estimates here;
16986         actually process whole queue even when unit growth has been
16987         met. (to properly compute inline_failed reasons and for the
16988         case unit size decrease.) Revisit comments on recursive inlining.
16989         (ipa_inline): Remove unit summary code; first inline hot calls
16990         of functions called once, cold calls next.
16991         (order, nnodes): Remove unused variables.
16992         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
16993         (GTFILES): Remove ipa-inline.c
16994         * sel-sched.c (fill_insns): Silence uninitialized var warning.
16995
16996 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16997
16998         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
16999
17000 2011-04-18  Jie Zhang  <jie@codesourcery.com>
17001             Richard Earnshaw  <rearnsha@arm.com>
17002
17003         * arm.c (neon_builtin_type_bits): Remove.
17004         (typedef enum neon_builtin_mode): New.
17005         (T_MAX): Don't define.
17006         (typedef enum neon_builtin_datum): Remove bits, codes[],
17007         num_vars and base_fcode.  Add mode, code and fcode.
17008         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
17009         VAR10): Change accordingly.
17010         (neon_builtin_data[]): Change accordingly
17011         (arm_init_neon_builtins): Change accordingly.
17012         (neon_builtin_compare): Remove.
17013         (locate_neon_builtin_icode): Remove.
17014         (arm_expand_neon_builtin): Change accordingly.
17015
17016         * arm.h (enum arm_builtins): Move to ...
17017         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
17018
17019         * arm.c (arm_builtin_decl): Declare.
17020         (TARGET_BUILTIN_DECL): Define.
17021         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
17022         (arm_builtin_decls[]): New.
17023         (arm_init_neon_builtins): Store builtin declarations in
17024         arm_builtin_decls[].
17025         (arm_init_tls_builtins): Likewise.
17026         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
17027         (arm_builtin_decl): New.
17028
17029 2011-04-18  Richard Guenther  <rguenther@suse.de>
17030
17031         * tree.c (upper_bound_in_type): Build properly canonicalized
17032         INTEGER_CSTs.
17033         (lower_bound_in_type): Likewise.
17034
17035 2011-04-18  Richard Guenther  <rguenther@suse.de>
17036
17037         * gimple.h (gimple_call_addr_fndecl): New function.
17038         (gimple_call_fndecl): Use it.
17039         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
17040         for direct calls.
17041         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
17042         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
17043
17044 2011-04-18  Richard Guenther  <rguenther@suse.de>
17045
17046         PR middle-end/48650
17047         * tree.c (build_string): STRING_CST is now derived from tree_typed.
17048
17049 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17050
17051         PR lto/48492
17052         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
17053         DECL_IN_CONSTANT_POOL without RTL.
17054
17055 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
17056             Ira Rosen  <ira.rosen@linaro.org>
17057
17058         PR target/48252
17059         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
17060         to match neon_vzip/vuzp/vtrn_internal.
17061         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
17062         outputs explicitly dependent on both inputs.
17063         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
17064
17065 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
17066
17067         PR tree-optimization/48616
17068         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
17069         whether the shift is by scalar or vector based on whether all SLP
17070         scalar stmts have the same rhs.
17071
17072 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
17073
17074         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
17075         memory operands.
17076
17077 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
17078
17079         PR target/43700
17080         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
17081         registers.
17082
17083 2011-04-17  Jan Hubicka  <jh@suse.cz>
17084
17085         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
17086         * cgrpahunit.c (cgraph_finalize_function): Do not set
17087         finalized_by_frontend.
17088         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17089         finalized_by_frontend.
17090
17091 2011-04-17  Jan Hubicka  <jh@suse.cz>
17092
17093         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
17094         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
17095         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
17096         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
17097         method.
17098         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
17099         gimple-fold.c
17100         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
17101
17102 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
17103
17104         PR lto/48538
17105         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
17106         is non-null before accessing it.
17107         (input_cgraph): Remove trailing spaces.
17108
17109 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17110
17111         * params.def (sms-min-sc): New param flag.
17112         * modulo-sched.c (sms_schedule): Use it.
17113         * doc/invoke.texi (sms-min-sc): Document it.
17114
17115 2011-04-17  Jan Hubicka  <jh@suse.cz>
17116
17117         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
17118         present, also set gimple_call_set_cannot_inline.
17119         * ipa-inline.c: Update toplevel comment.
17120         (MAX_TIME): Remove.
17121         (cgraph_clone_inlined_nodes): Fix linebreaks.
17122         (cgraph_check_inline_limits): Restructure to ...
17123         (caller_growth_limits): ... this one; be more tolerant
17124         on growth in nested inline chains; add explanatory comment;
17125         fix stack accounting thinko introduced by previous patch.
17126         (cgraph_default_inline_p): Remove.
17127         (report_inline_failed_reason): New function.
17128         (can_inline_edge_p): New function.
17129         (can_early_inline_edge_p): New function.
17130         (leaf_node_p): Move upwards in file.
17131         (want_early_inline_function_p): New function.
17132         (want_inline_small_function_p): New function.
17133         (want_inline_self_recursive_call_p): New function.
17134         (cgraph_edge_badness): Rename to ...
17135         (edge_badness) ... this one; fix linebreaks.
17136         (update_edge_key): Update call of edge_baddness; add
17137         detailed dump about queue updates.
17138         (update_caller_keys): Use can_inline_edge_p and
17139         want_inline_small_function_p.
17140         (cgraph_decide_recursive_inlining): Rename to...
17141         (recursive_inlining): Use can_inline_edge_p and
17142         want_inline_self_recursive_call_p; simplify and remove no longer
17143         valid FIXME.
17144         (cgraph_set_inline_failed): Remove.
17145         (add_new_edges_to_heap): Use can_inline_edge_p and
17146         want_inline_small_function_p.
17147         (cgraph_decide_inlining_of_small_functions): Rename to ...
17148         (inline_small_functions): ... this one; cleanup; use
17149         can/want predicates; cleanup debug ouput; work edges till fibheap
17150         is exhausted and do not stop once unit growth is reached; remove
17151         later loop processing remaining edges.
17152         (cgraph_flatten): Rename to ...
17153         (flatten_function): ... this one; use can_inline_edge_p
17154         and can_early_inline_edge_p predicates.
17155         (cgraph_decide_inlining): Rename to ...
17156         (ipa_inline): ... this one; remove unreachable nodes before
17157         inlining functions called once; simplify the pass.
17158         (cgraph_perform_always_inlining): Rename to ...
17159         (inline_always_inline_functions): ... this one; use
17160         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
17161         (cgraph_decide_inlining_incrementally): Rename to ...
17162         (early_inline_small_functions): ... this one; simplify
17163         using new predicates; cleanup; make dumps prettier.
17164         (cgraph_early_inlining): Rename to ...
17165         (early_inliner): newer inline regular functions into always-inlines;
17166         fix updating of call stmt summaries.
17167         (pass_early_inline): Update for new names.
17168         (inline_transform): Fix formating.
17169         (gate_cgraph_decide_inlining): Rename to ...
17170         (pass_ipa_inline): ... this one.
17171         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
17172         * ipa-inline-analysis.c (dump_inline_summary): Update.
17173         (compute_inline_parameters): Do not compute disregard_inline_limits;
17174         look for mismatching arguments.
17175         (estimate_growth): Fix handlig of non-trivial self recursion.
17176         (inline_read_summary): Do not read info->disregard_inline_limits.
17177         (inline_write_summary): Do not write info->disregard_inline_limits.
17178         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
17179         and move all checks into can_inline_edge_p predicate; re-enable code
17180         comparing optimization levels.
17181         (expand_call_inline): Do not test inline_forbidden_into_p.
17182         * Makefile.in (ipa-inline.o): Update arguments.
17183
17184 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17185
17186         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
17187
17188 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17189
17190         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
17191
17192 2011-04-17  Michael Matz  <matz@suse.de>
17193
17194         PR tree-optimization/48622
17195         PR lto/48645
17196         * ipa-inline-analysis.c (inline_read_summary): Read size/time
17197         in same order as they're written.
17198
17199 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17200
17201         * config/pa/predicates.md: Reorganize and simplify predicates.
17202         Eliminate duplicate code checks.
17203         (arith_operand): Rename to arith14_operand
17204         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
17205         * config/pa/pa.md: Use renamed operands.
17206         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
17207         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
17208         arith11_operand, adddi3_operand, indexed_memory_operand,
17209         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
17210         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
17211         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
17212         move_dest_operand, move_src_operand, prefetch_cc_operand,
17213         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
17214         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
17215         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
17216         div_operand, int5_operand, movb_comparison_operator,
17217         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
17218         arith_double_operand, ireg_operand, lhs_lshift_operand,
17219         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
17220         integer_store_memory_operand): Likewise.
17221         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
17222         (integer_store_memory_operand, read_only_operand,
17223         function_label_operand, borx_reg_operand,
17224         non_hard_reg_operand): Likewise.
17225         (eq_neq_comparison_operator): Delete unused operator.
17226         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
17227         function_label_operand.
17228         (emit_move_sequence): Likewise.
17229
17230 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17231
17232         * config/i386/sse.md (sseunpackmode): New mode attribute.
17233         (ssepackmode): Ditto.
17234         (vec_pack_trunc_<mode>): Macroize expander from
17235         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
17236         (vec_unpacks_lo_<mode>): Macroize expander from
17237         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17238         (vec_unpacks_hi_<mode>): Macroize expander from
17239         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17240         (vec_unpacku_lo_<mode>): Macroize expander from
17241         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17242         (vec_unpacku_hi_<mode>): Macroize expander from
17243         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17244         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
17245         ix86_expand_sse4_unpack.
17246         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
17247
17248 2011-04-16  Jan Hubicka  <jh@suse.cz>
17249
17250         * cgraphbuild.c: Include ipa-inline.h.
17251         (reset_inline_failed): Use initialize_inline_failed.
17252         * cgraph.c: Include ipa-inline.h.
17253         (cgraph_create_node_1): Do not initialize estimated_growth.
17254         (initialize_inline_failed): More to ipa-inline-analysis.c
17255         (dump_cgraph_node): Do not dump inline flags.
17256         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
17257         and disregard_inline_limits flags.
17258         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
17259         time, size, estimated_growth.
17260         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
17261         Update.
17262         * cgraphunit.c (cgraph_decide_is_function_needed): Use
17263         DECL_DISREGARD_INLINE_LIMITS.
17264         (cgraph_analyze_function): Do not initialize
17265         node->local.disregard_inline_limits.
17266         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17267         inlinable, versionable and disregard_inline_limits.
17268         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
17269         cgraph_check_inline_limits, cgraph_default_inline_p,
17270         cgraph_edge_badness, update_caller_keys, update_callee_keys,
17271         add_new_edges_to_heap): Update.
17272         (cgraph_decide_inlining_of_small_function): Update; set
17273         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
17274         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
17275         cgraph_decide_inlining_incrementally): Update.
17276         * ipa-inline.h (inline_summary): Add inlinable, versionable,
17277         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
17278         time, size and estimated_growth parameters.
17279         (estimate_edge_growth): Update.
17280         (initialize_inline_failed): Declare.
17281         * ipa-split.c: Include ipa-inline.h
17282         (execute_split_functions): Update.
17283         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
17284         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
17285         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
17286         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
17287         estimated_growth to INT_MIN.
17288         (inline_node_duplication_hook): Likewise.
17289         (dump_inline_summary): Dump new fields.
17290         (compute_inline_parameters): Update.
17291         (estimate_edge_time, estimate_time_after_inlining,
17292         estimate_size_after_inlining, estimate_growth, inline_read_summary,
17293         inline_write_summary):
17294         (initialize_inline_failed): Move here from cgraph.c.
17295         * tree-sra.c: Include ipa-inline.h.
17296         (ipa_sra_preliminary_function_checks): Update.
17297         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
17298         ipa-inline.h.
17299
17300 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17301
17302         * config/i386/sse.md (V16): New mode iterator.
17303         (VI1, VI8): Ditto.
17304         (AVXMODEQI, AVXMODEDI): Remove.
17305         (sse2, sse3): New mode attribute.
17306         (mov<mode>): Use V16 mode iterator.
17307         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
17308         (push<mode>1): Use V16 mode iterator.
17309         (movmisalign<mode>): Ditto.
17310         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17311         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
17312         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17313         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
17314         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
17315         avx_movdqu<avxmodesuffix>.
17316         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
17317         *avx_movdqu<avxmodesuffix>.
17318         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
17319         avx_lddqu<avxmodesuffix>.
17320         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
17321         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
17322         avx_movnt<AVXMODEDI:mode>.
17323         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
17324         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
17325
17326 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17327
17328         PR target/48629
17329         * haifa-sched.c (prune_ready_list, schedule_block): Use
17330         sched_pressure_p rather than flag_sched_pressure.
17331
17332 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
17333
17334         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17335         cgraph_get_node instead of cgraph_get_create_node.
17336
17337 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
17338
17339         * cfgexpand.c (expand_debug_expr): Use
17340         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
17341
17342 2011-04-15  Michael Matz  <matz@suse.de>
17343
17344         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
17345         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
17346         * function.c (gimplify_parameters): Ditto.
17347         * gimplify.c (gimplify_vla_decl): Ditto.
17348
17349         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
17350         (gimple_call_set_alloca_for_var): New inline function.
17351         (gimple_call_alloca_for_var_p): Ditto.
17352         * gimple.c (gimple_build_call_from_tree): Remember
17353         CALL_ALLOCA_FOR_VAR_P state.
17354         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
17355
17356         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
17357         calls if they were for VLA objects.
17358
17359 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17360
17361         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
17362         of ADR_EXPRs.
17363
17364 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17365
17366         PR middle-end/48601
17367         * tree-emutls.c (lower_emutls_function_body): Call
17368         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
17369         result is non-NULL.
17370
17371 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
17372
17373         * c-decl.c (detect_field_duplicates): Call
17374         objc_detect_field_duplicates instead of objc_get_interface_ivars.
17375
17376 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
17377
17378         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
17379         * gimple.c (gimple_asm_clobbers_memory_p): Define.
17380         * ipa-pure-const.c (check_stmt): Call it.
17381         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
17382
17383 2011-04-15  Richard Guenther  <rguenther@suse.de>
17384
17385         PR tree-optimization/48290
17386         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
17387         Properly decide inhibiting propagation based on the valueized
17388         operand.  Do loop-closed SSA form preserving here ...
17389         (init_copy_prop): ... not here.
17390
17391 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17392
17393         PR target/48612
17394         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
17395         (*ieee_smax<mode>3): Likewise.
17396
17397 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17398
17399         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
17400         Replace match_operand with match_dup for the third operand in
17401         these expanders.
17402
17403 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17404
17405         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
17406         to track processing of conditionals.  Update all callers.
17407         (try_combine, simplify_if_then_else): Update.
17408
17409 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17410
17411         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
17412         -fsched-pressure.
17413
17414 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
17415
17416         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
17417         instead of match_operand for operand 3.
17418
17419 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
17420
17421         * recog.h (insn_operand_data): Add an "allows_mem" field.
17422         * genoutput.c (output_operand_data): Initialize it.
17423         * optabs.c (maybe_legitimize_operand_same_code): New function.
17424         (maybe_legitimize_operand): Use it when matching the original
17425         op->value.
17426
17427 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17428
17429         * gimplify.c: Fix issues in comments throughout.
17430         (voidify_wrapper_expr): Fix long line.
17431         (build_stack_save_restore): Likewise.
17432         (gimplify_loop_expr): Likewise.
17433         (gimplify_compound_lval): Likewise.
17434         (gimplify_init_ctor_eval): Likewise.
17435         (gimplify_modify_expr_rhs): Likewise.
17436         (omp_notice_threadprivate_variable): Likewise.
17437
17438 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17439
17440         * cfgexpand.c (expand_call_stmt): Convert the function type to the
17441         original one if this is not a builtin function.
17442
17443 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
17444
17445         PR target/48605
17446         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
17447         offset it as needed based on top 2 bits in operands[3], change
17448         MEM mode to SFmode and mask those 2 bits away from operands[3].
17449
17450 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17451
17452         * c-parser.c (c_parser_objc_protocol_definition): Updated for
17453         change from objc_declare_protocols() to objc_declare_protocol().
17454
17455 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
17456
17457         * config/i386/sse.md (sse4_1): New mode attribute.
17458         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
17459         avx_blend<ssemodesuffix><avxmodesuffix> and
17460         sse4_1_blend<ssemodesuffix> using VF mode iterator.
17461         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
17462         avx_blendv<ssemodesuffix><avxmodesuffix> and
17463         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
17464         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
17465         avx_dp<ssemodesuffix><avxmodesuffix> and
17466         sse4_1_dp<ssemodesuffix> using VF mode iterator.
17467         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
17468         (sse4_1_packusdw): Merge with *avx_packusdw.
17469         (sse4_1_pblendvb): Merge with *avx_pblendvb.
17470         (sse4_1_pblendw): Merge with *avx_pblendw.
17471         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
17472         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
17473         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
17474         VF mode iterator.
17475         (sse4_1_round<ssescalarmodesuffix>): Merge with
17476         *avx_round<ssescalarmodesuffix>.
17477         (aesenc): Merge with *avx_aesenc.
17478         (aesenclast): Merge with *avx_aesenclast.
17479         (aesdec): Merge with *avx_aesdec.
17480         (aesdeclast): Merge with *avx_aesdeclast.
17481         (pclmulqdq): Merge with *pclmulqdq.
17482         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
17483         New predicate.
17484         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
17485
17486 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
17487
17488         PR middle-end/48608
17489         * cfgexpand.c (get_decl_align_unit): Renamed to ...
17490         (align_local_variable): This.  Update DECL_ALIGN.
17491         (add_stack_var): Updated.
17492         (expand_one_stack_var): Likewise.
17493
17494 2011-04-14  Richard Guenther  <rguenther@suse.de>
17495
17496         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
17497         Remove.
17498         (dse_initialize_block_local_data, dse_leave_block,
17499         record_voperand_set, get_stmt_uid): Likewise.
17500         (dse_possible_dead_store_p): Allow any kind of killing stmt.
17501         (dse_optimize_stmt): Remove voperand set handling code.
17502         Simplify and improve to handle any kind of killing stmt.
17503         (dse_record_phi): Remove.
17504         (dse_enter_block): Simplify.
17505         (tree_ssa_dse): Likewise.
17506         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
17507
17508 2011-04-14  Jan Hubicka  <jh@suse.cz>
17509
17510         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
17511         * cgraph.h (struct inline_summary): Move to ipa-inline.h
17512         (cgraph_local_info): Remove inline_summary.
17513         * ipa-cp.c: Include ipa-inline.h.
17514         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
17515         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
17516         accesor.
17517         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
17518         (input_overwrite_node): Do not set inline summary.
17519         (input_node): Do not stream inline summary.
17520         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
17521         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
17522         growth; we do not have inline parameters computed for that anyway.
17523         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
17524         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
17525         (inline_summary_t): New type and VECtor.
17526         (debug_inline_summary, dump_inline_summaries): Declare.
17527         (inline_summary): Use VOCtor.
17528         (estimate_edge_growth): Kill hack computing call stmt size directly.
17529         * lto-section-in.c (lto_section_name): Add inline section.
17530         * ipa-inline-analysis.c: Include lto-streamer.h
17531         (node_removal_hook_holder, node_duplication_hook_holder): New holders
17532         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
17533         (inline_summary_vec): Define.
17534         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
17535         dump_inline_summaries): New functions.
17536         (estimate_function_body_sizes): Properly compute size/time of outgoing
17537         calls.
17538         (compute_inline_parameters): Alloc inline_summary; do not compute
17539         size/time of incomming calls.
17540         (estimate_edge_time): Avoid missing time summary hack.
17541         (inline_read_summary): Read inline summary info.
17542         (inline_write_summary): Write inline summary info.
17543         (inline_free_summary): Free all hooks and inline summary vector.
17544         * lto-streamer.h: Add LTO_section_inline_summary section.
17545         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
17546         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
17547
17548 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17549
17550         * tree-vectorizer.h (vect_strided_store_supported): Add a
17551         HOST_WIDE_INT argument.
17552         (vect_strided_load_supported): Likewise.
17553         (vect_permute_store_chain): Return void.
17554         (vect_transform_strided_load): Likewise.
17555         (vect_permute_load_chain): Delete.
17556         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
17557         count argument.  Check that the count is a power of two.
17558         (vect_strided_load_supported): Likewise.
17559         (vect_permute_store_chain): Return void.  Update after above changes.
17560         Assert that the access is supported.
17561         (vect_permute_load_chain): Likewise.
17562         (vect_transform_strided_load): Return void.
17563         * tree-vect-stmts.c (vectorizable_store): Update calls after
17564         above interface changes.
17565         (vectorizable_load): Likewise.
17566         (vect_analyze_stmt): Don't check for strided powers of two here.
17567
17568 2011-04-14  Richard Guenther  <rguenther@suse.de>
17569
17570         PR tree-optimization/48590
17571         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
17572         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17573         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
17574         BUILT_IN_STACK_SAVE.
17575         * tree-ssa-dce.c (propagate_necessity): Handle
17576         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17577
17578 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17579
17580         * c-parser.c (c_parser_objc_class_declaration): Updated call to
17581         objc_declare_class.
17582
17583 2011-04-14  Richard Guenther  <rguenther@suse.de>
17584
17585         * tree.h (get_object_alignment_1): Declare.
17586         * builtins.c (get_object_alignment_1): Split out worker from ...
17587         (get_object_alignment): ... here.
17588         * fold-const.c (get_pointer_modulus_and_residue): Use
17589         get_object_alignment_1.
17590
17591 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17592
17593         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
17594         type parameter.
17595         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
17596         parameter.  Generalise code to handle arrays as well as vectors.
17597         (vect_setup_realignment): Update accordingly.
17598         * tree-vect-stmts.c (vectorizable_store): Likewise.
17599         (vectorizable_load): Likewise.
17600
17601 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17602
17603         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
17604         within the per-copy loop.
17605
17606 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17607
17608         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
17609         in the dump file.
17610
17611 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17612
17613         * doc/options.texi (Negative): Explicitly mention that the
17614         Negative chain must be circular.
17615
17616 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
17617
17618         * function.h (block_chainon): Declare.
17619         * function.c (block_chainon): Define.
17620
17621 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
17622             Eric Weddington  <eric.weddington@atmel.com>
17623             Georg-Johann Lay  <avr@gjlay.de>
17624
17625         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
17626         New Includes
17627         (avr_init_builtins, avr_expand_builtin,
17628         avr_expand_delay_cycles, avr_expand_unop_builtin,
17629         avr_expand_binop_builtin ): New functions.
17630         (avr_builtin_id): New enum
17631         (struct avr_builtin_description): New struct
17632         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
17633         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
17634
17635         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
17636         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
17637         UNSPECV_DELAY_CYCLES): new enumeration values
17638         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
17639         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
17640         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
17641         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
17642         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
17643         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
17644         "fmulsu"): New insns
17645
17646         * config/avr/avr-c.c: fix line endings
17647         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
17648         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
17649         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
17650         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
17651         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
17652
17653         * doc/extend.texi (AVR Built-in Functions): New node
17654         (Target Builtins): Add documentation of AVR
17655         built-in functions.
17656
17657 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
17658
17659         PR target/44643
17660         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
17661         alone. Error if non-const data has attribute progmem.
17662
17663 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17664
17665         * tree.h (struct tree_constructor): Include tree_typed instead of
17666         tree_common.
17667         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
17668         TS_TYPED instead of TS_COMMON.
17669
17670 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17671
17672         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
17673         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
17674         (sse2_psadbw): Merge with *avx_psadbw.
17675         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
17676         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
17677         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
17678         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
17679         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
17680         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
17681         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
17682         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
17683         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
17684         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
17685         (ssse3_palignrti): Merge with *avx_palignrti.
17686
17687 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17688
17689         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
17690         * tree-ssanames.c (fini_ssanames): VEC_free it.
17691         (make_ssa_name_fn): Update for VECness of free_ssanames.
17692         (release_ssa_name, release_dead_ssa_names): Likewise.
17693         * tree.h (struct tree_ssa_name): Include tree_typed instead of
17694         tree_common.
17695         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
17696         TS_TYPED instead of TS_COMMON.
17697
17698 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17699
17700         * postreload-gcse.c (gcse_after_reload_main): Add calls to
17701         statistics_counter_event.
17702         * tree-ssa-copyrename.c (stats): Define.
17703         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
17704         statistics_counter_event.
17705         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
17706         (bswap_stats, widen_mul_stats): Define.
17707         (insert_reciprocals): Increment rdivs_inserted.
17708         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
17709         rfuncs_inserted.  Add calls to statistics_counter_event.
17710         (execute_cse_sincos_1): Increment inserted.
17711         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
17712         statistics_counter_event.
17713         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
17714         of bswap_stats.  Add calls to statistics_counter_event.
17715         (convert_mult_to_widen): Increment widen_mults_inserted.
17716         (convert_plusminus_to_widen): Increment maccs_inserted.
17717         (convert_mult_to_fma): Increment fmas_inserted.
17718         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
17719         calls to statistics_counter_event.
17720
17721 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
17722
17723         PR rtl-optimization/48455
17724         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
17725         `temp_costs->mem_cost'.
17726
17727 2011-04-13  Jan Hubicka  <jh@suse.cz>
17728
17729         * ipa-inline.h: New file.
17730         * ipa-inline-analysis.c: New file. Broken out of ...
17731         * ipa-inline.c: ... this file; update toplevel comment;
17732         include ipa-inline.h
17733         (inline_summary): Move to ipa-inline.h
17734         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
17735         ipa-inline-analysis.c.
17736         (cgraph_estimate_time_after_inlining): Rename to
17737         estiamte_time_after_inlining; move to ipa-inline-analysis.c
17738         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
17739         to estimate_edge_growth.
17740         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
17741         rename to estimate_size_after_inlining.
17742         (cgraph_mark_inline_edge): Update for new naming convention.
17743         (cgraph_check_inline_limits): Likewise.
17744         (cgraph_edge_badness): Likewise.
17745         (cgraph_decide_recursive_inlining): Likewise.
17746         (cgraph_decide_inlining_of_small_functions): Likewise.
17747         (cgraph_decide_inlining_incrementally): Likewise.
17748         (cgraph_estimate_growth): Rename to estimate_growth; move to
17749         ipa-inline-analysis.c.
17750         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
17751         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
17752         (compute_inline_parameters): Likewise.
17753         (compute_inline_parameters_for_current): Likewise.
17754         (pass_inline_parameters): Likewise.
17755         (inline_indirect_intraprocedural_analysis): Likewise.
17756         (analyze_function): Rename to inline_analyze_function; likewise.
17757         (add_new_function): Move to ipa-inline-analysis.c.
17758         (inline_generate_summary): Likewise.
17759         (inline_read_summary): Likewise.
17760         (inline_write_summary): Likewise.
17761         * Makefile.in (ipa-inline-analysis.c): New file.
17762
17763 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17764
17765         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
17766         * configure: Regenerate.
17767
17768 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17769
17770         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
17771         instead of tree_common.
17772         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
17773         Likewise.
17774         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
17775         TS_TYPED rather than TS_COMMON.
17776         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
17777
17778 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
17779
17780         PR target/45263
17781         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
17782         r20 around calls of __tablejump_elpm__
17783
17784 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
17785
17786         PR middle-end/48591
17787         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
17788         NULL.
17789         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
17790
17791 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
17792
17793         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
17794         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
17795         (cfi_vec): New typedef.
17796         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
17797         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
17798         (cie_cfi_vec): New static variable.
17799         (cie_cfi_head): Delete.
17800         (add_cfi): Accept a cfi_vec * as first argument. All callers and
17801         declaration changed. Use vector rather than list operations.
17802         (new_cfi): Don't initialize the dw_cfi_next field.
17803         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
17804         rather than list operations.
17805         (lookup_cfa): Use vector rather than list operations.
17806         (output_cfis): New argument upto. Accept a cfi_vec rather than
17807         a dw_cfi_ref list head as argument. All callers changed.
17808         Iterate over the vector using upto as a maximum index.
17809         (output_all_cfis): New static function.
17810         (output_fde): Use vector rather than list operations. Use the
17811         new upto argument for output_cfis rather than manipulating a
17812         list.
17813         (dwarf2out_begin_prologue): Change initializations to match
17814         new struct members.
17815         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
17816         from the vector length rather than searching for the end of a list.
17817         Use output_all_cfis.
17818         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
17819
17820 2011-04-13  Nick Clifton  <nickc@redhat.com>
17821
17822         * config/rx/rx.md (movmemsi): Do not use this pattern when
17823         volatile pointers are involved.
17824
17825 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17826
17827         * config/i386/sse.md (pinsrbits): Remove.
17828         (sse2_packsswb): Merge with *avx_packsswb.
17829         (sse2_packssdw): Merge with *avx_packssdw.
17830         (sse2_packuswb): Merge with *avx_packuswb.
17831         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
17832         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
17833         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
17834         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
17835         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
17836         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
17837         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
17838         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
17839         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
17840         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
17841         (sse2_loadld): Merge with *avx_loadld.
17842         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
17843         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
17844         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
17845         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
17846         (vec_concatv2di): Merge with *vec_concatv2di_avx.
17847
17848 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
17849
17850         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
17851         calling TREE_CHAIN.
17852         * print-tree.c (print_node): Likewise.
17853         * tree-inline.c (copy_tree_r): Likewise.
17854         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
17855         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
17856         instead of TS_COMMON.
17857         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
17858         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
17859         (copy_node_stat): Zero TREE_CHAIN only if necessary.
17860         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
17861         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
17862         ...and these...
17863         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
17864         * tree.h: ...here.
17865         (TREE_CHAIN): Check for a TS_COMMON structure.
17866         (TREE_TYPE): Check for a TS_TYPED structure.
17867
17868 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
17869
17870         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17871         cgraph_get_create_node instead of cgraph_node.
17872
17873 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17874
17875         * c-parser.c (c_parser_initelt): Updated call to
17876         objc_build_message_expr.
17877         (c_parser_postfix_expression): Likewise.
17878
17879 2011-04-12  Kai Tietz  <ktietz@redhat.com>
17880
17881         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
17882         MASK_MS_BITFIELD_LAYOUT bit.
17883
17884 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17885
17886         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
17887         assert it is always true.
17888         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
17889         moves.
17890
17891 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17892
17893         * c-parser.c (c_lex_one_token): Rewritten conditional used when
17894         compiling Objective-C to be more efficient.
17895
17896 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
17897
17898         * opts-common.c (decode_cmdline_options_to_array): Remove variable
17899         argv_copied.
17900
17901 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17902
17903         * recog.h, genoutput.c, optabs.c: Revert last patch.
17904
17905 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17906
17907         PR target/48090
17908         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
17909
17910 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17911
17912         * recog.h (insn_operand_data): Add an "allows_mem" field.
17913         * genoutput.c (output_operand_data): Initialize it.
17914         * optabs.c (maybe_legitimize_operand_same_code): New function.
17915         (maybe_legitimize_operand): Use it when matching the original
17916         op->value.
17917
17918 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17919
17920         * genpreds.c (process_define_predicate): Move most processing
17921         to gensupport.c.  Continue to validate the expression.
17922         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
17923         (process_define_predicate): Move processing to gensupport.c.
17924         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
17925         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
17926         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
17927         argument.
17928         (valid_predicate_name_p): New function, split out from old
17929         genpreds.c:process_define_predicate.
17930         (process_define_predicate): New function, combining code from
17931         old genpreds.c and genrecog.c functions.
17932         (process_rtx): Call it for DEFINE_PREDICATE and
17933         DEFINE_SPECIAL_PREDICATE.
17934
17935 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17936
17937         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
17938         size of a '%A' memory reference.
17939         (T_DREG, T_QREG): New neon_builtin_type_bits.
17940         (arm_init_neon_builtins): Assert that the load and store operands
17941         are neon_struct_operands.
17942         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
17943         (NEON_ARG_MEMORY): New builtin_arg.
17944         (neon_dereference_pointer): New function.
17945         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
17946         Handle NEON_ARG_MEMORY.
17947         (arm_expand_neon_builtin): Update after above interface changes.
17948         Use NEON_ARG_MEMORY for loads and stores.
17949         * config/arm/predicates.md (neon_struct_operand): New predicate.
17950         * config/arm/iterators.md (V_two_elem): Tweak formatting.
17951         (V_three_elem): Use BLKmode for accesses that have no associated mode.
17952         (V_four_elem): Tweak formatting.
17953         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
17954         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
17955         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
17956         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
17957         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
17958         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
17959         (neon_vst4<mode>): Replace pointer operand with a memory operand.
17960         Use %A in the output template.
17961         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
17962         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
17963         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
17964         the width of the memory access.  Remove post-increment.
17965         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
17966
17967 2011-04-12  Nick Clifton  <nickc@redhat.com>
17968
17969         * config/v850/v850.c (expand_prologue): Do not use the CALLT
17970         instruction for interrupt handlers if the target is the basic V850
17971         architecture.
17972         (expand_epilogue): Likewise.
17973
17974 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17975
17976         PR rtl-optimization/48549
17977         * combine.c (propagate_for_debug): Also stop after BB_END of
17978         this_basic_block.  Process LAST and just stop processing after it.
17979         (combine_instructions): If last_combined_insn has been deleted,
17980         set last_combined_insn to its PREV_INSN.
17981
17982 2011-04-12  Richard Guenther  <rguenther@suse.de>
17983
17984         PR tree-optimization/46076
17985         * gimple.h (struct gimple_statement_call): Add fntype field.
17986         (gimple_call_fntype): Adjust.
17987         (gimple_call_set_fntype): New function.
17988         * gimple.c (gimple_build_call_1): Set the call function type.
17989         * gimplify.c (gimplify_call_expr): Preserve the function
17990         type the frontend used for the call.
17991         (gimplify_modify_expr): Likewise.
17992         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
17993         function type.
17994         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
17995         function type.
17996         * tree-ssa.c (useless_type_conversion_p): Function pointer
17997         conversions are useless.
17998
17999 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18000
18001         * cgraph.h (cgraph_node): Remove function declaration.
18002         (cgraph_create_node): Declare.
18003         (cgraph_get_create_node): Likewise.
18004         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
18005         Updated all callers.
18006         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
18007         the decl does not already exist.  Call cgraph_get_create_node instead
18008         of cgraph_node.
18009         (cgraph_get_create_node): New function.
18010         (cgraph_same_body_alias): Update comment.
18011         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
18012         assert it does not return NULL.
18013         (cgraph_update_edges_for_call_stmt): Likewise.
18014         (cgraph_clone_edge): Likewise.
18015         (cgraph_create_virtual_clone): Likewise.
18016         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
18017         instead of cgraph_node.
18018         (cgraph_add_new_function): Call cgraph_create_node or
18019         cgraph_get_create_node instead of cgraph_node.
18020         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
18021         instead of cgraph_node.
18022         (record_eh_tables): Likewise.
18023         (mark_address): Likewise.
18024         (mark_load): Likewise.
18025         (build_cgraph_edges): Call cgraph_get_create_node instead
18026         of cgraph_node.
18027         (rebuild_cgraph_edges): Likewise.
18028         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
18029         instead of cgraph_node.
18030         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
18031         cgraph_node.
18032         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
18033         cgraph_create_node instead of cgraph_node.
18034         * c-decl.c (finish_function): Call cgraph_get_create_node instead
18035         of cgraph_node.
18036         * lto-cgraph.c (input_node): Likewise.
18037         * lto-streamer-in.c (input_function): Likewise.
18038         * varasm.c (mark_decl_referenced): Likewise.
18039         (assemble_alias): Likewise.
18040
18041 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18042
18043         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
18044         instead of cgraph_node and assert it does not return NULL.
18045         * lto-streamer-in.c (lto_read_body): Likewise.
18046         * omp-low.c (new_omp_context): Likewise.
18047         (create_task_copyfn): Likewise.
18048         * tree-emutls.c (lower_emutls_function_body): Likewise.
18049         * matrix-reorg.c (transform_allocation_sites): Likewise.
18050
18051 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
18052
18053         PR c/48552
18054         * c-typeck.c (build_asm_expr): Error out on attempts to use
18055         void type outputs or inputs for constraints that allow reg or
18056         don't allow memory.
18057
18058 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
18059             Richard Earnshaw  <rearnsha@arm.com>
18060
18061         PR target/48250
18062         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
18063         to use sign-magnitude offsets. Reject unsupported unaligned
18064         cases. Add detailed description in comments.
18065         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
18066         condition from TARGET_32BIT to TARGET_ARM.
18067
18068 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
18069
18070         * tree.h (struct typed_tree): New.
18071         (struct tree_common): Include it instead of tree_base.
18072         (TREE_TYPE): Update for new location of type field.
18073         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
18074         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
18075         (union tree_node): Add typed field.
18076         * treestruct.def (TS_TYPED): New.
18077         * lto-streamer.c (check_handled_ts_structures): Handle it.
18078         * tree.c (MARK_TS_TYPED): New macro.
18079         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
18080
18081 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
18082
18083         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
18084         (force_nonfallthru): Do not alter the loop nest if no basic block
18085         was created.
18086
18087 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18088
18089         * config/i386/sse.md (VI): New mode iterator.
18090         (SSEMODEI): Remove.
18091         (AVX256MODEI): Ditto.
18092         (AVXMODEF4P): Ditto.
18093         (avxvecpsmode): Ditto.
18094         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
18095         (sse2_andnot<mode>3): New expander.
18096         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
18097         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
18098         (<any_logic:code><mode>3): Use VI mode iterator.
18099         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
18100         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
18101         (*andnottf3): Handle AVX three-operand constraints.
18102         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
18103
18104 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18105             Robert Millan  <rmh@gnu.org>
18106
18107         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
18108         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
18109         GNU_USER_DYNAMIC_LINKER64): Define.
18110         (REG_NAME): Don't undefine.
18111         (MD_UNWIND_SUPPORT): Undefine.
18112         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
18113         (REG_NAME): Don't undefine.
18114         (MD_UNWIND_SUPPORT): Undefine.
18115         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
18116
18117 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18118
18119         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
18120         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
18121
18122 2011-04-11  Xinliang David Li  <davidxl@google.com>
18123
18124         * value-profile.c (check_ic_target): New function.
18125         (gimple_ic_transform): Sanity check indirect call target.
18126         * gimple-low.c (gimple_check_call_args): Interface change.
18127         (gimple_check_call_matching_types): New function.
18128         * tree-inline.c (tree_can_inline_p): Call new function.
18129
18130 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
18131
18132         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
18133         tree-pretty-print.h & realmpfr.h.
18134
18135 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
18136
18137         PR middle-end/48464
18138         * ira.c (setup_pressure_classes): Fix typo in loop condition.
18139         (setup_allocno_and_important_classes): Ditto.
18140
18141 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18142
18143         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
18144         GNU_USER_DYNAMIC_LINKER.
18145         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
18146         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18147         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
18148         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18149         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18150         GNU_USER_TARGET_OS_CPP_BUILTINS.
18151         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
18152         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18153         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18154         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18155         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
18156         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18157         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18158         GNU_USER_TARGET_OS_CPP_BUILTINS.
18159         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18160         GNU_USER_DYNAMIC_LINKER.
18161         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18162         GNU_USER_TARGET_OS_CPP_BUILTINS.
18163         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
18164         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18165         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
18166         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18167         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
18168         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
18169         GNU_USER_DYNAMIC_LINKER64): Remove.
18170         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
18171         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18172         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18173         GNU_USER_DYNAMIC_LINKER.
18174         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18175         GNU_USER_TARGET_OS_CPP_BUILTINS.
18176         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18177         GNU_USER_TARGET_OS_CPP_BUILTINS.
18178         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
18179         to GNU_USER_TARGET_OS_CPP_BUILTINS.
18180         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18181         GNU_USER_TARGET_OS_CPP_BUILTINS.
18182         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
18183         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
18184         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18185         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
18186         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18187         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18188         GNU_USER_DYNAMIC_LINKER.
18189         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18190         GNU_USER_TARGET_OS_CPP_BUILTINS.
18191         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
18192         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18193         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18194         GNU_USER_DYNAMIC_LINKER.
18195         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18196         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18197         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
18198         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18199         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18200         GNU_USER_DYNAMIC_LINKER.
18201         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
18202         GNU_USER_DYNAMIC_LINKERN32.
18203         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
18204         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
18205         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
18206         GNU_USER_DYNAMIC_LINKER32.
18207         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
18208         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18209         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18210         GNU_USER_DYNAMIC_LINKER.
18211         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18212         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18213         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
18214         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18215         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18216         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
18217         GNU_USER_DYNAMIC_LINKER32.
18218         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18219         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
18220         GNU_USER_DYNAMIC_LINKER.
18221         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
18222         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18223         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18224         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
18225         GNU_USER_DYNAMIC_LINKER64.
18226         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
18227         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18228         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18229         GNU_USER_DYNAMIC_LINKER.
18230         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
18231         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18232         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18233         GNU_USER_DYNAMIC_LINKER.
18234         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
18235         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18236         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18237         GNU_USER_DYNAMIC_LINKER32.
18238         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18239         GNU_USER_DYNAMIC_LINKER64.
18240         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18241         GNU_USER_DYNAMIC_LINKER64.
18242         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
18243         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18244         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
18245         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18246         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18247
18248 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18249
18250         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
18251         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
18252         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
18253         GNU_USER_DYNAMIC_LINKER.
18254         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18255         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
18256         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
18257         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
18258         GNU_USER_DYNAMIC_LINKER64.
18259         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18260         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
18261         GNU_USER_LINK_EMULATION.
18262         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
18263         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
18264         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
18265         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
18266         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
18267         CPP_SPEC, CC1_SPEC): Remove.
18268         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
18269         (GNU_USER_DYNAMIC_LINKER): Define.
18270         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
18271         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
18272         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
18273         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
18274         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
18275         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
18276         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18277         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
18278         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
18279         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
18280         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
18281         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
18282         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
18283         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
18284         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
18285         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18286         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18287         GNU_USER_DYNAMIC_LINKER.
18288         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18289         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18290         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18291         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18292         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18293         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18294         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
18295         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
18296         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
18297         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
18298
18299 2011-04-11  Kai Tietz  <ktietz@redhat.com>
18300
18301         PR target/9601
18302         PR target/11772
18303         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
18304         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
18305         comment.
18306         (ix86_is_msabi_thiscall): Removed.
18307         (ix86_is_type_thiscall): Likewise.
18308         (ix86_get_callcvt): New function.
18309         (ix86_comp_type_attributes): Simplify check.
18310         (ix86_function_regparm): Use ix86_get_callcvt for calling
18311         convention attribute checks.
18312         (ix86_return_pops_args): Likewise.
18313         (ix86_static_chain): Likewise.
18314         (x86_this_parameter): Likewise.
18315         (x86_output_mi_thunk): Likewise.
18316         (ix86_function_type_abi): Optimize check for types without attributes.
18317         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
18318         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
18319         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
18320         by flag-values.
18321         (IX86_BASE_CALLCVT): Helper macro.
18322         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
18323         Use ix86_get_callcvt for calling convention attribute checks and avoid
18324         symbol-decoration for stdcall in TARGET_RTD case.
18325         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
18326         Likewise.
18327         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
18328         for declaration.
18329
18330 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18331
18332         * config/i386/sse.md (VI_128): New mode iterator.
18333         (VI12_128): Rename from SSEMODE12.
18334         (VI14_128): Rename from SSEMODE14.
18335         (VI124_128): New mode iterator.
18336         (VI24_128): Rename from SSEMODE248.
18337         (VI248_128): Rename from SSEMODE248.
18338         (SSEMODE124C8): Remove.
18339         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18340         (*sse2_<plusminus_insn><mode>3): Merge with
18341         *avx_<plusminus_insn><mode>3.
18342         (*mulv8hi3): Merge with *avx_mulv8hi3.
18343         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
18344         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
18345         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
18346         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
18347         (ashr<mode>3): Merge with *avx_ashr<mode>3.
18348         (lshr<mode>3): Merge with *avx_lshr<mode>3.
18349         (ashl<mode>3): Merge with *avx_ashl<mode>3.
18350         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
18351         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
18352         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18353         (*<smaxmin:code>v8hi3): Ditto.
18354         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
18355         (*<smaxmin:code>v16qi3): Ditto.
18356         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
18357         (*sse2_eq<mode>3): Ditto.
18358         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
18359         (*sse2_gt<mode>3): Ditto.
18360         (vcondv2di): Split out of vcond<mode>.
18361         (vconduv2di): Split out of vcondu<mode>.
18362
18363 2011-04-11  Richard Guenther  <rguenther@suse.de>
18364
18365         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
18366         before calling tree_low_cst.
18367
18368 2011-04-11  Richard Guenther  <rguenther@suse.de>
18369
18370         * stor-layout.c (layout_type): Compute all array index size operations
18371         in the original type.
18372         (initialize_sizetypes): Add comment.
18373         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
18374
18375 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18376
18377         * common.opt (Tbss=, Tdata=, Ttext=): New options.
18378
18379 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18380
18381         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
18382         of cgraph_node, handle NULL return value.
18383         (cgraph_global_info): Likewise.
18384         (cgraph_rtl_info): Likewise.
18385         * tree-inline.c (estimate_num_insns): Likewise.
18386         * gimplify.c (unshare_body): Likewise.
18387         (unvisit_body): Likewise.
18388         (gimplify_body): Likewise.
18389         * predict.c (optimize_function_for_size_p): Likewise.
18390         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18391         (call_may_clobber_ref_p_1): Likewise.
18392         * varasm.c (function_section_1): Likewise.
18393         (assemble_start_function): Likewise.
18394
18395 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18396
18397         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
18398         of cgraph_node.
18399         * final.c (rest_of_clean_state): Likewise.
18400         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
18401         * passes.c (pass_init_dump_file): Likewise.
18402         (execute_all_ipa_transforms): Likewise.
18403         (function_called_by_processed_nodes_p): Likewise.
18404         * predict.c (maybe_hot_frequency_p): Likewise.
18405         (probably_never_executed_bb_p): Likewise.
18406         (compute_function_frequency): Likewise.
18407         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
18408         (unnest_nesting_tree_1): Likewise.
18409         (lower_nested_functions): Likewise.
18410         * tree-optimize.c (execute_fixup_cfg): Likewise.
18411         (tree_rest_of_compilation): Likewise.
18412         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
18413         * tree-sra.c (ipa_early_sra): Likewise.
18414         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
18415         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
18416         * ipa.c (record_cdtor_fn): Likewise.
18417         * ipa-inline.c (cgraph_early_inlining): Likewise.
18418         (compute_inline_parameters_for_current): Likewise.
18419         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18420         * ipa-pure-const.c (local_pure_const): Likewise.
18421         * ipa-split.c (split_function): Likewise.
18422         (execute_split_functions): Likewise.
18423         * cgraphbuild.c (build_cgraph_edges): Likewise.
18424         (rebuild_cgraph_edges): Likewise.
18425         (cgraph_rebuild_references): Likewise.
18426         (remove_cgraph_callee_edges): Likewise.
18427         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
18428         (verify_cgraph_node): Likewise.
18429         (cgraph_analyze_functions): Likewise.
18430         (cgraph_preserve_function_body_p): Likewise.
18431         (save_inline_function_body): Likewise.
18432         (save_inline_function_body): Likewise.
18433         * tree-inline.c (copy_bb): Likewise.
18434         (optimize_inline_calls): Likewise.
18435
18436 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18437
18438         PR tree-optimization/48195
18439         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
18440         ipa_check_create_edge_args.
18441         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
18442         ipa_check_create_edge_args.
18443         * ipa-inline.c (inline_generate_summary): Do not call
18444         ipa_check_create_node_params and ipa_check_create_edge_args.
18445         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
18446         ipa_check_create_edge_args.
18447
18448 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
18449
18450         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
18451         instead of loop.
18452         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
18453         * function.c (record_hard_reg_sets): Likewise.
18454         * ira.c (compute_regs_asm_clobbered): Likewise.
18455         * sched-deps.c (sched_analyze_1): Likewise.
18456         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
18457
18458 2011-04-09  Xinliang David Li  <davidxl@google.com>
18459
18460         PR tree-optimization/PR48484
18461         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
18462         has_valid_pred lazily
18463
18464 2011-04-09  Duncan Sands  <baldrick@free.fr>
18465
18466         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
18467
18468 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18469
18470         * combine.c (combine_validate_cost): Adjust comments.  Set registered
18471         cost of I0 to zero at the end, if any.
18472
18473 2011-04-08  Xinliang David Li  <davidxl@google.com>
18474
18475         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
18476         to insane profile data.
18477
18478 2011-04-08  Xinliang David Li  <davidxl@google.com>
18479
18480         * ipa-cp.c (ipcp_update_profiling): Correct
18481          negative scale factor due to insane profile data.
18482
18483 2011-04-08  Xinliang David Li  <davidxl@google.com>
18484
18485         * final.c (dump_basic_block_info): New function.
18486         (final): Dump basic block.
18487         (final_scan_insn): Remove old dump.
18488
18489 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
18490
18491         PR target/47829
18492         * config.gcc (i386-*-freebsd): Disable unwind table generation for
18493         crtbegin/crtend.
18494
18495 2011-04-08  Michael Matz  <matz@suse.de>
18496
18497         PR middle-end/48389
18498         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
18499         functions.
18500         (rebuild_jump_labels): Call rebuild_jump_labels_1.
18501         * rtl.h (rebuild_jump_labels_chain): Declare.
18502         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
18503         insns inserted on edges.
18504
18505 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
18506
18507         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
18508         * config/arm/arm-arches.def: New.
18509         * config/arm/arm-opts.h: New.
18510         * config/arm/genopt.sh: New.
18511         * config/arm/arm-tables.opt: New (generated).
18512         * config/arm/arm.c (arm_handle_option, arm_target_help,
18513         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
18514         (all_architectures): Get most table contents from arm-arches.def.
18515         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
18516         arm_selected_tune here.
18517         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
18518         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
18519         (march=, mcpu=, mtune=): Use Enum and Var.
18520         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
18521         (arm.o): Update dependencies.
18522
18523 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
18524
18525         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
18526         of header_file.
18527         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
18528         (write_typed_alloc_defns): Likewise.
18529         (main): Calls write_typed_alloc_defns with output_header.
18530
18531 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
18532
18533         PR inline-asm/48435
18534         * ira-color.c (setup_profitable_hard_regs): Add comments.
18535         Don't take prohibited hard regs into account.
18536         (setup_conflict_profitable_regs): Rename to
18537         get_conflict_profitable_regs.
18538         (check_hard_reg_p): Check prohibited hard regs.
18539
18540 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
18541
18542         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
18543         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
18544         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
18545
18546 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18547
18548         PR target/48366
18549         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
18550         move from floating point to shift amount register.
18551         (emit_move_sequence): Remove secondary reload support for floating
18552         point to shift amount amount register copies.
18553         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
18554         amount register copies.
18555         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
18556         register, return false if mode isn't a scalar integer mode.
18557         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
18558
18559 2011-04-08  Richard Guenther  <rguenther@suse.de>
18560
18561         * gimple.c (gimple_call_flags): Remove kludge.
18562
18563 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18564
18565         * sel-sched.c (sel_region_init): Move call to
18566         sel_setup_region_sched_flags after setup_current_loop_nest.
18567
18568 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
18569
18570         PR rtl-optimization/48272
18571         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
18572         init_insn_reg_pressure_info.  Adjust a caller.
18573         * sched-int.h (init_insn_reg_pressure_info): Declare.
18574         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
18575         when sched-pressure is enabled.
18576
18577 2011-04-08  Richard Guenther  <rguenther@suse.de>
18578
18579         * gimple.c (gimple_set_modified): Do not queue calls to
18580         MODIFIED_NORETURN_CALLS here ...
18581         * tree-ssa-operands.c (update_stmt_operands): ... but here.
18582
18583 2011-04-08  Richard Guenther  <rguenther@suse.de>
18584
18585         PR lto/48467
18586         * toplev.c (lang_dependent_init): Do not open asm_out_file
18587         in WPA mode, nor perform debug machinery initialization.
18588         (finalize): Do not unlink asm_out_file in WPA mode.
18589
18590 2011-04-08  Richard Guenther  <rguenther@suse.de>
18591
18592         * gimple.h (gimple_call_fntype): New function.
18593         (gimple_call_return_type): Use it.
18594         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
18595         * gimple-low.c (gimple_check_call_args): Likewise.
18596         * gimple.c (gimple_call_flags): Likewise.
18597         (gimple_call_arg_flags): Likewise.
18598         (gimple_call_return_flags): Likewise.
18599         * tree-cfg.c (verify_gimple_call): Likewise.
18600         (do_warn_unused_result): Likewise.
18601         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
18602         * value-prof.c (gimple_ic_transform): Fix fndecl check.
18603
18604 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
18605
18606         PR rtl-optimization/48235
18607         * sel-sched.c (code_motion_process_successors): Recompute the last
18608         insn in basic block if control flow changed.
18609         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
18610         Update condition for ilist_remove.
18611
18612 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18613
18614         PR rtl-optimization/48302
18615         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
18616         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
18617         it to record added preheader blocks.
18618         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
18619         on to sel_add_loop_preheaders.
18620         (sel_region_init): Move call to setup_current_loop_nest after
18621         sel_init_bbs.
18622
18623 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18624
18625         PR target/48273
18626         * cfgloop.h (loop_has_exit_edges): New helper.
18627         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
18628         non-clonable.
18629         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
18630         that have no exit edges.
18631
18632 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18633
18634         PR rtl-optimization/48442
18635         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
18636         all callers.  Adjust assert.
18637
18638 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
18639
18640         PR tree-optimization/48377
18641         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
18642         is_packed to true even for types with smaller TYPE_ALIGN than
18643         TYPE_SIZE.
18644
18645 2011-04-08  Richard Guenther  <rguenther@suse.de>
18646
18647         PR bootstrap/48513
18648         * doc/tm.texi: Re-generate.
18649
18650 2011-04-08  Wei Guozhi  <carrot@google.com>
18651
18652         PR target/47855
18653         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
18654         * config/arm/arm.c (arm_attr_length_push_multi): New function.
18655         * config/arm/arm.md (*push_multi): Change the length computation to
18656         call a C function.
18657
18658 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
18659
18660         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
18661         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
18662         * doc/tm.texi: Regenerate.
18663         * system.h (ASM_OUTPUT_BSS): Poison.
18664         * varasm.c (asm_output_bss): Remove function.
18665         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
18666
18667         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
18668         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
18669         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
18670         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18671         Likewise.
18672         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18673         Likewise.
18674         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18675         Likewise.
18676         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
18677
18678 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18679
18680         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
18681         EnumValue lines.
18682
18683 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18684
18685         * config/m68k/m68k.c (m68k_handle_option): Don't handle
18686         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
18687         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
18688         OPT_mcpu32.
18689         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18690         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
18691         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
18692         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
18693         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
18694         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
18695         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18696         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
18697         options.  Don't map other m68k options manually.  Don't handle
18698         old-style options as canonical.
18699         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18700         * doc/install.texi (m68k-*-*): Document binutils version requirement.
18701
18702 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
18703
18704         * basic-block.h (force_nonfallthru): Move to...
18705         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
18706         (force_nonfallthru): ...here.
18707         * cfghooks.c (force_nonfallthru): New function.
18708         * cfgrtl.c (force_nonfallthru): Rename into...
18709         (rtl_force_nonfallthru): ...this.
18710         (commit_one_edge_insertion): Do not set AUX field.
18711         (commit_edge_insertions): Do not discover new basic blocks.
18712         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
18713         (cfg_layout_rtl_cfg_hooks): Likewise.
18714         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
18715         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
18716         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
18717
18718 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
18719
18720         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18721         Remove macros.
18722
18723 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
18724
18725         * config/i386/sse.md: Update copyright year.
18726         (avxcvtvecmode): Remove.
18727         (sse_movhlps): Merge with *avx_movhlps.
18728         (sse_movlhps): Merge with *avx_movlhps.
18729         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
18730         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
18731         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
18732         (sse_loadhps): Merge with *avx_loadhps.
18733         (sse_storelps): Merge with *avx_storelps.
18734         (sse_loadlps): Merge with *avx_loadlps.
18735         (sse_movss): Merge with *avx_movss.
18736         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
18737         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
18738         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
18739         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
18740         (vec_set<mode>_0): Ditto.
18741         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
18742         (sse4_1_insertps): Merge with *avx_insertps.
18743         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
18744         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
18745         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
18746         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
18747         (sse2_storehpd): Merge with *avx_storehpd.
18748         (sse2_loadhpd): Merge with *avx_loadhpd.
18749         (sse2_loadlpd): Merge with *avx_loadlpd.
18750         (sse2_movsd): Merge with *avx_movsd.
18751         (*vec_concatv2df): Merge with *vec_concatv2df.
18752
18753 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
18754
18755         PR debug/48343
18756         * combine.c (combine_instructions): Add last_combined_insn,
18757         update it if insn is after it, pass it to all try_combine calls.
18758         (try_combine): Add last_combined_insn parameter, pass it instead of
18759         i3 to propagate_for_debug.
18760
18761 2011-04-07  Nick Clifton  <nickc@redhat.com>
18762
18763         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
18764         to handle MDR <-> data register transfers.
18765         (movhi_internal): Likewise.
18766
18767 2011-04-07  Alan Modra  <amodra@gmail.com>
18768
18769         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
18770         previous stack info.
18771
18772 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18773
18774         PR target/43920
18775         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
18776         flow_find_cross_jump.  Swap variables to implement backward replacement.
18777         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
18778
18779 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18780
18781         PR target/43920
18782         * cfgcleanup.c (walk_to_nondebug_insn): New function.
18783         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
18784         and bb2.
18785         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
18786         src1 or src2.  Redirect edges to the last basic block.  Update
18787         frequency and count on multiple basic blocks in case of fallthru.
18788
18789 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18790
18791         PR target/43920
18792         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
18793         function.
18794         (old_insns_match_p): Change return type.  Replace return false/true
18795         with return dir_none/dir_both.  Use can_replace_by.
18796         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
18797         direction from dir_p.  Register replacement direction in dir, last_dir
18798         and afterlast_dir.  Handle new return type of old_insns_match_p using
18799         merge_dir.  Return replacement direction in dir_p.
18800         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
18801         return type of old_insns_match_p.
18802         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
18803         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
18804         flow_find_cross_jump.
18805         * basic-block.h (enum replace_direction): New type.
18806         (flow_find_cross_jump): Add parameter to declaration.
18807
18808 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18809
18810         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
18811         (AVXMODEDCVTPS2DQ): Ditto.
18812         (VEC_FLOAT_MODE): Ditto.
18813         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
18814         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18815         (<any_logic:code><mode>3): Use VF mode iterator.
18816         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
18817         Use VF mode iterator.
18818         (copysign<mode>3): Use VF mode iterator.
18819         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
18820         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18821         (*<any_logic:code><MODEF:mode>3): Merge with
18822         *avx_<any_logic:code><MODEF:mode>3.
18823         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
18824         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
18825         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
18826         (avx_cvtdq2ps<avxmodesuffix>): Remove.
18827         (sse2_cvtdq2ps): Use %v modifier.
18828         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
18829         (avx_cvtps2dq<avxmodesuffix>): Remove.
18830         (sse2_cvtps2dq): Use %v modifier.
18831         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
18832         (avx_cvttps2dq<avxmodesuffix>): Remove.
18833         (sse2_cvttps2dq): Use %v modifier.
18834         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
18835         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
18836         (sse2_cvtsd2siq): Fix insn template.
18837         (sse2_cvtsd2siq_2): Ditto.
18838         (sse2_cvttsd2siq): Ditto.
18839         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
18840         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
18841
18842 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18843
18844         * gcov-io.c: Use GCC Runtime Library Exception.
18845
18846 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
18847
18848         PR debug/48466
18849         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
18850         as base_reg whatever register reg has been eliminated to, instead
18851         of hardcoding STACK_POINTER_REGNUM.
18852
18853 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18854
18855         * doc/tm.texi.in: Document C target hooks as separate from general
18856         target hooks.
18857         * doc/tm.texi: Regenerate.
18858         * genhooks.c (struct hook_desc): Add docname field.
18859         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
18860         docname field.
18861         (hook_array): Include c-target.def.
18862         (emit_documentation): Use docname field in output.
18863         (emit_init_macros): Take docname argument.  Only emit definitions
18864         for hooks matching docname.
18865         (main): Expect additional arguments in all cases.  Pass argument
18866         to emit_init_macros.
18867         * target.def: Move initial macro definitions and comments to
18868         target-hooks-macros.h.
18869         (gcc_targetcm): Move to c-family/c-target.def.
18870         * target.h (targetcm): Move declaration to c-family/c-target.h.
18871         * targhooks.c (default_handle_c_option): Move to
18872         c-family/c-opts.c.
18873         * targhooks.h (default_handle_c_option): Move declaration to
18874         c-family/c-common.h.
18875         * target-hooks-macros.h: New file.
18876         * config.gcc (target_has_targetcm): Define and use to add to
18877         c_target_objs and cxx_target_objs.
18878         * config/default-c.c: New file.
18879         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
18880         of target.h and target-def.h.
18881         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
18882         (darwin_objc_construct_string, darwin_cfstring_ref_p,
18883         darwin_check_cfstring_format_arg): Make static.
18884         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18885         TARGET_STRING_OBJECT_REF_TYPE_P,
18886         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
18887         * config/darwin-protos.h (darwin_objc_construct_string,
18888         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
18889         declare.
18890         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18891         TARGET_STRING_OBJECT_REF_TYPE_P,
18892         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
18893         * config/t-darwin (darwin-c.o): Update dependencies.
18894         * system.h (TARGET_HAS_TARGETCM): Poison.
18895         * Makefile.in (TARGET_H): Update.
18896         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
18897         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
18898         (default-c.o): New target.
18899         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
18900         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
18901         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
18902         c-target.def.
18903         (build/genhooks.o): Update dependencies.
18904
18905 2011-04-06  Richard Guenther  <rguenther@suse.de>
18906
18907         * ipa-inline.c (enum inlining_mode): Remove.
18908         (cgraph_flatten): Use some other token.
18909         (cgraph_edge_early_inlinable_p): New function, split out from ...
18910         (cgraph_perform_always_inlining): New function, split out from ...
18911         (cgraph_decide_inlining_incrementally): ... here.
18912         (cgraph_mark_inline_edge): Adjust.
18913         (cgraph_early_inlining): Re-structure.
18914         (pass_early_inline): Require SSA form.
18915
18916 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
18917             Julian Brown  <julian@codesourcery.com>
18918             Mark Shinwell  <shinwell@codesourcery.com>
18919
18920         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
18921         LO_REGS only for Thumb-1.
18922         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
18923         be used in short instructions when optimising for size on Thumb-2.
18924
18925 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
18926
18927         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
18928         associated with user returns to be preserved.
18929
18930 2011-04-06  Tristan Gingold  <gingold@adacore.com>
18931
18932         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
18933         symbol_queue_size, DBXOUT_DECR_NESTING,
18934         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
18935         if XCOFF_DEBUGGING_INFO.
18936
18937 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18938
18939         * config/i386/i386.md (attribute isa): New.
18940         (attribute enabled): New.
18941         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
18942         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
18943         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
18944         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
18945         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
18946         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18947         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
18948         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
18949
18950         * config/i386/sse.md (VF): New mode iterator.
18951         (VF1): Ditto.
18952         (VF2): Ditto.
18953         (VF_128): Ditto.
18954         (SSEMODEF4): Remove.
18955         (attribute sse): Handle V8SF and V4DF modes.
18956         (<absneg:code><mode>2): Use VF mode iterator.
18957         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
18958         mode iterator.
18959         (<plusminus_insn><mode>3): Use VF mode iterator.
18960         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18961         Use VF mode iterator.
18962         (<sse>_vm<plusminus_insn><mode>3): Merge with
18963         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
18964         (mul<mode>3): Use VF mode iterator.
18965         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
18966         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
18967         mode iterator.
18968         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
18969         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
18970         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
18971         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
18972         mode iterator.
18973         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
18974         Use VF1 mode iterator.
18975         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
18976         (sqrt<VF2:mode>2): New expander.
18977         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
18978         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
18979         and sqrtv2df2.  Use VF mode iterator.
18980         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
18981         mode iterator.
18982         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
18983         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
18984         Use VF1 mode iterator.
18985         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
18986         (<smaxmin:code><mode>3): Use VF mode iterator.
18987         (*<smaxmin:code><mode>3_finite): Merge with
18988         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
18989         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18990         (<sse>_vm<smaxmin:code><mode>2): Merge with
18991         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
18992         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
18993         mode iterator.
18994         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
18995         mode iterator.
18996         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
18997         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
18998         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
18999         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
19000         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
19001         VF mode iterator.
19002         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
19003         Use VF_128 mode iterator.
19004         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
19005         mode iterator.
19006         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
19007         VF_128 mode iterator.
19008         (vcond<mode>): Use VF mode iterator.
19009         * config/i386/predicates.md (sse_comparison_operator): Merge with
19010         avx_comparison_float_operator.  Do not declare as special_predicate.
19011         * config/i386/i386.c (struct builtin_description): Update for renamed
19012         compare patterns.
19013         (ix86_expand_args_builtin): Ditto.
19014         (ix86_expand_sse_compare_mask): Ditto.
19015
19016 2011-04-06  Richard Guenther  <rguenther@suse.de>
19017
19018         * tree-inline.c (estimate_num_insns): For calls simply account
19019         for all passed arguments and a used return value.
19020
19021 2011-04-06  Richard Guenther  <rguenther@suse.de>
19022
19023         PR tree-optimization/47663
19024         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
19025         call_stmt_time fields.
19026         (cgraph_edge_inlinable_p): Declare.
19027         (cgraph_edge_recursive_p): New inline function.
19028         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
19029         (cgraph_clone_edge): Copy it.
19030         * ipa-inline.c (cgraph_estimate_edge_time): New function.
19031         Account for call stmt time.
19032         (cgraph_estimate_time_after_inlining): Take edge argument.
19033         (cgraph_estimate_edge_growth): Account call stmt size.
19034         (cgraph_estimate_size_after_inlining): Take edge argument.
19035         (cgraph_mark_inline_edge): Adjust.
19036         (cgraph_check_inline_limits): Likewise.
19037         (cgraph_recursive_inlining_p): Remove.
19038         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
19039         (cgraph_decide_recursive_inlining): Take edge argument and
19040         adjust.
19041         (cgraph_decide_inlining_of_small_functions): Do not avoid
19042         diags for recursive inlining here.
19043         (cgraph_flatten): Adjust.
19044         (cgraph_decide_inlining_incrementally): Likewise.
19045         (estimate_function_body_sizes): Remove call cost handling.
19046         (compute_inline_parameters): Initialize caller edge call costs.
19047         (cgraph_estimate_edge_growth): New function.
19048         (cgraph_estimate_growth): Use it.
19049         (cgraph_edge_badness): Likewise.
19050         (cgraph_check_inline_limits): Take an edge argument.
19051         (cgraph_decide_inlining_of_small_functions): Adjust.
19052         (cgraph_decide_inlining): Likewise.
19053         * tree-inline.c (estimate_num_insns): Only account for call
19054         return value if it is used.
19055         (expand_call_inline): Avoid diagnostics on recursive inline
19056         functions here.
19057         * lto-cgraph.c (lto_output_edge): Output edge call costs.
19058         (input_edge): Input edge call costs.
19059
19060 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19061
19062         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
19063
19064 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
19065
19066         * doc/invoke.texi (Spec Files): Fix typo.
19067
19068 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
19069
19070         * profile.c (branch_prob): Move declaration of local variable.  Remove
19071         obsolete ??? comment.  Expand the location explicitly instead of using
19072         the LOCATION_FILE and LOCATION_LINE macros.
19073
19074 2011-04-06  Wei Guozhi  <carrot@google.com>
19075
19076         PR target/47855
19077         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
19078         (arm_cond_branch): Likewise.
19079         (arm_cond_branch_reversed): Likewise.
19080         (arm_jump): Likewise.
19081         (push_multi): Likewise.
19082         * config/arm/constraints.md (Py): New constraint.
19083
19084 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19085
19086         PR bootstrap/48471
19087         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
19088         Move these...
19089         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
19090         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
19091         #ifdef DBX_DEBUGGING_INFO.
19092
19093 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
19094
19095         PR bootstrap/48403
19096         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
19097         if old and new states differ.
19098
19099 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19100
19101         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
19102         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
19103         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
19104         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
19105         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
19106         mcfv4e): Use Alias.
19107         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
19108         ColdFire options to -mcpu= options.
19109
19110 2011-04-05  Jeff Law  <law@redhat.com>
19111
19112         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
19113         check if BB is a successor of LOOP->header and return
19114         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
19115
19116 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19117
19118         * cprop.c (struct reg_use): Remove.
19119         (reg_use_table): Make an array of RTX.
19120         (find_used_regs, constprop_register, local_cprop_pass,
19121         bypass_block): Simplify users of reg_use_table.
19122         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
19123         on one of the uses found by find_used_regs.
19124
19125 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19126
19127         PR bootstrap/48469
19128         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
19129         declaration.
19130
19131 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19132
19133         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
19134         as an rtx.
19135         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
19136
19137 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19138
19139         PR middle-end/48441
19140         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
19141
19142 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19143
19144         * combine.c: Include obstack.h.
19145         (struct insn_link): Define.
19146         (uid_log_links): Adjust type.
19147         (FOR_EACH_LOG_LINK): New macro.
19148         (insn_link_obstack): Declare.
19149         (alloc_insn_link): Define.
19150         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
19151         type of link variables.
19152         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
19153         (try_combine, record_promoted_values, distribute_notes): Likewise.
19154         (distribute_links): Likewise.  Tweak prototype.
19155         (clear_log_links): Delete.
19156         (adjust_for_new_dest): Call alloc_insn_link.
19157         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
19158
19159 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19160
19161         * gcse.c (modify_mem_list): Convert to an array of VECs.
19162         (canon_modify_mem_list, compute_transp): Tweak formatting.
19163         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
19164         (load_killed_in_block_p): Likewise.
19165         (record_last_mem_set_info): Likewise.
19166         (clear_modify_mem_tables): Likewise.
19167
19168 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19169
19170         PR middle-end/48461
19171         * function.c (emit_use_return_register_into_block): Only define if
19172         HAVE_return.
19173
19174 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
19175
19176         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
19177
19178 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19179
19180         * config/rx/rx-opts.h: New.
19181         * config/rx/rx.c (rx_cpu_type): Remove.
19182         (rx_handle_option): Don't assert that global structures are in
19183         use.  Access variables via opts pointer.  Defer most handling of
19184         OPT_mint_register_.  Use error_at.
19185         (rx_option_override): Handle deferred OPT_mint_register_ here.
19186         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
19187         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
19188         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
19189         (rx_cpu_types): New Enum and EnumValue entries.
19190         (mint-register=): Use Defer and use Var accordingly.
19191
19192 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19193
19194         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
19195         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
19196         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
19197         Move these...
19198         (debug_free_queue, debug_nesting, symbol_queue_index):
19199         ...and these...
19200         * dbxout.c: ...to here.  Make static.
19201
19202 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19203
19204         * gcse.c (modify_pair): Define.  Define a VEC of it.
19205         (canon_modify_mem_list): Convert to an array of VECs.
19206         (free_insn_expr_list_list): Delete.
19207         (clear_modify_mem_tables): Call VEC_free instead.
19208         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
19209         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
19210         (canon_list_insert, compute_transp): Likewise.
19211
19212 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19213
19214         PR target/43920
19215         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
19216         for size.
19217
19218 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19219
19220         PR target/43920
19221         * function.c (emit_use_return_register_into_block): New function.
19222         (thread_prologue_and_epilogue_insns): Use
19223         emit_use_return_register_into_block.
19224
19225 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19226
19227         PR target/43920
19228         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
19229         insn.
19230
19231 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19232
19233         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
19234
19235 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
19236
19237         * config/arm/arm.md (define_constants for unspec): Replace with
19238         define_c_enum.
19239         (define_constants for unspecv): Replace with define_c_enum.
19240         * config/arm/neon.md (define_constants for unspec): Replace with
19241         define_c_enum.
19242
19243 2011-04-04  Richard Henderson  <rth@redhat.com>
19244
19245         PR bootstrap/48400
19246         * dwarf2out.c (output_line_info): Always emit line info from
19247         at least one section.
19248         (dwarf2out_init): Create text_section_line_info here ...
19249         (set_cur_line_info_table): ... not here.
19250
19251 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
19252
19253         PR target/48380
19254         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
19255         not called.
19256
19257         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
19258
19259 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
19260
19261         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
19262         (expr_equiv_p): Remove.
19263         (insert_set_in_table): Look at <dest, src> pair instead of expr.
19264         (hash_scan_set): Update call to insert_set_in_table.
19265         (dump_hash_table): Dump <dest, src> pair.
19266         (lookup_set): Simplify.  Lookup <dest, src> pair.
19267         (compute_transp): Remove, fold heavily simplified code into...
19268         (compute_local_properties): ...here.  Expect COMP and TRANSP
19269         unconditionally.
19270         (find_avail_set): Take set directly from struct expr.
19271         (find_bypass-set): Likewise.
19272         (bypass_block): Likewise.
19273         (cprop_insn): Likewise.  Remove redundant INSN_P test.
19274
19275         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
19276         checks on form of COND from find_implicit_sets to here.
19277         (find_implicit_sets): Cleanup control flow. Split critical edges
19278         if it exposes implicit sets.  Allocate/resize implicit_sets as
19279         necessary.
19280         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
19281         changed something.  Run df_analyze after find_implicit_sets if any
19282         edges were split.  Do not allocate implicit_sets here.
19283
19284         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
19285         (gcse_obstack): Renamed to cprop_obstack.
19286         (GNEW, GNEWVEC, GNEWVAR): Remove.
19287         (gmalloc): Remove.
19288         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
19289         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
19290         (gcse_alloc): Likewise, and rename to cprop_alloc.
19291         (alloc_gcse_men, free_gcse_mem): Remove.
19292         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
19293         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
19294         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
19295
19296         * cprop.c (oprs_not_set_p): Remove.
19297         (mark_set, mark_clobber): Remove.
19298         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
19299         (reg_not_set_p): New function.
19300         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
19301         (cprop_insn): Likewise.
19302         (cprop_jump): Use FOR_EACH_EDGE.
19303
19304 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
19305
19306         PR bootstrap/48403
19307         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
19308         (rank_for_schedule): Use scheduled_insns vector instead of
19309         last_scheduled_insn.
19310         (ok_for_early_queue_removal): Likewise.
19311         (queue_to_ready): Search forward in nonscheduled_insns_begin if
19312         we have a dbg_cnt.
19313         (choose_ready): Likewise.
19314         (commit_schedule): Use VEC_iterate.
19315         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
19316         a dbg_cnt, use it and ensure the first insn is in the ready list.
19317         (haifa_sched_init): Allocate scheduled_insns.
19318         (sched_extend_ready_list): Don't allocate it; reserve space.
19319         (haifa_sched_finish): Free it.
19320
19321 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19322
19323         * optc-gen.awk: Always remove type from Variable entry before
19324         recording in var_seen.
19325
19326 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
19327
19328         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
19329         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
19330         call to tidy_fallthru_edges.
19331
19332 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19333
19334         * doc/options.texi (ToLower): Document.
19335         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
19336         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
19337         * opts.h (cl_option): Add cl_tolower field.
19338         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
19339         arguments with lowercase strings.
19340         * config/rx/rx.opt (mcpu=): Add ToLower.
19341         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
19342         argument.
19343
19344 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19345
19346         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
19347
19348 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19349
19350         * config/vax/vax.c: Include reload.h.
19351
19352 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
19353
19354         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
19355         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19356         (sparc_preferred_reload_class): New function.
19357
19358 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
19359
19360         PR debug/48401
19361         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19362         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
19363
19364 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
19365
19366         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
19367         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
19368
19369 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
19370
19371         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
19372         (ASM_OUTPUT_ALIGNED_BSS): Define.
19373
19374 2011-04-03  Michael Matz  <matz@suse.de>
19375
19376         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
19377         and next_slot members.
19378         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
19379         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
19380         (lto_streamer_cache_append): Declare.
19381         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
19382         unsigned index, remove offset parameter, ensure that we append
19383         or update existing entries.
19384         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
19385         parameter, update next_slot for append.
19386         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
19387         parameter.
19388         (lto_streamer_cache_insert_at): Likewise.
19389         (lto_streamer_cache_append): New function.
19390         (lto_streamer_cache_lookup): Use unsigned index.
19391         (lto_streamer_cache_get): Likewise.
19392         (lto_record_common_node): Don't test tree_node_can_be_shared.
19393         (preload_common_node): Adjust call to lto_streamer_cache_insert.
19394         (lto_streamer_cache_delete): Don't free offsets member.
19395         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
19396         (lto_output_string_with_length): Use lto_output_data_stream.
19397         (lto_output_tree_header): Remove ix parameter, don't write it.
19398         (lto_output_builtin_tree): Likewise.
19399         (lto_write_tree): Adjust callers to above, don't track and write
19400         offset, write unsigned index.
19401         (output_unreferenced_globals): Don't emit all global vars.
19402         (write_global_references): Use unsigned indices.
19403         (lto_output_decl_state_refs): Likewise.
19404         (write_symbol): Likewise.
19405         * lto-streamer-in.c (lto_input_chain): Move earlier.
19406         (input_function): Use unsigned index.
19407         (input_alias_pairs): Don't read and then ignore all global vars.
19408         (lto_materialize_tree): Remove ix_p parameter, don't read index,
19409         don't pass it back, use lto_streamer_cache_append.
19410         (lto_register_var_decl_in_symtab): Use unsigned index.
19411         (lto_register_function_decl_in_symtab): Likewise.
19412         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
19413         index.
19414         (lto_get_builtin_tree): Don't read index, use
19415         lto_streamer_cache_append.
19416         (lto_read_tree): Adjust call to lto_materialize_tree.
19417
19418         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
19419         don't use function calls in arguments to MIN.
19420
19421         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
19422         twice.
19423
19424         * gimple.c (gimple_type_leader_entry): Mark deletable.
19425
19426 2011-04-03  Alan Modra  <amodra@gmail.com>
19427
19428         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
19429
19430 2011-04-03  Michael Matz  <matz@suse.de>
19431
19432         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
19433         an integer.
19434         * tree.h (tree_decl_non_common.vindex): Adjust comment.
19435
19436 2011-04-03  Michael Matz  <matz@suse.de>
19437
19438         * cgraphbuild.c (record_reference): Canonicalize constructor values.
19439         * gimple-fold.c (canonicalize_constructor_val): Accept being called
19440         without function context.
19441         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
19442         current_function_decl and cfun.
19443
19444 2011-04-03  Michael Matz  <matz@suse.de>
19445
19446         * tree.c (decl_init_priority_insert): Don't create entry for
19447         default priority.
19448         (decl_fini_priority_insert): Ditto.
19449         (fields_compatible_p, find_compatible_field): Remove.
19450         * tree.h (fields_compatible_p, find_compatible_field): Remove.
19451         * gimple.c (gimple_compare_field_offset): Adjust block comment.
19452
19453 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
19454
19455         * combine.c (try_combine): Remove useless local variable.
19456
19457 2011-04-03  Richard Guenther  <rguenther@suse.de>
19458             Ira Rosen  <ira.rosen@linaro.org>
19459
19460         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
19461         non-variable offsets and compare the remaining bases of the two
19462         accesses instead of looking for exact same data-ref.
19463
19464 2011-04-02  Kai Tietz  <ktietz@redhat.com>
19465
19466         PR target/48416
19467         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
19468
19469         * i386.c (ix86_is_msabi_thiscall): New helper function.
19470         (ix86_is_type_thiscall): New helper function.
19471         (ix86_comp_type_attributes): Handle thiscall for method-functions
19472         special.
19473         (init_cumulative_args): Likewise.
19474         (find_drap_reg): Likewise.
19475         (ix86_static_chain): Likewise.
19476         (x86_this_parameter): Likewise.
19477         (x86_output_mi_thunk): Likewise.
19478
19479 2011-04-01  Olivier Hainque  <hainque@adacore.com>
19480             Nicolas Setton  <setton@adacore.com>
19481             Eric Botcazou  <ebotcazou@adacore.com>
19482
19483         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
19484         (add_gnat_descriptive_type_attribute): New function.
19485         (gen_array_type_die): Call it.
19486         (gen_enumeration_type_die): Likewise.
19487         (gen_struct_or_union_type_die): Likewise.
19488         (modified_type_die): Likewise.
19489         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
19490         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
19491         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
19492
19493 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19494
19495         PR bootstrap/48148
19496         * dwarf2out.c (resolve_addr): Don't call force_decl_die
19497         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
19498
19499         Revert:
19500         2011-03-17  Richard Guenther  <rguenther@suse.de>
19501
19502         PR bootstrap/48148
19503         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19504         origin for decls in other ltrans units.
19505         (input_varpool_node): Likewise.
19506
19507 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19508
19509         PR middle-end/48335
19510         * expr.c (expand_assignment): Handle all possibilities
19511         if TO_RTX is CONCAT.
19512         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19513         (store_split_bit_field): If SUBREG_REG (op0) or
19514         op0 itself has smaller mode than word, return it
19515         for offset 0 and const0_rtx for out-of-bounds stores.
19516         If word is const0_rtx, skip it.
19517
19518 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
19519
19520         * config/h8300/h8300.c (print_operand_address): Rename to...
19521         (h8300_print_operand_address): ...this. Make static. Adjust comments.
19522         Call h8300_print_operand and h8300_print_operand_address instead of
19523         print_operand and print_operand_address. Declare.
19524         (print_operand): Renake to...
19525         (h8300_print_operand): ...this. Make static. Adjust comments.
19526         Call h8300_print_operand instead of print_operand. Declare.
19527         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
19528         (h8300_register_move_cost): Likewise.
19529         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
19530         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
19531         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
19532         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
19533         * config/h8300/h8300-protos.h (print_operand): Delete.
19534         (print_operand_address): Delete.
19535
19536 2011-04-01  Richard Henderson  <rth@redhat.com>
19537
19538         PR 48400
19539         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
19540         in strict mode before dwarf4.  Re-order tests to early out
19541         before switching sections.
19542
19543 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
19544
19545         * config/h8300/constraints.md: New file.
19546         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
19547         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
19548         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
19549         * config/h8300/predicates.md (bit_operand): Likewise.
19550         (incdec_operand): Use satisfies_constraint_M and
19551         satisfies_constraint_O.  Don't use C code block.
19552         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
19553         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
19554         (compute_mov_length): Use satisfies_constraint_G.
19555         (fix_bit_operand): Use satisfies_constraint_U.
19556         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
19557         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
19558         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
19559         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
19560         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
19561         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
19562         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19563         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
19564         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
19565         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
19566         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
19567         (EXTRA_MEMORY_CONSTRAINT): Delete.
19568
19569 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
19570             Michael Meissner  <meissner@linux.vnet.ibm.com>
19571
19572         PR target/48262
19573         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
19574         operands, as per the specifications.
19575
19576         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
19577         (vec_extract_evenv4sf): Ditto.
19578         (vec_extract_evenv8hi): Ditto.
19579         (vec_extract_evenv16qi): Ditto.
19580         (vec_extract_oddv4si): Ditto.
19581
19582 2011-03-31  Mark Wielaard  <mjw@redhat.com>
19583
19584         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
19585         high_pc attribute if the CU has no associated code. Only output
19586         DW_AT_entry_pc for CU if not generating strict dwarf and
19587         dwarf_version < 4.
19588
19589 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
19590
19591         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
19592         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
19593         out of ...
19594         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
19595         * final.c (final_start_function): Call the new function rather
19596         than using a NULL argument for dwarf2out_frame_debug.
19597
19598         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
19599         that contains the prologue.
19600
19601         * haifa-sched.c (queue_insn): New arg REASON.  All callers
19602         changed.  Print it in debugging output.
19603
19604         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
19605
19606         * sched-ebb.c (begin_schedule_ready): Remove second argument.
19607         Split most of the code into...
19608         (begin_move_insn): ... here.  New function.
19609         (ebb_sched_info): Add a pointer to it.
19610         * haifa-sched.c (scheduled_insns): New static variable.
19611         (sched_extend_ready_list): Allocate it.
19612         (schedule_block): Use it to record the order of scheduled insns.
19613         Perform RTL changes to move insns only after all scheduling
19614         decisions have been made.
19615         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
19616         begin_move_insn field.
19617         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
19618         * sched-int.h (struct haifa_sched_info): Remove second argument
19619         from begin_schedule_ready hook.  Add new member begin_move_insn.
19620         * sched-rgn.c (begin_schedule_ready): Remove second argument.
19621         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
19622
19623         * haifa-sched.c (prune_ready_list): New function, broken out of
19624         schedule_block.
19625         (schedule_block): Use it.
19626
19627 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19628
19629         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
19630
19631 2011-04-01  Kai Tietz  <ktietz@redhat.com>
19632
19633         * config.gcc (*-*-mingw*): Allow as option the
19634         posix threading model.
19635         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
19636         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
19637         definition.
19638         (CPP_SPEC): Add pthread/no-pthread handling.
19639         (LIB_SPEC): Likewise.
19640         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
19641         (LIB_SPEC): Likewise.
19642         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
19643         flag to pass -pthread option for shared libgcc build.
19644         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
19645         for shared libgcc build.
19646         * config/i386/t-mingw-pthread: New file.
19647         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
19648         New define to enable use of library pthread by default.
19649         * config/i386/mingw.opt (pthread): New driver option.
19650         (no-pthread): New driver option.
19651         * config/i386/cygming.opt: Make sure trailing empty line is retained.
19652         * config/i386/mingw-w64.opt: Likewise.
19653
19654 2011-04-01  Gary Funck  <gary@intrepid.com>
19655
19656         * c-decl.c (grokdeclarator): Fix formatting.
19657
19658 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19659
19660         * expr.c (emit_block_move_via_movmem): Use n_generator_args
19661         instead of n_operands.
19662         (set_storage_via_setmem): Likewise.
19663         * optabs.c (maybe_gen_insn): Likewise.
19664         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
19665         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
19666         (mips_expand_builtin_direct): Likewise.
19667         * config/spu/spu.c (expand_builtin_args): Likewise.
19668
19669 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19670
19671         * recog.h (insn_data_d): Add n_generator_args.
19672         * genoutput.c (data): Likewise.
19673         (output_insn_data): Print it.
19674         (max_opno, num_dups): Delete.
19675         (scan_operands): Just fill in "d->operand[...]".
19676         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
19677
19678 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19679
19680         * gensupport.h (pattern_stats): New structure.
19681         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
19682         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
19683         (max_operand_1, max_operand_vec): Delete.
19684         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
19685
19686 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
19687
19688         * emit-rtl.c (emit_pattern_after_setloc): New function.
19689         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
19690         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
19691         (emit_pattern_after): New function.
19692         (emit_insn_after, emit_jump_insn_after): Call it.
19693         (emit_call_insn_after, emit_debug_insn_after): Likewise.
19694         (emit_pattern_before_setloc): New function.
19695         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
19696         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19697         Likewise.
19698         (emit_pattern_before): New function.
19699         (emit_insn_before, emit_jump_insn_before): Call it.
19700         (emit_call_insn_before, emit_debug_insn_before): Likewise.
19701
19702 2011-03-31  Richard Henderson  <rth@redhat.com>
19703
19704         * dwarf2out.c (dw_separate_line_info_ref): Remove.
19705         (dw_separate_line_info_entry): Remove.
19706         (enum dw_line_info_opcode): New.
19707         (dw_line_info_entry): Use it.
19708         (dw_line_info_table, dw_line_info_table_p): New.
19709         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
19710         (line_info_table, line_info_label_num): Remove.
19711         (line_info_table_in_use): Remove.
19712         (separate_line_info_table): Remove.
19713         (separate_line_info_table_allocated): Remove.
19714         (separate_line_info_table_in_use): Remove.
19715         (LINE_INFO_TABLE_INCREMENT): Remove.
19716         (line_info_label_num): New.
19717         (cur_line_info_table): New.
19718         (text_section_line_info, cold_text_section_line_info): New.
19719         (separate_line_info): New.
19720         (SEPARATE_LINE_CODE_LABEL): Remove.
19721         (print_dwarf_line_table): Remove.
19722         (debug_dwarf): Don't dump it.
19723         (output_one_line_info_table): New.
19724         (output_line_info): Use it.
19725         (new_line_info_table): New.
19726         (set_cur_line_info_table): New.
19727         (dwarf2out_switch_text_section): Use it.
19728         (dwarf2out_begin_function): Likewise.
19729         (push_dw_line_info_entry): New.
19730         (dwarf2out_source_line): Rewrite for new line info tables.
19731         (dwarf2out_init): Remove dead initailizations.
19732
19733 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19734
19735         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
19736         various flags.
19737         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
19738         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
19739         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
19740         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
19741         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
19742         * opt-functions.awk (flag_init, switch_bit_fields): New.
19743         (switch_flags): Don't handle flags moved to bit-fields.  Don't
19744         generate CL_MISSING_OK or CL_SAVE.
19745         * optc-gen.awk: Update to generate bit-field output as well as
19746         flags field.
19747         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
19748         bit-field instead of CL_REJECT_DRIVER flag.
19749         * opts-common.c (generate_canonical_option,
19750         decode_cmdline_option): Use bit-fields instead of CL_* flags.
19751         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
19752         instead of CL_REJECT_NEGATIVE flag.
19753         * toplev.c (print_switch_values): Use cl_report bit-field instead
19754         of CL_REPORT flag.
19755
19756 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19757
19758         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
19759         a zero minimum index only if it is redundant.
19760
19761 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
19762
19763         PR rtl-optimization/48381
19764         * ira-color.c (assign_hard_reg): Use hard reg set intersection
19765         instead of ira_class_hard_reg_index for calculating conflicting
19766         hard registers.
19767
19768 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
19769
19770         * cprop.c: Clean up hash table building.
19771         (reg_avail_info): Remove.
19772         (oprs_available_p): Remove.
19773         (record_last_reg_set_info): Remove.
19774         (record_last_set_info): Remove.
19775         (reg_available_p): New function.
19776         (gcse_constant_p): Do not treat unfolded conditions as constants.
19777         (make_set_regs_unavailable): New function.
19778         (hash_scan_set): Simplify with new reg_available_p.
19779         (compute_hash_table_work): Traverse insns stream only once.
19780         Do not compute reg_avail_info. Traverse insns in reverse order.
19781         Record implicit sets after recording explicit sets from the block.
19782
19783 2011-03-31  Michael Matz  <matz@suse.de>
19784
19785         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
19786
19787 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
19788
19789         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
19790         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
19791         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19792         (h8300_mode_dependent_address_p): New function.
19793         (h8300_get_index): Make static.
19794
19795 2011-03-31  Jeff Law  <law@redhat.com>
19796
19797         * reload1.c (elimination_effects): Fix typo in recent change.
19798
19799         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
19800         typo potentially leading to null pointer dereference.
19801
19802         * caller-save.c (new_saved_hard_reg): Eliminate return value.
19803         (setup_save_areas): Corresponding changes to avoid useless
19804         assignments.
19805
19806         * jump.c (reversed_comparison_code_parts): Avoid successive return
19807         statements when REVERSE_CONDITION is defined.
19808
19809         * expr.c (expand_assignment): Avoid useless assignments.
19810         (expand_expr_real_1): Likewise.
19811         (expand_expr_real_2): Avoid useless statements.
19812
19813         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
19814
19815         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19816
19817         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
19818         statements.
19819
19820         * stmt.c (expand_expr_stmt): Avoid useless assignment.
19821
19822 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19823
19824         PR target/47109
19825         * doc/tm.texi.in (TARGET_VERSION): Remove.
19826         * doc/tm.texi: Regenerate.
19827         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
19828         * collect2.c (main): Don't use TARGET_VERSION.
19829         * mips-tdump.c (main): Don't use TARGET_VERSION.
19830         * mips-tfile.c (main): Don't use TARGET_VERSION.
19831         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
19832         * config/rs6000/vxworksae.h: Remove.
19833         * config/alpha/alpha.h (TARGET_VERSION): Remove.
19834         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
19835         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
19836         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
19837         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19838         * config/arm/arm.h (TARGET_VERSION): Remove.
19839         * config/arm/coff.h (TARGET_VERSION): Remove.
19840         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
19841         * config/arm/elf.h (TARGET_VERSION): Remove.
19842         * config/arm/freebsd.h (TARGET_VERSION): Remove.
19843         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
19844         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
19845         * config/arm/pe.h (TARGET_VERSION): Remove.
19846         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
19847         * config/arm/semi.h (TARGET_VERSION): Remove.
19848         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
19849         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
19850         * config/arm/vxworks.h (TARGET_VERSION): Remove.
19851         * config/avr/avr.h (TARGET_VERSION): Remove.
19852         * config/bfin/bfin.h (TARGET_VERSION): Remove.
19853         * config/fr30/fr30.h (TARGET_VERSION): Remove.
19854         * config/frv/frv.h (TARGET_VERSION): Remove.
19855         * config/h8300/h8300.h (TARGET_VERSION): Remove.
19856         * config/i386/cygwin.h (TARGET_VERSION): Remove.
19857         * config/i386/darwin.h (TARGET_VERSION): Remove.
19858         * config/i386/darwin64.h (TARGET_VERSION): Remove.
19859         * config/i386/djgpp.h (TARGET_VERSION): Remove.
19860         * config/i386/freebsd.h (TARGET_VERSION): Remove.
19861         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
19862         * config/i386/gnu.h (TARGET_VERSION): Remove.
19863         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
19864         * config/i386/i386elf.h (TARGET_VERSION): Remove.
19865         * config/i386/linux.h (TARGET_VERSION): Remove.
19866         * config/i386/linux64.h (TARGET_VERSION): Remove.
19867         * config/i386/lynx.h (TARGET_VERSION): Remove.
19868         * config/i386/mingw32.h (TARGET_VERSION): Remove.
19869         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
19870         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
19871         * config/i386/netware.h (TARGET_VERSION): Remove.
19872         * config/i386/nto.h (TARGET_VERSION): Remove.
19873         * config/i386/openbsd.h (TARGET_VERSION): Remove.
19874         * config/i386/vxworks.h (TARGET_VERSION): Remove.
19875         * config/ia64/elf.h (TARGET_VERSION): Remove.
19876         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
19877         * config/ia64/hpux.h (TARGET_VERSION): Remove.
19878         * config/ia64/linux.h (TARGET_VERSION): Remove.
19879         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19880         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
19881         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19882         * config/lm32/lm32.h (TARGET_VERSION): Remove.
19883         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
19884         * config/m32c/m32c.h (TARGET_VERSION): Remove.
19885         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
19886         * config/m32r/m32r.h (TARGET_VERSION): Remove.
19887         * config/m68k/linux.h (TARGET_VERSION): Remove.
19888         * config/m68k/m68k.h (TARGET_VERSION): Remove.
19889         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
19890         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
19891         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
19892         * config/mep/mep.h (TARGET_VERSION): Remove.
19893         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
19894         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19895         * config/mips/iris6.h (MACHINE_TYPE): Remove.
19896         * config/mips/linux.h (TARGET_VERSION): Remove.
19897         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
19898         * config/mips/vxworks.h (TARGET_VERSION): Remove.
19899         * config/mmix/mmix.h (TARGET_VERSION): Remove.
19900         * config/mn10300/linux.h (TARGET_VERSION): Remove.
19901         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
19902         * config/pa/pa.h (TARGET_VERSION): Remove.
19903         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
19904         * config/picochip/picochip.h (TARGET_VERSION): Remove.
19905         * config/rs6000/aix.h (TARGET_VERSION): Remove.
19906         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
19907         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
19908         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
19909         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
19910         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
19911         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
19912         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
19913         * config/rs6000/linux.h (TARGET_VERSION): Remove.
19914         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
19915         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
19916         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
19917         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
19918         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
19919         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
19920         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
19921         * config/s390/linux.h (TARGET_VERSION): Remove.
19922         * config/s390/s390.h (TARGET_VERSION): Remove.
19923         * config/s390/tpf.h (TARGET_VERSION): Remove.
19924         * config/score/score.h (TARGET_VERSION): Remove.
19925         * config/sh/linux.h (TARGET_VERSION): Remove.
19926         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
19927         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
19928         * config/sh/sh.h (TARGET_VERSION): Remove.
19929         * config/sh/sh64.h (TARGET_VERSION): Remove.
19930         * config/sh/superh.h (TARGET_VERSION): Remove.
19931         * config/sh/vxworks.h (TARGET_VERSION): Remove.
19932         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
19933         * config/sparc/linux.h (TARGET_VERSION): Remove.
19934         * config/sparc/linux64.h (TARGET_VERSION): Remove.
19935         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
19936         TARGET_NAME32, TARGET_NAME): Remove.
19937         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
19938         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
19939         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
19940         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
19941         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
19942         * config/spu/spu.h (TARGET_VERSION): Remove.
19943         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
19944         * config/v850/v850.h (TARGET_VERSION): Remove.
19945         * config/vax/linux.h (TARGET_VERSION): Remove.
19946         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
19947         * config/xtensa/elf.h (TARGET_VERSION): Remove.
19948         * config/xtensa/linux.h (TARGET_VERSION): Remove.
19949
19950 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19951
19952         PR target/48142
19953         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
19954         frame-related from frame-unrelated adjustments to the stack pointer.
19955
19956 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
19957
19958         * common.opt (fdebug-types-section): Move earlier.
19959         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
19960
19961 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
19962
19963         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
19964         var.
19965
19966 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
19967
19968         * tree.h (CASE_CHAIN): Define.
19969         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
19970         (gimple_redirect_edge_and_branch): Likewise.
19971
19972 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
19973
19974         PR middle-end/48367
19975         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
19976         calculation.
19977
19978 2011-03-30  Jeff Law  <law@redhat.com>
19979
19980         * PR bootstrap/48371
19981         * reload1.c (reload): Fix botch in last change.
19982
19983         * reload.h (struct reload): Fix typo introduced in last change.
19984
19985 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19986
19987         * config/arm/arm.opt (mhard-float, msoft-float): Mark
19988         Undocumented.  Remove help text.
19989         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
19990         -mhard-float.
19991
19992 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19993
19994         * doc/options.texi (NegativeAlias): Document.
19995         (Alias): Mention NegativeAlias.
19996         * opt-functions.awk: Handle NegativeAlias.
19997         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
19998         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
19999         * opts.h (CL_NEGATIVE_ALIAS): Define.
20000         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
20001         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
20002         OPT_mspe_.
20003         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
20004         Alias entries.
20005         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
20006         mno-spe and mno-isel instead of mspe=no and -misel=no.
20007
20008 2011-03-29  Mark Wielaard  <mjw@redhat.com>
20009
20010         * common.opt (fdebug-types-section): New flag.
20011         * doc/invoke.texi: Document new -fno-debug-types-section flag.
20012         * dwarf2out.c (use_debug_types): New define.
20013         (struct die_struct): Mark die_id with GTY desc use_debug_types.
20014         (print_die): Guard output of type unit signatures using
20015         use_debug_types.
20016         (build_abbrev_table): Replace assert of dwarf_version >= 4
20017         with assert on use_debug_types.
20018         (size_of_die): Likewise.
20019         (unmark_dies): Likewise.
20020         (value_format): Decide AT_ref_external form on use_debug_types.
20021         (output_die): Replace dwarf_version version check guard with
20022         use_debug_types where appropriate.
20023         (modified_type_die): Likewise.
20024         (gen_reference_type_die): Likewise.
20025         (dwarf2out_start_source_file): Likewise.
20026         (dwarf2out_end_source_file): Likewise.
20027         (prune_unused_types_walk_attribs): Likewise.
20028         (dwarf2out_finish): Likewise.
20029
20030 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
20031
20032         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
20033
20034 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20035
20036         PR rtl-optimization/48332
20037         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
20038         mode of input operand N and modeN to its actual mode.
20039
20040 2011-03-30  Jeff Law  <law@redhat.com>
20041
20042         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
20043         define accessor macro.
20044         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
20045         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
20046         (reg_equiv_init): Likewise.
20047         (reg_equivs_size): New variable.
20048         (reg_equiv_init_size): Remove.
20049         (allocate_initial_values): Move prototype to here from....
20050         * integrate.h (allocate_initial_values): Remove prototype.
20051         * integrate.c: Include reload.h.
20052         (allocate_initial_values): Corresponding changes.
20053         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
20054         (fix_reg_equiv_init, no_equiv): Corresponding changes.
20055         (update_equiv_regs): Corresponding changes.
20056         (ira): Corresponding changes.
20057         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
20058         (push_secondary_reload): Corresponding changes.
20059         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
20060         (make_memloc, find_reloads_address): Corresponding changes.
20061         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
20062         (find_reloads_address_1): Corresponding changes.
20063         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
20064         (refers_to_regno_for_reload_p): Corresponding changes.
20065         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
20066         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
20067         * reload1.c: Include ggc.h.
20068         (grow_reg_equivs): New function.
20069         (replace_pseudos_in, reload): Corresponding changes.
20070         (calculate_needs_all_insns, alter_regs): Corresponding changes.
20071         (eliminate_regs_1, elimination_effects): Corresponding changes.
20072         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
20073         (delete_output_reload): Likewise.
20074         * caller-save.c (mark_referenced_regs): Corresponding changes.
20075         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
20076         * frv/predicates.md (frv_load_operand): Corresponding changes.
20077         * microblaze/microblaze.c (double_memory_operand): Corresponding
20078         changes.
20079         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
20080         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
20081         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
20082         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
20083         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
20084         changes.
20085         * pa/pa.c (emit_move_sequence): Corresponding changes.
20086         * vax/vax.c (nonindexed_address_p): Corresponding changes.
20087
20088 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20089
20090         PR target/47551
20091         * config/arm/arm.c (coproc_secondary_reload_class): Handle
20092         structure modes.  Don't check neon_vector_mem_operand for
20093         vector or structure modes.
20094
20095 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20096             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20097
20098         PR target/43590
20099         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
20100         operand 1 and reshuffle the operands to match.
20101         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
20102
20103 2011-03-30  Christian Schüler  <cschueler@gmx.de>
20104
20105         PR driver/48208
20106         * config/c.opt (F): Added 'Driver' to -F option.
20107
20108         PR driver/48260
20109         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
20110           handler function.
20111         * config/darwin.opt: Added '-arch' option.
20112
20113 2011-03-30  Nick Clifton  <nickc@redhat.com>
20114
20115         * config/rx/rx.md: Add peepholes and patterns to combine
20116         extending loads and simple arithmetic instructions.
20117         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
20118         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
20119         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
20120         modes to use pre-decrement and post-increment addressing.
20121         (rx_is_restricted_memory_address): Add range checking of REG+INT
20122         addresses.
20123         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
20124         (rx_memory_move_cost): Adjust cost of stores.
20125         (rx_adjust_insn_length): New function.
20126
20127 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
20128
20129         PR c/48305
20130         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20131         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
20132         matching arg00/arg01 types.
20133
20134 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
20135
20136         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
20137         last_location to UNKNOWN_LOCATION.
20138
20139 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
20140
20141         PR target/48349
20142         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
20143         FLOAT_SSE_REGS.
20144
20145 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20146             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20147
20148         PR bootstrap/48337
20149         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
20150         Init(PROCESSOR_V7).
20151         (sparc_cpu): Likewise.
20152         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
20153         PROCESSOR_V7.
20154
20155 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20156
20157         PR target/48336
20158         PR middle-end/48342
20159         PR rtl-optimization/48345
20160         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
20161         hard regs for given mode from profitable regs when doing secondary
20162         allocation.
20163
20164 2011-03-29  Jeff Law  <law@redhat.com>
20165
20166         PR bootstrap/48327
20167         * tree-ssa-threadupdate.c (struct redirection_data): Remove
20168         do_not_duplicate field.
20169         (lookup_redirection_data): Corresponding changes.
20170         (create_duplicates): Always create a template block.
20171         (redirect_edges): Remove code which reused the original block
20172         when it was going to become unreachable code.
20173         (thread_block): Don't set do_not_duplicate field.
20174
20175 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
20176
20177         * lto-opts.c (register_user_option_p, lto_register_user_option):
20178         Make type argument unsigned.
20179         * lto-streamer.h (lto_register_user_option): Make type argument
20180         unsigned.
20181         * opth-gen.awk: Make CL_* macros unsigned.
20182         * opts-common.c (find_opt): Make lang_mask argument unsigned.
20183         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
20184         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
20185         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
20186         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
20187         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
20188         (find_opt): Make lang_mask argument unsigned.
20189
20190 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20191
20192         PR rtl-optimization/48331
20193         PR rtl-optimization/48334
20194         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
20195         for any used algorithm.
20196
20197 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20198
20199         * ira-conflicts.c (build_object_conflicts): Add unused attribute
20200         to parent_max.
20201
20202 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
20203
20204         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
20205         (alpha_option_override): Don't set alpha_sr_alias_set.
20206         (emit_frame_store_1): Use gen_frame_mem rather than calling
20207         set_mem_alias_set.
20208         (alpha_expand_epilogue): Ditto.
20209
20210 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
20211
20212         PR tree-optimization/48290
20213         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
20214         vectorization, check that relevant phis in the basic block after
20215         the inner loop are really inner loop's exit phis.
20216
20217 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
20218
20219         PR debug/48190
20220         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
20221         (cached_dw_loc_list_def): New structure.
20222         (cached_dw_loc_list): New typedef.
20223         (cached_dw_loc_list_table): New variable.
20224         (cached_dw_loc_list_table_hash): New function.
20225         (cached_dw_loc_list_table_eq): Likewise.
20226         (add_location_or_const_value_attribute): Take a bool cache_p.
20227         Cache the list when the parameter is true.
20228         (gen_formal_parameter_die): Update caller.
20229         (gen_variable_die): Likewise.
20230         (dwarf2out_finish): Likewise.
20231         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
20232         while generating debug info for the decl.
20233         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
20234         (dwarf2out_init): Initialize cached_dw_loc_list_table.
20235         (resolve_addr): Cache the result of resolving a chain of
20236         location lists.
20237
20238 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
20239
20240         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
20241         conflict object hard regset nodes have intersecting hard reg sets.
20242
20243         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
20244         after regstat_init_n_sets_and_refs.
20245
20246         * ira.c: Add more comments at the top.
20247         (setup_stack_reg_pressure_class, setup_pressure_classes):
20248         Add comments how we compute the register pressure classes.
20249         (setup_allocno_and_important_classes): Add more comments.
20250         (setup_class_translate_array, reorder_important_classes)
20251         (setup_reg_class_relations): Add comments.
20252
20253         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
20254         start of the file.
20255
20256         * ira-color.c: Add 2011 to the Copyright line.
20257         (assign_hard_reg):  Add more comments.
20258         (improve_allocation): Ditto.
20259
20260         * ira-costs.c: Add 2011 to the Copyright line.
20261         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
20262         comments.
20263         (setup_regno_cost_classes_by_mode): Ditto.
20264
20265         Initial patches from ira-improv branch:
20266
20267         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20268
20269         * ira-build.c (ira_create_object): Remove initialization of
20270         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
20271         (ira_create_allocno): Remove initialization of
20272         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
20273         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
20274         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20275         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
20276         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
20277         Initialize ALLOCNO_ADD_DATA.
20278         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
20279         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
20280         ALLOCNO_REG.
20281         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
20282         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
20283
20284         * ira.c (ira_reallocate): Remove.
20285         (setup_pressure_classes): Call
20286         ira_init_register_move_cost_if_necessary.  Use
20287         ira_register_move_cost instead of ira_get_register_move_cost.
20288         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
20289         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
20290
20291         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
20292         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20293         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
20294         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
20295         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
20296         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
20297         Fix formatting.
20298         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
20299         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20300         (struct allocno_color_data): New.
20301         (allocno_color_data_t): New typedef.
20302         (allocno_color_data): New definition.
20303         (ALLOCNO_COLOR_DATA): New macro.
20304         (struct object_color_data): New.
20305         (object_color_data_t): New typedef.
20306         (object_color_data): New definition.
20307         (OBJECT_COLOR_DATA): New macro.
20308         (update_copy_costs, calculate_allocno_spill_cost): Call
20309         ira_init_register_move_cost_if_necessary.  Use
20310         ira_register_move_cost instead of ira_get_register_move_cost.
20311         (move_spill_restore, update_curr_costs): Ditto.
20312         (allocno_spill_priority): Make it inline.
20313         (color_pass): Allocate and free allocno_color_dat and object_color_data.
20314         (struct coalesce_data, coalesce_data_t): New.
20315         (allocno_coalesce_data): New definition.
20316         (ALLOCNO_COALESCE_DATA): New macro.
20317         (merge_allocnos, coalesced_allocno_conflict_p): Use
20318         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
20319         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
20320         (coalesce_allocnos): Ditto.
20321         (setup_coalesced_allocno_costs_and_nums): Ditto.
20322         (collect_spilled_coalesced_allocnos): Ditto.
20323         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
20324         (setup_slot_coalesced_allocno_live_ranges): Ditto.
20325         (coalesce_spill_slots): Ditto.
20326         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
20327         free allocno_coalesce_data.
20328
20329         * ira-conflicts.c: Fix formatting.
20330         (process_regs_for_copy): Call
20331         ira_init_register_move_cost_if_necessary.  Use
20332         ira_register_move_cost instead of ira_get_register_move_cost.
20333         (build_object_conflicts): Optimize.
20334
20335         * ira-costs.c (record_reg_classes): Optimize.  Call
20336         ira_init_register_move_cost_if_necessary.  Use
20337         ira_register_move_cost, ira_may_move_in_cost, and
20338         ira_may_move_out_cost instead of ira_get_register_move_cost and
20339         ira_get_may_move_cost.
20340         (record_address_regs): Ditto.
20341         (scan_one_insn): Optimize.
20342         (find_costs_and_classes): Optimize.
20343         (process_bb_node_for_hard_reg_moves): Call
20344         ira_init_register_move_cost_if_necessary.  Use
20345         ira_register_move_cost instead of ira_get_register_move_cost.
20346
20347         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
20348         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
20349         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
20350         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
20351         definitions.
20352         (ira_initiate_emit_data, ira_finish_emit_data)
20353         (create_new_allocno): New functions.
20354         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
20355         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
20356         Use ira_register_move_cost instead of ira_get_register_move_cost.
20357
20358         * ira-int.h: Fix some comments.
20359         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
20360         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20361         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
20362         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
20363         add_data.
20364         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
20365         bitfield after mode.  Make hard_regno a short int.  Make
20366         hard_regno short.  Remove first_coalesced_allocno and
20367         next_coalesced_allocno.  Move mem_optimized_dest_p,
20368         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
20369         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
20370         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
20371         temp, colorable_p.  Add new member add_data.
20372         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
20373         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
20374         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
20375         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
20376         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
20377         (ALLOCNO_ADD_DATA): New macro.
20378         (ira_emit_data_t): New typedef.
20379         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
20380         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
20381         from struct ira_allocno.
20382         (ALLOCNO_EMIT_DATA): New macro.
20383         (ira_allocno_emit_data, allocno_emit_reg): New.
20384         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
20385         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
20386         (OBJECT_ADD_DATA): New macro.
20387         (ira_reallocate): Remove.
20388         (ira_initiate_emit_data, ira_finish_emit_data): New.
20389         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
20390         (ira_init_register_move_cost_if_necessary): New.
20391         (ira_object_conflict_iter_next): Merge into
20392         ira_object_conflict_iter_cond.
20393         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
20394
20395         * ira-live.c (process_single_reg_class_operands): Call
20396         ira_init_register_move_cost_if_necessary.  Use
20397         ira_register_move_cost instead of ira_get_register_move_cost.
20398
20399         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20400
20401         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
20402
20403         * ira-costs.c: Fix formatting.
20404         (cost_classes, cost_classes_num): Remove.
20405         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
20406         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
20407         (cost_classes_del, cost_classes_htab): New.
20408         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
20409         (initiate_regno_cost_classes, setup_cost_classes): New.
20410         (setup_regno_cost_classes_by_aclass): New.
20411         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
20412         (record_reg_classes): Use regno_cost_classes instead of
20413         cost_classes.  Move checking opposite operand up.
20414         (record_address_regs): Use regno_cost_classes
20415         instead of cost_classes.
20416         (scan_one_insn): Ditto.  Use always general register.
20417         (print_allocno_costs): Use regno_cost_classes instead of
20418         cost_classes.
20419         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
20420         (find_costs_and_classes): Set up cost classes for each registers.
20421         Use also their mode for this.  Use regno_cost_classes instead of
20422         cost_classes.
20423         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
20424         cost_classes.
20425         (free_ira_costs, ira_init_costs): Don't use cost_classes.
20426         (ira_costs, ira_set_pseudo_classes): Call
20427         initiate_regno_cost_classes and finish_regno_cost_classes.
20428
20429         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
20430
20431         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
20432
20433         * target.def (ira_cover_classes): Remove.
20434
20435         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
20436
20437         * doc/tm.texi.in: Ditto.
20438
20439         * ira-conflicts.c: Remove mentioning cover classes from the file.
20440         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
20441         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
20442
20443         * targhooks.c (default_ira_cover_classes): Remove.
20444
20445         * targhooks.h (default_ira_cover_classes): Ditto.
20446
20447         * haifa-sched.c: Remove mentioning cover classes from the file.
20448         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20449         ira_pressure_classes and ira_pressure_classes_num instead of
20450         ira_reg_class_cover_size and ira_reg_class_cover.  Use
20451         sched_regno_pressure_class instead of sched_regno_cover_class.
20452         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
20453         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20454
20455         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
20456         classes from the file.
20457         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
20458         (struct object_hard_regs, struct object_hard_regs_node): New.
20459         (struct ira_object): New members profitable_hard_regs,
20460         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
20461         (struct ira_allocno): Rename cover_class to aclass.  Rename
20462         cover_class_cost and updated_cover_class_cost to class_cost and
20463         updated_class_cost.  Remove splay_removed_p and
20464         left_conflict_size.  Add new members colorable_p.
20465         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
20466         (ALLOCNO_COLORABLE_P): New macro.
20467         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
20468         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
20469         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
20470         (OBJECT_...): Rename parameter C to O.
20471         (OBJECT_PROFITABLE_HARD_REGS): New macro.
20472         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
20473         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
20474         (struct target_ira_int): New members x_ira_max_memory_move_cost,
20475         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
20476         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
20477         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
20478         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
20479         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
20480         x_ira_reg_class_subunion.
20481         (ira_max_memory_move_cost, ira_max_register_move_cost)
20482         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
20483         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
20484         (ira_important_class_nums, ira_reg_class_superunion): New macros.
20485         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
20486         (ira_reg_class_union): Rename to ira_reg_class_subunion.
20487         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20488         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20489         (ira_tune_allocno_costs_and_cover_classes): Rename to
20490         ira_tune_allocno_costs.
20491         (ira_debug_hard_regs_forest): New.
20492         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
20493         (ira_object_conflict_iter_next): Fix comments.
20494         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
20495         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
20496         cover_class to aclass.
20497         (ira_allocate_and_accumulate_costs): Ditto.
20498         (ira_allocate_and_set_or_copy_costs): Ditto.
20499
20500         * opts.c (decode_options): Remove ira_cover_class check.
20501
20502         * ira-color.c: Remove mentioning cover classes from the file.  Use
20503         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
20504         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
20505         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20506         (splay-tree.h): Remove include.
20507         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
20508         before copy_freq_compare_func.
20509         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
20510         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
20511         New definitions.
20512         (hard_regs_roots, hard_regs_node_vec): Ditto.
20513         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
20514         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
20515         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
20516         (create_new_object_hard_regs_node): Ditto.
20517         (add_new_object_hard_regs_node_to_forest): Ditto.
20518         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
20519         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
20520         Ditto.
20521         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
20522         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
20523         (remove_unused_object_hard_regs_nodes): Ditto.
20524         (enumerate_object_hard_regs_nodes): Ditto.
20525         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
20526         (object_hard_regs_subnode_t): Ditto.
20527         (struct object_hard_regs_subnode): Ditto.
20528         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
20529         (setup_object_hard_regs_subnode_index): Ditto.
20530         (get_object_hard_regs_subnodes_num): Ditto.
20531         (form_object_hard_regs_nodes_forest): Ditto.
20532         (finish_object_hard_regs_nodes_tree): Ditto.
20533         (finish_object_hard_regs_nodes_forest): Ditto.
20534         (allocnos_have_intersected_live_ranges_p): Rename to
20535         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20536         (pseudos_have_intersected_live_ranges_p): Rename to
20537         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20538         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
20539         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
20540         (update_copy_costs): Remove assert.  Skip cost update if the hard
20541         reg does not belong the class.
20542         (assign_hard_reg): Process only profitable hard regs.
20543         (uncolorable_allocnos_num): Make it scalar.
20544         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20545         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
20546         and ira_reg_class_max_nregs.
20547         (bucket_allocno_compare_func): Check frequency first.
20548         (sort_bucket): Add compare function as a parameter.
20549         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
20550         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
20551         (push_allocno_to_stack): Rewrite for checking new allocno
20552         colorability.
20553         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
20554         (push_only_colorable): Pass new parameter to sort_bucket.
20555         (push_allocno_to_spill): Remove.
20556         (allocno_spill_priority_compare): Make it inline and rewrite.
20557         (splay_tree_allocate, splay_tree_free): Remove.
20558         (allocno_spill_sort_compare): New function.
20559         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
20560         build and use splay tree.  Choose first allocno in uncolorable
20561         allocno bucket to spill.  Remove setting spill cost.
20562         (all_conflicting_hard_regs): Remove.
20563         (setup_allocno_available_regs_num): Check only profitable hard
20564         regs.  Print info about hard regs nodes.
20565         (setup_allocno_left_conflicts_size): Remove.
20566         (put_allocno_into_bucket): Don't call
20567         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
20568         (improve_allocation): New.
20569         (color_allocnos): Call setup_profitable_hard_regs,
20570         form_object_hard_regs_nodes_forest, improve_allocation,
20571         finish_object_hard_regs_nodes_forest.  Setup spill cost.
20572         (print_loop_title): Use pressure classes.
20573         (color_allocnso): Ditto.
20574         (do_coloring): Remove allocation and freeing splay_tree_node_pool
20575         and allocnos_for_spilling.
20576         (ira_sort_regnos_for_alter_reg): Don't setup members
20577         {first,next}_coalesced_allocno.
20578         (color): Remove allocating and freeing removed_splay_allocno_vec.
20579         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
20580         prohibited_class_mode_regs.
20581
20582         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
20583         formatting.
20584         (update_allocno_pressure_excess_length): Use pressure classes.
20585         (inc_register_pressure, dec_register_pressure): Check for pressure
20586         class.
20587         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
20588         pressure class.  Use ira_reg_class_nregs instead of
20589         ira_reg_class_max_nregs.
20590         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
20591         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
20592         (single_reg_class): Use ira_reg_class_nregs instead of
20593         ira_reg_class_max_nregs.
20594         (process_bb_node_lives): Use pressure classes.
20595
20596         * ira-emit.c: Remove mentioning cover classes from the file.  Use
20597         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20598         (change_loop): Use pressure classes.
20599         (modify_move_list): Call ira_set_allocno_class instead of
20600         ira_set_allocno_cover_class.
20601
20602         * ira-build.c: Remove mentioning cover classes from the file.  Use
20603         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
20604         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
20605         ALLOCNO_UPDATED_CLASS_COST instead of
20606         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20607         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
20608         (ira_create_allocno): Remove initialization of
20609         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
20610         ALLOCNO_COLORABLE_P.
20611         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20612         Update conflict regs for the objects.
20613         (create_cap_allocno): Remove assert.  Don't propagate
20614         ALLOCNO_AVAILABLE_REGS_NUM.
20615         (ira_free_allocno_costs): New function.
20616         (finish_allocno): Change a part of code into call of
20617         ira_free_allocno_costs.
20618         (low_pressure_loop_node_p): Use pressure classes.
20619         (object_range_compare_func): Don't compare classes.
20620         (setup_min_max_conflict_allocno_ids): Ditto.
20621
20622         * loop-invariant.c: Remove mentioning cover classes from the file.
20623         Use ira_pressure_classes and ira_pressure_classes_num instead of
20624         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
20625         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
20626         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20627         Use reg_allocno_class instead of reg_cover_class.
20628         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
20629         STACK_REG_COVER_CLASS.
20630         (get_regno_cover_class): Rename to get_regno_pressure_class.
20631         (move_loop_invariants): Initialize and finalize regstat.
20632
20633         * ira.c: Remove mentioning cover classes from the file.  Add
20634         comments about coloring without cover classes.  Use ALLOCNO_CLASS
20635         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20636         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
20637         setup_class_subset_and_memory_move_costs.
20638         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
20639         (setup_cover_and_important_classes): Rename to
20640         setup_allocno_and_important_classes.
20641         (setup_class_translate_array): New.
20642         (setup_class_translate): Call it for allocno and pressure classes.
20643         (cover_class_order): Rename to allocno_class_order.
20644         (comp_reg_classes_func): Use ira_allocno_class_translate instead
20645         of ira_class_translate.
20646         (reorder_important_classes): Set up ira_important_class_nums.
20647         (setup_reg_class_relations): Set up ira_reg_class_superunion.
20648         (print_class_cover): Rename to print_classes.  Add parameter.
20649         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20650         Print pressure classes too.
20651         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
20652         setup_reg_subclasses.
20653         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20654         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20655         (setup_prohibited_class_mode_regs): Use
20656         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
20657         (clarify_prohibited_class_mode_regs): New function.
20658         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
20659         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
20660         (ira_init_once): Initialize them.
20661         (free_register_move_costs): Process them.
20662         (ira_init): Move calls of find_reg_classes and
20663         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
20664         Call clarify_prohibited_class_mode_regs.
20665         (ira_no_alloc_reg): Remove.
20666         (too_high_register_pressure_p): Use pressure classes.
20667
20668         * sched-deps.c: Remove mentioning cover classes from the file.
20669         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20670         ira_pressure_classes and ira_pressure_classes_num instead of
20671         ira_reg_class_cover_size and ira_reg_class_cover.
20672         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
20673         sched_regno_pressure_class instead of sched_regno_cover_class.
20674         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
20675         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20676
20677         * ira.h: Add 2010 to Copyright.
20678         (ira_no_alloc_reg): Remove external.
20679         (struct target_ira): Rename x_ira_hard_regno_cover_class,
20680         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
20681         x_ira_class_translate to x_ira_hard_regno_allocno_class,
20682         x_ira_allocno_classes_num, x_ira_allocno_classes, and
20683         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
20684         x_ira_pressure_classes, x_ira_pressure_class_translate, and
20685         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
20686         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
20687         x_ira_no_alloc_regs.
20688         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20689         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
20690         ira_allocno_classes_num and ira_allocno_classes.
20691         (ira_class_translate): Rename to ira_allocno_class_translate.
20692         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
20693         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
20694         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20695         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
20696         (ira_no_alloc_regs): New.
20697
20698         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
20699         classes from the file.  Use ALLOCNO_CLASS instead of
20700         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
20701         ALLOCNO_COVER_CLASS_COST.
20702         (regno_cover_class): Rename to regno_aclass.
20703         (record_reg_classes): Use ira_reg_class_subunion instead of
20704         ira_reg_class_union.
20705         (record_address_regs): Check overflow.
20706         (scan_one_insn): Ditto.
20707         (print_allocno_costs): Print total mem cost fore regional allocation.
20708         (print_pseudo_costs): Use REG_N_REFS.
20709         (find_costs_and_classes): Use classes intersected with them on the
20710         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
20711         ira_reg_class_union.  Use ira_allocno_class_translate and
20712         regno_aclass instead of ira_class_translate and regno_cover_class.
20713         Modify code for finding regno_aclass.  Setup preferred classes for
20714         the next pass.
20715         (setup_allocno_cover_class_and_costs): Rename to
20716         setup_allocno_class_and_costs.  Use regno_aclass instead of
20717         regno_cover_class.  Use ira_set_allocno_class instead of
20718         ira_set_allocno_cover_class.
20719         (init_costs, finish_costs): Use regno_aclass instead of
20720         regno_cover_class.
20721         (ira_costs): Use setup_allocno_class_and_costs instead of
20722         setup_allocno_cover_class_and_costs.
20723         (ira_tune_allocno_costs_and_cover_classes): Rename to
20724         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
20725         by processing objects.  Use ira_reg_class_max_nregs instead of
20726         ira_reg_class_nregs.
20727
20728         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
20729
20730         * sched-int.h: Remove mentioning cover classes from the file.
20731         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
20732
20733         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
20734         classes from the file.
20735         (struct reg_pref): Rename coverclass into allocnoclass.
20736         (reg_cover_class): Rename to reg_allocno_class.
20737
20738         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
20739
20740         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
20741
20742         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
20743
20744         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
20745
20746         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
20747
20748         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
20749
20750         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
20751
20752         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
20753
20754         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
20755
20756         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
20757
20758         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
20759         (i386_ira_cover_classes): Ditto.
20760
20761         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
20762
20763         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
20764
20765         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
20766
20767         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
20768
20769         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
20770
20771         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
20772
20773         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
20774         (mips_ira_cover_classes): Ditto.
20775
20776         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
20777
20778         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
20779
20780         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
20781
20782         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
20783
20784         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
20785
20786         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
20787         (IRA_COVER_CLASSES_VSX): Ditto.
20788
20789         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
20790         (rs6000_ira_cover_classes): Ditto.
20791
20792         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
20793
20794         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
20795
20796         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
20797
20798         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
20799
20800         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
20801
20802         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
20803
20804         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
20805
20806         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
20807
20808         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
20809
20810         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
20811
20812 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
20813
20814         PR debug/48253
20815         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
20816         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
20817         dw_fde_unlikely_section_end_label, cold_in_std_section,
20818         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
20819         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
20820         fields.
20821         (output_fde): Use dw_fde_second_{begin,end} if second is
20822         true, otherwise dw_fde_{begin,end}.
20823         (output_call_frame_info): Test dw_fde_second_begin != NULL
20824         instead of dw_fde_switched_sections.
20825         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
20826         fields, initialize new fields.  Initialize in_std_section
20827         unconditionally from the first partition.
20828         (dwarf2out_end_epilogue): Don't override dw_fde_end when
20829         dw_fde_second_begin is non-NULL.
20830         (dwarf2out_switch_text_section): Stop initializing removed
20831         dw_fde_struct fields, initialize new fields, initialize
20832         also dw_fde_end here.  Set dw_fde_switch_cfi even when
20833         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
20834         (struct var_loc_list_def): Add last_before_switch field.
20835         (arange_table, arange_table_allocated, arange_table_in_use,
20836         ARANGE_TABLE_INCREMENT, add_arange): Removed.
20837         (size_of_aranges): Count !in_std_section and !second_in_std_section
20838         hunks in fdes, instead of looking at arange_table_in_use.
20839         (output_aranges): Add aranges_length argument, don't call
20840         size_of_aranges here.  Instead of using aranges_table*
20841         emit ranges for fdes when !in_std_section resp.
20842         !second_in_std_section.
20843         (dw_loc_list): Break ranges crossing section switch.
20844         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
20845         use dw_fde_second_end instead of dw_fde_end as end of last range.
20846         (gen_subprogram_die): Don't call add_arange.  Use
20847         dw_fde_{begin,end} for first partition and if switched
20848         section dw_fde_second_{begin,end} for the second.
20849         (var_location_switch_text_section_1,
20850         var_location_switch_text_section): New functions.
20851         (dwarf2out_begin_function): Initialize cold_text_section even
20852         when function_section () isn't text_section.
20853         (prune_unused_types): Don't walk arange_table.
20854         (dwarf2out_finish): Don't needlessly test
20855         flag_reorder_blocks_and_partition when testing cold_text_section_used.
20856         If info_section_emitted, call size_of_aranges and if it indicates
20857         non-empty .debug_aranges, call output_aranges with the computed
20858         size.  Stop using removed dw_fde_struct fields, use
20859         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
20860         for second.
20861
20862         PR debug/48203
20863         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
20864         create ENTRY_VALUE if incoming or address of incoming's MEM
20865         is a hard REG.
20866         * dwarf2out.c (mem_loc_descriptor): Don't emit
20867         DW_OP_GNU_entry_value of DW_OP_fbreg.
20868         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
20869         on ENTRY_VALUE is able to find the canonical parameter VALUE.
20870         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
20871         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
20872         ENTRY_VALUE_EXPs.
20873         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
20874         is a REG_P or MEM_P with REG_P address, compute hash directly
20875         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
20876         (preserve_only_constants): Don't clear VALUES forwaring
20877         ENTRY_VALUE to some other VALUE.
20878
20879 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
20880
20881         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
20882         instead of GEN_INT.
20883
20884 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20885
20886         * cfgexpand.c (expand_gimple_cond): Always set the source location and
20887         block before expanding the statement.
20888         (expand_gimple_stmt_1): Likewise.  Set them here...
20889         (expand_gimple_stmt): ...and not here.  Tidy.
20890         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
20891         unknown.
20892
20893 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20894
20895         * Makefile.in: New rule for cprop.o.
20896         * gcse.c: Move constant/copy propagation to cprop.c.
20897         (compute_local_properties): Only handle expression tables.
20898         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
20899         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
20900         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
20901         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
20902         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
20903         compute_cprop_data, find_used_regs, try_replace_reg,
20904         find_avail_set, cprop_jump, constprop_register, cprop_insn,
20905         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
20906         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
20907         find_bypass_set, reg_killed_on_edge, bypass_block,
20908         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
20909         execute_rtl_cprop, pass_rtl_cprop): Move to...
20910         * cprop.c: ...here.  New file, constant/copy propagation for RTL
20911         moved from gcse.c to here with minor cleanups in duplicated code.
20912
20913 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20914
20915         * config/i386/i386.c (flag_opts): Fix a typo in
20916         -mavx256-split-unaligned-store.
20917
20918 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20919
20920         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
20921         LIBCALL_VALUE): Remove macros.
20922         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20923         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20924         (h8300_function_value, h8300_libcall_value,
20925         h8300_function_value_regno_p): New functions.
20926
20927 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20928
20929         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
20930
20931 2011-03-28  Jeff Law  <law@redhat.com>
20932
20933         * tree-ssa-threadupdate.c (redirect_edges): Call
20934         create_edge_and_update_destination_phis as needed.
20935         (create_edge_and_update_destination_phis): Accept new BB argument.
20936         All callers updated.
20937         (thread_block): Do not update the profile when threading around
20938         intermediate blocks.
20939         (thread_single_edge): Likewise.
20940         (determine_bb_domination_status): If BB is not a successor of the
20941         loop header, return NONDOMINATING.
20942         (register_jump_thread): Note when we register a jump thread around
20943         an intermediate block.
20944         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
20945         (thread_across_edge): Use it.
20946
20947 2011-03-28  Tristan Gingold  <gingold@adacore.com>
20948
20949         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
20950         when for_return is 2.
20951
20952 2011-03-28  Jeff Law  <law@redhat.com>
20953
20954         * var-tracking.c (canonicalize_values_mark): Delete unused
20955         lhs assignment.
20956         (canonicalize_values_star, set_variable_part): Likewise.
20957         (clobber_variable_part, delete_variable_part): Likewise.
20958
20959 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20960
20961         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
20962
20963 2011-03-28  Martin Jambor  <mjambor@suse.cz>
20964
20965         * tree-inline.c (expand_call_inline): Do not check that destination
20966         node is analyzed.
20967         (optimize_inline_calls): Assert that destination node is analyzed.
20968         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
20969         not call tree_lowering_passes.
20970         * cgraph.h (cgraph_analyze_function): Declare.
20971         * cgraphunit.c (cgraph_analyze_function): Make public.
20972
20973 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
20974
20975         * config/sparc/sparc-opts.h: New.
20976         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
20977         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
20978         (sparc_option_override): Store processor_type enumeration rather
20979         than string in cpu_default.  Remove name and enumeration from
20980         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
20981         without using sparc_select.  Use target_flags_explicit instead of
20982         fpu_option_set.
20983         * config/sparc/sparc.h (enum processor_type): Move to
20984         sparc-opts.h.
20985         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
20986         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
20987         HeaderInclude entry.
20988         (mcpu=, mtune=): Use Var and Enum.
20989         (sparc_processor_type): New Enum and EnumValue entries.
20990
20991 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20992             Iain Sandoe  <iains@gcc.gnu.org>
20993
20994         PR target/48245
20995         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
20996
20997 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20998
20999         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
21000         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
21001         Insert new statements at it in lieu of STMT.
21002         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
21003         * tree-vect-stmts.c (vectorizable_store): Likewise.
21004         (vectorizable_load): Likewise.
21005
21006 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
21007
21008         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
21009         (divtf3): Ditto.
21010         (multf3): Ditto.
21011         (subtf3): Ditto.
21012
21013 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21014
21015         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
21016         unaligned 256bit load/store.
21017         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
21018         (*avx_movdqu<avxmodesuffix>): Likewise.
21019
21020 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21021
21022         PR target/48288
21023         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
21024         * config/pa/pa.md (iordi3): Use new predicate in expander.
21025         (iorsi3): Likewise.
21026
21027 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
21028
21029         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
21030         FUNCTION_VALUE_REGNO_P): Remove macros.
21031         * config/mips/mips-protos.h (mips_function_value): Remove.
21032         * config/mips/mips.c (mips_function_value): Rename to...
21033         (mips_function_value_1): ... this. Make static.  Handle receiving
21034         the function type in 'fn_decl_or_type' argument.
21035         (mips_function_value, mips_libcall_value,
21036         mips_function_value_regno_p): New function.
21037         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21038         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21039
21040 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21041
21042         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
21043         and -mavx256-split-unaligned-store.
21044         (ix86_option_override_internal): Split 32-byte AVX unaligned
21045         load/store by default.
21046         (ix86_avx256_split_vector_move_misalign): New.
21047         (ix86_expand_vector_move_misalign): Use it.
21048
21049         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
21050         -mavx256-split-unaligned-store.
21051
21052         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
21053         256bit load/store.  Generate unaligned store on misaligned memory
21054         operand.
21055         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
21056         256bit load/store.
21057         (*avx_movdqu<avxmodesuffix>): Likewise.
21058
21059         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
21060         -mavx256-split-unaligned-store.
21061
21062 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21063
21064         PR target/38598
21065         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
21066         Update commentary.
21067
21068 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21069
21070         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
21071         opno arguments with an expand_operand.  Use create_input_operand.
21072         (mips_prepare_builtin_target): Delete.
21073         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
21074         functions.
21075         (mips_expand_builtin_direct): Use create_output_operand and
21076         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
21077         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
21078         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
21079
21080 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
21081
21082         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
21083         function.
21084         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
21085
21086 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21087
21088         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
21089         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
21090         basic blocks and call commit_edge_insertions directly.
21091         (fixup_abnormal_edges): Move from here to...
21092         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
21093         on the edges and return whether some have actually been inserted.
21094         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
21095         compensation code.
21096
21097 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
21098
21099         PR rtl-optimization/48144
21100         * sel-sched-ir.c (merge_history_vect): Factor out from ...
21101         (merge_expr_data): ... here.
21102         (av_set_intersect): Rename to av_set_code_motion_filter.
21103         Update all callers.  Call merge_history_vect when an expression
21104         is found in both sets.
21105         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
21106
21107 2011-03-26  Alan Modra  <amodra@gmail.com>
21108
21109         * config/rs6000/predicates.md (word_offset_memref_op): Handle
21110         cmodel medium addresses.
21111         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
21112         64-bit gpr loads and stores.
21113         (rs6000_secondary_reload_ppc64): New function.
21114         * config/rs6000/rs6000-protos.h: Declare it.
21115         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
21116
21117 2011-03-26  Alan Modra  <amodra@gmail.com>
21118
21119         PR target/47487
21120         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
21121         GNU Go in traceback table.
21122
21123 2011-03-25  Richard Henderson  <rth@redhat.com>
21124
21125         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
21126         if there are exactly 6 operands.
21127         (set_storage_via_setmem): Similarly.
21128
21129 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21130
21131         * collect2.c (write_c_file_stat): Handle backslash
21132         as right-hand directory separator.
21133         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
21134         checking just for slash.
21135         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
21136         instead of checking for trailing slash.
21137         * gcc.c (record_temp_file): Use filename_cmp instead
21138         of strcmp.
21139         (do_spec_1): Likewise.
21140         (replace_outfile_spec_function): Likewise.
21141         (is_directory): Use filename_ncmp instead of strncmp.
21142         (print_multilib_info): Likewise.
21143         * gcov.c (find_source): Use filename_cmp instead
21144         instead of strcmp.
21145         (make_gcov_file_name): Fix order of slash/backslash
21146         checks.
21147         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
21148         (add_standard_paths): Likewise.
21149         * mips-tfile.c (saber_stop): Handle backslash.
21150         * prefix.c (update_path): Use filename_ncmp instead of
21151         strncmp.
21152         * profile.c (output_location): Use filename_cmp instead
21153         of strcmp.
21154         * read-md.c (handle_toplevel_file): Handle backslash.
21155         * tlink.c (frob_extension):  Likewise.
21156         * tree-cfg.c (same_line_p): Use filename_cmp instead of
21157         strcmp.
21158         * tree-dump.c (dequeue_and_dump): Handle backslash.
21159         * tree.c (get_file_function_name): Likewise.
21160         * gengtype.c (read_input_list): Likewise.
21161         (get_file_realbasename): Likewise.
21162         (get_output_file_with_visibility): Use filename_cmp
21163         instead of strcmp.
21164
21165 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
21166
21167         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
21168         case to VFPv1.
21169
21170 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21171
21172         * fold-const.c (expr_location_or): New function.
21173         (fold_truth_not_expr): Call it.
21174
21175 2011-03-25  Jeff Law  <law@redhat.com>
21176
21177         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
21178         va_end.
21179         * c-family/c-common.c (def_fn_type): Likewise.
21180         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
21181         * emit-rtl.c (gen_rtvec): Likewise.
21182         * lto/lto-lang.c (def_fn_type): Likewise.
21183
21184 2011-03-25  Richard Guenther  <rguenther@suse.de>
21185
21186         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
21187         also generate copies.
21188         (fini_copy_prop): Handle constant values properly.
21189
21190 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
21191
21192         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
21193         mode size instead of bitsize with DWARF2_ADDR_SIZE.
21194         (hash_loc_operands, compare_loc_operands): Handle
21195         DW_OP_GNU_entry_value.
21196
21197 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21198
21199         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
21200         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
21201         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
21202         comment and use macro TARGET_64BIT_MS_ABI instead.
21203         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
21204         and change default behavior for 32-bit MS_ABI.
21205         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
21206         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
21207         32-bit, too.
21208         (ix86_cfun_abi): Likewise.
21209         (ix86_maybe_switch_abi): Adjust comment.
21210         (init_cumulative_args): Check for bit-ness in MS_ABI case.
21211         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
21212         instead of checking for SYSV_ABI.
21213         (ix86_nsaved_sseregs): Likewise.
21214         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
21215         to 16 bytes.
21216         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
21217         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
21218         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
21219         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
21220         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
21221
21222 2011-03-25  Richard Guenther  <rguenther@suse.de>
21223
21224         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
21225         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21226         (verify_gimple): Remove.
21227         * tree-cfg.c (verify_gimple_call): Merge verification
21228         from verify_stmts.
21229         (verify_gimple_phi): Merge verification from verify_stmts.
21230         (verify_gimple_label): New function.
21231         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
21232         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21233         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
21234         (verify_stmts): Rename to verify_gimple_in_cfg.
21235         (verify_gimple_in_cfg): New function.
21236         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
21237         * tree-ssa.c (verify_ssa): Likewise.
21238         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
21239
21240 2011-03-25  Richard Guenther  <rguenther@suse.de>
21241
21242         * passes.c (init_optimization_passes): Add FRE pass after
21243         early SRA.
21244
21245 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
21246             Andrew Stubbs  <ams@codesourcery.com>
21247
21248         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
21249         for Cortex-A8.
21250         (arm_movdi_vfp_cortexa8): New pattern.
21251         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
21252         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
21253         instructions when tuning for Cortex-A8.  Set attribute "arch".
21254         * config/arm/arm.md: Move include arm-tune.md up a bit.
21255         (define_attr "arch"): Add "onlya8" and "nota8" values.
21256         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
21257
21258 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21259
21260         PR bootstrap/48282
21261         Revert:
21262         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21263
21264         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21265         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21266         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21267         * passes.c (init_optimization_passes): Move
21268         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21269
21270 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21271
21272         * c-typeck.c (comptypes_internal): Replace target
21273         hook call of comp_type_attributes by version in tree.c file.
21274         * gimple.c (gimple_types_compatible_p_1): Likewise.
21275         * tree-ssa.c (useless_type_conversion_p): Likewise.
21276         * tree.c (build_type_attribute_qual_variant): Likewise.
21277         (attribute_value_equal): New static helper function.
21278         (comp_type_attributes): New function.
21279         (merge_attributes): Use attribute_value_equal for comparison.
21280         (attribute_list_contained): Likewise.
21281         * tree.h (comp_type_attributes): New prototype.
21282
21283 2011-03-25  Richard Guenther  <rguenther@suse.de>
21284
21285         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
21286         of complex types at -O0.
21287         (verify_gimple_assign_binary): Likewise.
21288         (verify_gimple_assign_ternary): Likewise.
21289
21290 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21291
21292         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
21293         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
21294
21295 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21296
21297         PR debug/48041
21298         * dwarf2out.c (output_abbrev_section): Only write table when
21299         abbrev_die_table_in_use > 1.
21300
21301 2011-02-24  Richard Henderson  <rth@redhat.com>
21302
21303         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
21304         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
21305         (alpha_expand_unaligned_load_words): Use extql.
21306         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
21307         (emit_insxl): Handle all modes for consistency.
21308
21309 2011-02-24  Richard Henderson  <rth@redhat.com>
21310
21311         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
21312         (alpha_expand_unaligned_load): Likewise.
21313         (alpha_expand_unaligned_store): Likewise.
21314         (alpha_expand_unaligned_load_words): Likewise.
21315         (alpha_expand_unaligned_store_words): Likewise.
21316         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
21317         (alpha_split_lock_test_and_set_12): Likewise.
21318         (print_operand, alpha_fold_builtin_extxx): Likewise.
21319         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
21320         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
21321         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
21322         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
21323         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
21324         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
21325         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
21326         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
21327         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
21328         (extwl, extll, extql): Similarly.
21329         (inswh, inslh, insqh): Similarly.
21330         (mskbl, mskwl, mskll, mskql): Similarly.
21331         (mskwh, msklh, mskqh): Similarly.
21332
21333 2011-02-24  Richard Henderson  <rth@redhat.com>
21334
21335         * config/alpha/alpha.md (attribute isa): Add er, ner.
21336         (attribute enabled): Handle them.
21337         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
21338
21339 2011-02-24  Richard Henderson  <rth@redhat.com>
21340
21341         * config/alpha/alpha.md (attribute isa): Add vms.
21342         (attribute enabled): Handle it.
21343         (*movsf): Merge *movsf_{nofix,fix,nofp}.
21344         (*movdf): Merge *movdf_{nofix,fix,nofp}.
21345         (*movtf): Rename from *movtf_internal for consistency.
21346         (*movsi): Merge with *movsi_nt_vms.
21347         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
21348         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
21349         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
21350         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
21351
21352 2011-02-24  Richard Henderson  <rth@redhat.com>
21353
21354         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
21355         (extendqisi2, extendhisi2): Likewise.
21356         (extendqidi2): Simplify BWX/non-BWX expansions.
21357         (extendhidi2): Similarly.
21358
21359 2011-02-24  Richard Henderson  <rth@redhat.com>
21360
21361         * config/alpha/alpha.md (attribute isa): New.
21362         (attribute enabled): New.
21363         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
21364         (zero_extendqisi2, zero_extendqidi2): Similarly.
21365         (zero_extendhisi2, zero_extendhidi2): Similarly.
21366         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
21367
21368 2011-02-24  Richard Henderson  <rth@redhat.com>
21369
21370         * config/alpha/predicates.md (input_operand): Revert last change;
21371         update comment to mention 32-bit VMS rather than Windows.
21372
21373 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21374
21375         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21376         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21377         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21378         * passes.c (init_optimization_passes): Move
21379         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21380
21381 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21382
21383         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
21384
21385 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21386
21387         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
21388         correctly.
21389
21390 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
21391
21392         PR debug/48204
21393         * simplify-rtx.c (simplify_const_unary_operation): Call
21394         real_convert when changing mode class with FLOAT_EXTEND.
21395
21396 2011-03-24  Nick Clifton  <nickc@redhat.com>
21397
21398         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
21399         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
21400         * config/rx/rx.c (rx_option_override): Set align_jumps,
21401         align_loops and align_labels if not set by the user.
21402         (rx_align_for_label): New function.
21403         (rx_max_skip_for_label): New function.
21404         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
21405         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
21406         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
21407         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
21408         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
21409
21410 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21411
21412         PR rtl-optimization/48263
21413         * optabs.c (expand_binop_directly): Reinstate convert_modes code
21414         and original commutative_p handling.  Use maybe_gen_insn.
21415
21416 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21417
21418         * reload.c (find_reloads_subreg_address): Add address_reloaded
21419         parameter and return true there if the full address has been
21420         reloaded.
21421         (find_reloads_toplev): Pass address_reloaded flag.
21422         (find_reloads_address_1): Don't use address_reloaded parameter.
21423
21424 2011-03-24  Jeff Law  <law@redhat.com>
21425
21426         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
21427         unused variable "ann".
21428         (remove_unused_locals): Likewise.
21429
21430         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
21431         statement.
21432
21433         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
21434         after it is freed.
21435
21436 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21437
21438         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
21439         for invalid symbolic addresses.
21440         (s390_secondary_reload): Don't use s390_check_symref_alignment for
21441         larl operands.
21442
21443 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21444
21445         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
21446         the argument in calls to fold_truth_not_expr.
21447
21448 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21449
21450         * tree.c (record_node_allocation_statistics): New function.
21451         (make_node_stat, copy_node_stat, build_string): Call it.
21452         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
21453         (build1_stat, build_omp_clause): Likewise.
21454
21455 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21456
21457         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
21458         last commit.
21459
21460 2011-03-24  Richard Guenther  <rguenther@suse.de>
21461
21462         PR tree-optimization/48271
21463         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
21464         blocks that still exist.
21465
21466 2011-03-24  Richard Guenther  <rguenther@suse.de>
21467
21468         PR tree-optimization/48270
21469         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
21470         not free datarefs before ddrs.
21471
21472 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21473
21474         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
21475         from the address built for a reference with variable offset.
21476
21477 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21478
21479         PR target/48237
21480         * config/i386/i386.md (*movdf_internal_rex64): Do not split
21481         alternatives that can be handled with movq or movabsq insn.
21482         (*movdf_internal): Disable for !TARGET_64BIT.
21483         (*movdf_internal_nointeger): Ditto.
21484         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
21485
21486 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21487
21488         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21489         (FUNCTION_ARG_ADVANCE): Likewise.
21490         * tm.texi.in: Change references to them to hook references.
21491         * tm.texi: Regenerate.
21492         * targhooks.c (default_function_arg): Eliminate check for target macro.
21493         (default_function_incoming_arg): Likewise.
21494         (default_function_arg_advance): Likewise.
21495         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
21496         (function_arg_advance): Likewise.
21497         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21498
21499 2011-03-24  Richard Guenther  <rguenther@suse.de>
21500
21501         PR middle-end/48269
21502         * tree-object-size.c (addr_object_size): Do not double-account
21503         for MEM_REF offsets.
21504
21505 2011-03-24  Diego Novillo  <dnovillo@google.com>
21506
21507         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
21508         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
21509         (lto_input_data_block): Move from lto-opts.c.  Make extern.
21510         Update all users.
21511         (lto_input_string): Rename from input_string.  Make extern.
21512         Update all users.
21513         * lto-streamer-out.c (lto_output_string_with_length): Rename from
21514         output_string_with_length.
21515         Output 0 to indicate a non-NULL string.  Update all callers to
21516         not emit 0.
21517         (lto_output_string): Rename from output_string.  Make extern.
21518         Update all users.
21519         (lto_output_decl_state_streams): Make extern.
21520         (lto_output_decl_state_refs): Make extern.
21521         * lto-streamer.h (lto_input_string): Declare.
21522         (lto_input_data_block): Declare.
21523         (lto_output_string): Declare.
21524         (lto_output_string_with_length): Declare.
21525         (lto_output_decl_state_streams): Declare.
21526         (lto_output_decl_state_refs): Declare.
21527
21528 2011-03-24  Richard Guenther  <rguenther@suse.de>
21529
21530         PR tree-optimization/46562
21531         * tree.c (build_invariant_address): New function.
21532         * tree.h (build_invariant_address): Declare.
21533         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
21534         a renamed function moved ...
21535         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
21536         Take valueization callback parameter.
21537         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
21538         * gimple-fold.h: New file.
21539         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
21540         (ccp_fold, fold_const_aggregate_ref,
21541         fold_ctor_reference, fold_nonarray_ctor_reference,
21542         fold_array_ctor_reference, fold_string_cst_ctor_reference,
21543         get_base_constructor): Move ...
21544         * gimple-fold.c: ... here.
21545         (gimple_fold_stmt_to_constant_1): New function
21546         split out from ccp_fold.  Take a valueization callback parameter.
21547         Valueize all operands.
21548         (gimple_fold_stmt_to_constant): New wrapper function.
21549         (fold_const_aggregate_ref_1): New function split out from
21550         fold_const_aggregate_ref.  Take a valueization callback parameter.
21551         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
21552         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
21553         invariant POINTER_PLUS_EXPRs to invariant form.
21554         (vn_valueize): New function.
21555         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
21556         * tree-vrp.c (vrp_valueize): New function.
21557         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
21558         to fold statements to constants.
21559         * tree-ssa-pre.c (eliminate): Properly guard propagation of
21560         function declarations.
21561         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
21562         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
21563
21564 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21565
21566         * config/h8300/predicates.md (jump_address_operand): Fix register
21567         mode check.
21568
21569 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
21570
21571         * doc/invoke.texi (max-stores-to-sink): Document.
21572         * params.h (MAX_STORES_TO_SINK): Define.
21573         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
21574         if either vectorization or if-conversion is disabled.
21575         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
21576         tree-vect-data-refs.c vect_equal_offsets.
21577         (dr_equal_offsets_p): New function.
21578         (find_data_references_in_bb): Remove static.
21579         * tree-data-ref.h (find_data_references_in_bb): Declare.
21580         (dr_equal_offsets_p): Likewise.
21581         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
21582         (vect_drs_dependent_in_basic_block): Update calls to
21583         vect_equal_offsets.
21584         (vect_check_interleaving): Likewise.
21585         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
21586         (cond_if_else_store_replacement): Rename to...
21587         (cond_if_else_store_replacement_1): ... this.  Change arguments and
21588         documentation.
21589         (cond_if_else_store_replacement): New function.
21590         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
21591         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
21592
21593 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
21594
21595         PR target/46934
21596         * config/arm/arm.md (casesi): Use the gen_int_mode() function
21597         to subtract lower bound instead of GEN_INT().
21598
21599 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
21600
21601         PR other/48179
21602         PR other/48221
21603         PR other/48234
21604         * doc/extend.texi (Alignment): Move section to match order in TOC.
21605         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
21606         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
21607
21608 2011-03-23  Jeff Law  <law@redhat.com>
21609
21610         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
21611         before removing the edge.
21612
21613         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
21614         it may have been freed by redirect_branch_edge or
21615         redirect_edge_succ_nodup.
21616
21617 2011-03-23  Richard Guenther  <rguenther@suse.de>
21618
21619         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
21620         (check_va_list_escapes): Likewise.
21621         (check_all_va_list_escapes): Likewise.
21622
21623 2011-03-23  Richard Guenther  <rguenther@suse.de>
21624
21625         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
21626         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
21627         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
21628         (alias.o): Likewise.
21629         (ipa-type-escape.o): Remove.
21630         (ipa-struct-reorg.o): Likewise.
21631         (GTFILES): Remove ipa-struct-reorg.c.
21632         * alias.c: Do not include ipa-type-escape.h.
21633         * tree-ssa-alias.c: Likewise.
21634         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
21635         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
21636         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
21637         and ipa-type-escape passes.
21638         * tree-pass.h (pass_ipa_type_escape): Remove.
21639         (pass_ipa_struct_reorg): Likewise.
21640         * ipa-struct-reorg.h: Remove.
21641         * ipa-struct-reorg.c: Likewise.
21642         * ipa-type-escape.h: Likewise.
21643         * ipa-type-escape.c: Likewise.
21644         * doc/invoke.texi (-fipa-struct-reorg): Remove.
21645         (--param struct-reorg-cold-struct-ratio): Likewise.
21646         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21647         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21648         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
21649
21650 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21651
21652         * config/s390/2084.md: Enable all insn reservations also for z9_ec
21653         cpu attribute value.
21654         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
21655         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
21656         * config/s390/s390.c (processor_flags_table): New constant array.
21657         (s390_handle_arch_option): Remove.
21658         (s390_handle_option): Remove s390_handle_arch_option invocations
21659         and OPT_mwarn_framesize_ handling.
21660         (s390_option_override): Remove s390_handle_arch_option invocation.
21661         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
21662         warnings.
21663         * config/s390/s390.md (cpu attribute): Add z9_ec value.
21664         * config/s390/s390.opt (s390_tune, s390_arch)
21665         (march=): Replace s390_arch_option enum and values with
21666         processor_type.  Set variable name to s390_arch.  Set
21667         initialization value.
21668         (mtune=): Replace s390_arch_option with processor_type.  Set
21669         variable name to s390_tune.  Set initialization value.
21670
21671 2011-03-23  Julian Brown  <julian@codesourcery.com>
21672
21673         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
21674         accesses which are not naturally aligned.
21675
21676 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21677
21678         PR target/47553
21679         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
21680
21681 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21682
21683         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
21684         parameter from "int" to "enum insn_code".
21685         (expand_operand_type): New enum.
21686         (expand_operand): New structure.
21687         (create_expand_operand): New function.
21688         (create_fixed_operand, create_output_operand): Likewise
21689         (create_input_operand, create_convert_operand_to): Likewise.
21690         (create_convert_operand_from, create_address_operand): Likewise.
21691         (create_integer_operand): Likewise.
21692         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
21693         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21694         (expand_insn, expand_jump_insn): Likewise.
21695         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
21696         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
21697         (expand_movstr, expand_builtin___clear_cache): Likewise.
21698         (expand_builtin_lock_release): Likewise.
21699         * explow.c (allocate_dynamic_stack_space): Likewise.
21700         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
21701         and use the default handling in that case.
21702         * expmed.c (check_predicate_volatile_ok): Delete.
21703         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
21704         (emit_cstore): Likewise.
21705         * expr.c (emit_block_move_via_movmem): Likewise.
21706         (set_storage_via_setmem, expand_assignment): Likewise.
21707         (emit_storent_insn, try_casesi): Likewise.
21708         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
21709         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
21710         (expand_vec_shift_expr, expand_binop_directly): Likewise.
21711         (expand_twoval_unop, expand_twoval_binop): Likewise.
21712         (expand_unop_direct, emit_indirect_jump): Likewise.
21713         (emit_conditional_move, vector_compare_rtx): Likewise.
21714         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
21715         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
21716         (expand_sync_lock_test_and_set): Likewise.
21717         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
21718         (emit_unop_insn): Likewise.
21719         (expand_copysign_absneg): Change icode to an insn_code.
21720         (create_convert_operand_from_type): New function.
21721         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
21722         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21723         (expand_insn, expand_jump_insn): Likewise.
21724         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
21725         than const_int_operand for operand 2.
21726
21727 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21728
21729         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
21730         if possible.
21731
21732 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21733
21734         * emit-rtl.c (emit_pattern_before_noloc): New function.
21735         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
21736         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
21737         (emit_pattern_after_noloc): New function.
21738         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
21739         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
21740
21741 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21742
21743         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
21744         (__ffsDI2): Likewise.
21745
21746 2011-03-22  Richard Henderson  <rth@redhat.com>
21747
21748         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
21749         of !TARGET_ABI_OPEN_VMS.
21750         (alpha_trampoline_init, alpha_start_function): Likewise.
21751         (alpha_expand_epilogue, alpha_file_start): Likewise.
21752         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
21753         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
21754         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
21755         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
21756         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
21757
21758 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21759
21760         * config/s390/s390-opts.h: New.
21761         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
21762         s390_arch_flags, s390_warn_framesize, s390_stack_size,
21763         s390_stack_guard): Remove.
21764         (s390_handle_arch_option): Return void.  Take enum
21765         s390_arch_option value instead of string and searching array.
21766         (s390_handle_option): Don't assert that global structures are in
21767         use.  Access variables via opts pointer.  Use error_at.  Don't use
21768         sscanf for -mstack-guard= or -mstack-size=.  Update call to
21769         s390_handle_arch_option.
21770         (s390_option_override): Update call to s390_handle_arch_option.
21771         (s390_emit_prologue): Use %d format for s390_stack_size in
21772         diagnostic.  Use %wd for HOST_WIDE_INT.
21773         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
21774         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
21775         * config/s390/s390.opt (config/s390/s390-opts.h): New
21776         HeaderInclude entry.
21777         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
21778         s390_arch_flags, s390_warn_framesize): New Variable entries.
21779         (s390_arch_option): New Enum and EnumValue entries.
21780         (march=): Use Enum instead of Var.
21781         (mstack-guard=, mstack-size=): Use UInteger and Var.
21782         (mtune=): Use Enum.
21783
21784 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21785
21786         * config/score/score.c (score_handle_option): Don't assert that
21787         global structures are in use.  Access target_flags via opts
21788         pointer.  Use value of -march= option to determine target_flags
21789         settings.
21790         * config/score/score.opt (march=): Use Enum.
21791         (score_arch): New Enum and EnumValue entries.
21792
21793 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21794
21795         * config/mep/mep.c (option_mtiny_specified): Remove.
21796         (mep_option_override): Move register handling for -mivc2 from
21797         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
21798         instead of option_mtiny_specified.
21799         (mep_handle_option): Access target_flags via opts pointer.  Don't
21800         assert that global structures are in use.  Defer part of -mivc2
21801         handling and move it to mep_option_override.
21802         * config/mep/mep.opt (IVC2): New Mask entry.
21803         (mivc2): Use Var and Defer instead of Mask.
21804
21805 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21806
21807         * config/v850/v850-opts.h: New.
21808         * config/v850/v850.c (small_memory): Replace with
21809         small_memory_physical_max array.  Make that array static const.
21810         (v850_handle_memory_option): Take integer value of argument.  Take
21811         gcc_options pointer, option text and location.  Return void.
21812         Update for changes to small memory structures.
21813         (v850_handle_option): Access target_flags via opts pointer.  Don't
21814         assert that global structures are in use.  Update calls to
21815         v850_handle_memory_option.
21816         (v850_encode_data_area): Update references to small memory settings.
21817         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
21818         (enum small_memory_type): Move to v850-opts.h.
21819         * config/v850/v850.opt (config/v850/v850-opts.h): New
21820         HeaderInclude entry.
21821         (small_memory_max): New Variable entry.
21822         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
21823         (mtda, mzda): Likewise.
21824
21825 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21826
21827         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
21828         pointer.  Don't assert that global structures are in use.
21829
21830 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21831
21832         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
21833         via opts pointer.  Don't assert that global structures are in use.
21834
21835 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21836
21837         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
21838         (munix=93): Use Var.
21839         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
21840         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
21841         * config/pa/pa-opts.h: New.
21842         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
21843         (pa_handle_option): Don't assert that global structures are in
21844         use.  Access target_flags via opts pointer.  Don't handle
21845         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
21846         OPT_munix_98 here.
21847         (pa_option_override): Handle deferred OPT_mfixed_range_.
21848
21849 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21850
21851         * config/mn10300/mn10300-opts.h: New.
21852         * config/mn10300/mn10300.c (mn10300_processor,
21853         mn10300_tune_string): Remove.
21854         (mn10300_handle_option): Don't assert that global structures are
21855         in use.  Access mn10300_processor via opts pointer.  Don't handle
21856         OPT_mtune_ here.
21857         * config/mn10300/mn10300.h (enum processor_type): Move to
21858         mn10300-opts.h.
21859         (mn10300_processor): Remove.
21860         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
21861         HeaderInclude entry.
21862         (mn10300_processor): New Variable entry.
21863         (mtune=): Use Var.
21864
21865 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21866
21867         * config/microblaze/microblaze.c: Don't include opts.h.
21868         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
21869         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
21870         (mno-clearbss): Use Var and Warn.
21871
21872 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21873
21874         * config/m32r/m32r-opts.h: New.
21875         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
21876         (m32r_handle_option): Don't assert that global structures are in
21877         use.  Access target_flags and m32r_cache_flush_func via opts
21878         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
21879         OPT_mno_flush_trap here.
21880         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
21881         include of m32r-opts.h.
21882         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
21883         HeaderInclude entry.
21884         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
21885         (mmodel=): Use Enum and Var.
21886         (m32r_model): New Enum and EnumValue entries.
21887         (mno-flush-trap): Use Var.
21888         (msdata=): Use Enum and Var.
21889         (m32r_sdata): New Enum and EnumValue entries.
21890
21891 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21892
21893         * config/m32c/m32c.c: Don't include opts.h.
21894         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
21895         m32c_handle_option): Remove.
21896         (m32c_option_override): Check global_options_set.x_target_memregs
21897         instead of target_memregs_set.
21898         * config/m32c/m32c.h (target_memregs): Remove.
21899         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
21900         variable.
21901
21902 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21903
21904         * config/iq2000/iq2000-opts.h: New.
21905         * config/iq2000/iq2000.c: Don't include opts.h.
21906         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
21907         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
21908         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
21909         HeaderInclude entry.
21910         (iq2000_tune): New Variable entry.
21911         (march=): Add comment.  Use Enum.
21912         (iq2000_arch): New Enum and EnumValue entries.
21913         (mcpu=): Use Enum and Var.
21914         (iq2000_tune): New Enum and EnumValue entries.
21915
21916 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21917
21918         * config/ia64/ia64-opts.h: New.
21919         * config/ia64/ia64.c (ia64_tune): Remove.
21920         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
21921         here.  Use error_at.
21922         (ia64_option_override): Handle deferred OPT_mfixed_range_.
21923         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
21924         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
21925         HeaderInclude entry.
21926         (ia64_tune): New Variable entry.
21927         (mfixed-range=): Use Defer and Var.
21928         (mtune=): Use Enum and Var.
21929         (ia64_tune): New Enum and EnumValue entries.
21930
21931 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21932
21933         * config/frv/frv-opts.h: New.
21934         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
21935         frv-opts.h.
21936         (frv_cpu_type): Remove.
21937         * config/frv/frv.c: Don't include opts.h.
21938         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
21939         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
21940         (frv_cpu_type): New Variable entry.
21941         (frv_cpu): New Enum and EnumValue entries.
21942
21943 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21944
21945         * config/cris/cris.c (cris_handle_option): Access target_flags via
21946         opts pointer.  Don't assert that global structures are in use.
21947         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
21948         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
21949
21950 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21951
21952         * config/bfin/bfin-opts.h: New.
21953         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
21954         bfin_si_revision, bfin_workarounds): Remove.
21955         (bfin_cpus): Make static const.
21956         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
21957         not bfin_lib_id_given.
21958         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
21959         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
21960         pointer. Use error_at.  Don't assert that global structures are in use.
21961         * config/bfin/bfin.h: Include bfin-opts.h.
21962         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
21963         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
21964         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
21965         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
21966         entries.
21967
21968 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21969
21970         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
21971         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
21972         or -msoft-float here.
21973         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
21974         -msoft-float and -mhard-float.
21975         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
21976         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21977         msoft-float.
21978         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
21979         -msoft-float.
21980         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
21981         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
21982         not mhard-float.
21983         (LIBGCC_SPEC): Don't handle -msoft-float.
21984         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
21985         -mhard-float.
21986         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21987         msoft-float.
21988         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
21989         -mfloat-abi=*, not -msoft-float and -mhard-float.
21990         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
21991         -msoft-float.
21992         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
21993         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
21994         mhard-float and msoft-float.
21995         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
21996         mfloat-abi=soft in comments, not mhard-float and msoft-float.
21997         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
21998         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
21999         mhard-float.
22000         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
22001         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
22002         msoft-float.
22003         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
22004         not mhard-float.
22005         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
22006         not msoft-float.
22007
22008 2011-03-22  Richard Henderson  <rth@redhat.com>
22009
22010         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
22011         TARGET_ABI_WINDOWS_NT.
22012         (alpha_output_function_end_prologue): Likewise.
22013         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
22014         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
22015         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
22016         (trap, *movsi_nt_vms): Likewise.
22017         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
22018         (*tablejump_osf_nt_internal): Remove.
22019         * config/alpha/predicates.md (input_operand): Only test Pmode.
22020
22021 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22022
22023         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
22024         via opts pointer.  Use error_at.  Don't assert that global
22025         structures are in use.
22026
22027 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22028
22029         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
22030         (ix86_handle_option): Access ix86_isa_flags and
22031         ix86_isa_flags_explicit via opts pointer.  Don't assert that
22032         global structures are in use.
22033         (ix86_function_specific_save, ix86_function_specific_restore):
22034         Update ix86_isa_flags_explicit field name.
22035         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
22036         (ix86_isa_flags_explicit): Rename TargetSave entry to
22037         x_ix86_isa_flags_explicit.
22038
22039 2011-03-22  Richard Henderson  <rth@redhat.com>
22040
22041         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
22042         (alpha_option_override, direct_return): Likewise.
22043         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
22044         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
22045         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
22046         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
22047         (alpha_expand_epilogue, alpha_end_function): Likewise.
22048         (alpha_init_libfuncs): Likewise.
22049         (struct machine_function): Remove unicosmk members.
22050         (print_operand) ['t']: Remove.
22051         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
22052         unicosmk_output_module_name, unicosmk_output_common,
22053         current_section_align, unicosmk_output_text_section_asm_op,
22054         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
22055         unicosmk_section_type_flags, unicosmk_unique_section,
22056         unicosmk_asm_named_section, unicosmk_insert_attributes,
22057         unicosmk_output_align, unicosmk_defer_case_vector,
22058         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
22059         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
22060         unicosmk_output_ssib, unicosmk_add_call_info_word,
22061         unicosmk_extern_head, unicosmk_output_default_externs,
22062         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
22063         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
22064         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
22065         * config/alpha/alpha-protos.h: Update.
22066         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
22067         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
22068         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
22069         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
22070         (*mulsi_se, mulvsi3): Likewise.
22071         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
22072         (*divmodsi_internal, call, call_value, realign): Likewise.
22073         (moddi3, umoddi3): Likewise; remove duplicate expander.
22074         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
22075         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
22076         (*movdi_nofix): Remove r/U alternative.
22077         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
22078         * config/alpha/constraints.md ("U"): Remove.
22079         * config/alpha/predicates.md (call_operand"): Don't test
22080         TARGET_ABI_UNICOSMK.
22081
22082 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22083
22084         * target.def (handle_option): Take gcc_options and
22085         cl_decoded_option pointers and location_t.
22086         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
22087         * doc/tm.texi: Regenerate.
22088         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
22089         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
22090         * lto-opts.c (lto_reissue_options): Generate option structure for
22091         targetm.handle_option call.
22092         * opts.c (target_handle_option): Update call to
22093         targetm.handle_option.  Remove assertions about values now passed
22094         down to hook.
22095         * targhooks.c (default_target_handle_option): New.
22096         * targhooks.h (default_target_handle_option): Declare.
22097         * config/alpha/alpha.c: Include opts.h.
22098         (alpha_handle_option): Update to new hook interface.
22099         * config/arm/arm.c: Include opts.h.
22100         (arm_handle_option): Update to new hook interface.
22101         * config/arm/t-arm (arm.o): Update dependencies.
22102         * config/bfin/bfin.c: Include opts.h.
22103         (bfin_handle_option): Update to new hook interface.
22104         * config/cris/cris.c: Include opts.h.
22105         (cris_handle_option): Update to new hook interface.
22106         * config/frv/frv.c: Include opts.h.
22107         (frv_handle_option): Update to new hook interface.
22108         * config/i386/i386.c: Include opts.h.
22109         (ix86_handle_option): Update to new hook interface.
22110         (ix86_valid_target_attribute_inner_p): Generate option structure
22111         for call to ix86_handle_option.
22112         * config/i386/t-i386 (i386.o): Update dependencies.
22113         * config/ia64/ia64.c: Include opts.h.
22114         (ia64_handle_option): Update to new hook interface.
22115         * config/ia64/t-ia64 (ia64.o): Update dependencies.
22116         * config/iq2000/iq2000.c: Include opts.h.
22117         (iq2000_handle_option): Update to new hook interface.
22118         * config/m32c/m32c.c: Include opts.h.
22119         (m32c_handle_option): Update to new hook interface.
22120         * config/m32r/m32r.c: Include opts.h.
22121         (m32r_handle_option): Update to new hook interface.
22122         * config/m68k/m68k.c: Include opts.h.
22123         (m68k_handle_option): Update to new hook interface.
22124         * config/mep/mep.c: Include opts.h.
22125         (mep_handle_option): Update to new hook interface.
22126         * config/microblaze/microblaze.c: Include opts.h.
22127         (microblaze_handle_option): Update to new hook interface.
22128         * config/mips/mips.c: Include opts.h.
22129         (mips_handle_option): Update to new hook interface.
22130         * config/mn10300/mn10300.c: Include opts.h.
22131         (mn10300_handle_option): Update to new hook interface.
22132         * config/pa/pa.c: Include opts.h.
22133         (pa_handle_option): Update to new hook interface.
22134         * config/pdp11/pdp11.c: Include opts.h.
22135         (pdp11_handle_option): Update to new hook interface.
22136         * config/rs6000/rs6000.c: Include opts.h.
22137         (rs6000_handle_option): Update to new hook interface.
22138         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
22139         * config/rx/rx.c: Include opts.h.
22140         (rx_handle_option): Update to new hook interface.
22141         * config/s390/s390.c: Include opts.h.
22142         (s390_handle_option): Update to new hook interface.
22143         * config/score/score.c: Include opts.h.
22144         (score_handle_option): Update to new hook interface.
22145         * config/sh/sh.c: Include opts.h.
22146         (sh_handle_option): Update to new hook interface.
22147         * config/sparc/sparc.c: Include opts.h.
22148         (sparc_handle_option): Update to new hook interface.
22149         * config/v850/v850.c: Include opts.h.
22150         (v850_handle_option): Update to new hook interface.
22151
22152 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22153
22154         * gcc.c (driver_unknown_option_callback): Only permit and save
22155         unknown -Wno- options.
22156         (driver_wrong_lang_callback): Save options directly instead of via
22157         driver_unknown_option_callback.
22158
22159 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22160
22161         * combine.c (simplify_set): Try harder to find the best CC mode when
22162         simplifying a nested COMPARE on the RHS.
22163
22164 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22165
22166         * config/alpha/gnu.h: Remove.
22167         * config/arc: Remove directory.
22168         * config/arm/netbsd.h: Remove.
22169         * config/arm/t-pe: Remove.
22170         * config/crx: Remove directory.
22171         * config/i386/netbsd.h: Remove.
22172         * config/m68hc11: Remove directory.
22173         * config/m68k/uclinux-oldabi.h: Remove.
22174         * config/mcore/mcore-pe.h: Remove.
22175         * config/mcore/t-mcore-pe: Remove.
22176         * config/netbsd-aout.h: Remove.
22177         * config/rs6000/gnu.h: Remove.
22178         * config/sh/sh-symbian.h: Remove.
22179         * config/sh/symbian-base.c: Remove.
22180         * config/sh/symbian-c.c: Remove.
22181         * config/sh/symbian-cxx.c: Remove.
22182         * config/sh/symbian-post.h: Remove.
22183         * config/sh/symbian-pre.h: Remove.
22184         * config/sh/t-symbian: Remove.
22185         * config/svr3.h: Remove.
22186         * config/vax/netbsd.h: Remove.
22187         * config.build: Don't handle i[34567]86-*-pe.
22188         * config.gcc: Remove handling of deprecations for most deprecated
22189         targets.
22190         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
22191         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
22192         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
22193         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
22194         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
22195         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
22196         Remove cases.
22197         * config.host: Don't handle i[34567]86-*-pe.
22198         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
22199         (ASM_SPEC32): Don't handle -mcall-gnu.
22200         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
22201         -mcall-gnu.
22202         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
22203         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
22204         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
22205         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
22206         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
22207         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
22208         conditional on SYMBIAN.
22209         * configure.ac: Don't handle powerpc*-*-gnu*.
22210         * configure: Regenerate.
22211         * doc/extend.texi (interrupt attribute): Don't mention CRX.
22212         * doc/install-old.texi (m6811, m6812): Don't mention.
22213         * doc/install.texi (arc-*-elf*): Don't document multilib option.
22214         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
22215         (m68k-uclinuxoldabi): Don't mention.
22216         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
22217         Remove.
22218         (-mcall-gnu): Remove.
22219         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
22220         families): Remove constraint documentation.
22221
22222 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
22223
22224         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
22225         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
22226         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
22227
22228 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22229
22230         PR target/48226
22231         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
22232         vector when peeking at the next token for vector, don't expand the
22233         keywords.
22234
22235 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
22236
22237         * config/avr/avr-protos.h (expand_epilogue): Change prototype
22238         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
22239         * config/avr/avr.c (init_cumulative_args)
22240         (avr_function_arg_advance): Use it.
22241         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
22242         sibcall epilogues.
22243         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
22244         (avr_function_ok_for_sibcall): ...this new function.
22245         (avr_lookup_function_attribute1): New static Function.
22246         (avr_naked_function_p, interrupt_function_p)
22247         (signal_function_p, avr_OS_task_function_p)
22248         (avr_OS_main_function_p): Use it.
22249         * config/avr/avr.md ("sibcall", "sibcall_value")
22250         ("sibcall_epilogue"): New expander.
22251         ("*call_insn", "*call_value_insn"): New insn.
22252         ("call_insn", "call_value_insn"): Remove
22253         ("call", "call_value", "epilogue"): Change expander to handle
22254         sibling calls.
22255
22256 2011-03-21  Nick Clifton  <nickc@redhat.com>
22257
22258         * doc/invoke.texi (Overall Options): Move closing brace to end of
22259         options list.
22260         (Optimization Options): Add missing @gol.
22261         (Directory Options): Likewise.
22262         (i386 and x86-64 Options): Likewise.
22263         (RS6000 and PowerPC Options): Likewise.
22264         (i386 and x86-64 Windows Options): Likewise.
22265         (V850 Options): Add text missing from descriptions.
22266
22267 2011-03-22  Richard Henderson  <rth@redhat.com>
22268
22269         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
22270         (avr_incoming_return_addr_rtx): New.
22271         (emit_push_byte): New.
22272         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
22273         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
22274         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
22275         (emit_pop_byte): New.
22276         (expand_epilogue): Use it.  Pop frame pointer by bytes.
22277         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
22278         (INCOMING_RETURN_ADDR_RTX): New.
22279         (INCOMING_FRAME_SP_OFFSET): New.
22280         (ARG_POINTER_CFA_OFFSET): New.
22281         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
22282         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
22283         (pophi): Remove.
22284
22285         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
22286
22287 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22288
22289         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
22290         (FUNCTION_ARG_ADVANCE): Likewise.
22291         * tm.texi.in: Change references to them to hook references.
22292         * tm.texi: Regenerate.
22293         * targhooks.c (default_function_arg): Eliminate check for target
22294         macro.
22295         (default_function_incoming_arg): Likewise.
22296         (default_function_arg_advance): Likewise.
22297         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
22298         (function_arg_advance): Likewise.
22299         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
22300
22301 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22302
22303         * tree.c (build_call_1): New function.
22304         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
22305
22306 2011-03-22  Richard Guenther  <rguenther@suse.de>
22307
22308         PR tree-optimization/48228
22309         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
22310         for single-arg PHIs.
22311
22312 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
22313
22314         PR rtl-optimization/48143
22315         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
22316         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
22317         sse2_cvtps2pd): Likewise.
22318
22319 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22320
22321         * recog.c (canonicalize_change_group): Use validate_unshare_change.
22322
22323 2011-03-22  Richard Guenther  <rguenther@suse.de>
22324
22325         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
22326         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
22327         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
22328         and REALIGN_LOAD_EXPR.
22329         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
22330         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
22331         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
22332         DOT_PROD_EXPR case ...
22333         (expand_expr_real_2): ... here.
22334         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
22335         and REALIGN_LOAD_EXPR.
22336         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
22337         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
22338         (vect_create_epilog_for_reduction): Likewise.
22339         (vectorizable_reduction): Likewise.
22340         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
22341         * tree-vect-stmts.c (vectorizable_load): Likewise.
22342
22343 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22344
22345         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
22346
22347 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22348
22349         * config/s390/s390.c (s390_delegitimize_address): Fix offset
22350         handling for PLTOFF/GOTOFF.
22351
22352 2011-03-22  Nick Clifton  <nickc@redhat.com>
22353
22354         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
22355         trailing backslash from the end of the macro definition.
22356
22357 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22358
22359         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
22360         and PLT unspecs.
22361
22362 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
22363
22364         * expr.h (prepare_operand): Move to...
22365         * optabs.h (prepare_operand): ...here and change the insn code
22366         parameter from "int" to "enum insn_code".
22367         (insn_operand_matches): Declare.
22368         * expr.c (init_expr_target): Use insn_operand_matches.
22369         (compress_float_constant): Likewise.
22370         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
22371         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
22372         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
22373         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
22374         Likewise.
22375         (gen_cond_trap): Likewise.
22376         (prepare_operand): Likewise.  Change icode to an insn_code.
22377         (insn_operand_matches): New function.
22378         * reload.c (find_reloads_address_1): Use insn_operand_matches.
22379         * reload1.c (gen_reload): Likewise.
22380         * targhooks.c (default_secondary_reload): Likewise.
22381
22382 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22383
22384         * config/alpha/alpha.md (unspec): New define_c_enum.
22385         (unspecv): Ditto.
22386
22387 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22388
22389         PR debug/48214
22390         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
22391         between a call and its CALL_ARG_LOCATION note.
22392
22393 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
22394
22395         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
22396
22397 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22398
22399         PR c/42544
22400         PR c/48197
22401         * c-common.c (shorten_compare): If primopN is first sign-extended
22402         to opN and then zero-extended to result type, set primopN to opN.
22403
22404 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
22405
22406         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
22407         for barrier handlers.
22408
22409 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22410
22411         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
22412         UNSPEC constants to be in the unspec enumeration, and redefine
22413         all UNSPECV constants to be in the unspecv enumeration, so that
22414         dumps print which unspec/unspec_volatile this is.
22415         * config/rs6000/vector.md (UNSPEC_*): Ditto.
22416         * config/rs6000/paired.md (UNSPEC_*): Ditto.
22417         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
22418         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
22419         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
22420
22421         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
22422         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
22423         UNSPECV_LWSYNC, since these are used as unspec_volatile.
22424         * config/rs6000/sync.md (isync, lwsync): Ditto.
22425
22426 2011-03-21  Richard Guenther  <rguenther@suse.de>
22427
22428         * params.def (lto-min-partition): Fix typo.
22429
22430 2011-03-21  Richard Guenther  <rguenther@suse.de>
22431
22432         PR c/47939
22433         * c-decl.c (grokdeclarator): Drop to the main variant only
22434         for array types.  Drop flag_gen_aux_info check.
22435
22436 2011-03-21  Richard Guenther  <rguenther@suse.de>
22437
22438         PR translation/47911
22439         * params.def (lto-partitions): Fix typo.
22440         (lto-min-partition): Fix wording.
22441
22442 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
22443
22444         * config/rs6000/t-freebsd: Remove duplication from file.
22445
22446 2011-03-21  Richard Guenther  <rguenther@suse.de>
22447
22448         PR middle-end/47661
22449         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
22450
22451 2011-03-21  Richard Guenther  <rguenther@suse.de>
22452
22453         PR lto/48210
22454         * params.def (lto-partitions): Require at least 1 partition.
22455
22456 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22457
22458         * gthr-solaris.h: Remove.
22459         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
22460         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
22461         (LIB_SPEC): Likewise.
22462         * config/sol2.opt (threads): Remove.
22463         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
22464         (sparc*-*-solaris2*): Likewise.
22465         * configure.ac (enable_threads): Enable solaris support.
22466         * configure: Regenerate.
22467         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
22468         * doc/install.texi (Configuration, --enable-threads=lib): Remove
22469         solaris.
22470
22471 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22472
22473         * config.gcc: Obsolete *-*-solaris2.8*.
22474         * doc/install.texi (Specific, *-*-solaris2*): Document it.
22475
22476 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22477
22478         PR bootstrap/48135
22479         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
22480         reference.  Solaris 8 perl works.
22481
22482 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22483
22484         PR bootstrap/48135
22485         * doc/install.texi (Prerequisites): Move jar etc. up.
22486         Explain support library version requirements.
22487
22488 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22489
22490         PR bootstrap/48135
22491         * doc/install.texi (Prerequisites): Move Perl to build
22492         requirements.  Always necessary on Solaris 2 with Sun ld.
22493
22494 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22495
22496         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
22497         binutils 2.21.
22498         (Specific, i?86-*-solaris2.[89]): Likewise.
22499         (Specific, i?86-*-solaris2.10): Likewise.
22500         (Specific, mips-sgi-irix6): Likewise.
22501         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
22502         Update for binutils 2.21.
22503
22504 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22505
22506         * configure.ac (gcc_cv_lto_plugin): Fix typo.
22507         Allow -fuse-linker-plugin for non-default plugin linker.
22508         * configure: Regenerate.
22509
22510 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
22511
22512         PR bootstrap/48167
22513         * gengtype.c (files_rules): Added rule for cp/parser.h.
22514
22515 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22516
22517         PR target/48213
22518         * config/s390/s390.c (s390_delegitimize_address): Don't call
22519         lowpart_subreg if orig_x has BLKmode.
22520
22521 2011-03-21  Kai Tietz  <ktietz@redhat.com>
22522
22523         PR target/12171
22524         * doc/plugins.texi: Adjust documentation for plugin register_callback.
22525         * tree.h (attribute_spec): Add new member affects_type_identity.
22526         * attribs.c (empty_attribute_table): Adjust attribute_spec
22527         initializers.
22528         * config/alpha/alpha.c: Likewise.
22529         * config/arc/arc.c: Likewise.
22530         * config/arm/arm.c: Likewise.
22531         * config/avr/avr.c: Likewise.
22532         * config/bfin/bfin.c: Likewise.
22533         * config/crx/crx.c: Likewise.
22534         * config/darwin.h: Likewise.
22535         * config/h8300/h8300.c: Likewise.
22536         * config/i386/cygming.h: Likewise.
22537         * config/i386/i386.c: Likewise.
22538         * config/ia64/ia64.c: Likewise.
22539         * config/m32c/m32c.c: Likewise.
22540         * config/m32r/m32r.c: Likewise.
22541         * config/m68hc11/m68hc11.c: Likewise.
22542         * config/m68k/m68k.c: Likewise.
22543         * config/mcore/mcore.c: Likewise.
22544         * config/mep/mep.c: Likewise.
22545         * config/microblaze/microblaze.c: Likewise.
22546         * config/mips/mips.c: Likewise.
22547         * config/rs6000/rs6000.c: Likewise.
22548         * config/rx/rx.c: Likewise.
22549         * config/sh/sh.c: Likewise.
22550         * config/sol2.h: Likewise.
22551         * config/sparc/sparc.c: Likewise.
22552         * config/spu/spu.c: Likewise.
22553         * config/stormy16/stormy16.c: Likewise.
22554         * config/v850/v850.c: Likewise.
22555
22556 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
22557
22558         * simplify-rtx.c (simplify_binary_operation_1): Handle
22559         (xor (and A B) C) case when B and C are both constants.
22560
22561 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
22562
22563         * tree-dfa.c (add_referenced_var): Fix typo in comment.
22564
22565 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
22566
22567         PR bootstrap/48168
22568         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
22569
22570 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
22571
22572         PR rtl-optimization/48156
22573         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
22574         assume df and df_lr are not NULL.
22575
22576 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22577
22578         PR debug/48023
22579         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
22580         between a call and its CALL_ARG_LOCATION note.
22581
22582 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
22583
22584         PR debug/48178
22585         * config/sh/sh.c (find_barrier): Don't emit a constant pool
22586         between a call and its corresponding CALL_ARG_LOCATION note.
22587
22588 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
22589
22590         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
22591         instead of loop. Use HARD_REGISTER_NUM_P predicate.
22592         * haifa-sched.c (setup_ref_regs): Ditto.
22593         * caller-save.c (add_used_regs_1): Ditto.
22594         * dse.c (look_for_hardregs): Ditto.
22595         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
22596         * sched-rgn.c (check_live_1): Ditto.
22597
22598 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22599
22600         * c-decl.c (diagnose_mismatched_decls): Give an error for
22601         redefining a typedef with variably modified type.
22602
22603 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22604
22605         * c-decl.c (grokfield): Don't allow typedefs for structures or
22606         unions with no tag by default.
22607         * doc/extend.texi (Unnamed Fields): Update.
22608
22609 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
22610
22611         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
22612         Rewrite using indirect functions.
22613         (lwp_slwpcb): Ditto.
22614         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
22615         (avx_vinsertf128<mode>): Ditto.
22616
22617 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22618
22619         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
22620         unspecs.
22621
22622 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22623
22624         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
22625         splitting between a call and its corresponding CALL_ARG_LOCATION note.
22626
22627 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
22628
22629         PR rtl-optimization/48170
22630         * gcse.c (hoist_code): Remove bogus asserts.
22631
22632 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
22633
22634         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
22635         computation for prologue/epilogue.
22636
22637 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22638
22639         * Makefile.in (check-consistency): Remove.
22640
22641 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
22642
22643         PR debug/48176
22644         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
22645         arange_table_in_use is 0, but either text_section_used or
22646         cold_text_section_used is true.  Don't call it if
22647         !info_section_emitted.
22648
22649 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
22650
22651         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
22652         FUNCTION_VALUE_REGNO_P): Remove.
22653         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
22654         Remove.
22655         * config/avr/avr.c (avr_ret_register): Make static inline.
22656         (avr_function_value_regno_p): New function.
22657         (avr_libcall_value): Make static. Add 'func' argument.
22658         (avr_function_value): Make static. Rename 'func' argument to
22659         'fn_decl_or_type', forward it to avr_libcall_value. Call
22660         avr_ret_register function instead of RET_REGISTER macro.
22661         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22662
22663 2011-03-18  Jason Merrill  <jason@redhat.com>
22664
22665         PR c++/23372
22666         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
22667
22668 2011-03-18  Richard Guenther  <rguenther@suse.de>
22669
22670         * doc/install.texi (--enable-gold): Remove.
22671         (--with-plugin-ld): Document.
22672         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
22673
22674 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
22675
22676         PR middle-end/47790
22677         * expr.c (optimize_bitfield_assignment_op): Revamp to work
22678         again after expansion changes.
22679
22680 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
22681
22682         * combine.c (try_combine): Do simplification only call of
22683         subst() on i2 even when i1 is present. Update comments.
22684
22685 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
22686
22687         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
22688         and UNSPEC_PCREL_SYMOFF.
22689
22690 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22691
22692         * config/s390/s390.md: Use define_c_enum for the unspec constant
22693         definitions.
22694
22695 2011-03-18  Richard Henderson  <rth@redhat.com>
22696             Jakub Jelinek  <jakub@redhat.com>
22697
22698         PR bootstrap/48161
22699         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
22700         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
22701
22702 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
22703
22704         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22705         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
22706         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
22707         Change return type to bool.
22708         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22709
22710 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22711
22712         PR debug/48163
22713         * var-tracking.c (prepare_call_arguments): If CALL target
22714         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
22715         pc instead of looking it up using cselib_lookup and use
22716         Pmode for it if x has VOIDmode.
22717         * dwarf2out.c (gen_subprogram_die): If also both first and
22718         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
22719
22720         PR debug/48163
22721         * function.c (assign_parms): For data.passed_pointer parms
22722         use MEM of data.entry_parm instead of data.entry_parm itself
22723         as DECL_INCOMING_RTL.
22724         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
22725         also when passed and declared mode is the same, DECL_RTL
22726         is a MEM with pseudo as address and DECL_INCOMING_RTL is
22727         a MEM too.
22728
22729 2011-03-16  Jeff Law  <law@redhat.com>
22730
22731         PR rtl-optimization/37273
22732         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22733         handle them like argument loads from stack slots.  Do not double
22734         count memory for memory constants and argument loads from stack slots.
22735
22736 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22737
22738         PR debug/48160
22739         * var-tracking.c (prepare_call_arguments): Check SUBREG.
22740
22741 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22742
22743         PR target/48171
22744         * config/i386/i386.opt: Add Save to -mavx and -mfma.
22745
22746 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22747
22748         PR bootstrap/48153
22749         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
22750         if dwarf_strict.
22751         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
22752         Clear call_arg_locations and call_arg_loc_last always.
22753
22754         PR middle-end/48152
22755         * var-tracking.c (prepare_call_arguments): If argument needs to be
22756         passed by reference, adjust argtype and mode.
22757
22758 2011-03-17  Richard Guenther  <rguenther@suse.de>
22759
22760         PR middle-end/48134
22761         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
22762         a value make sure to fold the statement.
22763
22764 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
22765
22766         PR target/43872
22767         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
22768         return condition with !cfun->calls_alloca.
22769
22770 2011-03-17  Richard Guenther  <rguenther@suse.de>
22771
22772         PR bootstrap/48148
22773         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22774         origin for decls in other ltrans units.
22775         (input_varpool_node): Likewise.
22776
22777 2011-03-17  Richard Guenther  <rguenther@suse.de>
22778
22779         PR middle-end/48165
22780         * tree-object-size.c (compute_object_offset): Properly return
22781         the offset operand of MEM_REFs as sizetype.
22782
22783 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22784
22785         PR rtl-optimization/48141
22786         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
22787         * dse.c: Include params.h.
22788         (active_local_stores_len): New variable.
22789         (add_wild_read, dse_step1): Clear it when setting active_local_stores
22790         to NULL.
22791         (record_store, check_mem_read_rtx): Decrease it when removing
22792         from the chain.
22793         (scan_insn): Likewise.  Increase it when adding to chain, if it
22794         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
22795         set active_local_stores to NULL before the addition.
22796         * Makefile.in (dse.o): Depend on $(PARAMS_H).
22797
22798         PR rtl-optimization/48141
22799         * dse.c (record_store): If no positions are needed in an insn
22800         that cannot be deleted, at least unchain it from active_local_stores.
22801
22802 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
22803
22804         PR debug/47510
22805         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
22806         (lookup_type_die_strip_naming_typedef): ... here.
22807         (get_context_die): Use it.
22808         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
22809         the anonymous struct named by the naming typedef.
22810
22811 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
22812
22813         PR target/48154
22814         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
22815         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22816
22817 2011-03-16  Jeff Law  <law@redhat.com>
22818
22819         * tree-vrp.c (identify_jump_threads): Slightly simplify type
22820         check for operands of conditional.  Allow type to be a pointer.
22821
22822 2011-03-16  Richard Guenther  <rguenther@suse.de>
22823
22824         PR tree-optimization/48149
22825         * fold-const.c (fold_binary_loc): Fold
22826         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
22827
22828 2011-03-16  Richard Guenther  <rguenther@suse.de>
22829
22830         PR tree-optimization/26134
22831         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
22832         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
22833         (non_rewritable_mem_ref_base): Handle complex type component
22834         accesses, constrain offsets for vector and complex extracts
22835         more properly.
22836
22837 2011-03-16  Richard Guenther  <rguenther@suse.de>
22838
22839         PR tree-optimization/48146
22840         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
22841         operands avoiding the need for renaming.
22842
22843 2011-03-16  Richard Guenther  <rguenther@suse.de>
22844
22845         * gimple-fold.c (maybe_fold_reference): Open-code relevant
22846         constant folding.  Move MEM_REF canonicalization first.
22847         Rely on fold_const_aggregate_ref for initializer folding.
22848         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
22849
22850 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22851
22852         PR middle-end/48136
22853         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
22854         arg0/arg1 or their arguments are always fold converted to matching
22855         types.
22856
22857         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
22858         to nargs.
22859
22860 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22861
22862         PR lto/46944
22863         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
22864         Handle in-tree gold.
22865         (ld_vers): Extract binutils version for gold.
22866         (gcc_cv_ld_hidden): Handle gold here.
22867         (gcc_cv_lto_plugin): Determine level of linker plugin support.
22868         * configure: Regenerate.
22869         * config.in: Regenerate.
22870         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
22871         -fuse-linker-plugin otherwise.
22872         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
22873         (LINK_COMMAND_SPEC): Use it.
22874         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
22875
22876 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22877
22878         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
22879         * calls.c: Remove debug.h include.
22880         (emit_call_1): Don't call virtual_call_token debug hook.
22881         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
22882         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
22883         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
22884         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
22885         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
22886         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
22887         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
22888         dwarf2out_virtual_call): Remove.
22889         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
22890         copy_call_info and virtual_call hooks.
22891         (dwarf2out_init): Don't initialize vcall_insn_table,
22892         debug_dcall_section and debug_vcall_section.
22893         (prune_unused_types): Don't mark nodes from dcall_table.
22894         (dwarf2out_finish): Don't output dcall or vcall tables.
22895         * final.c (final_scan_insn): Don't call direct_call or
22896         virtual_call debug hooks.
22897         * debug.h (struct gcc_debug_hooks): Remove direct_call,
22898         virtual_call_token, copy_call_info and virtual_call hooks.
22899         (debug_nothing_uid): Remove prototype.
22900         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
22901         copy_call_info and virtual_call hooks.
22902         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
22903         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
22904         * debug.c (do_nothing_debug_hooks): Likewise.
22905         (debug_nothing_uid): Remove.
22906         * doc/invoke.texi (-fenable-icf-debug): Remove.
22907         * common.opt (-fenable-icf-debug): Likewise.
22908
22909         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
22910         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
22911         call's MEM.  Handle functions returning aggregate through a hidden
22912         first pointer.  For virtual calls add clobbered pc to call arguments
22913         chain.
22914         * dwarf2out.c (gen_subprogram_die): Emit
22915         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
22916         can't be emitted.
22917
22918         PR debug/45882
22919         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
22920         * rtl.h (ENTRY_VALUE_EXP): Define.
22921         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
22922         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
22923         * print-rtl.c (print_rtx): Likewise.
22924         * gengtype.c (adjust_field_rtx_def): Likewise.
22925         * var-tracking.c (vt_add_function_parameter): Adjust
22926         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
22927         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
22928         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
22929         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
22930         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
22931
22932         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
22933         Call var_location debug hook even on CALL_INSNs.
22934         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
22935         * rtl.def (ENTRY_VALUE): New.
22936         * dwarf2out.c: Include cfglayout.h.
22937         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
22938         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
22939         (struct call_arg_loc_node): New type.
22940         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
22941         tail_call_site_count): New variables.
22942         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
22943         DW_TAG_GNU_call_site_parameter.
22944         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
22945         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
22946         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
22947         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
22948         and DW_AT_GNU_all_source_call_sites.
22949         (mem_loc_descriptor): Handle ENTRY_VALUE.
22950         (add_src_coords_attributes): Don't add enything if
22951         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
22952         (dwarf2out_abstract_function): Save and clear call_arg_location,
22953         call_site_count and tail_call_site_count around dwarf2out_decl call.
22954         (gen_call_site_die): New function.
22955         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
22956         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
22957         (dwarf2out_function_decl): Clear call_arg_locations,
22958         call_arg_loc_last, set call_site_count and tail_call_site_count
22959         to -1 and free block_map.
22960         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
22961         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
22962         followed by any real instructions.
22963         (dwarf2out_begin_function): Set call_site_count and
22964         tail_call_site_count to 0.
22965         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
22966         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
22967         attempt to force a DIE for it and worst case remove the attribute.
22968         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
22969         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
22970         the decl itself.
22971         * var-tracking.c: Include tm_p.h.
22972         (vt_stack_adjustments): For calls call note_register_arguments.
22973         (argument_reg_set): New variable.
22974         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
22975         ensure the VALUE is resolved.
22976         (call_arguments): New variable.
22977         (prepare_call_arguments): New function.
22978         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
22979         (struct expand_loc_callback_data): Add ignore_cur_loc field.
22980         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
22981         always use the best expression.
22982         (vt_expand_loc): Add ignore_cur_loc argument.
22983         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
22984         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
22985         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
22986         note for all calls.
22987         (vt_add_function_parameter): Use cselib_lookup_from_insn.
22988         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
22989         argument.  Don't call cselib_preserve_only_values and
22990         cselib_reset_table.
22991         (note_register_arguments): New function.
22992         (vt_initialize): Compute argument_reg_set.  Call
22993         vt_add_function_parameters before processing basic blocks instead of
22994         afterwards.  For calls call prepare_call_arguments before calling
22995         cselib_process_insn.
22996         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
22997         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
22998         (var-tracking.o): Depend on $(TM_P_H).
22999         * cfglayout.h (insn_scope): New prototype.
23000         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
23001         * cfglayout.c (insn_scope): No longer static.
23002         * insn-notes.def (CALL_ARG_LOCATION): New.
23003         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
23004         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
23005         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
23006         nothing for DECL_EXTERNAL BLOCK_VARS.
23007
23008 2011-03-16  Alan Modra  <amodra@gmail.com>
23009
23010         PR target/45844
23011         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
23012         create invalid offset address for vsx splat insn.
23013         * config/rs6000/predicates.md (splat_input_operand): New.
23014         * config/rs6000/vsx.md (vsx_splat_*): Use it.
23015
23016 2011-03-15  Xinliang David Li  <davidxl@google.com>
23017
23018         PR c/47837
23019         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
23020         (normalize_preds): New function.
23021         (is_use_properly_guarded): Normalize def predicates.
23022
23023 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23024
23025         PR target/46788
23026         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
23027         in the output template.
23028
23029 2011-03-15  Richard Guenther  <rguenther@suse.de>
23030
23031         PR middle-end/47650
23032         * tree-pretty-print.c (dump_function_declaration): Properly
23033         dump unprototyped and varargs function types.
23034
23035 2011-03-15  Richard Guenther  <rguenther@suse.de>
23036
23037         PR tree-optimization/13954
23038         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
23039         and friends.
23040
23041 2011-03-15  Richard Guenther  <rguenther@suse.de>
23042
23043         PR tree-optimization/48037
23044         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
23045         selects into BIT_FIELD_REFs.
23046         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
23047         vector select.
23048
23049 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
23050
23051         PR tree-optimization/48129
23052         * builtins.c (fold_builtin_snprintf): Convert to type of
23053         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
23054         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
23055
23056 2011-03-15  Richard Guenther  <rguenther@suse.de>
23057
23058         PR tree-optimization/41490
23059         * tree-ssa-dce.c (propagate_necessity): Handle returns without
23060         value but with VUSE.
23061         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
23062         return statements.
23063         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
23064         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
23065         * tree-tailcall.c (find_tail_calls): Ignore returns.
23066
23067 2011-03-15  Richard Guenther  <rguenther@suse.de>
23068
23069         PR middle-end/48031
23070         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
23071         or variable-indexed array accesses when in gimple form.
23072
23073 2011-03-15  Richard Guenther  <rguenther@suse.de>
23074
23075         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
23076
23077 2011-03-15  Alan Modra  <amodra@gmail.com>
23078
23079         PR target/48032
23080         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
23081         presume symbol_refs without a symbol_ref_decl are suitably
23082         aligned, nor other trees we may see here.  Handle anchor symbols.
23083         (legitimate_constant_pool_address_p): Comment.  Add mode param.
23084         Check cmodel=medium addresses.  Adjust all calls.
23085         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
23086         creating cmodel=medium optimized access to locals.
23087         * config/rs6000/constraints.md (R): Pass QImode to
23088         legitimate_constant_pool_address_p.
23089         * config/rs6000/predicates.md (input_operand): Pass mode to
23090         legitimate_constant_pool_address_p.
23091         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
23092         Update prototype.
23093
23094 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23095
23096         PR target/48053
23097         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
23098         64-bit constants being loaded into registers other than GPRs such
23099         as loading 0 into a VSX register.
23100
23101 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23102
23103         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
23104
23105 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23106
23107         PR middle-end/47917
23108         * builtins.c (fold_builtin_snprintf): New function.
23109         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
23110         (fold_builtin_4): Likewise.
23111
23112         PR middle-end/38878
23113         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
23114         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
23115         and C - X == X also strip nops from +/-/p+ operand.
23116         When optimizing -X == C, fold C to arg0's type.
23117
23118         PR debug/47946
23119         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
23120         emit it as add_AT_int instead of add_AT_unsigned.
23121
23122 2011-03-14  Tom Tromey  <tromey@redhat.com>
23123
23124         * unwind-dw2.c: Include sys/sdt.h if it exists.
23125         (_Unwind_DebugHook): Use STAP_PROBE2.
23126         * config.in, configure: Rebuild.
23127         * configure.ac: Check for sys/sdt.h.
23128
23129 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
23130
23131         * config/i386/i386.md (ROUND_FLOOR): New constant.
23132         (ROUND_CEIL): Ditto.
23133         (ROUND_TRUNC): Ditto.
23134         (ROUND_MXCSR): Ditto.
23135         (ROUND_NO_EXC): Ditto.
23136         (rint<mode>2): Use new defines instead of numerical constants.
23137         (floor<mode>2): Ditto.
23138         (ceil<mode>2): Ditto.
23139         (btrunc<mode>2): Ditto.
23140         * config/i386/i386-builtin-types.def: Define ROUND function type
23141         aliases.
23142         * config/i386/i386.c (enum ix86_builtins): Add
23143         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
23144         (struct builtin_description): Add
23145         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
23146         (ix86_expand_sse_round): New static function.
23147         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
23148         function types.
23149         (ix86_builtin_vectorized_function): Handle
23150         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23151
23152 2011-03-14  Tom Tromey  <tromey@redhat.com>
23153
23154         * c-parser.c (c_parser_asm_string_literal): Clear
23155         warn_overlength_strings.
23156
23157 2011-03-14  Tom Tromey  <tromey@redhat.com>
23158
23159         * c-parser.c (disable_extension_diagnostics): Save
23160         warn_overlength_strings.
23161         (restore_extension_diagnostics): Restore warn_overlength_strings.
23162
23163 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23164
23165         * BASE-VER: Change to 4.7.0.
23166
23167 2011-03-14  Richard Guenther  <rguenther@suse.de>
23168
23169         PR middle-end/48098
23170         * tree.c (build_vector_from_val): Adjust assert to requirements
23171         and reality.
23172
23173 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23174
23175         PR bootstrap/48102
23176         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
23177
23178 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
23179
23180         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
23181         terms of target_flags_explicit. Adjust copyright year.
23182
23183         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
23184         * config/rs6000/t-freebsd: New file. Add override for
23185         LIB2FUNCS_EXTRA.
23186
23187 2011-03-13  Chris Demetriou  <cgd@google.com>
23188
23189         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
23190         (-fno-diagnostics-show-option): this, to reflect current default.
23191         (-Werror=): Update text about -fno-diagnostics-show-option.
23192
23193 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
23194
23195         PR target/48053
23196         * config/rs6000/predicates.md (easy_vector_constant_add_self,
23197         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
23198         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
23199         mode is not V2DImode or V2DFmode.
23200         (vspltis_constant): Do not handle V2DImode and V2DFmode.
23201         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
23202         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
23203         registers to 0.
23204         (movdi_internal64): Likewise.
23205
23206 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
23207
23208         PR tree-optimization/47127
23209         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
23210         parameter.
23211         (set_cloog_options): Same.
23212         (scop_to_clast): Same.
23213         (print_clast_stmt): Do not call cloog_state_malloc and
23214         cloog_state_free.
23215         (print_generated_program): Same.
23216         (gloog): Same.
23217         * graphite-clast-to-gimple.h (cloog_state): Declared.
23218         (scop_to_clast): Adjust declaration.
23219         * graphite.c (cloog_state): Defined here.
23220         (graphite_initialize): Call cloog_state_malloc.
23221         (graphite_finalize): Call cloog_state_free.
23222
23223 2011-03-11  Jason Merrill  <jason@redhat.com>
23224
23225         * attribs.c (lookup_attribute_spec): Take const_tree.
23226         * tree.h: Adjust.
23227
23228 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
23229
23230         * config/sparc/sparc.c (sparc_option_override): Use
23231         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
23232
23233 2011-03-11  Richard Guenther  <rguenther@suse.de>
23234
23235         PR tree-optimization/48067
23236         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
23237         multiplication result will be only used once on the target
23238         stmt.
23239
23240 2011-03-11  Richard Guenther  <rguenther@suse.de>
23241
23242         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
23243
23244 2011-03-11  Richard Guenther  <rguenther@suse.de>
23245
23246         PR lto/48073
23247         * tree.c (find_decls_types_r): Do not walk types only reachable
23248         from IDENTIFIER_NODEs.
23249
23250 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23251
23252         PR middle-end/48044
23253         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
23254         all vnode->force_output nodes as needed.
23255
23256 2011-03-11  Jason Merrill  <jason@redhat.com>
23257
23258         PR c++/48069
23259         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
23260         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
23261
23262 2011-03-11  Martin Jambor  <mjambor@suse.cz>
23263
23264         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
23265         cgraph_node.
23266
23267 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23268
23269         PR tree-optimization/48063
23270         * ipa-inline.c (cgraph_decide_inlining): Don't try to
23271         inline functions called once if !tree_can_inline_p (node->callers).
23272
23273 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
23274
23275         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
23276         extra_objs.
23277         * config/score/score3.c: Delete.
23278         * config/score/score3.h: Delete.
23279         * config/score/mul-div.S: Delete.
23280         * config/score/sfp-machine.h: Add new file.
23281         * config/score/constraints.md: Add new file.
23282         * config/score/t-score-softfp: Add new file.
23283         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
23284         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
23285         (score7_extra_constraint): Delete.
23286         (score7_option_override): Remove unused code.
23287         * config/score/score.c: Remove score3 and score5 define and code.
23288         * config/score/score.h: Remove score3 and score5 define and code.
23289         * config/score/score.md: Remove score3 template and unusual insn.
23290         * config/score/score.opt: Remove score3 and score5 options.
23291
23292 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23293
23294         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
23295         when _HPUX_SOURCE is defined.
23296         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
23297
23298 2011-03-10  Jason Merrill  <jason@redhat.com>
23299
23300         PR c++/48029
23301         * stor-layout.c (layout_type): Don't set structural equality
23302         on arrays of incomplete type.
23303         * tree.c (type_hash_eq): Handle comparing them properly.
23304
23305 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
23306
23307         PR debug/48043
23308         * config/s390/s390.c (s390_delegitimize_address): Make sure the
23309         result mode matches original rtl mode.
23310
23311 2011-03-10  Nick Clifton  <nickc@redhat.com>
23312
23313         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
23314         (andsi3, andsi3_flags): Fix timings for three operand alternative.
23315
23316 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
23317
23318         PR rtl-optimization/47866
23319         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
23320         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
23321         if target wasn't scalar.
23322         * function.c (assign_stack_temp_for_type): Assert that neither
23323         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
23324         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
23325         macro.
23326         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
23327
23328 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23329
23330         * config/s390/s390-protos.h (s390_label_align): New prototype.
23331         * config/s390/s390.c (s390_label_align): New function.
23332         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
23333
23334 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
23335
23336         PR target/47755
23337         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
23338         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
23339         (output_vec_const_move): Ditto.
23340
23341 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
23342
23343         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
23344         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
23345         * config/mips/mips.c (mips_preferred_reload_class): Make static.
23346         Change 'rclass' argument and result type to reg_class_t.
23347         (TARGET_PREFERRED_RELOAD_CLASS): Define.
23348
23349 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
23350
23351         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23352         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
23353         (TARGET_MEMORY_MOVE_COST): Define.
23354         (avr_register_move_cost, avr_memory_move_cost): New Functions.
23355
23356 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
23357
23358         PR debug/47881
23359         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
23360         removed anything.
23361
23362         PR tree-optimization/48022
23363         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
23364         for EQ/NE_EXPR.
23365
23366 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
23367
23368         PR debug/47991
23369         * var-tracking.c (find_use_val): Return NULL for
23370         cui->sets && cui->store_p BLKmode MEMs.
23371
23372 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
23373
23374         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
23375         Remove.
23376         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
23377         xstormy16_print_operand_address): Remove.
23378         * config/stormy16/stormy16.c (xstormy16_print_operand,
23379         xstormy16_print_operand_address): Make static.
23380         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23381
23382 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
23383
23384         PR target/47862
23385         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23386         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
23387         before definition.
23388
23389 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
23390
23391         PR bootstrap/48000
23392         * cfgloopmanip.c (fix_bb_placements): Return immediately
23393         if FROM is BASE_LOOP's header.
23394
23395 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
23396
23397         * gimplify.c (gimplify_function_tree): Fix building calls
23398         to __builtin_return_address.
23399
23400 2011-03-07  Alan Modra  <amodra@gmail.com>
23401
23402         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
23403         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
23404         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
23405         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
23406         return_mode args.
23407         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
23408         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
23409         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
23410         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
23411         * config/rs6000/rs6000.c
23412         (rs6000_elf_end_indicate_exec_stack): Rename to..
23413         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
23414         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
23415         (rs6000_file_start): ..here.
23416         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
23417         file scope variables.
23418         (call_ABI_of_interest): New function.
23419         (init_cumulative_args): Set above vars when function return value
23420         is a float, vector, or small struct.
23421         (rs6000_function_arg_advance_1): Likewise for function args.
23422         (rs6000_va_start): Set rs6000_passes_float if variable arg function
23423         references float args.
23424
23425 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
23426
23427         * doc/cfg.texi: Remove "See" before @ref.
23428         * doc/invoke.texi: Likewise.
23429
23430 2011-03-05  Jason Merrill  <jason@redhat.com>
23431
23432         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
23433
23434 2011-03-05  Anthony Green  <green@moxielogic.com>
23435
23436         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
23437
23438 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
23439
23440         PR rtl-optimization/47899
23441         * cfgloopmanip.c (fix_bb_placements): Fix first argument
23442         to flow_loop_nested_p when moving the loop upward.
23443
23444 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
23445
23446         PR target/47719
23447         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
23448
23449 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
23450
23451         PR tree-optimization/47967
23452         * ipa-cp.c (build_const_val): Return NULL instead of creating
23453         VIEW_CONVERT_EXPR for mismatching sizes.
23454         (ipcp_create_replace_map): Return NULL if build_const_val failed.
23455         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
23456         give up on versioning.
23457
23458 2011-03-05  Alan Modra  <amodra@gmail.com>
23459
23460         PR target/47986
23461         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23462         full cmodel medium/large lo_sum + high addresses.
23463
23464 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23465
23466         * config/s390/s390.c (s390_decompose_address): Reject non-literal
23467         pool references in UNSPEC_LTREL_OFFSET.
23468
23469 2011-03-04  Jan Hubicka  <jh@suse.cz>
23470
23471         PR lto/47497
23472         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
23473         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
23474         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
23475         Add node pointers.
23476         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
23477         cgraph_add_thunk): Add node pointers.
23478         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
23479         associated to right node.
23480         (input_node): Update use of cgraph_same_body_alias
23481         and cgraph_add_thunk.
23482
23483 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23484
23485         * config/i386/i386.opt (mprefer-avx128): New flag.
23486         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
23487         modes when the flag -mprefer-avx128 is on.
23488
23489 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
23490
23491         * dwarf2out.c (compare_loc_operands): Fix address handling.
23492
23493 2011-03-04  Alan Modra  <amodra@gmail.com>
23494
23495         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
23496
23497 2011-03-04  Richard Guenther  <rguenther@suse.de>
23498
23499         PR middle-end/47968
23500         * expmed.c (extract_bit_field_1): Prefer vector modes that
23501         vec_extract patterns can handle.
23502
23503 2011-03-04  Richard Guenther  <rguenther@suse.de>
23504
23505         PR middle-end/47975
23506         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
23507
23508 2011-03-04  Richard Henderson  <rth@redhat.com>
23509
23510         * explow.c (emit_stack_save): Remove 'after' parameter.
23511         (emit_stack_restore): Likewise.
23512         * expr.h: Update to match.
23513         * builtins.c, calls.c, stmt.c: Likewise.
23514         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
23515         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
23516         * function.c (expand_function_end): Insert the emit_stack_save
23517         sequence before parm_birth_insn instead of after.
23518
23519 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
23520
23521         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
23522         (ssse3_pmaddubsw128): Ditto.
23523         (ssse3_pmaddubsw): Ditto.
23524
23525 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
23526
23527         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
23528
23529 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
23530
23531         PR c/47963
23532         * gimplify.c (omp_add_variable): Only call omp_notice_variable
23533         on TYPE_SIZE_UNIT if it is a DECL.
23534
23535         PR debug/47283
23536         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
23537         first operand is not is_gimple_mem_ref_addr, try to fold it.
23538         If the operand still isn't is_gimple_mem_ref_addr, clear
23539         MEM_EXPR on op0.
23540
23541 2011-03-03  Richard Guenther  <rguenther@suse.de>
23542
23543         PR middle-end/47283
23544         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
23545         match comment.
23546         (refs_may_alias_p_1): For release branches return true if
23547         we are confused by our input.
23548
23549 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23550
23551         * config/s390/s390.c (s390_function_value): Rename to ...
23552         (s390_function_and_libcall_value): ... this.
23553         (s390_function_value): New function.
23554         (s390_libcall_value): New function.
23555         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
23556         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
23557         target macro definitions.
23558         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
23559
23560 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
23561
23562         * config/i386/freebsd64.h (CC1_SPEC): Define.
23563         * config/i386/linux64.h (CC1_SPEC): Define.
23564         * config/i386/x86-64.h (CC1_SPEC): Don't define.
23565
23566 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
23567
23568         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23569         Remove.
23570         * config/stormy16/stormy16.c: Include reload.h.
23571         (xstormy16_memory_move_cost): New function.
23572         (TARGET_MEMORY_MOVE_COST): Define.
23573
23574 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
23575
23576         PR rtl-optimization/47925
23577         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
23578         with side effects.  Remove the more-specific check for volatile asms.
23579
23580 2011-03-02  Alan Modra  <amodra@gmail.com>
23581
23582         PR target/47935
23583         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
23584         toc relative addresses for valid offsets.
23585
23586 2011-03-01  Richard Guenther  <rguenther@suse.de>
23587
23588         PR tree-optimization/47890
23589         * tree-vect-loop.c (get_initial_def_for_induction): Set
23590         related stmt properly.
23591
23592 2011-03-01  Richard Guenther  <rguenther@suse.de>
23593
23594         PR lto/47924
23595         * lto-streamer.c (lto_record_common_node): Also register
23596         the canonical type.
23597
23598 2011-03-01  Richard Guenther  <rguenther@suse.de>
23599
23600         PR lto/46911
23601         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23602         Do not stream DECL_ABSTRACT_ORIGIN.
23603         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23604         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23605         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23606         Do not stream DECL_ABSTRACT_ORIGIN.
23607         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23608         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23609
23610 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
23611
23612         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
23613         FUNCTION_VALUE_REGNO_P): Remove.
23614         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
23615         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
23616         Add 'outgoing' argument.
23617         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
23618         function.
23619         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23620         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23621
23622 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
23623
23624         PR debug/28047
23625         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
23626         (lookup_filename): Likewise.
23627         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
23628
23629 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
23630             Jakub Jelinek  <jakub@redhat.com>
23631
23632         PR middle-end/47893
23633         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
23634         (assign_stack_local_1): Change last argument type to int.
23635         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
23636         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
23637         don't record padding space into frame_space_list nor use those areas.
23638         (assign_stack_local): Adjust caller.
23639         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
23640         of assign_stack_local, pass 0 as last argument.
23641         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
23642         callers.
23643
23644 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
23645
23646         PR debug/47283
23647         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
23648         Use target address_mode and pointer_mode hooks instead of hardcoded
23649         Pmode and ptr_mode.  Handle some simple cases of extending if
23650         POINTERS_EXTEND_UNSIGNED < 0.
23651         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
23652         Call convert_debug_memory_address.
23653         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
23654         convert_debug_memory_address.
23655
23656         PR middle-end/46790
23657         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
23658         * configure: Regenerated.
23659         * config.in: Regenerated.
23660         * varasm.c (default_function_section): Return NULL
23661         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
23662
23663 2011-02-28  Martin Jambor  <mjambor@suse.cz>
23664
23665         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
23666         the description to match the printed values.
23667
23668 2011-02-28  Richard Guenther  <rguenther@suse.de>
23669
23670         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
23671         of the copied scope tree.
23672
23673 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23674
23675         * doc/extend.texi (Function Attributes): Avoid deeply (and
23676         wrongly) nested tables.
23677
23678 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
23679
23680         PR middle-end/47903
23681         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
23682         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
23683         r isn't op0 nor op1.
23684
23685 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23686
23687         * config/avr/avr.md: Remove magic comment for emacs.
23688
23689 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23690
23691         PR target/45261
23692         * config/avr/avr.c (avr_option_override): Use error on bad options.
23693         (avr_help): New function.
23694         (TARGET_HELP): Define.
23695
23696 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
23697
23698         PR target/42240
23699         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
23700         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
23701
23702 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
23703
23704         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
23705         (ARM Options): Ditto.
23706         (i386 and x86-64 Options): Ditto.
23707         (RX Options): Ditto.
23708         (SPARC Options): Ditto.
23709
23710 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
23711
23712         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
23713         FreeBSD 6 and later.  Generally use cpu generic.
23714
23715 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23716
23717         * doc/cpp.texi: Update copyright years.
23718
23719 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
23720
23721         PR target/46898
23722         * config/lm32/lm32.md (ashrsi3): Added needed variable.
23723
23724 2011-02-25  Jon Beniston  <jon@beniston.com>
23725
23726         PR target/46898
23727         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
23728         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
23729         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
23730         (lm32_block_move_inline): Add type cast to remove warning.
23731         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
23732         (gen_int_relational): Move declarations to start of function.
23733
23734 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23735
23736         PR tree-optimization/45470
23737         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
23738         can throw internally only.
23739         * tree-vect-stmts.c (vectorizable_call): Likewise.
23740
23741 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
23742
23743         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
23744         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
23745         * config/stormy16/stormy16-protos.h
23746         (xstormy16_preferred_reload_class): Remove.
23747         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
23748         static. Change 'rclass' argument and return type to reg_class_t.
23749         (TARGET_PREFERRED_RELOAD_CLASS,
23750         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
23751
23752 2011-02-24  Richard Guenther  <rguenther@suse.de>
23753
23754         * lto-streamer-in.c (input_bb): Do not find referenced vars
23755         in debug statements.
23756
23757 2011-02-23  Jason Merrill  <jason@redhat.com>
23758
23759         * common.opt (fabi-version): Document v5 and v6.
23760
23761 2011-02-23  Richard Guenther  <rguenther@suse.de>
23762
23763         PR tree-optimization/47849
23764         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
23765
23766 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23767
23768         * opts-common.c (decode_cmdline_option): Print empty string
23769         argument as "" in decoded->orig_option_with_args_text.
23770         * gcc.c (execute): Print empty string argument as ""
23771         in the verbose output.
23772         (do_spec_1): Keep empty string argument.
23773
23774 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
23775
23776         * config.gcc: Declare score-* and crx-* obsolete.
23777
23778 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23779
23780         PR rtl-optimization/47763
23781         * web.c (web_main): Ignore naked clobber when replacing register.
23782
23783 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
23784
23785         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
23786         Remove.
23787
23788 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23789
23790         PR doc/47848
23791         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
23792
23793 2011-02-22  Mike Stump  <mikestump@comcast.net>
23794
23795         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
23796         assembler.
23797         * configure: Regenerate.
23798
23799 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
23800
23801         PR rtl-optimization/46002
23802         * ira-color.c (update_copy_costs): Change class intersection
23803         test to reg_class_contents[] test of 'hard_regno'.
23804
23805 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
23806
23807         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
23808         than Driver option.
23809         * config/hpux11.opt (mt): Likewise.
23810         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
23811         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
23812         * config/vax/elf.opt (mno-asm-pic): Likewise.
23813         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
23814
23815 2011-02-21  Mike Stump  <mikestump@comcast.net>
23816
23817         PR target/47822
23818         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
23819         tree so we can get save the type.
23820         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
23821         for CFString instead of trying to use past the end of the builtins.
23822         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
23823         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
23824         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
23825         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
23826         Rename to darwin_builtin_cfstring.
23827         (darwin_init_cfstring_builtins): Return the built type.
23828
23829 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
23830
23831         PR target/47840
23832         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
23833         (_mm256_insert_epi64): Use _mm_insert_epi64.
23834
23835 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
23836
23837         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23838         * config/stormy16/stormy16-protos.h
23839         (xstormy16_mode_dependent_address_p): Remove.
23840         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
23841         Make static. Change return type to bool. Change argument type to
23842         const_rtx. Remove dead code.
23843         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23844
23845 2011-02-21  Richard Guenther  <rguenther@suse.de>
23846
23847         PR lto/47820
23848         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23849         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23850         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
23851         TUs context.
23852         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23853         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23854
23855 2011-02-20  Richard Guenther  <rguenther@suse.de>
23856
23857         PR lto/47822
23858         * tree.c (free_lang_data_in_decl): Clean builtins from
23859         the TU decl BLOCK_VARS.
23860
23861 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
23862
23863         PR debug/47620
23864         PR debug/47630
23865         * haifa-sched.c (fix_tick_ready): Skip tick computation
23866         for debug insns.
23867
23868 2011-02-19  Richard Guenther  <rguenther@suse.de>
23869
23870         PR lto/47647
23871         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
23872         Remove lazy BLOCK_VARS streaming.
23873         (lto_input_ts_block_tree_pointers): Likewise.
23874         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
23875
23876 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23877
23878         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
23879
23880 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23881
23882         * config/i386/biarch32.h, config/i386/mach.h,
23883         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
23884
23885 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
23886
23887         PR target/47800
23888         * config/i386/i386.md (peephole2 for shift and plus): Use
23889         operands[1] original mode in the first insn.
23890
23891 2011-02-18  Mike Stump  <mikestump@comcast.net>
23892
23893         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
23894
23895 2011-02-18  Jan Hubicka  <jh@suse.cz>
23896
23897         PR middle-end/47788
23898         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
23899         to zero when the function is not inlinable at all.
23900
23901 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23902
23903         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
23904         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
23905         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
23906         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
23907         * config/pa/t-pa64: Likewise.
23908         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
23909
23910 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23911
23912         PR driver/47787
23913         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
23914
23915 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23916
23917         PR target/47792
23918         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
23919
23920 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
23921
23922         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
23923         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
23924         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
23925         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
23926         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
23927         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
23928         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
23929         m32r_load_postinc_p, m32r_store_preinc_predec_p,
23930         m32r_legitimate_address_p): New functions.
23931         * config/m32r/constraints.md (constraint "S"): Don't use
23932         STORE_PREINC_PREDEC_P.
23933         (constraint "U"): Don't use LOAD_POSTINC_P.
23934
23935 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
23936
23937         PR rtl-optimization/46178
23938         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
23939         compute ira_hard_regno_cover_class[].
23940
23941 2011-02-18  Richard Guenther  <rguenther@suse.de>
23942
23943         PR lto/47798
23944         * lto-streamer.h (lto_global_var_decls): Declare.
23945         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
23946         statics for global var processing.
23947
23948 2011-02-18  Richard Guenther  <rguenther@suse.de>
23949
23950         PR tree-optimization/47737
23951         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
23952         edge dominance check.
23953
23954 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23955
23956         PR debug/47780
23957         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
23958         avoid invalid rtx sharing.
23959
23960 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
23961
23962         * doc/cpp.texi (Obsolete Features): Add background on the
23963         origin of assertions.
23964
23965 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
23966
23967         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23968         objc_abi == 2.
23969         * config/darwin.c (output_objc_section_asm_op): Added support for
23970         ABI v1 and v2.
23971         (is_objc_metadata): New.
23972         (darwin_objc2_section): New.
23973         (darwin_objc1_section): New.
23974         (machopic_select_section): Added support for ABI v1 and v2.
23975         (darwin_emit_objc_zeroed): New.
23976         (darwin_output_aligned_bss): Detect objc metadata and treat it
23977         appropriately.
23978         (darwin_asm_output_aligned_decl_common): Same.
23979         (darwin_asm_output_aligned_decl_local): Same.
23980         * config/darwin-sections.def: Updated for ABI v1 and v2.
23981         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
23982         compiling Objective-C code for the NeXT runtime, default to using
23983         ABI version 0 for 32-bit, and version 2 for 64-bit.
23984
23985 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23986
23987         * common.opt (optimize_fast): New Variable.
23988         * opts.c (default_options_optimization): Use opts->x_optimize_fast
23989         instead of local variable ofast.
23990
23991 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
23992
23993         * doc/invoke.texi (fobjc-abi-version): Documented.
23994         (fobjc-nilcheck): Documented.
23995         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
23996         version.
23997
23998 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23999
24000         PR driver/47390
24001         * common.opt (export-dynamic): New Driver option.
24002         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
24003
24004 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24005
24006         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
24007
24008 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
24009             Jan Hubicka  <jh@suse.cz>
24010
24011         PR debug/47106
24012         PR debug/47402
24013         * cfgexpand.c (account_used_vars_for_block): Remove.
24014         (estimated_stack_frame_size): Use referenced vars.
24015         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
24016         that were referenced in the original function.  Test src_fn
24017         rather than cfun.  Drop redundant get_var_ann.
24018         (setup_one_parameter): Drop redundant get_var_ann.
24019         (declare_return_variable): Likewise.
24020         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
24021         (copy_arguments_for_versioning): Drop redundant get_var_ann.
24022         * ipa-inline.c (compute_inline_parameters): Do not compute
24023         disregard_inline_limits here.
24024         (compute_inlinable_for_current, pass_inlinable): New.
24025         (pass_inline_parameters): Require PROP_referenced_vars.
24026         * cgraphunit.c (cgraph_process_new_functions): Don't run
24027         compute_inline_parameters explicitly unless function is in SSA form.
24028         (cgraph_analyze_function): Set .disregard_inline_limits.
24029         * tree-sra.c (convert_callers): Compute inliner parameters
24030         only for functions already in SSA form.
24031
24032 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24033
24034         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
24035         -mlittle-endian-data.
24036
24037 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24038
24039         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
24040         -mno-fpu, not -fpu and -no-fpu.
24041         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
24042         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
24043
24044 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
24045
24046         PR target/43653
24047         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
24048         input reload with PLUS RTX.
24049
24050 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24051
24052         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
24053         of InverseVar(MDMX).
24054
24055 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24056
24057         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
24058         --m4-340.
24059
24060 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24061
24062         * config/mn10300/mn10300.opt (mno-crt0): New.
24063
24064 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24065
24066         * config/m68k/uclinux.opt (static-libc): New Driver option.
24067
24068 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24069
24070         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
24071
24072 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24073
24074         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
24075         %{muser-extend-enabled}.
24076
24077 2011-02-16  Richard Guenther  <rguenther@suse.de>
24078
24079         PR tree-optimization/47738
24080         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
24081         the TODO from tree_predictive_commoning.
24082
24083 2011-02-15  Jeff Law  <law@redhat.com>
24084
24085         Revert
24086         2011-01-25  Jeff Law  <law@redhat.com>
24087
24088         PR rtl-optimization/37273
24089         * ira-costs.c (scan_one_insn): Detect constants living in memory and
24090         handle them like argument loads from stack slots.  Do not double
24091         count memory for memory constants and argument loads from stack slots.
24092
24093 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
24094
24095         PR target/47755
24096         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
24097         mode for vector constants.  Remove code that checks for TImode.
24098
24099 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24100
24101         PR debug/47106
24102         PR debug/47402
24103         * cgraph.h (compute_inline_parameters): Return void.
24104         * ipa-inline.c (compute_inline_parameters): Adjust.
24105
24106 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24107
24108         PR debug/47106
24109         PR debug/47402
24110         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
24111         rather than decl.
24112         * cfgexpand.c (estimated_stack_frame_size): Likewise.
24113         * ipa-inline.c (compute_inline_parameters): Adjust.
24114
24115 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24116
24117         PR debug/47106
24118         PR debug/47402
24119         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
24120         Adjust all users.  Pass FN to...
24121         * tree-flow-inline.h (first_referenced_var): ... this.  Add
24122         fn argument.
24123         * ipa-struct-reorg.c: Adjust.
24124         * tree-dfa.c: Adjust.
24125         * tree-into-ssa.c: Adjust.
24126         * tree-sra.c: Adjust.
24127         * tree-ssa-alias.c: Adjust.
24128         * tree-ssa-live.c: Adjust.
24129         * tree-ssa.c: Adjust.
24130         * tree-ssanames.c: Adjust.
24131         * tree-tailcall.c: Adjust.
24132
24133 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24134
24135         PR debug/47106
24136         PR debug/47402
24137         * tree-flow.h (referenced_var_lookup): Add fn parameter.
24138         Adjust all callers.
24139         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
24140         * tree-flow-inline.h: Adjust.
24141         * gimple-pretty-print.c: Adjust.
24142         * tree-into-ssa.c: Adjust.
24143         * tree-ssa.c: Adjust.
24144         * cfgexpand.c: Adjust.
24145
24146 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24147
24148         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
24149         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24150         (EXTRA_CONSTRAINT): Delete.
24151         * config/iq2000/constraints.md: New file.
24152         * config/iq2000/iq2000.md: Include it.
24153         (define_insn ""): Delete.
24154         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
24155         unsupported constraint letters from patterns.
24156         (call_value, call_value_internal1): Likewise.
24157         (call_value_multiple_internal1): Likewise.
24158
24159 2011-02-15  Nick Clifton  <nickc@redhat.com>
24160
24161         * config/mn10300/mn10300.c: Include tm-constrs.h.
24162         (struct liw_data): New data structure describing an LIW candidate
24163         instruction.
24164         (extract_bundle): Use struct liw_data.  Allow small integer
24165         operands for some instructions.
24166         (check_liw_constraints): Use struct liw_data.  Remove swapped
24167         parameter.  Add comments describing the checks.  Fix bug when
24168         assigning the source of liw1 to the source of liw2.
24169         (liw_candidate): Delete.  Code moved into extract_bundle.
24170         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
24171         before swapping.
24172         * config/mn10300/predicates.md (liw_operand): New predicate.
24173         Allows registers and small integer constants.
24174         * config/mn10300/constraints.md (O): New constraint.  Accetps
24175         integers in the range -8 to +7 inclusive.
24176         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
24177         for moving a small integer into a register.  Give this alternative
24178         LIW attributes.
24179         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
24180         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
24181         using the J,K,L and M constraints,
24182         (liw): Remove SI mode on second operands to allow for HI and QI
24183         mode values.
24184         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
24185         instruction.
24186
24187 2011-02-15  Richard Guenther  <rguenther@suse.de>
24188
24189         PR tree-optimization/47743
24190         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
24191         for a non-type-compatible VN lookup bail out.
24192
24193 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24194
24195         * config/fr30/constraints.md: New file.
24196         * config/fr30/fr30.md: Include it.
24197         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
24198         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24199         (EXTRA_CONSTRAINT): Delete.
24200
24201 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24202
24203         * config/frv/constraints.md: New file.
24204         * config/frv/predicates.md: Include it.
24205         * config/frv/frv.c (reg_class_from_letter): Delete.
24206         (frv_option_override): Don't initialize it.
24207         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
24208         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
24209         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
24210         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24211         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
24212         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24213         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
24214         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
24215         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
24216         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
24217         (REG_CLASS_FROM_CONSTRAINT): Delete.
24218
24219 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
24220
24221         PR middle-end/47581
24222         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
24223         if frame size is 0 in a leaf function.
24224
24225 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24226
24227         PR pch/14940
24228         * config/alpha/host-osf.c: New file.
24229         * config/alpha/x-osf: New file.
24230         * config.host (alpha*-dec-osf*): Use it.
24231
24232 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24233
24234         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24235         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
24236         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
24237         (rx_mode_dependent_address_p): ...this. Make static. Change argument
24238         type to const_rtx.
24239         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24240
24241 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24242
24243         * config/stormy16/constraints.md: New file.
24244         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
24245         Use satisfies_constraint_Q and satisfies_constraint_R.
24246         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
24247         Delete.
24248         (xstormy16_legitiamte_address_p): Declare.
24249         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
24250         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24251         (EXTRA_CONSTRAINT): Delete.
24252         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
24253         Un-staticize.
24254         (xstormy16_extra_constraint_p): Delete.
24255
24256 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24257
24258         PR tree-optimization/46494
24259         * loop-unroll.c (split_edge_and_insert): Adjust comment.
24260         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
24261         (pass_rtl_loop_done): Add TODO_verify_flow.
24262         * fwprop.c (pass_rtl_fwprop): Likewise.
24263         * modulo-sched.c (pass_sms): Likewise.
24264         * tree-ssa-dom.c (pass_dominator): Likewise.
24265         * tree-ssa-loop-ch.c (pass_ch): Likewise.
24266         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
24267         (pass_tree_loop_done): Likewise.
24268         * tree-ssa-pre.c (execute_pre): Likewise.
24269         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
24270         * tree-ssa-sink.c (pass_sink_code): Likewise.
24271         * tree-vrp.c (pass_vrp): Likewise.
24272
24273 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24274
24275         * config/v850/constraints.md: New file.
24276         * config/v850/v850.md: Include it.
24277         * config/v850/predicates.md (reg_or_0_operand): Use
24278         satisfies_constraint_G.
24279         (special_symbolref_operand): Use satisfies_constraint_K.
24280         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
24281         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
24282         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
24283         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24284         (EXTRA_CONSTRAINT): Delete.
24285         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
24286         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
24287         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
24288
24289 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24290
24291         PR target/47696
24292         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
24293         description.
24294
24295 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24296
24297         * config/mcore/constraints.md: New file.
24298         * config/mcore/mcore.md: Include it.
24299         * config/mcore/mcore.c (reg_class_from_letter): Delete.
24300         * config/mcore/mcore.h (reg_class_from_letter): Delete.
24301         (REG_CLASS_FROM_LETTER): Delete.
24302         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
24303         insn_const_int_ok_for_constraint.
24304         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
24305         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
24306         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24307         (EXTRA_CONSTRAINT): Delete.
24308
24309 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24310
24311         PR ada/41929
24312         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
24313         (IS_SIGHANDLER): Define.
24314         (sparc64_is_sighandler): New function, split off from
24315         sparc64_fallback_frame_state.
24316         (sparc_is_sighandler): New function, split off from
24317         sparc_fallback_frame_state.
24318         (sparc64_fallback_frame_state): Merge with ...
24319         (sparc_fallback_frame_state): ... this into ...
24320         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
24321         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
24322         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
24323         stack instead of hardcoded offsets.
24324
24325 2011-02-14  Andriy Gapon  <avg@freebsd.org>
24326
24327         PR target/45808
24328         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
24329
24330 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24331
24332         * configure: Regenerate.
24333
24334 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
24335
24336         PR driver/45731
24337         * gcc.c (asm_options): Correct spec matching --target-help.
24338
24339 2011-02-12  Martin Jambor  <mjambor@suse.cz>
24340
24341         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
24342         to gimple call error.
24343
24344 2011-02-12  Mike Stump  <mikestump@comcast.net>
24345
24346         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
24347         comments in backslash regions.
24348
24349 2011-02-12  Mike Stump  <mikestump@comcast.net>
24350             Jakub Jelinek  <jakub@redhat.com>
24351             Iain Sandoe  <iains@gcc.gnu.org>
24352
24353         PR target/47324
24354         * dwarf2out.c (output_cfa_loc): When required, apply the
24355         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
24356         (output_loc_sequence): Likewise.
24357         (output_loc_operands_raw): Likewise.
24358         (output_loc_sequence_raw): Likewise.
24359         (output_cfa_loc): Likewise.
24360         (output_loc_list): Suppress register number adjustment when
24361         calling output_loc_sequence()
24362         (output_die): Likewise.
24363
24364 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
24365
24366         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
24367         Remove macros.
24368         * config/xtensa/xtensa.c (xtensa_register_move_cost,
24369         xtensa_memory_move_cost): New functions.
24370         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
24371
24372 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
24373
24374         PR lto/47225
24375         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
24376         in the current directory.
24377         * configure: Rebuilt.
24378
24379 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24380
24381         * config/darwin.c (darwin_override_options): Add a hunk missed
24382         from the commit of r168571.  Trim comment line lengths and
24383         correct indents of the preceding block.
24384
24385 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24386
24387         * gcc.c (driver_handle_option): Concatenate the argument to -F with
24388         the switch.
24389
24390 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24391
24392         * common.opt (nostartfiles): New Driver option.
24393
24394 2011-02-11  Xinliang David Li  <davidxl@google.com>
24395
24396         PR tree-optimization/47707
24397         * tree-chrec.c (convert_affine_scev): Keep type precision.
24398
24399 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
24400
24401         PR tree-optimization/47420
24402         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
24403
24404 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
24405
24406         PR rtl-optimization/47614
24407         * rtl.h (check_for_inc_dec): Declare.
24408         * dse.c (check_for_inc_dec): Externalize...
24409         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
24410         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
24411
24412 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24413
24414         PR driver/47678
24415         * gcc.c (main): Do not compile inputs if there were errors in
24416         option handling.
24417         * opts-common.c (read_cmdline_option): Check for wrong language
24418         after other error checks.
24419
24420 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
24421
24422         * cgraph.c: Fix comment typos.
24423         * cgraph.h: Likewise.
24424         * cgraphunit.c: Likewise.
24425         * ipa-cp.c: Likewise.
24426         * ipa-inline.c: Likewise.
24427         * ipa-prop.c: Likewise.
24428         * ipa-pure-const.c: Likewise.
24429         * ipa-ref.c: Likewise.
24430         * ipa-reference.c: Likewise.
24431
24432 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
24433
24434         PR debug/47684
24435         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
24436
24437 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24438
24439         PR testsuite/47400
24440         * doc/sourcebuild.texi (Require Support): Document
24441         dg-require-ascii-locale.
24442
24443 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
24444
24445         * doc/lto.texi (Write summary): Fix missing parentheses.
24446
24447 2011-02-10  DJ Delorie  <dj@redhat.com>
24448
24449         * config/m32c/m32c.c (m32c_option_override): Disable
24450         -fcombine-stack-adjustments until flag value tracking and compare
24451         optimization can be rewritten.
24452
24453 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
24454
24455         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
24456         PROCESSOR_POWER7.
24457         (PROCESSOR_DEFAULT64): Likewise.
24458
24459 2011-02-10  Richard Henderson  <rth@redhat.com>
24460
24461         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
24462         change from 2011-02-03.
24463         * config/rx/rx.c (flags_from_code): Likewise.
24464         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
24465         is valid, n/pz otherwise.
24466         (rx_select_cc_mode): Return CCmode if Y is not zero.
24467
24468 2011-02-10  Richard Guenther  <rguenther@suse.de>
24469
24470         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
24471
24472 2011-02-10  Richard Guenther  <rguenther@suse.de>
24473
24474         PR tree-optimization/47677
24475         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
24476
24477 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
24478
24479         PR target/47665
24480         * combine.c (make_compound_operation): Only change shifts into
24481         multiplication for SCALAR_INT_MODE_P.
24482
24483 2011-02-10  Jie Zhang  <jie@codesourcery.com>
24484
24485         PR testsuite/47622
24486         Revert
24487         2011-02-05  Jie Zhang  <jie@codesourcery.com>
24488         PR debug/42631
24489         * web.c (entry_register): Don't clobber the number of the
24490         first uninitialized reference in used[].
24491
24492 2011-02-09  Richard Guenther  <rguenther@suse.de>
24493
24494         PR tree-optimization/47664
24495         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
24496         all edges again.
24497
24498 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
24499
24500         PR target/46481
24501         PR target/47032
24502         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
24503         PROCESSOR_POWER7.
24504         (PROCESSOR_DEFAULT64): Same.
24505         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
24506
24507 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24508
24509         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
24510
24511 2011-02-09  Martin Jambor  <mjambor@suse.cz>
24512
24513         PR middle-end/45505
24514         * tree-sra.c (struct access): New flags grp_scalar_read and
24515         grp_scalar_write.  Changed description of assignment read and write
24516         flags.
24517         (dump_access): Dump new flags, reorder all of them.
24518         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
24519         to detect multiple scalar reads.
24520         (analyze_access_subtree): Use the new scalar read write flags instead
24521         of the old flags.  Adjusted comments.
24522
24523 2011-02-08  DJ Delorie  <dj@redhat.com>
24524
24525         PR target/47548
24526         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
24527         patterns.
24528
24529 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24530
24531         * config/m68k/uclinux.opt: New.
24532         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
24533
24534 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24535
24536         * config/cris/elf.opt (sim): New Driver option.
24537
24538 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24539
24540         * config/xtensa/elf.opt: New.
24541         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
24542
24543 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24544
24545         * config/vax/elf.opt: New.
24546         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
24547
24548 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24549
24550         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
24551
24552 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24553
24554         * config/gnu-user.opt: New.
24555         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
24556         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
24557         *-*-uclinux*): Use gnu-user.opt.
24558
24559 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
24560
24561         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
24562         * config/i386/gnu.h (CPP_SPEC): Likewise.
24563
24564 2011-02-08  Ian Lance Taylor  <iant@google.com>
24565
24566         * common.opt (fcx-limited-range): Add SetByCombined flag.
24567         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
24568         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
24569         (fassociative-math, freciprocal-math): Likewise.
24570         (funsafe-math-optimizations): Likewise.
24571         * opth-gen.awk: Handle SetByCombined.
24572         * optc-gen.awk: Likewise.
24573         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
24574         (set_unsafe_math_optimizations_flags): Likewise.
24575         * doc/options.texi (Option properties): Document SetByCombined.
24576
24577 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24578
24579         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
24580         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
24581         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
24582         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
24583         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
24584
24585 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
24586
24587         PR tree-optimization/46834
24588         PR tree-optimization/46994
24589         PR tree-optimization/46995
24590         * graphite-sese-to-poly.c (used_outside_reduction): New.
24591         (detect_commutative_reduction): Call used_outside_reduction.
24592         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
24593         translate_scalar_reduction_to_array only when at least one
24594         loop-phi/close-phi tuple has been detected.
24595
24596 2011-02-08  Richard Guenther  <rguenther@suse.de>
24597
24598         PR middle-end/47639
24599         * tree-vect-generic.c (expand_vector_operations_1): Update
24600         stmts here ...
24601         (expand_vector_operations): ... not here.  Cleanup EH info
24602         and the CFG if required.
24603
24604 2011-02-08  Richard Guenther  <rguenther@suse.de>
24605
24606         PR tree-optimization/47641
24607         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
24608         require type compatibility.
24609
24610 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24611
24612         * gimple-low.c (lower_function_body): Don't remove the location of
24613         the return statement here.
24614         (lower_gimple_return): Do it here instead but only if the return
24615         statement is actually used twice.
24616
24617 2011-02-08  Richard Guenther  <rguenther@suse.de>
24618
24619         PR tree-optimization/47632
24620         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
24621         unused up_to_stmt parameter, return whether cfg-cleanup is
24622         necessary, remove EH info properly.
24623         (forward_propagate_into_gimple_cond): Adjust caller.
24624         (forward_propagate_into_cond): Likewise.
24625         (forward_propagate_comparison): Likewise.
24626         (tree_ssa_forward_propagate_single_use_vars): Make
24627         forward_propagate_comparison case similar to the two others.
24628
24629 2011-02-08  Nick Clifton  <nickc@redhat.com>
24630
24631         * config/mn10300/mn10300.opt (mliw): New command line option.
24632         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
24633         (liw_bundling): New automaton.
24634         (liw): New attribute.
24635         (liw_op): New attribute.
24636         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
24637         (movsi_internal): Add LIW attributes.
24638         (andsi3): Likewise.
24639         (iorsi3): Likewise.
24640         (xorsi3): Likewise.
24641         (addsi3): Separate register and immediate alternatives.
24642         Add LIW attributes.
24643         (subsi3): Likewise.
24644         (cmpsi): Likewise.
24645         (aslsi3): Likewise.
24646         (lshrsi3): Likewise.
24647         (ashrsi3): Likewise.
24648         (liw): New pattern.
24649         * config/mn10300/mn10300.c (liw_op_names): New
24650         (mn10300_print_operand): Handle 'W' operand descriptor.
24651         (extract_bundle): New function.
24652         (check_liw_constraints): New function.
24653         (liw_candidate): New function.
24654         (mn10300_bundle_liw): New function.
24655         (mn10300_reorg): New function.
24656         (TARGET_MACHINE_DEPENDENT_REORG): Define.
24657         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
24658         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
24659         __LIW__ or __NO_LIW__.
24660         * doc/invoke.texi: Describe the -mliw command line option.
24661
24662 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24663
24664         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
24665         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24666         pthread_mutex_unlock): Remove.
24667         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
24668         * config/pa/t-pa64: Likewise.
24669         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
24670         shared libc if not linking against libpthread.
24671         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24672
24673 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
24674
24675         PR target/47558
24676         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
24677         on 10.6 and later to ensure that we always use the unwinder from
24678         the system.  Only add -no_compact_unwind when tarteting darwin
24679         10.6 or later.
24680
24681 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
24682
24683         PR target/46997
24684         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
24685         (vec_interleave_lowv2sf): Ditto.
24686         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
24687         (vec_extract_oddv2sf): Ditto.
24688
24689 2011-02-07  Mike Stump  <mikestump@comcast.net>
24690
24691         PR target/42333
24692         Add __ieee_divdc3 entry point.
24693         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
24694         entry point.
24695         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
24696         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
24697         * config/darwin.c (darwin_rename_builtins): Add.
24698         * config/darwin-protos.h (darwin_rename_builtins): Add.
24699
24700 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24701
24702         PR target/47636
24703         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
24704         for the condition.
24705
24706 2011-02-07  Mike Stump  <mikestump@comcast.net>
24707
24708         * config/darwin.opt (mmacosx-version-min): Update default OS version.
24709
24710 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
24711
24712         PR target/47534
24713         * config/avr/libgcc.S (exit): Move .endfunc
24714
24715 2011-02-07  Richard Guenther  <rguenther@suse.de>
24716
24717         PR tree-optimization/47615
24718         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
24719         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
24720         (run_scc_vn): Initialize it.
24721         (visit_reference_op_load): Use it.
24722         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
24723
24724 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24725
24726         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
24727         DImode trapping arithmetic libfuncs.
24728
24729 2011-02-07  Richard Guenther  <rguenther@suse.de>
24730
24731         PR tree-optimization/47621
24732         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
24733         two duplicates ...
24734         (execute_update_addresses_taken): ... here.  Make it more
24735         conservative in what we accept.
24736
24737 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24738
24739         * config/sparc/freebsd.h (ASM_SPEC): Define.
24740         * config/sparc/vxworks.h (ASM_SPEC): Define.
24741
24742 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24743
24744         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24745
24746 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
24747
24748         * doc/invoke.texi: Remove reference to compiler internals from
24749         user documentation.
24750
24751         * reg-notes.def: Remove REG_VALUE_PROFILE.
24752         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
24753
24754 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
24755
24756         PR middle-end/47610
24757         * varasm.c (default_section_type_flags): If decl is NULL,
24758         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
24759
24760 2011-02-05  Jie Zhang  <jie@codesourcery.com>
24761
24762         PR debug/42631
24763         * web.c (entry_register): Don't clobber the number of the
24764         first uninitialized reference in used[].
24765
24766 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
24767
24768         PR tree-optimization/46194
24769         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
24770         (build_classic_dist_vector_1): Do not represent classic distance
24771         vectors when the access functions are variating in different loops.
24772
24773 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24774
24775         * config/mips/iris6.opt: New.
24776         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
24777
24778 2011-02-04  Richard Henderson  <rth@redhat.com>
24779             Steve Ellcey  <sje@cup.hp.com>
24780
24781         PR target/46997
24782         * config/ia64/predicates.md (mux1_brcst_element): New.
24783         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
24784         * config/ia64/ia64.c (ia64_unpack_assemble): New.
24785         (ia64_unpack_sign): New.
24786         (ia64_expand_unpack): Rewrite using new routines.
24787         (ia64_expand_widen_sum): Ditto.
24788         (ia64_expand_dot_prod_v8qi): Ditto.
24789         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
24790         routines, add endian check.
24791         (pmpy2_even): Rename from pmpy2_r, add endian check.
24792         (pmpy2_odd): Rename from pmpy2_l, add endian check.
24793         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
24794         (vec_widen_smult_hi_v4hi): Ditto.
24795         (vec_widen_umult_lo_v4hi): Ditto.
24796         (vec_widen_umult_hi_v4hi): Ditto.
24797         (mulv2si3): Change endian checks.
24798         (sdot_prodv4hi): Rewrite with new calls.
24799         (udot_prodv4hi): New.
24800         (vec_pack_ssat_v4hi): Add endian check.
24801         (vec_pack_usat_v4hi): Ditto.
24802         (vec_pack_ssat_v2si): Ditto.
24803         (max1_even): Rename from max1_r, add endian check.
24804         (max1_odd): Rename from max1_l, add endian check.
24805         (*mux1_rev): Format change.
24806         (*mux1_mix): Ditto.
24807         (*mux1_shuf): Ditto.
24808         (*mux1_alt): Ditto.
24809         (*mux1_brcst_v8qi): Use new predicate.
24810         (vec_extract_evenv8qi): Remove endian check.
24811         (vec_extract_oddv8qi): Ditto.
24812         (vec_interleave_lowv4hi): Format change.
24813         (vec_interleave_highv4hi): Ditto.
24814         (mix2_even): Rename from mix2_r, add endian check.
24815         (mix2_odd): Rename from mux2_l, add endian check.
24816         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
24817         (vec_extract_evenodd_helper): Format change.
24818         (vec_extract_evenv4hi): Remove endian check.
24819         (vec_extract_oddv4hi): Remove endian check.
24820         (vec_interleave_lowv2si): Format change.
24821         (vec_interleave_highv2si): Format change.
24822         (vec_initv2si): Remove endian check.
24823         (vecinit_v2si): Add endian check.
24824         (reduc_splus_v2sf): Add endian check.
24825         (reduc_smax_v2sf): Ditto.
24826         (reduc_smin_v2sf): Ditto.
24827         (vec_initv2sf): Remove endian check.
24828         (fpack): Add endian check.
24829         (fswap): Add endian check.
24830         (vec_interleave_highv2sf): Add endian check.
24831         (vec_interleave_lowv2sf): Add endian check.
24832         (fmix_lr): Add endian check.
24833         (vec_setv2sf): Format change.
24834         (*vec_extractv2sf_0_be): Use shift to extract operand.
24835         (*vec_extractv2sf_1_be): New.
24836         (vec_pack_trunc_v4hi): Add endian check.
24837         (vec_pack_trunc_v2si): Format change.
24838
24839 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
24840
24841         PR inline-asm/23200
24842         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
24843         do bb, locus and block comparison and disallow loads if it is not set.
24844         (stmt_is_replaceable_p): New function.
24845         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
24846         callers.
24847         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
24848         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
24849         SSA_NAME_DEF_STMT.
24850         * tree-flow.h (stmt_is_replaceable_p): New prototype.
24851
24852 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24853
24854         * config/rs6000/xilinx.opt: New.
24855         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
24856
24857 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24858
24859         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
24860
24861 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
24862
24863         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
24864         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24865         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
24866         secondary_reload_info, xtensa_secondary_reload): Remove.
24867         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
24868         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24869         (xtensa_preferred_reload_class): Make static. Change return and
24870         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
24871         Use CONST_DOUBLE_P predicate.
24872         (xtensa_preferred_output_reload_class): New function.
24873         (xtensa_secondary_reload): Make static.
24874
24875 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
24876
24877         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
24878         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
24879         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
24880
24881 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24882
24883         PR middle-end/31490
24884         * output.h (SECTION_RELRO): Define.
24885         (SECTION_MACH_DEP): Adjust.
24886         (get_variable_section): New prototype.
24887         * varpool.c (varpool_finalize_named_section_flags): New function.
24888         (varpool_assemble_pending_decls): Call it.
24889         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
24890         * cgraphunit.c (cgraph_output_in_order): Call
24891         varpool_finalize_named_section_flags.
24892         * varasm.c (get_section): Allow section flags conflicts between
24893         relro and read-only sections if the section hasn't been declared yet.
24894         Set SECTION_OVERRIDE after diagnosing section type conflict.
24895         (get_variable_section): No longer static.
24896         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
24897         readonly sections that need relocations.
24898         (decl_readonly_section_1): New function.
24899         (decl_readonly_section): Use it.
24900
24901         Revert:
24902         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
24903                     Steve Ellcey  <sje@cup.hp.com>
24904
24905         PR middle-end/31490
24906         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
24907         if section attribute used.
24908
24909 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24910
24911         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
24912         * config/darwin.c (SECTION_NO_ANCHOR): Define.
24913         (darwin_init_sections): Remove assertion.
24914
24915 2011-02-03  Nick Clifton  <nickc@redhat.com>
24916
24917         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
24918         lt and ge.
24919         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
24920         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
24921         instead of "n" and "pz".
24922         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
24923         CC_FLAG_S.
24924
24925 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24926
24927         PR target/47312
24928         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
24929         fma, expand FMA_EXPR as fma{,f,l} call.
24930
24931         PR lto/47274
24932         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
24933         copy them into a unsigned char variable and pass address of it to
24934         lto_output_data_stream.
24935
24936         PR target/47564
24937         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
24938         around backend_init_target and lang_dependent_init_target calls.
24939         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
24940         (verify_cgraph_node): Don't call set_cfun here.  Use
24941         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
24942         Set error_found for incorrectly represented calls to thunks.
24943
24944 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
24945
24946         PR debug/43092
24947         PR rtl-optimization/43494
24948         * rtl.h (for_each_inc_dec_fn): New type.
24949         (for_each_inc_dec): Declare.
24950         * rtlanal.c (struct for_each_inc_dec_ops): New type.
24951         (for_each_inc_dec_find_inc_dec): New fn.
24952         (for_each_inc_dec_find_mem): New fn.
24953         (for_each_inc_dec): New fn.
24954         * dse.c (struct insn_size): Remove.
24955         (replace_inc_dec, replace_inc_dec_mem): Remove.
24956         (emit_inc_dec_insn_before): New fn.
24957         (check_for_inc_dec): Use it, along with for_each_inc_dec.
24958         (canon_address): Pass mem modes to cselib_lookup.
24959         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
24960         (cselib_lookup_from_insn): Likewise.
24961         (cselib_subst_to_values): Likewise.
24962         * cselib.c (find_slot_memmode): New var.
24963         (cselib_find_slot): New fn.  Use it instead of
24964         htab_find_slot_with_hash everywhere.
24965         (entry_and_rtx_equal_p): Use find_slot_memmode.
24966         (autoinc_split): New fn.
24967         (rtx_equal_for_cselib_p): Rename and implement in terms of...
24968         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
24969         Deal with autoinc.  Special-case recursion into MEMs.
24970         (cselib_hash_rtx): Likewise.
24971         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
24972         address and MEM modes.
24973         (cselib_subst_to_values): Add memmode, pass it on.
24974         Deal with autoinc.
24975         (cselib_lookup): Add memmode argument, pass it on.
24976         (cselib_lookup_from_insn): Add memmode.
24977         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
24978         (struct cselib_record_autoinc_data): New.
24979         (cselib_record_autoinc_cb): New fn.
24980         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
24981         mode to cselib_lookup.  Reset autoinced REGs here instead of...
24982         (cselib_process_insn): ... here.
24983         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
24984         to cselib_lookup.
24985         (add_uses): Likewise, also to cselib_subst_to_values.
24986         (add_stores): Likewise.
24987         * sched-deps.c (add_insn_mem_dependence): Pass mode to
24988         cselib_subst_to_values.
24989         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
24990         * gcse.c (do_local_cprop): Adjusted.
24991         * postreload.c (reload_cse_simplify_set): Adjusted.
24992         (reload_cse_simplify_operands): Adjusted.
24993         * sel-sched-dump (debug_mem_addr_value): Pass mode.
24994
24995 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
24996
24997         PR tree-optimization/45122
24998         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
24999         unsafe assumptions when there's more than one loop exit.
25000
25001 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25002
25003         PR target/47272
25004         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25005         Document using vector double with the load/store builtins, and
25006         that the load/store builtins always use Altivec instructions.
25007
25008         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
25009         to use altivec memory instructions, even on VSX.
25010         (vector_altivec_store_<mode>): Ditto.
25011
25012         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
25013         function.
25014
25015         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25016         V2DF, V2DI support to load/store overloaded builtins.
25017
25018         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
25019         altivec load/store builtins for V2DF/V2DI types.
25020
25021         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
25022         set avoid indexed addresses on power6 if -maltivec.
25023         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
25024         vector_altivec_load/vector_altivec_store builtins.
25025         (altivec_expand_st_builtin): Ditto.
25026         (altivec_expand_builtin): Add VSX memory builtins.
25027         (rs6000_init_builtins): Add V2DI types to internal types.
25028         (altivec_init_builtins): Add support for V2DF/V2DI altivec
25029         load/store builtins.
25030         (rs6000_address_for_altivec): Insure memory address is appropriate
25031         for Altivec.
25032
25033         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
25034         vec_vsx_ld and vec_vsx_st.
25035         (vsx_store_<mode>): Ditto.
25036
25037         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
25038         variables to hold long long types for VSX vector memory builtins.
25039         (RS6000_BTI_unsigned_long_long): Ditto.
25040         (long_long_integer_type_internal_node): Ditti.
25041         (long_long_unsigned_type_internal_node): Ditti.
25042
25043         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
25044         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
25045         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
25046
25047         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
25048         short cuts.
25049         (vec_vsx_st): Ditto.
25050
25051 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25052
25053         * config/pa/pa-hpux10.opt: New.
25054         * config/hpux11.opt (pthread): New Driver option.
25055         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
25056         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
25057
25058 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25059
25060         * config/ia64/vms.opt: New.
25061         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
25062
25063 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25064
25065         PR target/47580
25066         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
25067         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
25068         generator functions.
25069         (vsx_floatuns<VSi><mode>2): Ditto.
25070         (vsx_fix_trunc<mode><VSi>2): Ditto.
25071         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
25072
25073 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25074
25075         * config/i386/djgpp.opt (posix): New Driver option.
25076
25077 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
25078
25079         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
25080         Move to the unsupported targets list.
25081
25082 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
25083
25084         PR rtl-optimization/47525
25085         * df-scan.c: Update copyright years.
25086         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
25087         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
25088
25089 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25090
25091         * config/i386/sysv4.h (TARGET_VERSION): Remove.
25092         (SUBTARGET_RETURN_IN_MEMORY): Remove.
25093         (ASM_OUTPUT_ASCII): Remove.
25094         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
25095
25096 2011-02-02  Jeff Law  <law@redhat.com>
25097
25098         PR middle-end/47543
25099         * reload.c (find_reloads_address): Handle reg+d address where both
25100         components are invalid by reloading the entire address.
25101
25102 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25103             Richard Guenther  <rguenther@suse.de>
25104
25105         PR tree-optimization/40979
25106         PR bootstrap/47044
25107         * passes.c (init_optimization_passes): After LIM call copy_prop
25108         and DCE to clean up.
25109         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
25110
25111 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25112
25113         PR tree-optimization/47576
25114         PR tree-optimization/47555
25115         * doc/invoke.texi (scev-max-expr-complexity): Documented.
25116         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25117         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
25118         * tree-scalar-evolution.c (follow_ssa_edge): Use
25119         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
25120
25121 2011-02-02  Richard Guenther  <rguenther@suse.de>
25122
25123         PR tree-optimization/47566
25124         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
25125
25126 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25127
25128         PR debug/47106
25129         PR debug/47402
25130         * tree-inline.c (declare_return_variable): Remove unused caller
25131         variable.
25132
25133         PR debug/47106
25134         PR debug/47402
25135         * tree-flow-inline.h (clear_is_used, is_used_p): New.
25136         * cfgexpand.c (account_used_vars_for_block): Use them.
25137         * tree-nrv.c (tree_nrv): Likewise.
25138         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
25139         (dump_scope_block): Likewise.
25140         (remove_unused_locals): Likewise.
25141
25142         PR debug/47106
25143         PR debug/47402
25144         * tree-inline.c (declare_return_variable): Add result decl to
25145         local decls only once.
25146         * gimple-low.c (record_vars_into): Mark newly-created variables
25147         as referenced.
25148
25149 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25150
25151         PR debug/47498
25152         PR debug/47501
25153         PR debug/45136
25154         PR debug/45130
25155         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25156         debug insns.
25157         (no_real_insns_p, schedule_block, set_priorities): Drop special
25158         treatment of boundary debug insns.
25159         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25160         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
25161         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25162         (BOUNDARY_DEBUG_INSN_P): Likewise.
25163         (SCHEDULE_DEBUG_INSN_P): Likewise.
25164         * sched-rgn.c (init_ready_list): Drop special treatment of
25165         boundary debug insns.
25166         * final.c (rest_of_clean_state): Clear notes' BB.
25167
25168 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25169
25170         * config/openbsd.opt (assert=): New Driver option.
25171
25172 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25173
25174         * config/i386/nto.opt: New.
25175         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
25176
25177 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25178
25179         * config/i386/netware.opt: New.
25180         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
25181
25182 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25183
25184         * config/interix.opt (posix): New Driver option.
25185
25186 2011-02-01  DJ Delorie  <dj@redhat.com>
25187
25188         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
25189
25190         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
25191         class for A0/A1.
25192
25193 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
25194
25195         PR tree-optimization/47561
25196         * toplev.c (process_options): Print the Graphite flags.  Add
25197         flag_loop_flatten to the list of options requiring Graphite.
25198
25199 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25200
25201         * config/i386/cygming.opt (posix): New Driver option.
25202
25203 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25204
25205         * config/arm/vxworks.opt: New.
25206         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
25207
25208 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25209
25210         * config/alpha/elf.opt: New.
25211         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
25212         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
25213
25214 2011-02-01  Richard Guenther  <rguenther@suse.de>
25215
25216         PR tree-optimization/47559
25217         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
25218         store-motion on references that can throw.
25219
25220 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
25221
25222         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
25223         * tree-pass.h (TDF_CSELIB): New macro.
25224         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
25225         cselib_lookup): Check for it rather than for TDF_DETAILS.
25226
25227 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
25228
25229         PR driver/47547
25230         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
25231         is HOST_BIT_BUCKET.
25232
25233         * opts.c (finish_options): Don't add x_aux_base_name if it is
25234         HOST_BIT_BUCKET.
25235
25236 2011-02-01  Richard Guenther  <rguenther@suse.de>
25237
25238         PR tree-optimization/47555
25239         Revert
25240         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
25241
25242         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25243
25244 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
25245
25246         PR gcc/46692
25247         * config/lm32/t-lm32: Add multilib for all CPU options.
25248
25249 2011-02-01  Richard Guenther  <rguenther@suse.de>
25250
25251         PR tree-optimization/47541
25252         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
25253         sure to have a field at offset zero.
25254
25255 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25256
25257         * config/arc/arc.opt (EB, EL): New Driver options.
25258
25259 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25260
25261         * config/alpha/osf5.opt: New.
25262         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
25263
25264 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25265
25266         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
25267
25268 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
25269
25270         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
25271         -floop-interchange.
25272         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
25273         is an alias of -floop-interchange and that it requires the
25274         Graphite infrastructure.
25275         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
25276         flag_loop_interchange based on the value of flag_tree_loop_linear.
25277
25278 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
25279             Richard Guenther  <rguenther@suse.de>
25280
25281         PR tree-optimization/47538
25282         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
25283         type instead of r1type, except for comparisons.  For right
25284         shifts and comparisons punt if there are mismatches in
25285         sizetype vs. non-sizetype types.
25286
25287 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25288
25289         * doc/sourcebuild.texi (Effective-Target Keywords): Document
25290         avx_runtime.
25291
25292 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25293
25294         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
25295         version number.
25296         * configure: Regenerate.
25297
25298 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25299
25300         * configure.ac (gcc_cv_ld_static_option): Define.
25301         (gcc_cv_ld_dynamic_option): Define.
25302         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
25303         instead.
25304         (HAVE_LD_STATIC_DYNAMIC): Update message.
25305         (LD_STATIC_OPTION): Define.
25306         (LD_DYNAMIC_OPTION): Define.
25307         * configure: Regenerate.
25308         * config.in: Regenerate.
25309         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
25310         HAVE_LD_STATIC_DYNAMIC]: Use them.
25311
25312 2011-01-31  Nick Clifton  <nickc@redhat.com>
25313
25314         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
25315         registers inside interrupt handlers if the handler is not a leaf
25316         function.
25317
25318 2011-01-31  Nick Clifton  <nickc@redhat.com>
25319
25320         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
25321         reg_renumber returning an INVALID_REGNUM.
25322
25323 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25324
25325         PR libgcj/44341
25326         * doc/install.texi: Document host options discarded when cross
25327         configuring target libraries.
25328
25329 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25330
25331         Reverted:
25332         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25333         PR debug/45136
25334         PR debug/45130
25335         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25336         debug insns.
25337         (no_real_insns_p, schedule_block, set_priorities): Drop special
25338         treatment of boundary debug insns.
25339         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25340         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25341         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25342         (BOUNDARY_DEBUG_INSN_P): Likewise.
25343         (SCHEDULE_DEBUG_INSN_P): Likewise.
25344         * sched-rgn.c (init_ready_list): Drop special treatment of
25345         boundary debug insns.
25346         * final.c (rest_of_clean-state): Clear notes' BB.
25347
25348 2011-01-31  Alan Modra  <amodra@gmail.com>
25349
25350         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
25351         toc relative expressions as we do in print_operand_address.
25352
25353 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
25354
25355         * doc/extend.texi: Follow spelling conventions.
25356         * doc/invoke.texi: Fix a typo.
25357
25358 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
25359
25360         * config/hpux11.opt: New.
25361         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
25362         ia64*-*-hpux*): Use hpux11.opt.
25363
25364 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
25365
25366         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
25367         to tmake_file.
25368
25369 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25370
25371         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
25372         support sites.
25373
25374 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25375
25376         * doc/install.texi (Binaries): Remove outdated reference for
25377         Motorola 68HC11/68HC12 downloads.
25378
25379 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25380
25381         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
25382         Drepper's paper.
25383
25384 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
25385
25386         PR bootstrap/47147
25387         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
25388         used by NetBSD.
25389
25390 2011-01-28  Ahmad Sharif  <asharif@google.com>
25391
25392         * value-prof.c (check_counter): Corrected error message.
25393
25394 2011-01-29  Jie Zhang  <jie@codesourcery.com>
25395
25396         * config/arm/arm.c (arm_legitimize_reload_address): New.
25397         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25398         arm_legitimize_reload_address.
25399         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
25400
25401 2011-01-28  Ian Lance Taylor  <iant@google.com>
25402
25403         * godump.c (go_define): Ignore macros whose definitions include
25404         two adjacent operands.
25405
25406 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
25407
25408         PR target/42894
25409         * varasm.c (force_const_mem): Store copy of x in desc->constant
25410         instead of x itself.
25411         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
25412         itself into REG_EQUAL note.
25413
25414 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
25415
25416         * config/freebsd.opt (posix, rdynamic): New Driver options.
25417
25418 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25419
25420         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
25421         -Bstatic/-Bdynamic.
25422         * configure: Regenerate.
25423
25424 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
25425
25426         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
25427         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
25428
25429 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
25430
25431         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
25432         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
25433         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25434         (s390_preferred_reload_class): Make static. Change return and
25435         'rclass' argument type to reg_class_t.
25436
25437 2011-01-27  Jan Hubicka  <jh@suse.cz>
25438
25439         PR middle-end/46949
25440         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
25441         (process_function_and_variable_attributes): Check defined weakrefs.
25442
25443 2011-01-27  Martin Jambor  <mjambor@suse.cz>
25444
25445         PR tree-optimization/47228
25446         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
25447         build_ref_for_offset.
25448
25449 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25450
25451         * config/spu/spu-elf.h (ASM_SPEC): Remove.
25452
25453 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
25454
25455         PR rtl-optimization/46856
25456         * postreload.c (reload_combine_recognize_const_pattern): Do not
25457         separate cc0 setter and user on cc0 targets.
25458
25459 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
25460
25461         PR c/43082
25462         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
25463         passed a VOID_TYPE expression, immediately emit an error and
25464         return error_mark_node.
25465
25466 2011-01-26  Jeff Law  <law@redhat.com>
25467
25468         PR rtl-optimization/47464
25469         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
25470         rather than may_trap_p as needed.
25471
25472 2011-01-26  DJ Delorie  <dj@redhat.com>
25473
25474         PR rtl-optimization/46878
25475         * combine.c (insn_a_feeds_b): Check for the implicit cc0
25476         setter/user dependency as well.
25477
25478 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
25479
25480         PR rtl-optimization/44469
25481         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
25482         after removing trivially dead basic blocks.
25483
25484 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25485
25486         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
25487         * config/frv/frv.h (LINK_SPEC): Likewise.
25488         * config/i386/netware.h (LINK_SPEC): Likewise.
25489         * config/m68k/linux.h (ASM_SPEC): Likewise.
25490         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25491         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25492         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25493         * config/sparc/linux.h (ASM_SPEC): Likewise.
25494         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25495         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25496
25497 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25498
25499         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
25500         * config/frv/frv.h (ASM_SPEC): Likewise.
25501         * config/m68k/linux.h (ASM_SPEC): Likewise.
25502         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25503         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
25504         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25505         * config/sparc/linux.h (ASM_SPEC): Likewise.
25506         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25507         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25508
25509 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25510
25511         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
25512         * config/frv/frv.h (LINK_SPEC): Likewise.
25513         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25514
25515 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25516
25517         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
25518         * config/frv/frv.h (ASM_SPEC): Likewise.
25519         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
25520         * config/m68k/linux.h (ASM_SPEC): Likewise.
25521         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25522         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25523         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25524         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
25525         * config/sparc/linux.h (ASM_SPEC): Likewise.
25526         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25527         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25528         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
25529
25530 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
25531
25532         PR target/46997
25533         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
25534         (*mux2): Ditto.
25535         (vec_extract_evenodd_help): Ditto.
25536         (vec_extract_evenv4hi): Ditto.
25537         (vec_extract_oddv4hi): Ditto.
25538         (vec_interleave_lowv2si): Ditto.
25539         (vec_interleave_highv2si): Ditto.
25540         (vec_extract_evenv2si): Ditto.
25541         (vec_extract_oddv2si: Ditto.
25542         (vec_pack_trunc_v2si): Ditto.
25543
25544 2011-01-22  Jan Hubicka  <jh@suse.cz>
25545
25546         PR target/47237
25547         * cgraph.h (cgraph_local_info): New field can_change_signature.
25548         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
25549         signature can change.
25550         (ipcp_estimate_growth): Call sequence simplify only if calle signature
25551         can change.
25552         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
25553         (cgraph_function_versioning): We can not change signature of functions
25554         that don't allow that.
25555         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
25556         (lto_input_node): Likewise.
25557         * ipa-inline.c (compute_inline_parameters): Compute
25558         local.can_change_signature.
25559         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
25560         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
25561         functions that can not change signature.
25562         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
25563         init_cumulative_args): Do not use local calling conventions
25564         for functions that can not change signature.
25565
25566 2011-01-22  Jan Hubicka  <jh@suse.cz>
25567
25568         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
25569
25570 2011-01-26  Richard Guenther  <rguenther@suse.de>
25571
25572         PR tree-optimization/47190
25573         * cgraphunit.c (process_common_attributes): New function.
25574         (process_function_and_variable_attributes): Use it.
25575
25576 2011-01-26  Richard Guenther  <rguenther@suse.de>
25577
25578         PR lto/47423
25579         * cgraphbuild.c (record_eh_tables): Record reference to personality
25580         function.
25581
25582 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
25583
25584         PR debug/45454
25585         * sel-sched.c (moveup_expr): Don't let debug insns prevent
25586         non-debug insns from moving up.
25587
25588 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25589
25590         PR target/40125
25591         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
25592         t-dlldir{,-x} fragment for build and add it to tmake_file.
25593         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
25594         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
25595         * config/i386/t-dlldir: New file.
25596         (SHLIB_DLLDIR): Define.
25597         * config/i386/t-dlldir-x: New file.
25598         (SHLIB_DLLDIR): Define.
25599         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
25600         (SHLIB_INSTALL): Use it.
25601
25602 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
25603
25604         PR target/47246
25605         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
25606         lower bound of the allowed Thumb-2 coprocessor load/store
25607         index range to -256. Add explaining comment.
25608
25609 2011-01-25  Ian Lance Taylor  <iant@google.com>
25610
25611         * godump.c (go_define): Improve lexing of macro expansion to only
25612         accept expressions which match Go spec.
25613
25614 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25615
25616         PR c++/43601
25617         * tree.c (handle_dll_attribute): Handle it.
25618         * doc/extend.texi (@item dllexport): Mention it.
25619         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
25620
25621 2011-01-25  Ian Lance Taylor  <iant@google.com>
25622
25623         PR tree-optimization/26854
25624         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
25625         (decl_jump_unsafe): Move higher in file, with no other change.
25626         (bind): Set has_jump_unsafe_decl if appropriate.
25627         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
25628         (check_earlier_gotos): Likewise.
25629         (c_check_switch_jump_warnings): Likewise.
25630
25631 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
25632
25633         * doc/invoke.texi (Warning Options): Add missing hyphen.
25634         (-fprofile-dir): Minor grammatical fixes.
25635         (-fbranch-probabilities): Likewise.
25636
25637 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25638
25639         PR debug/45136
25640         PR debug/45130
25641         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25642         debug insns.
25643         (no_real_insns_p, schedule_block, set_priorities): Drop special
25644         treatment of boundary debug insns.
25645         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25646         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25647         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25648         (BOUNDARY_DEBUG_INSN_P): Likewise.
25649         (SCHEDULE_DEBUG_INSN_P): Likewise.
25650         * sched-rgn.c (init_ready_list): Drop special treatment of
25651         boundary debug insns.
25652         * final.c (rest_of_clean-state): Clear notes' BB.
25653
25654 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25655
25656         * Makefile.in (LAMBDA_H): Removed.
25657         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
25658         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
25659         lambda-trans.o, and tree-loop-linear.o.
25660         (lto-symtab.o): Remove dependence on LAMBDA_H.
25661         (tree-loop-linear.o): Remove rule.
25662         (lambda-mat.o): Same.
25663         (lambda-trans.o): Same.
25664         (lambda-code.o): Same.
25665         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
25666         (tree-vect-slp.o): Same.
25667         * hwint.h (gcd): Moved here.
25668         (least_common_multiple): Same.
25669         * lambda-code.c: Removed.
25670         * lambda-mat.c: Removed.
25671         * lambda-trans.c: Removed.
25672         * lambda.h: Removed.
25673         * tree-loop-linear.c: Removed.
25674         * lto-symtab.c: Do not include lambda.h.
25675         * omega.c (gcd): Removed.
25676         * passes.c (init_optimization_passes): Remove pass_linear_transform.
25677         * tree-data-ref.c (print_lambda_vector): Moved here.
25678         (lambda_vector_copy): Same.
25679         (lambda_matrix_copy): Same.
25680         (lambda_matrix_id): Same.
25681         (lambda_vector_first_nz): Same.
25682         (lambda_matrix_row_add): Same.
25683         (lambda_matrix_row_exchange): Same.
25684         (lambda_vector_mult_const): Same.
25685         (lambda_vector_negate): Same.
25686         (lambda_matrix_row_negate): Same.
25687         (lambda_vector_equal): Same.
25688         (lambda_matrix_right_hermite): Same.
25689         * tree-data-ref.h: Do not include lambda.h.
25690         (lambda_vector): Moved here.
25691         (lambda_matrix): Same.
25692         (dependence_level): Same.
25693         (lambda_transform_legal_p): Removed declaration.
25694         (lambda_collect_parameters): Same.
25695         (lambda_compute_access_matrices): Same.
25696         (lambda_vector_gcd): Same.
25697         (lambda_vector_new): Same.
25698         (lambda_vector_clear): Same.
25699         (lambda_vector_lexico_pos): Same.
25700         (lambda_vector_zerop): Same.
25701         (lambda_matrix_new): Same.
25702         * tree-flow.h (least_common_multiple): Removed declaration.
25703         * tree-parloops.c (lambda_trans_matrix): Moved here.
25704         (LTM_MATRIX): Same.
25705         (LTM_ROWSIZE): Same.
25706         (LTM_COLSIZE): Same.
25707         (LTM_DENOMINATOR): Same.
25708         (lambda_trans_matrix_new): Same.
25709         (lambda_matrix_vector_mult): Same.
25710         (lambda_transform_legal_p): Same.
25711         * tree-pass.h (pass_linear_transform): Removed declaration.
25712         * tree-ssa-loop.c (tree_linear_transform): Removed.
25713         (gate_tree_linear_transform): Removed.
25714         (pass_linear_transform): Removed.
25715         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
25716         flag_loop_interchange.
25717
25718 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25719
25720         PR tree-optimization/47265
25721         PR tree-optimization/47443
25722         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
25723         if name still has some uses.
25724
25725 2011-01-25  Martin Jambor  <mjambor@suse.cz>
25726
25727         PR tree-optimization/47382
25728         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
25729         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
25730
25731 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
25732
25733         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
25734         sjlj_except_unwind_info.
25735
25736 2011-01-25  Richard Guenther  <rguenther@suse.de>
25737
25738         PR tree-optimization/47426
25739         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
25740         visible functions results escape.
25741
25742 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25743
25744         PR target/45701
25745         * config/arm/arm.c (any_sibcall_uses_r3): New function.
25746         (arm_get_frame_offsets): Use it.
25747
25748 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25749             Jakub Jelinek  <jakub@redhat.com>
25750
25751         PR tree-optimization/47271
25752         * tree-if-conv.c (bb_postdominates_preds): New.
25753         (if_convertible_bb_p): Call bb_postdominates_preds.
25754         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
25755         (predicate_scalar_phi): Call bb_postdominates_preds.
25756
25757 2011-01-25  Nick Clifton  <nickc@redhat.com>
25758
25759         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
25760         * config/rx/rx.c (rx_function_value): Likewise.
25761         (rx_promote_function_mode): Likewise.
25762         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
25763         in order to make it legitimate.
25764         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
25765         make sure that the first operand is the same as the result register.
25766         (addsi3_unspec): Delete.
25767         (subdi3): Do not accept immediate operands.
25768         (subdi3_internal): Likewise.
25769
25770 2011-01-25  Jeff Law  <law@redhat.com>
25771
25772         PR rtl-optimization/37273
25773         * ira-costs.c (scan_one_insn): Detect constants living in memory and
25774         handle them like argument loads from stack slots.  Do not double
25775         count memory for memory constants and argument loads from stack slots.
25776
25777 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25778
25779         PR tree-optimization/47427
25780         PR tree-optimization/47428
25781         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
25782         coalesce if the new root var would be TREE_READONLY.
25783
25784 2011-01-25  Richard Guenther  <rguenther@suse.de>
25785
25786         PR middle-end/47414
25787         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
25788         correct type for TBAA.
25789
25790 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25791
25792         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
25793         (close_phi_written_to_memory): Call for_each_index with
25794         dr_indices_valid_in_loop.
25795
25796 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25797
25798         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
25799         when it is initialized.
25800
25801 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25802
25803         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
25804         call to graphite_find_data_references_in_stmt.
25805         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
25806         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
25807         call to graphite_find_data_references_in_stmt.
25808         (analyze_drs_in_stmts): Same.
25809         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
25810         in which the scalar analysis of indices is performed.
25811         (create_data_ref): Same.  Update call to dr_analyze_indices.
25812         (find_data_references_in_stmt): Update call to create_data_ref.
25813         (graphite_find_data_references_in_stmt): Same.
25814         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
25815         declaration.
25816         (create_data_ref): Same.
25817         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
25818         call to create_data_ref.
25819
25820 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25821
25822         * graphite-sese-to-poly.c (build_poly_scop): Move
25823         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
25824
25825 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25826
25827         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
25828         VAR_DECL, PARM_DECL, and RESULT_DECL.
25829
25830 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25831
25832         * graphite-dependences.c (reduction_dr_1): Allow several reductions
25833         in a reduction PBB.
25834         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
25835         that have already been marked as PBB_IS_REDUCTION.
25836
25837 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25838
25839         * graphite-scop-detection.c (same_close_phi_node): New.
25840         (remove_duplicate_close_phi): New.
25841         (make_close_phi_nodes_unique): New.
25842         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
25843
25844 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25845
25846         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
25847         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
25848         of both data references to be the same.
25849
25850 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25851
25852         * graphite-dependences.c (build_lexicographical_constraint): Remove
25853         the gdim parameter.
25854         (build_lexicographical_constraint): Adjust call to
25855         ppl_powerset_is_empty.
25856         (dependence_polyhedron): Same.
25857         (graphite_legal_transform_dr): Same.
25858         (graphite_carried_dependence_level_k): Same.
25859         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
25860         parameter.
25861         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
25862
25863 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25864
25865         * graphite-sese-to-poly.c
25866         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
25867         (close_phi_written_to_memory): New.
25868         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
25869         and unshare_expr.
25870
25871 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25872
25873         * doc/install.texi: Update the expected version number of PPL to 0.11.
25874         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
25875         #if PPL_VERSION_MINOR < 11.
25876
25877 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25878
25879         * graphite-dependences.c: Include graphite-cloog-util.h.
25880         (new_poly_ddr): Inlined into dependence_polyhedron.
25881         (free_poly_ddr): Moved close by new_poly_ddr.
25882         (dependence_polyhedron_1): Renamed dependence_polyhedron.
25883         Early return NULL when ppl_powerset_is_empty returns true.
25884         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
25885         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
25886         (graphite_legal_transform_dr): Call new_poly_ddr.
25887         (graphite_carried_dependence_level_k): Same.
25888         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
25889         (dot_transformed_deps_stmt_1): Removed.
25890         (dot_deps_stmt_1): Call dot_deps_stmt_2.
25891         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
25892         (dot_deps_1): Call dot_deps_2.
25893         * Makefile.in (graphite-dependences.o): Add missing dependence on
25894         graphite-cloog-util.h.
25895
25896 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25897
25898         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
25899         (build_lexicographical_constraint): Same.
25900         (dependence_polyhedron_1): Same.
25901         (graphite_legal_transform_dr): Same.
25902         (graphite_carried_dependence_level_k): Same.
25903         * graphite-ppl.c (ppl_powerset_is_empty): New.
25904         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
25905         * tree-data-ref.c (dump_data_reference): Print the basic block index.
25906
25907 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25908
25909         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
25910         the "a followed by b" relation and document it.
25911
25912 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25913
25914         * graphite-dependences.c (build_lexicographical_constraint): Stop the
25915         iteration when the bag of constraints is empty.
25916
25917 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25918
25919         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
25920
25921 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25922
25923         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
25924         nest and two loop depths as parameters.
25925         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
25926         lst_perfect_nestify.
25927
25928 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25929
25930         * graphite-dependences.c (print_pddr): Call
25931         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
25932
25933 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25934
25935         * graphite-ppl.c (debug_gmp_value): New.
25936         * graphite-ppl.h (debug_gmp_value): Declared.
25937
25938 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
25939
25940         * doc/install.texi: Document availability of cloog-0.16.
25941
25942 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
25943
25944         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
25945         invalid postdominance info.
25946
25947 2011-01-24  Jan Hubicka  <jh@suse.cz>
25948
25949         PR c/21659
25950         * doc/extend.texi (weak pragma): Drop claim that it must
25951         appear before definition.
25952         * varasm.c (merge_weak, declare_weak): Only sanity check
25953         that DECL is not output at a time it is declared weak.
25954
25955 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
25956
25957         * machmode.def: Fixed comments.
25958
25959 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
25960
25961         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
25962
25963 2011-01-24  Paul Koning  <ni1d@arrl.net>
25964
25965         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
25966         WORDS_BIG_ENDIAN.
25967
25968 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
25969
25970         PR target/46519
25971         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
25972         (block_info): Add scanned and prev.
25973         (move_or_delete_vzeroupper_2): Return if the basic block
25974         has been scanned and the upper 128bit state is unchanged
25975         from the last scan.
25976         (move_or_delete_vzeroupper_1): Return true if the exit
25977         state is changed.
25978         (move_or_delete_vzeroupper): Visit basic blocks using the
25979         work-list based algorithm based on vt_find_locations in
25980         var-tracking.c.
25981
25982         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
25983
25984 2011-01-24  Nick Clifton  <nickc@redhat.com>
25985
25986         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
25987         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
25988         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
25989         then define __v850e1__.
25990         * doc/invoke.texi: Document -mv850es.
25991
25992 2011-01-24  Richard Henderson  <rth@redhat.com>
25993
25994         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
25995         compound unordered comparisons.
25996         * config/rx/rx.c (rx_split_fp_compare): Remove.
25997         * config/rx/rx-protos.h: Update.
25998         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
25999         (cbranchsf4): Don't call rx_split_fp_compare.
26000         (*cbranchsf4): Use rx_split_cbranch.
26001         (*cmpsf): Don't accept "i" constraint.
26002         (*conditional_branch): Only valid after reload.
26003         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
26004
26005 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
26006
26007         PR target/47385
26008         * config/rs6000/altivec.md (vector constant splitters): Add
26009         support for creating vector single precision constants if -mvsx is
26010         used and we would create the constant using Altivec primitives.
26011
26012 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
26013             Richard Sandiford  <rdsandiford@googlemail.com>
26014
26015         PR rtl-optimization/47166
26016         * reload1.c (emit_reload_insns): Disable the spill_reg_store
26017         mechanism for PRE_MODIFY and POST_MODIFY.
26018         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
26019         reloadreg.
26020
26021 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
26022
26023         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
26024
26025 2011-01-22  Jan Hubicka  <jh@suse.cz>
26026
26027         PR lto/47333
26028         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
26029
26030 2011-01-22  Jan Hubicka  <jh@suse.cz>
26031
26032         PR tree-optimization/43884
26033         PR lto/44334
26034         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
26035         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
26036
26037 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
26038
26039         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26040         * config/s390/s390.c (s390_register_move_cost,
26041         s390_memory_move_cost): New.
26042         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
26043
26044 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26045
26046         PR middle-end/47401
26047         * except.c (sjlj_assign_call_site_values): Move setting the
26048         crtl->uses_eh_lsda flag to ...
26049         (sjlj_mark_call_sites): ... here.
26050         (sjlj_emit_function_enter): Support NULL dispatch label.
26051         (sjlj_build_landing_pads): In a function with no landing pads
26052         that still has must-not-throw regions, generate code to register
26053         a personality function with empty LSDA.
26054
26055 2011-01-21  Richard Henderson  <rth@redhat.com>
26056
26057         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
26058
26059         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
26060
26061         * compare-elim.c: New file.
26062         * Makefile.in (OBJS-common): Add it.
26063         (compare-elim.o): New.
26064         * common.opt (fcompare-elim): New.
26065         * opts.c (default_options_table): Add OPT_fcompare_elim.
26066         * tree-pass.h (pass_compare_elim_after_reload): New.
26067         * passes.c (init_optimization_passes): Add it.
26068         * recog.h: Protect against re-inclusion.
26069         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
26070         * doc/invoke.texi (-fcompare-elim): Document it.
26071         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
26072         * doc/tm.texi: Rebuild.
26073
26074 2011-01-22  Nick Clifton  <nickc@redhat.com>
26075
26076         * config/rx/rx.md (cstoresf4): Pass comparison operator to
26077         rx_split_fp_compare.
26078
26079 2011-01-22  Nick Clifton  <nickc@redhat.com>
26080
26081         * config/rx/rx.md (UNSPEC_CONST): New.
26082         (deallocate_and_return): Wrap the amount popped off the stack in
26083         an UNSPEC_CONST in order to stop it being rejected by
26084         -mmax-constant-size.
26085         (pop_and_return): Add a "(return)" rtx.
26086         (call): Drop the immediate operand.
26087         (call_internal): Likewise.
26088         (call_value): Likewise.
26089         (call_value_internal): Likewise.
26090         (sibcall_internal): Likewise.
26091         (sibcall_value_internal): Likewise.
26092         (sibcall): Likewise.  Generate an explicit call using
26093         sibcall_internal.
26094         (sibcall_value): Likewise.
26095         (mov<>): FAIL if a constant operand is not legitimate.
26096         (addsi3_unpsec): New pattern.
26097
26098         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
26099         (ok_for_max_constant): New function.
26100         (gen_safe_add): New function.
26101         (rx_expand_prologue): Use gen_safe_add.
26102         (rx_expand_epilogue): Likewise.
26103         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
26104         UNSPEC CONSTs.
26105
26106 2011-01-21  Jeff Law  <law@redhat.com>
26107
26108         PR tree-optimization/47053
26109         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
26110         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
26111         statements are deleted.
26112         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
26113         is nonempty, then purge dead edges and cleanup the CFG.
26114
26115 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26116
26117         PR debug/47402
26118         Temporarily revert:
26119         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26120         PR debug/47106
26121         * tree-dfa.c (create_var_ann): Mark variable as used.
26122
26123 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26124
26125         PR middle-end/45566
26126         * except.c (convert_to_eh_region_ranges): Emit queued no-region
26127         notes from other section in hot/cold partitioning even if
26128         last_action is -3.  Increment call_site_base.
26129
26130         PR rtl-optimization/47366
26131         * fwprop.c (forward_propagate_into): Return bool.  If
26132         any changes are made, -fnon-call-exceptions is used and
26133         REG_EH_REGION note is present, call purge_dead_edges
26134         and return true if it purged anything.
26135         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
26136         any EH edges were purged.
26137
26138 2011-01-21  Jeff Law  <law@redhat.com>
26139
26140         PR rtl-optimization/41619
26141         * caller-save.c (setup_save_areas): Break out code to determine
26142         which hard regs are live across calls by examining the reload chains
26143         so that it is always used.
26144         Eliminate code which checked REG_N_CALLS_CROSSED.
26145
26146 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26147
26148         PR tree-optimization/47355
26149         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
26150         NOP has non-debug uses beyond PHIs in new_bb.
26151
26152 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26153
26154         PR debug/47106
26155         * cfgexpand.c (account_used_vars_for_block): Only account vars
26156         that are annotated as used.
26157         (estimated_stack_frame_size): Don't set TREE_USED.
26158         * tree-dfa.c (create_var_ann): Mark variable as used.
26159
26160 2011-01-21  Richard Guenther  <rguenther@suse.de>
26161
26162         PR middle-end/47395
26163         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
26164
26165 2011-01-21  Richard Guenther  <rguenther@suse.de>
26166
26167         PR tree-optimization/47365
26168         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
26169         (vn_reference_lookup_pieces): Adjust.
26170         (vn_reference_lookup): Likewise.
26171         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
26172         (vn_reference_lookup_3): Only look through kills if in
26173         VN_WALKREWRITE mode.
26174         (vn_reference_lookup_pieces): Adjust.
26175         (vn_reference_lookup): Likewise.
26176         (visit_reference_op_load): Likewise.
26177         (visit_reference_op_store): Likewise.
26178         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
26179         (compute_avail): Likewise.
26180         (eliminate): Likewise.
26181
26182 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26183
26184         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
26185         DECL_IGNORED_P non-reg vars if they are used.
26186
26187         PR tree-optimization/47391
26188         * varpool.c (const_value_known_p): Return false if
26189         decl is volatile.
26190
26191 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
26192
26193         PR bootstrap/47215
26194         * config/i386/i386.c (ix86_local_alignment): Handle
26195         case for va_list_type_node is nil.
26196         (ix86_canonical_va_list_type): Likewise.
26197
26198 2011-01-21  Alan Modra  <amodra@gmail.com>
26199
26200         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
26201         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
26202
26203 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26204
26205         * config/arm/arm.md (define_attr type): Rename f_load
26206         and f_store to f_fpa_load and f_fpa_store. Update.
26207         (write_conflict): Deal with rename fallout.
26208         (*push_fp_multi): Likewise.
26209         * config/arm/fpa.md (f_load): Use f_fpa_load.
26210         (f_store): Use f_fpa_store.
26211         (*movsf_fpa): Likewise.
26212         (*movdf_fpa): Likewise.
26213         (*movxf_fpa): Likewise.
26214         (*thumb2_movsf_fpa): Likewise.
26215         (*thumb2_movdf_fpa): Likewise.
26216         (*thumb2_movxf_fpa): Likewise.
26217         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
26218         f_loadd and f_stored.
26219         (*thumb2_movdi_vfp): Likewise.
26220         (*thumb2_movsf_vfp): Fix attribute to f_loads.
26221         (*thumb2_movsi_vfp): Likewise.
26222         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
26223         Use f_loads instead of f_load.
26224         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
26225
26226 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
26227
26228         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26229         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
26230         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26231         (xtensa_mode_dependent_address_p): New function.
26232         (constantpool_address_p): Make static. Change return type to bool.
26233         Change argument type to const_rtx. Use CONST_INT_P predicate.
26234
26235 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
26236
26237         PR debug/46583
26238         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
26239
26240 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26241
26242         PR debug/47283
26243         * cfgexpand.c (expand_debug_expr): Instead of generating
26244         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
26245         etc. handling.
26246
26247 2011-01-20  Richard Guenther  <rguenther@suse.de>
26248
26249         PR middle-end/47370
26250         * tree-inline.c (remap_gimple_op_r): Recurse manually for
26251         the pointer operand of MEM_REFs.
26252
26253 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26254
26255         PR tree-optimization/46130
26256         * ipa-split.c (consider_split): If return_bb contains non-virtual
26257         PHIs other than for retval or if split_function would not adjust it,
26258         refuse to split.
26259
26260 2011-01-20  Richard Guenther  <rguenther@suse.de>
26261
26262         PR tree-optimization/47167
26263         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
26264         Revert previous change, only avoid enumeral type changes.
26265
26266 2011-01-19  Mike Stump  <mikestump@comcast.net>
26267
26268         * doc/tm.texi.in (BRANCH_COST): Englishify.
26269         * doc/tm.texi (BRANCH_COST): Likewise.
26270
26271 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
26272
26273         PR c++/47291
26274         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
26275         (gen_scheduled_generic_parms_dies): New functions.
26276         (gen_struct_or_union_type_die): Schedule template parameters DIEs
26277         generation for the end of CU compilation.
26278         (dwarf2out_finish): Generate template parameters DIEs here.
26279
26280 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26281
26282         PR debug/46240
26283         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
26284         debug bind stmt on merge edges.
26285
26286 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26287
26288         PR debug/47079
26289         PR debug/46724
26290         * function.c (instantiate_expr): Instantiate incoming rtl of
26291         implicit arguments, and recurse on VALUE_EXPRs.
26292         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
26293         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
26294
26295 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26296
26297         * c-parser.c (c_parser_for_statement): Initialize
26298         collection_expression.
26299
26300 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26301
26302         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
26303
26304 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26305
26306         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
26307         (LINK_SHLIB_SPEC): Don't use %(link_path).
26308         (SUBTARGET_EXTRA_SPECS): Remove link_path.
26309
26310 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26311
26312         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
26313         (NO_SHARED_LIB_SUPPORT): Remove.
26314         (LINK_SHLIB_SPEC): Remove one conditional definition.
26315
26316 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26317
26318         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
26319         %{call_shared}.
26320         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
26321         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
26322         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
26323         %{call_shared} and conditionals on these options not being passed.
26324         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
26325         %{call_shared}.
26326
26327 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26328
26329         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
26330         simplify.
26331
26332         * ipa-split.c: Spelling fixes.
26333
26334 2011-01-19  Richard Henderson  <rth@redhat.com>
26335
26336         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
26337         (*mulsi3): Likewise.
26338
26339         * longlong.h [__mn10300__] (count_leading_zeros): New.
26340         [__mn10300__] (umul_ppmm, smul_ppmm): New.
26341         [__mn10300__] (add_ssaaaa, subddmmss): New.
26342         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
26343         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
26344
26345 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26346
26347         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
26348
26349 2011-01-19  Richard Henderson  <rth@redhat.com>
26350
26351         * config/mn10300/mn10300.md (addsi3_flags): New.
26352         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
26353         (subsi3_flags, subc_internal, subdi3): New.
26354         (subdi3_internal, *subdi3_degenerate): New.
26355         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
26356
26357         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
26358         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
26359         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
26360         * config/mn10300/mn10300-protos.h: Update.
26361         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
26362         (return_ret): Likewise.  Rename from return_internal_regs.
26363         (return_internal): Remove.
26364
26365         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
26366         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
26367         (mn10300_legitimate_constant_p): Likewise.
26368         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
26369         (mn10300_frame_size): New.
26370         (mn10300_expand_prologue): Use it.
26371         (mn10300_expand_epilogue): Likewise.
26372         (mn10300_initial_offset): Likewise.
26373         * config/mn10300/mn10300-protos.h: Update.
26374         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
26375         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
26376         (prologue, epilogue, return_internal): Tidy output code.
26377         (mn10300_store_multiple_operation, return): Likewise.
26378         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
26379         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
26380         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
26381         (load_pic, am33_load_pic): New.
26382         (mn10300_load_pic0, mn10300_load_pic1): New.
26383
26384         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
26385         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
26386         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
26387         (cc_flags_for_mode, cc_flags_for_code): New.
26388         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
26389         overflow flag is not valid.  Validate that the flags we need
26390         for the comparison are valid.
26391         (mn10300_output_cmp): Remove.
26392         (mn10300_output_add): New.
26393         (mn10300_select_cc_mode): Use cc_flags_for_code.
26394         (mn10300_split_cbranch): New.
26395         (mn10300_match_ccmode): New.
26396         (mn10300_split_and_operand_count): New.
26397         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
26398         to the function.
26399         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
26400         (addsi3): ... here.  Use mn10300_output_add.
26401         (*addsi3_flags): New.
26402         (*am33_subsi3, *mn10300_subsi3): Merge...
26403         (subsi3): ... here.  Use attribute isa.
26404         (*subsi3_flags): New.
26405         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
26406         when possible.
26407         (*am33_andsi3, *mn10300_andsi3): Merge...
26408         (andsi3): ... here.
26409         (*andsi3_flags): New.
26410         (andsi3 splitters): New.
26411         (*am33_iorsi3, *mn10300_iorsi3): Merge...
26412         (iorsi3): ... here.
26413         (*iorsi3_flags): New.
26414         (*am33_xorsi3, *mn10300_xorsi3): Merge...
26415         (xorsi3): ... here.
26416         (*xorsi3_flags): New.
26417         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
26418         (one_cmplsi2): ... here.
26419         (*one_cmplsi2_flags): New.
26420         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
26421         instead of "dax" in constraints.  Use mn10300_split_cbranch.
26422         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
26423         use matching constraints to eliminate a self-comparison.
26424         (*integer_conditional_branch): Rename from integer_conditional_branch.
26425         Use int_mode_flags to match CC_REG.
26426         (*cbranchsi4_btst, *btstsi): New.
26427         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
26428         mn10300_split_cbranch.
26429         (*am33_cmpsf): Rename from am33_cmpsf.
26430         (*float_conditional_branch): Rename from float_conditional_branch.
26431         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
26432         (zero_extendqisi2): ... here.
26433         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
26434         (zero_extendhisi2): ... here.
26435         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
26436         (extendqisi2): ... here.
26437         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
26438         (extendhisi2): ... here.
26439         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
26440         (ashlsi3): ... here.
26441         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
26442         (lshrsi3): ... here.
26443         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
26444         (ashrsi3): ... here.
26445         (consecutive add peephole): Remove.
26446         * config/mn10300/predicates.md (label_ref_operand): New.
26447         (int_mode_flags): New.
26448         (CCZN_comparison_operator): New.
26449
26450         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
26451         (throughput_42_latency_43): New reservation.
26452         (mulsidi3, umulsidi3): New expanders.
26453         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
26454         the MDR register to allocation; separately allocate the low and
26455         high parts of the DImode result.
26456         (umulsidi3_internal): Similarly.
26457         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
26458         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
26459         (udivsi3, umodsi3): Remove.
26460         (udivmodsi4, divmodsi4): New expanders.
26461         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
26462         (*divmodsi4): Simiarly.
26463         (ext_internal): New.
26464
26465         * config/mn10300/constraints.md ("z"): New constraint.
26466         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
26467         (FIXED_REGISTERS): Don't fix MDR.
26468         (CALL_USED_REGSITERS): Reformat nicely.
26469         (REG_ALLOC_ORDER): Add MDR.
26470         (enum regclass): Add MDR_REGS.
26471         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
26472         (IRA_COVER_CLASSES): Add MDR_REGS.
26473         (REGNO_REG_CLASS): Handle MDR_REG.
26474         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
26475         (mn10300_register_move_cost): Likewise.
26476         * config/mn10300/mn10300.md (MDR_REG): New.
26477         (*movsi_internal): Handle moves to/from MDR_REGS.
26478
26479         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
26480         POST_MODIFY.
26481         (mn10300_secondary_reload): Tidy combination reload classes.
26482         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
26483         addresses for AM33.  Allow symbolic offsets for reg+imm.
26484         (mn10300_regno_in_class_p): New.
26485         (mn10300_legitimize_reload_address): New.
26486         * config/mn10300/mn10300.h (enum reg_class): Remove
26487         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
26488         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
26489         SP_OR_GENERAL_REGS.
26490         (REG_CLASS_NAMES): Update to match.
26491         (REG_CLASS_CONTENTS): Likewise.
26492         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
26493         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
26494         (REGNO_IN_RANGE_P): Remove.
26495         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
26496         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
26497         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
26498         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
26499         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
26500         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
26501         (REGNO_GENERAL_P): New.
26502         (HAVE_POST_MODIFY_DISP): New.
26503         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
26504         (LEGITIMIZE_RELOAD_ADDRESS): New.
26505         * config/mn10300/mn10300-protos.h: Update.
26506
26507         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
26508         DATA_REGS for AM33 stack-pointer destination.
26509         (mn10300_preferred_output_reload_class): Likewise.
26510         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
26511         into a form appropriate for ...
26512         (TARGET_SECONDARY_RELOAD): New.
26513         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
26514         * config/mn10300/mn10300-protos.h: Update.
26515         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
26516         reload_insi; use the "A" constraint for the scratch; handle AM33
26517         moves of sp to non-address registers.
26518
26519         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
26520         (*movqi_internal): ... here.
26521         (*am33_movhi, *mn10300_movhi): Merge into...
26522         (*movhi_internal): ... here.
26523         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
26524         as the source/destination of moves from/to SP.
26525         (movsf): Only allow for AM33-2.
26526         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
26527         any integer constant constraint.  Only allow for AM33-2.  Tidy
26528         all of the alternative outputs.
26529         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
26530         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
26531         for MN103.
26532         (udivsi3, umodsi3): New patterns for MN103 only.
26533
26534 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
26535
26536         * doc/tm.texi.in: Spell out that a lack of register class unions
26537         can lead to ICEs.
26538         * doc/tm.texi: Regenerate.
26539
26540 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26541
26542         PR rtl-optimization/47337
26543         * dce.c (check_argument_store): New function.
26544         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
26545
26546         PR tree-optimization/47290
26547         * tree-eh.c (infinite_empty_loop_p): New function.
26548         (cleanup_empty_eh): Use it.
26549
26550 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
26551
26552         PR target/46997
26553         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
26554         (a64_expand_widen_sum): Ditto.
26555         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
26556         (vec_extract_evenodd_help): Ditto.
26557         (vec_extract_evenv4hi): Ditto.
26558         (vec_extract_oddv4hi): Ditto.
26559         (vec_extract_evenv2si): Ditto.
26560         (vec_extract_oddv2si): Ditto.
26561         (vec_extract_evenv2sf): Ditto.
26562         (vec_extract_oddv2sf): Ditto.
26563         (vec_pack_trunc_v4hi: Ditto.
26564         (vec_pack_trunc_v2si): Ditto.
26565         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
26566         (vec_interleave_highv8qi): Ditto.
26567         (mix1_r): Ditto.
26568         (vec_extract_oddv8qi): Ditto.
26569         (vec_interleave_lowv4hi): Ditto.
26570         (vec_interleave_highv4hi): Ditto.
26571         (vec_interleave_lowv2si): Ditto.
26572         (vec_interleave_highv2si): Ditto.
26573
26574 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26575
26576         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
26577         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
26578         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
26579         (pa_c_mode_for_suffix): New.
26580         (TARGET_EXPAND_BUILTIN): Define.
26581         (TARGET_C_MODE_FOR_SUFFIX): Define.
26582         (pa_builtins): Define.
26583         (pa_init_builtins): Register __float128 type and init new support
26584         builtins.
26585         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
26586         * config/pa/quadlib.c (_U_Qfcopysign): New.
26587
26588 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
26589
26590         PR middle-end/46894
26591         * explow.c (allocate_dynamic_stack_space): Do not assume more than
26592         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
26593         are defined.
26594
26595 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26596
26597         PR tree-optimization/47179
26598         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
26599         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
26600
26601 2011-01-18  Richard Guenther  <rguenther@suse.de>
26602
26603         PR rtl-optimization/47216
26604         * emit-rtl.c: Include tree-flow.h.
26605         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
26606         of replicating it with different semantics.
26607         * Makefile.in (emit-rtl.o): Adjust.
26608
26609 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26610
26611         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
26612         (cortex_a9_dp): Handle neon types correctly.
26613
26614 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
26615
26616         PR rtl-optimization/47299
26617         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
26618         subtarget.  Use normal multiplication if both operands are constants.
26619         * expmed.c (expand_widening_mult): Don't try to optimize constant
26620         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
26621         before using it.
26622
26623 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26624
26625         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
26626         spacing after 'e.g.', typos, comma, hyphenation.
26627
26628 2011-01-17  Richard Henderson  <rth@redhat.com>
26629
26630         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
26631         (rx_restricted_mem_operand): New.
26632         (rx_shift_operand): Use register_operand.
26633         (rx_source_operand, rx_compare_operand): Likewise.
26634         * config/rx/rx.md (addsi3_flags): New expander.
26635         (adddi3): Rewrite as expander.
26636         (adc_internal, *adc_flags, adddi3_internal): New patterns.
26637         (subsi3_flags): New expander.
26638         (subdi3): Rewrite as expander.
26639         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
26640
26641         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
26642         (rx_init_builtins): Remove sat builtin.
26643         (rx_expand_builtin): Likewise.
26644         * config/rx/rx.md (ssaddsi3): New.
26645         (*sat): Rename from sat.  Represent the CC_REG input.
26646
26647         * config/rx/predicates.md (rshift_operator): New.
26648         * config/rx/rx.c (rx_expand_insv): Remove.
26649         * config/rx/rx-protos.h: Update.
26650         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
26651         operand to the canonical position.
26652         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
26653         (*bitclr, *bitclr_in_memory): Similarly.
26654         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
26655         (insv): Retain the zero_extract in the expansion.
26656
26657         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
26658         (bswaphi2, bitinvert, revw): Likewise.
26659
26660         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
26661         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
26662         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
26663         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
26664         (bitset, bitset_in_memory): Likewise.
26665         (bitinvert, bitinvert_in_memory): Likewise.
26666         (bitclr, bitclr_in_memory): Likewise.
26667         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
26668         (rx_strend, rx_cmpstrn): Likewise.
26669         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
26670         (bitop peep2 patterns): Remove.
26671
26672         * config/rx/rx.c (rx_match_ccmode): New.
26673         * config/rx/rx-protos.h: Update.
26674         * config/rx/rx.md (abssi2): Clobber, don't set flags.
26675         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
26676         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
26677         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
26678         (fix_truncsfsi2, floatsisf2): Likewise.
26679         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
26680         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
26681         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
26682         (*subsi3_flags, *xorsi3_flags): New.
26683
26684         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
26685
26686         * config/rx/rx.c (rx_print_operand): Remove workaround for
26687         unsplit comparison operations.
26688
26689         * config/rx/rx.md (movsicc): Split after reload.
26690         (*movsicc): Merge *movsieq and *movsine via match_operator.
26691         (*stcc): New pattern.
26692
26693         * config/rx/rx.c (rx_float_compare_mode): Remove.
26694         * config/rx/rx.h (rx_float_compare_mode): Remove.
26695         * config/rx/rx.md (cstoresi4): Split after reload.
26696         (*sccc): New pattern.
26697
26698         * config/rx/predicates.md (label_ref_operand): New.
26699         (rx_z_comparison_operator): New.
26700         (rx_zs_comparison_operator): New.
26701         (rx_fp_comparison_operator): New.
26702         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
26703         Validate that the flags are set properly for the comparison.
26704         (rx_gen_cond_branch_template): Remove.
26705         (rx_cc_modes_compatible): Remove.
26706         (mode_from_flags): New.
26707         (flags_from_code): Rename from flags_needed_for_conditional.
26708         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
26709         (rx_select_cc_mode): Likewise.
26710         (rx_split_fp_compare): New.
26711         (rx_split_cbranch): New.
26712         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
26713         (*cbranchsi4): Use match_operator and rx_split_cbranch.
26714         (*cbranchsf4): Similarly.
26715         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
26716         match_operator and rx_split_cbranch.
26717         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
26718         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
26719         (*cmpsi): Rename from cmpsi.
26720         (*tstsi): Rename from tstsi.
26721         (*cmpsf): Rename from cmpsf; use CC_Fmode.
26722         (*conditional_branch): Rename from conditional_branch.
26723         (*reveresed_conditional_branch): Remove.
26724         (b<code>): Remove expander.
26725         * config/rx/rx-protos.h: Update.
26726
26727         * config/rx/rx.c (rx_compare_redundant): Remove.
26728         * config/rx/rx.md (cmpsi): Don't use it.
26729         * config/rx/rx-protos.h: Update.
26730
26731         * config/rx/rx-modes.def (CC_F): New mode.
26732         * config/rx/rx.c (rx_select_cc_mode): New.
26733         * config/rx/rx.h (SELECT_CC_MODE): Use it.
26734         * config/rx/rx-protos.h: Update.
26735
26736 2011-01-17  Richard Henderson  <rth@redhat.com>
26737
26738         * except.c (dump_eh_tree): Fix stray ; after for statement.
26739
26740 2011-01-17  Richard Guenther  <rguenther@suse.de>
26741
26742         PR tree-optimization/47313
26743         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
26744         handling before copying the body.  Properly deal with
26745         by-reference result in SSA form.
26746
26747 2011-01-17  Ian Lance Taylor  <iant@google.com>
26748
26749         PR target/47219
26750         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
26751         (struct_value_alias_set): Don't define.
26752         (sparc_option_override): Don't set sparc_sr_alias_set and
26753         struct_value_alias_set.
26754         (save_or_restore_regs): Use gen_frame_mem rather than calling
26755         set_mem_alias_set.
26756         (sparc_struct_value_rtx): Likewise.
26757
26758 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
26759
26760         PR target/47318
26761         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
26762         (_mm_maskstore_pd): Likewise.
26763         (_mm_maskload_ps): Likewise.
26764         (_mm_maskstore_ps): Likewise.
26765         (_mm256_maskload_pd): Change mask to __m256i.
26766         (_mm256_maskstore_pd): Likewise.
26767         (_mm256_maskload_ps): Likewise.
26768         (_mm256_maskstore_ps): Likewise.
26769
26770         * config/i386/i386-builtin-types.def: Updated.
26771         (ix86_expand_special_args_builtin): Likewise.
26772
26773         * config/i386/i386.c (bdesc_special_args): Update
26774         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
26775         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
26776         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
26777         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
26778
26779         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
26780         Use <avxpermvecmode> on mask register.
26781         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
26782
26783 2011-01-17  Olivier Hainque  <hainque@adacore.com>
26784             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
26785             Eric Botcazou  <ebotcazou@adacore.com>
26786
26787         PR target/46655
26788         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
26789         if <= USHRT_MAX in 32-bit mode.
26790
26791 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26792
26793         * doc/install.texi (Configuration, Specific): Wrap long
26794         lines in examples.  Allow line wrapping in long options
26795         and URLs where beneficial for PDF output.
26796
26797 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
26798
26799         * config/mips/mips.c (mips_classify_symbol): Don't return
26800         SYMBOL_PC_RELATIVE for nonlocal labels.
26801
26802 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26803
26804         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
26805
26806 2011-01-15  Jan Hubicka  <jh@suse.cz>
26807
26808         PR tree-optimization/47276
26809         * ipa.c (function_and_variable_visibility): Do not try to mark alias
26810         declarations as needed.
26811
26812 2011-01-15  Martin Jambor  <mjambor@suse.cz>
26813
26814         * common.opt (fdevirtualize): New flag.
26815         * doc/invoke.texi (Option Summary): Document it.
26816         * opts.c (default_options_table): Add devirtualize flag.
26817         * ipa-prop.c (detect_type_change): Return immediately if
26818         devirtualize flag is not set.
26819         (detect_type_change_ssa): Likewise.
26820         (compute_known_type_jump_func): Likewise.
26821         (ipa_analyze_virtual_call_uses): Likewise.
26822
26823 2011-01-14  Martin Jambor  <mjambor@suse.cz>
26824
26825         PR tree-optimization/45934
26826         PR tree-optimization/46302
26827         * ipa-prop.c (type_change_info): New type.
26828         (stmt_may_be_vtbl_ptr_store): New function.
26829         (check_stmt_for_type_change): Likewise.
26830         (detect_type_change): Likewise.
26831         (detect_type_change_ssa): Likewise.
26832         (compute_complex_assign_jump_func): Check for dynamic type change.
26833         (compute_complex_ancestor_jump_func): Likewise.
26834         (compute_known_type_jump_func): Likewise.
26835         (compute_scalar_jump_functions): Likewise.
26836         (ipa_analyze_virtual_call_uses): Likewise.
26837         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
26838
26839 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26840
26841         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
26842         * config/i386/i386.opt (msse5): New Alias.
26843
26844 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26845
26846         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
26847         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26848         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26849         * config/sparc/sparc.h (CC1_SPEC): Likewise.
26850
26851 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26852
26853         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
26854         -mcpu options.
26855         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26856         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26857         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
26858         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
26859         Likewise.
26860         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
26861
26862 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26863
26864         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
26865
26866 2011-01-14  Mike Stump  <mikestump@comcast.net>
26867
26868         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
26869         * config/fr30/fr30.md: Likweise
26870         (movsi_push): Likewise.
26871         (movsi_pop): Likewise.
26872         (enter_func): Likewise.
26873         * config/moxie/moxie.md (movsi_push): Likewise.
26874         (movsi_pop): Likewise.
26875
26876 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26877
26878         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
26879         %{no_archive} %{exact_version}.
26880         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
26881         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
26882         %{no_archive} %{exact_version}.
26883         * config/mips/openbsd.h (LINK_SPEC): Likewise.
26884         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
26885         * config/mips/vxworks.h: Likewise.
26886
26887 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26888
26889         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
26890
26891 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26892
26893         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
26894         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
26895
26896 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26897
26898         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
26899         -nodefaultlib.
26900
26901 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26902
26903         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
26904         for mcpu not cpu.
26905         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
26906         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
26907         not cpu.
26908         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
26909         Don't handle -shlib.
26910
26911 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26912
26913         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
26914         (CC1_SPEC): Don't handle -profile.
26915
26916 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26917
26918         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
26919         * config/mips/mips.h (CC1_SPEC): Likewise.
26920
26921 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26922
26923         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
26924         * config/mips/mips.h (CC1_SPEC): Likewise.
26925
26926 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26927
26928         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
26929         * config/m32r/linux.h (LINK_SPEC): Likewise.
26930         * config/mips/linux.h (LINK_SPEC): Likewise.
26931         * config/mips/linux64.h (LINK_SPEC): Likewise.
26932         * config/sparc/linux.h (LINK_SPEC): Likewise.
26933         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
26934         LINK_SPEC): Likewise.
26935         * config/xtensa/linux.h (LINK_SPEC): Likewise.
26936
26937 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26938
26939         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
26940         %{version:-v}.
26941         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
26942
26943 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26944
26945         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
26946         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
26947
26948 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26949
26950         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
26951
26952 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26953
26954         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
26955         supports -Bstatic/-Bdynamic.
26956         * configure: Regenerate.
26957
26958 2011-01-14  Jan Hubicka  <jh@suse.cz>
26959             Jack Howarth  <howarth@bromo.med.uc.edu>
26960
26961         PR target/46037
26962         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
26963         when checking debug_info_level. Test write_symbols instead of
26964         debug_hooks->var_location when setting flag_var_tracking_uninit.
26965
26966 2011-01-14  Richard Guenther  <rguenther@suse.de>
26967
26968         PR tree-optimization/47179
26969         * target.def (ref_may_alias_errno): New target hook.
26970         * targhooks.h (default_ref_may_alias_errno): Declare.
26971         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
26972         (default_ref_may_alias_errno): New function.
26973         * target.h (struct ao_ref_s): Declare.
26974         * tree-ssa-alias.c: Include target.h.
26975         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
26976         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
26977         (targhooks.o): Likewise.
26978         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
26979         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
26980
26981 2011-01-14  Richard Guenther  <rguenther@suse.de>
26982
26983         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
26984
26985 2011-01-14  Richard Guenther  <rguenther@suse.de>
26986
26987         PR tree-optimization/47280
26988         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
26989         return CFG changes.
26990         (tree_ssa_forward_propagate_single_use_vars): Deal with
26991         CFG changes from associate_plusminus.
26992
26993 2011-01-14  Richard Guenther  <rguenther@suse.de>
26994
26995         PR middle-end/47281
26996         Revert
26997         2011-01-11  Richard Guenther  <rguenther@suse.de>
26998
26999         PR tree-optimization/46076
27000         * tree-ssa.c (useless_type_conversion_p): Conversions from
27001         unprototyped to empty argument list function types are useless.
27002
27003 2011-01-14  Richard Guenther  <rguenther@suse.de>
27004
27005         PR tree-optimization/47286
27006         * tree-ssa-structalias.c (new_var_info): Register variables are global.
27007
27008 2011-01-14  Martin Jambor  <mjambor@suse.cz>
27009
27010         PR middle-end/46823
27011         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
27012
27013 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
27014
27015         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
27016         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27017         * config/xtensa/xtensa.c (xtensa_libcall_value,
27018         xtensa_function_value_regno_p): New functions.
27019         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
27020
27021 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
27022
27023         PR c++/47213
27024         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
27025         PE specific hook.
27026         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
27027         New function prototype.
27028         * config/i386/winnt.c (i386_pe_assemble_visibility):
27029         Warn only if attribute was specified by user.
27030
27031 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
27032
27033         PR target/47251
27034         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
27035         floating point.
27036         (floatunsdidf2_fcfidu): Ditto.
27037
27038 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27039
27040         * config/s390/s390.c (print_operand_address): Replace 'error' with
27041         'output_operand_lossage'.
27042         (print_operand): Likewise.
27043
27044 2011-01-13  Jeff Law  <law@redhat.com>
27045
27046         PR rtl-optimization/39077
27047         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
27048         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
27049         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
27050         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
27051         * gcse.c (prune_insertions_deletions): New function.
27052         (compute_pre_data): Use it.
27053
27054 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
27055
27056         PR debug/PR46973
27057         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
27058         static function.
27059         (prune_unused_types_mark): Use it.
27060
27061 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
27062
27063         PR rtl-optimization/45352
27064         * sel-sched.c: Update copyright years.
27065         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
27066         in the advancing loop when we have issued issue_rate insns.
27067
27068 2011-01-12  Richard Henderson  <rth@redhat.com>
27069
27070         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
27071         (TARGET_MD_ASM_CLOBBERS): New.
27072
27073         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
27074         (TARGET_DELEGITIMIZE_ADDRESS): New.
27075
27076         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
27077         (clzsi2, *bsch): New patterns.
27078
27079         * config/mn10300/mn10300.md (INT): New mode iterator.
27080         (*mov<INT>_clr): New pattern, and peep2 to generate it.
27081
27082         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
27083         flag_split_wide_types.
27084
27085         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
27086         (mn10300_trampoline_init): Rewrite without a template, an immediate
27087         load and a direct branch.
27088         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
27089
27090 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
27091
27092         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27093         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
27094         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
27095         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27096
27097 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
27098
27099         PR debug/47209
27100         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
27101         of type.
27102
27103 2011-01-12  Jan Hubicka  <jh@suse.cz>
27104
27105         PR driver/47244
27106         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
27107         (PLUGIN_COND_CLOSE): New macro.
27108         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
27109
27110 2011-01-12  Richard Guenther  <rguenther@suse.de>
27111
27112         PR lto/47259
27113         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
27114         register variables in a MEM_REF.
27115
27116 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
27117
27118         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
27119         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
27120         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
27121         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
27122         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
27123         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
27124         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
27125         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
27126         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
27127         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
27128         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
27129         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
27130         * config/gnu-user.h: New.  Copied from linux.h.
27131         (LINUX_TARGET_STARTFILE_SPEC): Rename to
27132         GNU_USER_TARGET_STARTFILE_SPEC.
27133         (LINUX_TARGET_ENDFILE_SPEC): Rename to
27134         GNU_USER_TARGET_ENDFILE_SPEC.
27135         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
27136         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
27137         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
27138         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
27139         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
27140         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
27141         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
27142         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
27143         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
27144         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
27145         * config/arm/linux-eabi.h (CC1_SPEC): Use
27146         GNU_USER_TARGET_CC1_SPEC.
27147         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
27148         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
27149         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
27150         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
27151         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
27152         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
27153         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
27154         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
27155
27156 2011-01-12  Richard Guenther  <rguenther@suse.de>
27157
27158         PR other/46946
27159         * doc/invoke.texi (ffast-math): Document it is turned on
27160         with -Ofast.
27161
27162 2011-01-12  Jan Hubicka  <jh@suse.cz>
27163
27164         PR tree-optimization/47233
27165         * opts.c (common_handle_option): Disable ipa-reference with profile
27166         feedback.
27167
27168 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27169
27170         * c-parser.c (c_parser_objc_at_property_declaration): Improved
27171         error message.
27172
27173 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27174
27175         * c-parser.c (c_lex_one_token): Updated and reindented some
27176         comments.  No changes in code.
27177
27178 2011-01-11  Ian Lance Taylor  <iant@google.com>
27179
27180         * godump.c (go_output_var): Don't output the variable if there is
27181         already a type with the same name.
27182
27183 2011-01-11  Ian Lance Taylor  <iant@google.com>
27184
27185         * godump.c (go_format_type): Don't generate float80.
27186
27187 2011-01-11  Richard Henderson  <rth@redhat.com>
27188
27189         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
27190         declaration.  Rewrite for both speed and size.
27191         (mn10300_address_cost_1): Remove.
27192         (mn10300_register_move_cost): New.
27193         (mn10300_memory_move_cost): New.
27194         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
27195         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
27196         extensions, shifts, BSWAP, CLZ.
27197         (mn10300_wide_const_load_uses_clr): Remove.
27198         (TARGET_REGISTER_MOVE_COST): New.
27199         (TARGET_MEMORY_MOVE_COST): New.
27200         * config/mn10300/mn10300-protos.h: Update.
27201         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
27202
27203         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
27204         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
27205         * config/mn10300/mn10300-protos.h: Update.
27206         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
27207         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
27208         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
27209         (*test_int_bitfield, *test_byte_bitfield): Remove.
27210         (*bit_test, *subreg_bit_test): Remove.
27211         * config/mn10300/predicates.md (const_8bit_operand): Remove.
27212
27213         * config/mn10300/constraints.md ("c"): Rename from "A".
27214         ("A", "D"): New constraint letters.
27215         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
27216         (fmssf4, fnmasf4, fnmssf4): Likewise.
27217
27218         * config/mn10300/mn10300.md (isa): New attribute.
27219         (enabled): New attribute.
27220
27221         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
27222         (abssf2, negsf2): Define only for hardware fp.
27223         (sqrtsf2): Reformat.
27224         (addsf3, subsf3, mulsf3): Merge expander and insn.
27225
27226         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
27227         (DEBUGGER_AUTO_OFFSET): Remove.
27228         (DEBUGGER_ARG_OFFSET): Remove.
27229
27230         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
27231         Emit register stores with the same offsets as the hardware.
27232         (mn10300_store_multiple_operation): Don't check that the register
27233         save offsets are monotonic.
27234         * config/mn10300/mn10300-protos.h: Update.
27235
27236         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
27237
27238         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
27239         in terms of the value on the stack, not the MDR register.
27240
27241 2011-01-11  Jan Hubicka  <jh@suse.cz>
27242
27243         PR lto/45721
27244         PR lto/45375
27245         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
27246         (symbol_alias_set_destroy, symbol_alias_set_contains,
27247         propagate_aliases_backward): Declare.
27248         * lto-streamer-out.c (struct sets): New sturcture.
27249         (trivally_defined_alias): New function.
27250         (output_alias_pair_p): Rewrite.
27251         (output_unreferenced_globals): Fix output of alias pairs.
27252         (produce_symtab): Likewise.
27253         * ipa.c (function_and_variable_visibility): Set weak alias destination
27254         as needed in lto.
27255         * varasm.c (symbol_alias_set_t): Remove.
27256         (symbol_alias_set_destroy): Export.
27257         (propagate_aliases_forward, propagate_aliases_backward): New functions
27258         based on ...
27259         (compute_visible_aliases): ... this one; remove.
27260         (trivially_visible_alias): New
27261         (trivially_defined_alias): New.
27262         (remove_unreachable_alias_pairs): Rewrite.
27263         (finish_aliases_1): Reorganize code checking if alias is defined.
27264         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
27265         in LTO mode.
27266
27267 2011-01-11  Richard Guenther  <rguenther@suse.de>
27268
27269         PR tree-optimization/46076
27270         * tree-ssa.c (useless_type_conversion_p): Conversions from
27271         unprototyped to empty argument list function types are useless.
27272
27273 2011-01-11  Richard Guenther  <rguenther@suse.de>
27274
27275         PR middle-end/45235
27276         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
27277         volatile MEMs as MEM_READONLY_P.
27278
27279 2011-01-11  Richard Guenther  <rguenther@suse.de>
27280
27281         PR tree-optimization/47239
27282         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
27283
27284 2011-01-11  Jeff Law  <law@redhat.com>
27285
27286         PR tree-optimization/47086
27287         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
27288         IVs from statements that might throw.
27289
27290 2011-01-10  Jan Hubicka  <jh@suse.cz>
27291
27292         PR lto/45375
27293         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
27294
27295 2011-01-10  Jan Hubicka  <jh@suse.cz>
27296
27297         PR lto/45375
27298         * profile.c (read_profile_edge_counts): Ignore profile inconistency
27299         when correcting profile.
27300
27301 2011-01-10  Jan Hubicka  <jh@suse.cz>
27302
27303         PR lto/46083
27304         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
27305         DECL_FINI_PRIORITY.
27306         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
27307         Restore DECL_FINI_PRIORITY.
27308
27309 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27310
27311         * doc/gimple.texi: Fix quoting of multi-word return values in
27312         @deftypefn statements.  Ensure presence of return value.  Wrap
27313         overlong @deftypefn lines.
27314         (is_gimple_operand, is_gimple_min_invariant_address): Remove
27315         descriptions of removed functions.
27316         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
27317         of multi-word return value in @deftypefn statement.
27318
27319 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27320
27321         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
27322         (Conditional Expressions, Logical Operators)
27323         (Statement and operand traversals): Do not indent smallexample
27324         code.  Fix duplicate function argument in example.
27325
27326 2011-01-10  Jeff Law  <law@redhat.com>
27327
27328         PR tree-optimization/47141
27329         * ipa-split.c (split_function): Handle case where we are
27330         returning a value and the return block has a virtual operand phi.
27331
27332 2011-01-10  Jan Hubicka  <jh@suse.cz>
27333
27334         PR tree-optimization/47234
27335         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
27336         (pass_feedback_split_functions): Declare.
27337         * passes.c (init_optimization_passes): Add ipa-split as subpass of
27338         tree-profile.
27339         * ipa-split.c (gate_split_functions): Update comments; disable
27340         split-functions for profile_arc_flag and branch_probabilities.
27341         (gate_feedback_split_functions): New function.
27342         (execute_feedback_split_functions): New function.
27343         (pass_feedback_split_functions): New global var.
27344
27345 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
27346
27347         PR lto/46760
27348         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
27349         calling gimple_call_set_cannot_inline.
27350
27351 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
27352
27353         * config/darwin-sections.def: Remove unused section.
27354
27355 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
27356
27357         PR c++/47218
27358         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
27359
27360 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
27361
27362         PR objc/47232
27363         * c-parser.c (c_parser_declaration_or_fndef): Improved
27364         error message.
27365
27366 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
27367
27368         * config/i386/winnt.c (i386_pe_start_function): Make sure
27369         to switch back to function's section.
27370
27371 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
27372
27373         PR gcc/46902
27374         PR testsuite/46912
27375         * plugin.c: Move include of dlfcn.h from here...
27376         * system.h: ... to here.
27377
27378 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27379
27380         * doc/cpp.texi (C++ Named Operators): Fix markup for header
27381         file name.
27382         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
27383         two extra empty pages in PDF output.
27384
27385 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
27386
27387         PR objc/47078
27388         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
27389         for error recovery purposes behave as if it was not specified so
27390         that the default type is usd.
27391
27392 2011-01-07  Jan Hubicka  <jh@suse.cz>
27393
27394         PR tree-optmization/46469
27395         * ipa.c (function_and_variable_visibility): Clear needed flags on
27396         nodes with external decls; handle weakrefs merging correctly.
27397
27398 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
27399
27400         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
27401         not false.
27402
27403 2011-01-07  Jan Hubicka  <jh@suse.cz>
27404
27405         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
27406         and no longer claim that gold is required for linker plugin.
27407         * configure: Regenerate.
27408         * gcc.c (PLUGIN_COND): New macro.
27409         (LINK_COMMAND_SPEC): Use it.
27410         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
27411         * config.in (HAVE_LTO_PLUGIN): New.
27412         * configure.ac (--with-lto-plugin): New parameter; autodetect
27413         HAVE_LTO_PLUGIN.
27414
27415 2011-01-07  Jan Hubicka  <jh@suse.cz>
27416
27417         PR tree-optimization/46367
27418         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
27419         when we can update original.
27420         (cgraph_mark_inline_edge): Sanity check.
27421         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
27422
27423 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27424
27425         * config/spu/spu.h (ASM_COMMENT_START): Define.
27426
27427 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
27428
27429         PR driver/42445
27430         * gcc.c (%>S): New.
27431         (SWITCH_KEEP_FOR_GCC): Likewise.
27432         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
27433         (do_spec_1): Handle "%>".
27434
27435         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
27436
27437 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
27438
27439         PR target/47201
27440         * config/i386/i386.c (ix86_delegitimize_address): If
27441         simplify_gen_subreg fails, return orig_x.
27442
27443         PR bootstrap/47187
27444         * value-prof.c (gimple_stringop_fixed_value): Handle
27445         lhs of the call properly.
27446
27447 2011-01-07  Jan Hubicka  <jh@suse.cz>
27448
27449         PR lto/45375
27450         * lto-opt.c (lto_reissue_options): Set flag_shlib.
27451
27452 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27453
27454         * target.def (function_switched_text_sections): New hook.
27455         * doc/tm.texi: Regenerated.
27456         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27457         * final.c (default_function_switched_text_sections): New.
27458         (final_scan_insn): Call function_switched_text_sections when a
27459         mid-function section change occurs.
27460         * output.h (default_function_switched_text_sections): Declare.
27461         * config/darwin-protos.h (darwin_function_switched_text_sections):
27462         Likewise.
27463         * config/darwin.c (darwin_function_switched_text_sections): New.
27464         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27465
27466 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27467
27468         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
27469         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
27470         the secondary code fragment when outputting for DWARF == 2.
27471
27472 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
27473
27474         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27475         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
27476         Remove.
27477         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
27478         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27479
27480 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
27481
27482         PR debug/46704
27483         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
27484         when it is not empty.
27485
27486 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
27487
27488         Bobcat Enablement
27489         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
27490         (case ${target}): Add btver1.
27491         * config/i386/driver-i386.c (host_detect_local_cpu): Let
27492         -march=native recognize btver1 processors.
27493         * config/i386/i386-c.c (ix86_target_macros_internal): Add
27494         btver1 def_and_undef
27495         * config/i386/i386.c (struct processor_costs btver1_cost): New
27496         btver1 cost table.
27497         (m_BTVER1): New definition.
27498         (m_AMD_MULTIPLE): Includes m_BTVER1.
27499         (initial_ix86_tune_features): Add btver1 tune.
27500         (processor_target_table): Add btver1 entry.
27501         (static const char *const cpu_names): Add btver1 entry.
27502         (software_prefetching_beneficial_p): Add btver1.
27503         (ix86_option_override_internal): Add btver1 instruction sets.
27504         (ix86_issue_rate): Add btver1.
27505         (ix86_adjust_cost): Add btver1.
27506         * config/i386/i386.h (TARGET_BTVER1): New definition.
27507         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
27508         (enum processor_type): Add PROCESSOR_BTVER1.
27509         * config/i386/i386.md (define_attr "cpu"): Add btver1.
27510
27511 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27512
27513         PR target/43309
27514         * config/i386/i386.c (legitimize_tls_address)
27515         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
27516         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
27517         (tls_initial_exec_64_sun): New pattern.
27518
27519 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
27520
27521         * doc/invoke.texi (Overall Options): Improve wording and markup
27522         of the description of -wrapper.
27523
27524 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27525
27526         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
27527         rdynamic, threads): New Driver options.
27528
27529 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27530
27531         PR target/38118
27532         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
27533         if coming from .tdata.
27534         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27535
27536 2011-01-06  Jan Hubicka  <jh@suse.cz>
27537
27538         PR lto/47188
27539         * collect2.c (main): Do not enable LTOmode when plugin is active.
27540
27541 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27542
27543         PR other/45915
27544         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
27545         --version output if supported.
27546         * configure: Regenerate.
27547
27548 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27549
27550         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
27551         Driver options.
27552
27553 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
27554
27555         PR c/47150
27556         * c-convert.c (convert): When converting a complex expression
27557         other than COMPLEX_EXPR to a different complex type, ensure
27558         c_save_expr is called instead of save_expr, unless in_late_binary_op.
27559         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
27560         when converting COMPLEX_TYPE.
27561
27562 2011-01-06  Ira Rosen  <irar@il.ibm.com>
27563
27564         PR tree-optimization/47139
27565         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
27566         only the last reduction value is used outside the loop.  Update
27567         documentation.
27568
27569 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
27570
27571         * config/rtems.opt: New.
27572         * config.gcc (*-*-rtems*): Use rtems.opt.
27573
27574 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
27575
27576         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
27577         processors do not support 3DNow instructions.
27578
27579 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27580
27581         * config/spu/spu.c (spu_option_override): Set parameter
27582         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
27583
27584 2011-01-05  Jan Hubicka  <jh@suse.cz>
27585
27586         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
27587         at the command line.
27588
27589 2011-01-05  Martin Jambor  <mjambor@suse.cz>
27590
27591         PR lto/47162
27592         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
27593         deltas on streamed outgoing edges.
27594         (output_node_opt_summary): Output info for outgoing edges only when
27595         the node is in new parameter set.
27596         (output_cgraph_opt_summary): New parameter set, passed to the two
27597         aforementioned functions.  Update its forward declaration and its
27598         callee too.
27599
27600 2011-01-05  Tom Tromey  <tromey@redhat.com>
27601
27602         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
27603         operator to c_finish_omp_atomic.
27604         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
27605         (build_unary_op): Update.
27606         (build_modify_expr): Update.
27607         (build_asm_expr): Update.
27608
27609 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27610
27611         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
27612         newly inserted insns.
27613         (pad_bb): Likewise.
27614         (spu_emit_branch_hint): Likewise.
27615         (insert_hbrp_for_ilb_runout): Likewise.
27616         (spu_machine_dependent_reorg): Call df_finish_pass after
27617         schedule_insns returns.
27618
27619 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27620
27621         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
27622
27623 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27624
27625         PR tree-optimization/47005
27626         * tree-sra.c (struct access): Add 'non_addressable' bit.
27627         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
27628         (decide_one_param_reduction): Return 0 if the parameter is passed by
27629         reference and one of the accesses in the group is non_addressable.
27630
27631 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27632
27633         PR tree-optimization/47056
27634         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
27635         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
27636         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
27637
27638 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27639
27640         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
27641         initializer.  Skip view conversions from aggregate types.
27642
27643 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
27644
27645         PR bootstrap/47055
27646         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
27647
27648 2011-01-04  Philipp Thomas  <pth@suse.de>
27649
27650         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
27651         obvious typo.
27652
27653 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27654
27655         * function.c (thread_prologue_and_epilogue_insns): Do not crash
27656         on empty epilogue sequences.
27657
27658 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
27659
27660         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
27661         non-static): New Driver options.
27662
27663 2011-01-04  Jie Zhang  <jie@codesourcery.com>
27664
27665         PR driver/47137
27666         * gcc.c (default_compilers[]): Set combinable field to 0
27667         for all assembly languages.
27668
27669 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
27670
27671         * config/mips/loongson3a.md: New file.
27672         * config/mips/mips.md: Include loongson3a.md.
27673         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
27674         TUNE_LOONGSON_3A.
27675
27676 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27677
27678         PR middle-end/47017
27679         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
27680         instead of convert_memory_address_addr_space on the base expression.
27681
27682 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27683
27684         * config/spu/spu.c (spu_option_override): Update error text
27685         for bad -march= / -mtune= values.
27686
27687 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27688
27689         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
27690         if branch-hint optimization will be performed.
27691
27692 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27693
27694         PR tree-optimization/47148
27695         * ipa-split.c (split_function): Convert arguments to
27696         DECL_ARG_TYPE if possible.
27697
27698         PR tree-optimization/47155
27699         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
27700         when computing uns.
27701
27702         PR rtl-optimization/47157
27703         * combine.c (try_combine): If undobuf.other_insn becomes
27704         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
27705         and set *new_direct_jump_p too.
27706
27707 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
27708
27709         PR tree-optimization/47021
27710         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
27711
27712 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27713
27714         * gcc.c (process_command): Update copyright notice dates.
27715         * gcov.c (print_version): Likewise.
27716         * gcov-dump.c (print_version): Likewise.
27717         * mips-tfile.c (main): Likewise.
27718         * mips-tdump.c (main): Likewise.
27719
27720 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27721
27722         PR tree-optimization/46801
27723         * tree-sra.c (type_internals_preclude_sra_p): Check whether
27724         aggregate fields start at byte boundary instead of the bit-field flag.
27725
27726 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27727
27728         PR driver/47137
27729         * gcc.c (main): Revert revision 168407.
27730
27731 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27732
27733         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
27734
27735 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27736
27737         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
27738         vector optab to expand vector/scalar shift, update gimple to vector.
27739
27740 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27741
27742         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
27743         a thunk.
27744
27745 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27746
27747         PR tree-optimization/46984
27748         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
27749         HOST_WIDE_INT.
27750         (cgraph_create_indirect_edge): Fixed line length.
27751         (cgraph_indirect_call_info): Declare.
27752         (cgraph_make_edge_direct) Update declaration.
27753         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
27754         (cgraph_create_indirect_edge): Use it.
27755         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
27756         callees.
27757         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
27758         the new thunk_delta representation.
27759         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
27760         HOST_WIDE_INT.
27761         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
27762         (ipa_read_indirect_edge_info): Likewise.
27763         * lto-cgraph.c (output_edge_opt_summary): New function.
27764         (output_node_opt_summary): Call it on all outgoing edges.
27765         (input_edge_opt_summary): New function.
27766         (input_node_opt_summary): Call it on all outgoing edges.
27767
27768 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
27769
27770         PR driver/47137
27771         * gcc.c (main): Don't check have_o when settting combine_inputs.
27772
27773 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
27774
27775         * regrename.c: Add general comment describing the pass.
27776         (struct du_head): Remove 'length' field.
27777         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
27778         (regrename_optimize): Do not sort chains.  Rework comments, add others.
27779         Force renaming to the preferred class (if any) in the first pass and do
27780         not consider registers that belong to it in the second pass.
27781         (create_new_chain): Do not set 'length' field.
27782         (scan_rtx_reg): Likewise.
27783
27784 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
27785
27786         PR tree-optimization/47140
27787         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
27788         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
27789         to bit_value_binop.
27790
27791         PR rtl-optimization/47028
27792         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
27793         parm_birth_insn instead of at the beginning of first bb.
27794
27795 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
27796
27797         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
27798         Remove the word "see" before "@pxref".
27799         * doc/rtl.texi: Remove the word "see" before "@pxref".
27800
27801 2011-01-01  Jan Hubicka  <jh@suse.cz>
27802
27803         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
27804         memory.
27805
27806 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
27807
27808         PR target/38662
27809         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
27810
27811 \f
27812 Copyright (C) 2011 Free Software Foundation, Inc.
27813
27814 Copying and distribution of this file, with or without modification,
27815 are permitted in any medium without royalty provided the copyright
27816 notice and this notice are preserved.