OSDN Git Service

2011-09-06 Tom de Vries <tom@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-09-06  Tom de Vries  <tom@codesourcery.com>
2
3         * recog.c (asm_labels_ok): New function.
4         (check_asm_operands): Use asm_labels_ok.
5
6 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
7
8         PR target/49606
9         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
10         (PMODE_INSN): New macro.
11         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
12         (mips_got_load, mips_expand_synci_loop): Likewise.
13         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
14         cprestore patterns.
15         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
16         copygp_mips16 patterns.
17         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
18         and use_cprestore patterns.
19         (mips_override_options): Check for incompatible -mabi and -mlong
20         combinations.
21         * config/mips/mips.md (unspec_got<mode>): Rename to...
22         (unspec_got_<mode>): ...this.
23         (copygp_mips16): Use the Pmode iterator.
24         (potential_cprestore, cprestore, use_cprestore): Likewise.
25         (clear_cache, indirect_jump): Use PMODE_INSN.
26         (indirect_jump<mode>): Rename to...
27         (indirect_jump_<mode>): ...this.
28         (tablejump): Use PMODE_INSN.
29         (tablejump<mode>): Rename to...
30         (tablejump_<mode>): ...this.
31         (exception_receiver): Handle restore_gp_si and restore_gp_di.
32         (restore_gp): Use the Pmode iterator.
33         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
34         PMODE_INSN.
35
36 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
37
38         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
39         Fix the type of the BIT_AND_EXPR.
40
41 2011-09-05  David S. Miller  <davem@davemloft.net>
42
43         * config.host: Add driver-sparc.o and sparc/x-sparc on
44         native sparc*-*-linux* builds.
45         * config/sparc/driver-sparc.c: Correct Linux strings.
46         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
47         * config/sparc/linux64.h: Likewise.
48         * doc/invoke.texi: Document that Linux also supports
49         -mcpu=native and -mtune=native on sparc.
50
51         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
52         PROCESSOR_NIAGARA4): New.
53         * config/sparc/sparc.opt: Handle new processor types.
54         * config/sparc/sparc.md: Add to "cpu" attribute.
55         * config/sparc/sparc.h (TARGET_CPU_niagara3,
56         TARGET_CPU_niagara4): New, treat as niagara2.
57         * config/sparc/linux64.h: Handle niagara3 and niagara4
58         like niagara2.
59         * config/sparc/sol2.h: Likewise.
60         * config/sparc/niagara2.md: Schedule niagara3 like
61         niagara2.
62         * config/sparc/sparc.c (sparc_option_override): Add
63         niagara3 and niagara4 handling.
64         (sparc32_initialize_trampoline): Likewise.
65         (sparc64_initialize_trampoline): Likewise.
66         (sparc_use_sched_lookahead): Likewise.
67         (sparc_issue_rate): Likewise.
68         (sparc_register_move_cost): Likewise.
69         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
70         and niagara4 as appropriate.
71         * doc/invoke.texi: Document new processor types.
72         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
73         and --with-tune options.
74
75         * config/sparc/sol2-64.h: Move ...
76         * config/sparc/default-64.h: ... to here.  Update comment.
77         * config.gcc: Update Solaris sparc to use default-64.h, also
78         prefix this header into the list on sparc64-*-linux.
79         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
80         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
81         to MASK_HARD_QUAD.
82
83 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
84
85         PR target/50289
86         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
87         that contain global register variable.
88
89 2011-09-05  Richard Guenther  <rguenther@suse.de>
90
91         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
92
93 2011-09-05  Richard Guenther  <rguenther@suse.de>
94
95         * stor-layout.c (layout_type): Use size_binop for array size
96         calculations.
97
98 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
99
100         * config/avr/avr.h (progmem_section): Remove Declaration.
101         * config/avr/avr.c (progmem_section): Make static and rename to
102         progmem_swtable_section.
103         (avr_output_addr_vec_elt): No need to switch sections.
104         (avr_asm_init_sections): Use output_section_asm_op as section
105         callback for progmem_swtable_section.
106         (avr_output_progmem_section_asm_op): Remove Function.
107         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
108         (avr_asm_function_rodata_section): New static Function.
109         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
110         alignment 2**1 for jump tables.
111
112 2011-09-04  Jan Hubicka  <jh@suse.cz>
113
114         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
115         parameter is SSA name.
116
117 2011-09-04  Richard Guenther  <rguenther@suse.de>
118
119         Revert
120         2011-08-31  Richard Guenther  <rguenther@suse.de>
121
122         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
123         special-casing.
124
125 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
126
127         PR debug/49901
128         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
129
130 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
131             Ira Rosen  <ira.rosen@linaro.org>
132
133         PR tree-optimization/50208
134         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
135         argument.  Check that def_stmt is inside the loop.
136         (vect_recog_widen_mult_pattern): Update calls to
137         vect_handle_widen_mult_by_cons.
138         (vect_operation_fits_smaller_type): Check that def_stmt is
139         inside the loop.
140
141 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
142
143         * tree-vectorizer.c (vect_print_dump_info): Print line
144         number when dumping to a file.
145         (vectorize_loops): Add new messages to dump file.
146
147 2011-09-03  Martin Jambor  <mjambor@suse.cz>
148
149         * ipa-prop.h (ipa_jump_func_t): New typedef.
150         (struct ipa_edge_args): Removed field argument_count, field
151         jump_functions turned into a vector.
152         (ipa_set_cs_argument_count): Removed.
153         (ipa_get_cs_argument_count): Updated to work on vectors.
154         (ipa_get_ith_jump_func): Likewise.
155         * ipa-prop.c (ipa_count_arguments): Removed.
156         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
157         jump functions.  Update caller.
158         (compute_pass_through_member_ptrs): Likewise.
159         (compute_cst_member_ptr_arguments): Likewise.
160         (ipa_compute_jump_functions_for_edge): Get number of arguments from
161         the statement, allocate vector.
162         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
163         (duplicate_ipa_jump_func_array): Removed.
164         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
165         (ipa_read_node_info): Allocate vector.
166
167 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
168
169         PR middle-end/50232
170         * config/pa/pa.md (return): Define "return" insn pattern.
171         (epilogue): Use it when no epilogue is needed.
172         * config/pa/pa.c (pa_can_use_return_insn): New function.
173         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
174
175 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
176
177         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
178         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
179         Force at least BITS_PER_UNIT alignment on the new variable.
180
181 2011-09-02  Gary Funck <gary@intrepid.com>
182
183         * opts.c (print_specific_help): Fix off-by-one compare in
184         assertion check.
185         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
186         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
187         Increase by +5 to allow for more languages.
188         * optc-gen.awk: Generate #if that ensures that the number of
189         languages is within the implementation-defined limit.
190
191 2011-09-02  Michael Matz  <matz@suse.de>
192
193         PR middle-end/50260
194         * ipa-split.c (split_function): Call add_referenced_var.
195
196         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
197         (cond_if_else_store_replacement_1): Ditto.
198         * tree-ssa-pre.c (get_representative_for): Ditto.
199         (create_expression_by_pieces): Ditto.
200         (insert_into_preds_of_block): Ditto.
201         * tree-sra.c (create_access_replacement): Ditto.
202         (get_replaced_param_substitute): Ditto.
203
204 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
205
206         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
207         automata_options.
208         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
209         (l1w, s1w, l2w, s2w): Define in the main automaton.
210         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
211         units.
212         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
213         (c6x_unit_names): Add the new units.
214         (c6x_unit_codes): New static array.
215         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
216         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
217         UNIT_QID_SIDE_OFFSET): New macros.
218         (RESERVATION_S2): Adjust value.
219         (c6x_option_override): Compute c6x_unit_codes.
220         (assign_reservations): Take the unit_mask of the last instruction
221         into account.  Detect floating point reservations by looking for
222         the new units.  Don't assign reservations if the field is already
223         nonzero.
224         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
225         (init_sched_state): Initialize it.
226         (c6x_clear_sched_context): Free it.
227         (insn_set_clock): Clear reservation.
228         (prev_cycle_state): New static variable.
229         (c6x_init_sched_context): Save it.
230         (c6x_sched_init): Allocate space for it and clear it.
231         (c6x_sched_dfa_pre_cycle_insn): New static function.
232         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
233         (c6x_variable_issue): Only record units in the unit_mask that
234         were not set at the start of the cycle.
235         (c6x_variable_issue): Compute and store the unit_mask from the
236         current state.
237         (reorg_split_calls): Ensure the new information remains correct.
238         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
239         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
240         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
241         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
242         Add special reservations.
243         * config/c6x/c6x-sched.md: Regenerate.
244
245 2011-09-02  Martin Jambor  <mjambor@suse.cz>
246
247         * ipa-prop.h (ipa_node_params): Removed fields
248         called_with_var_arguments and node_versionable.
249         (ipa_set_called_with_variable_arg): Removed.
250         (ipa_is_called_with_var_arguments): Likewise.
251         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
252         (determine_versionability): Do not check for type attributes and va
253         builtins.  Record versionability into inline summary.
254         (initialize_node_lattices): Do not check
255         ipa_is_called_with_var_arguments.
256         (propagate_constants_accross_call): Likewise, ignore arguments we do
257         not have PARM_DECLs for, set variable flag for parameters that were
258         not passed a value.
259         (create_specialized_node): Dump info that we cannot change signature.
260         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
261         number of arguments.
262         (ipa_make_edge_direct_to_target): Likewise.
263         (ipa_update_after_lto_read): Likewise.
264         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
265         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
266         they were remapped.
267
268 2011-09-02  Richard Guenther  <rguenther@suse.de>
269
270         PR tree-optimization/27460
271         PR middle-end/29269
272         * doc/md.texi (vcond): Document.
273         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
274         optab with two modes.
275         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
276         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
277         (vcond_optab): Adjust.
278         (vcondu_optab): Likewise.
279         (expand_vec_cond_expr_p): Adjust prototype.
280         * optabs.c (get_vcond_icode): Adjust.
281         (expand_vec_cond_expr_p): Likewise.
282         (expand_vec_cond_expr): Likewise.
283         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
284         vector type.
285         (vectorizable_condition): Allow differing types for comparison
286         and result.
287         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
288         for the comparison.
289         * config/i386/sse.md (vcond<mode>): Split to
290         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
291         vcond<V_128:mode><VI124_128:mode> and
292         vcondu<V_128:mode><VI124_128:mode>.
293         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
294         (vconduv2di): Likewise.
295         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
296         (vcondu<mode>): Likewise.
297         * config/ia64/vect.md (vcond<mode>): Likewise.
298         (vcondu<mode>): Likewise.
299         (vcondv2sf): Likewise.
300         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
301         * config/rs6000/paired.md (vcondv2sf): Likewise.
302         * config/rs6000/vector.md (vcond<mode>): Likewise.
303         (vcondu<mode>): Likewise.
304         * config/spu/spu.md (vcond<mode>): Likewise.
305         (vcondu<mode>): Likewise.
306
307 2011-09-02  Richard Guenther  <rguenther@suse.de>
308
309         * pretty-print.h (pp_unsigned_wide_integer): New.
310         * tree-pretty-print.c (dump_generic_node): Print unsigned
311         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
312
313 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
314
315         PR target/49987
316         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
317         valid CONST_VECTOR operands.
318         (rs6000_expand_vector_init): Likewise.
319
320 2011-09-02  Martin Jambor  <mjambor@suse.cz>
321
322         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
323         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
324         BINFO_VTABLE.  Parameter delta removed, all callers updated.
325         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
326         BINFO_VTABLE.
327         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
328         all calls.
329         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
330         handling of thunk_delta.
331         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
332         (devirtualization_time_bonus): Do not handle thunk deltas.
333         (ipcp_discover_new_direct_edges): Likewise.
334         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
335         (try_make_edge_direct_simple_call): Likewise.
336         (try_make_edge_direct_virtual_call): Likewise.
337         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
338         parameter set as unused.
339         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
340         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
341         parameter set as unused.
342         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
343         (input_edge_opt_summary): Likewise.
344         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
345         BINFO_VIRTUALS at all.
346         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
347
348 2011-09-02  Richard Guenther  <rguenther@suse.de>
349
350         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not
351         fold alloca (0).
352         (ccp_fold_stmt): Continue replacing args when folding
353         alloca fails.
354
355 2011-08-31  Richard Guenther  <rguenther@suse.de>
356
357         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
358         handling here, from ...
359         (expand_expr_real_1): ... here.
360         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
361         and VEC_COND_EXPR.
362         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
363         a GIMPLE_TERNARY_RHS.
364         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
365         and VEC_COND_EXPR here ...
366         (verify_gimple_assign_single): ... not here.
367         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
368         * tree-object-size.c (cond_expr_object_size): Adjust.
369         (collect_object_sizes_for): Likewise.
370         * tree-scalar-evolution.c (interpret_expr): Don't handle
371         ternary RHSs.
372         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and
373         simplify.
374         (ssa_forward_propagate_and_combine): Adjust.
375         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
376         as ternary.
377         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
378         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
379         * tree-vect-stmt.c (vectorizable_condition): Likewise.
380         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
381         (extract_range_from_assignment): Likewise.
382
383 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
384
385         * config/i386/i386.md: Use (match_test ...) for attribute tests.
386         * config/i386/mmx.md: Likewise.
387         * config/i386/sse.md: Likewise.
388         * config/i386/predicates.md (call_insn_operand): Use
389         (not (match_test "...")) instead of (match_test "!...")
390         * config/i386/constraints.md (w): Likewise.
391
392 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
393
394         * doc/md.texi: Describe the use of match_tests in attribute tests.
395         * rtl.def (MATCH_TEST): Update commentary.
396         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
397         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
398
399 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
400
401         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
402         (attr_string): Use copy_md_ptr_loc.
403
404 2011-08-31  Martin Jambor  <mjambor@suse.cz>
405
406         PR middle-end/49886
407         * ipa-inline-analysis.c (compute_inline_parameters): Set
408         can_change_signature of noes with typde attributes.
409         * ipa-split.c (split_function): Do not skip any arguments if
410         can_change_signature is set.
411
412 2011-08-31  Martin Jambor  <mjambor@suse.cz>
413
414         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
415         check removed.
416
417 2011-08-31  Richard Guenther  <rguenther@suse.de>
418
419         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
420         special-casing.
421
422 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
423
424         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
425
426 2011-08-31  Tom de Vries  <tom@codesourcery.com>
427
428         PR middle-end/43513
429         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
430         * tree-ssa-ccp.c (params.h): Include.
431         (fold_builtin_alloca_for_var): New function.
432         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
433
434 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
435
436         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
437         Handle FMA option.
438
439 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
440
441         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
442         b3 and b4 unsigned.
443
444 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
445
446         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
447         when code is SET.
448
449 2011-08-30  Richard Guenther  <rguenther@suse.de>
450
451         PR middle-end/48571
452         * gimple.h (maybe_fold_offset_to_address): Remove.
453         (maybe_fold_offset_to_reference): Likewise.
454         (maybe_fold_stmt_addition): Likewise.
455         (may_propagate_address_into_dereference): Likewise.
456         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
457         array references.
458         * gimple-fold.c (canonicalize_constructor_val): Likewise.
459         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
460         addresses instead.
461         (may_propagate_address_into_dereference): Remove.
462         (maybe_fold_offset_to_array_ref): Likewise.
463         (maybe_fold_offset_to_reference): Likewise.
464         (maybe_fold_offset_to_address): Likewise.
465         (maybe_fold_stmt_addition): Likewise.
466         (fold_gimple_assign): Do not reconstruct array references but
467         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
468         MEM_REF addresses.
469         (gimple_fold_stmt_to_constant_1): Likewise.
470         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
471         * gimplify.c (gimplify_conversion): Likewise.
472         (gimplify_expr): Likewise.
473
474 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
475
476         * config/i386/fmaintrin.h: New.
477         * config.gcc: Add fmaintrin.h.
478         * config/i386/i386.c
479         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
480         <IX86_BUILTIN_VFMADDSD3>: Likewise.
481         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
482         (*fmai_fmadd_<mode>): Likewise.
483         (*fmai_fmsub_<mode>): Likewise.
484         (*fmai_fnmadd_<mode>): Likewise.
485         (*fmai_fnmsub_<mode>): Likewise.
486         * config/i386/immintrin.h: Add fmaintrin.h.
487
488 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
489
490         * genautomata.c (NO_COMB_OPTION): New macro.
491         (no_comb_flag): New static variable.
492         (gen_automata_option): Handle NO_COMB_OPTION.
493         (comb_vect_p): False if no_comb_flag.
494         (add_vect): Move computation of min/max values.  Return early if
495         no_comb_flag.
496         * doc/md.texi (automata_option): Document no-comb-vect.
497
498         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
499         "__x86.get_pc_thunk".
500
501         * bb-reorder.c (insert_section_boundary_note): Only do it if
502         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
503
504 2011-08-30  Christian Bruel  <christian.bruel@st.com>
505
506         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
507         flag_profile_use.
508
509 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
510
511         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
512         to off.  Document switch.
513         * doc/invoke.texi (-msave-toc-indirect): Ditto.
514
515 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
516
517         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
518         conditionals and comments inside macro arguments.
519
520 20011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
521              Richard Guenther  <rguenther@suse.de>
522
523         * tree.h (constant_boolean_node): Adjust prototype.
524         * fold-const.c (fold_convert_loc): Move aggregate conversion
525         leeway down.
526         (constant_boolean_node): Make value parameter boolean, add
527         vector type handling.
528         (fold_unary_loc): Use constant_boolean_node.
529         (fold_binary_loc): Preserve types properly when folding
530         COMPLEX_EXPR <__real x, __imag x>.
531         * gimplify.c (gimplify_expr): Handle vector comparison.
532         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
533         comparison.
534         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
535         comparisons.
536
537 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
538
539         PR middle-end/48722
540         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
541         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
542         (verify_rtl_sharing): Likewise and verify_rtx_sharing
543         in there too.
544         (unshare_all_rtl_in_chain): For CALL_INSNs
545         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
546
547 2011-08-29  Richard Guenther  <rguenther@suse.de>
548
549         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
550         on the built ADDR_EXPR.
551
552 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
553
554         PR debug/50215
555         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
556         before adding ENTRY_VALUE to val->locs.
557
558 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
559
560         PR bootstrap/50218
561         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
562         comp.
563
564 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
565
566         * doc/rtl.texi (simple_return): Document.
567         (parallel, PATTERN): Here too.
568         * doc/md.texi (return): Mention it's allowed to expand to simple_return
569         in some cases.
570         (simple_return): Document standard pattern.
571         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
572         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
573         * reorg.c (function_return_label, function_simple_return_label):
574         New static variables, replacing...
575         (end_of_function_label): ... this.
576         (simplejump_or_return_p): New static function.
577         (optimize_skip, steal_delay_list_from_fallthrough,
578         fill_slots_from_thread): Use it.
579         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
580         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
581         (find_end_label): Take a new arg which is one of the two return
582         rtxs.  Depending on which, set either function_return_label or
583         function_simple_return_label.  All callers changed.
584         (make_return_insns): Make both kinds.
585         (dbr_schedule): Adjust for two kinds of end labels.
586         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
587         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
588         (gen_expand, gen_split): Use ANY_RETURN_P.
589         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
590         * rtl.def (SIMPLE_RETURN): New code.
591         * ifcvt.c (find_if_case_1): Be more careful about
592         redirecting jumps to the EXIT_BLOCK.
593         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
594         returnjump_p_1): Handle SIMPLE_RETURNs.
595         * print-rtl.c (print_rtx): Likewise.
596         * rtl.c (copy_rtx): Likewise.
597         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
598         * combine.c (simplify_set): Likewise.
599         * resource.c (find_dead_or_set_registers, mark_set_resources):
600         Likewise.
601         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
602         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
603         (init_emit_regs): Initialize simple_return_rtx.
604         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
605         force_nonfallthru_and_redirect.
606         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
607         (GR_SIMPLE_RETURN): New enum value.
608         (simple_return_rtx): New macro.
609         * basic-block.h (force_nonfallthru_and_redirect): Adjust
610         declaration.
611         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
612         argument.  All callers changed.  Be careful about what kinds of
613         returnjumps to generate.
614         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
615         ix86_pad_short_function): Likewise.
616         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
617         of return.
618         * config/mips/mips.md (any_return): New code_iterator.
619         (optab): Add cases for return and simple_return.
620         (return): Expand to a simple_return.
621         (simple_return): New pattern.
622         (*<optab>, *<optab>_internal for any_return): New patterns.
623         (return_internal): Remove.
624         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
625         a simple_return_internal.
626
627 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
628
629         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
630         (vec_extract_lo_<mode>): Prevent both operands in memory.
631         (vec_extract_lo_v16hi): Ditto.
632         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
633
634 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
635
636         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
637         (*sse2_mulv4si3): Ditto.
638         (mulv2di3): Ditto.
639         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
640         notes to REG_EQUAL.
641
642 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
643
644         PR target/50202
645         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
646         when all outputs are unused.
647         (sse4_2_pcmpistr): Ditto.
648
649 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
650
651         * config/i386/i386.md (round<mode>2): New expander.
652         * config/i386/i386.c (enum ix86_builtins): Add
653         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
654         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
655         descriptions.
656         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
657         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
658
659 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
660
661         PR middle-end/50083
662         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
663         only when TARGET_C99_FUNCTIONS.
664         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
665         <BUILT_IN_RINT{,F,L}>: Ditto.
666
667 2011-08-26  Michael Matz  <matz@suse.de>
668             Jakub Jelinek  <jakub@redhat.com>
669
670         PR lto/50165
671         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
672         don't call strlen twice, use memcpy.
673
674 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
675
676         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
677         * config/i386/bmiintrin.h: Likewise.
678         * config/i386/lzcntintrin.h: Likewise.
679
680         * config/i386/immintrin.h: Include <lzcntintrin.h>,
681         <bmiintrin.h> and <bmi2intrin.h>.
682
683 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
684
685         PR target/50166
686         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
687         * configure: Regenerate.
688
689 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
690
691         PR c/50179
692         * c-typeck.c (c_process_expr_stmt): Skip over nops and
693         call mark_exp_read even if exprv is ADDR_EXPR.
694
695 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
696
697         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
698         to df_set_dead_notes_for_mw.
699
700 2011-08-26  Richard Guenther  <rguenther@suse.de>
701
702         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
703
704 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
705             Tom de Vries  <tom@codesourcery.com>
706
707         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
708         (struct ivopts_data): Add loop_single_exit_p field.
709         (niter_for_exit): Change parameter desc_p into return value.  Return
710         desc if desc->may_be_zero.  Free desc if unused.
711         (niter_for_single_dom_exit): Change return type.
712         (find_induction_variables): Handle changed return type of
713         niter_for_single_dom_exit.  Dump may_be_zero.
714         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
715         (set_use_iv_cost): Add and handle comp parameter.
716         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
717         comp argument to set_use_iv_cost.
718         (strip_wrap_conserving_type_conversions, expr_equal_p)
719         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
720         (may_eliminate_iv): Add comp parameter.  Handle new return type of
721         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
722         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
723         and may_eliminate_iv.
724         (rewrite_use_compare): Move call to iv_elimination_compare to ...
725         (may_eliminate_iv): Here.
726         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
727
728 2011-08-26  Tom de Vries  <tom@codesourcery.com>
729
730         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
731         accessing TREE_TYPE.
732
733 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
734
735         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
736         (*ior_scc_scc_cmp): Likewise
737         (*and_scc_scc): Likewise.
738         (*and_scc_scc_cmp): Likewise.
739         (*and_scc_scc_nodom): Likewise.
740         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
741
742 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
743
744         * rtlanal.c (nonzero_bits1): Handle CLRSB.
745
746 2011-08-26  Richard Guenther  <rguenther@suse.de>
747
748         * expr.c (string_constant): Handle &MEM_REF.
749
750 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
751
752         * config/arm/arm.c (struct four_ints): New type.
753         (count_insns_for_constant): Delete function.
754         (find_best_start): Delete function.
755         (optimal_immediate_sequence): New function.
756         (optimal_immediate_sequence_1): New function.
757         (arm_gen_constant): Move constant splitting code to
758         optimal_immediate_sequence.
759         Rewrite constant negation/invertion code.
760
761 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
762
763         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
764         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
765         Remove prototype. Remove static function type.
766         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
767         Add arch attribute.
768         * config/arm/constraints.md (Pj, PJ): New constraints.
769
770 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
771
772         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
773         ("cortex_a9_multiply_long"): New and use above.  Handle all
774         long multiply cases.
775         ("cortex_a9_multiply"): Handle smmul and smmulr.
776         ("cortex_a9_mac"): Handle smmla.
777
778 2011-08-25  Richard Henderson  <rth@redhat.com>
779
780         PR 50132
781         PR 49864
782         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
783         non-constant stack adjutment.
784         * expr.c (find_args_size_adjust): Break out from ...
785         (fixup_args_size_notes): ... here.
786         * rtl.h (find_args_size_adjust): Declare.
787
788 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
789
790         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
791         sse4 and sse4_noavx.
792         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
793         (*pushdf_rex64): Change Y2 register constraint to x.
794         (*movdf_internal_rex64): Ditto.
795         (*zero_extendsidi2_rex64): Ditto.
796         (*movdi_internal): Change Y2 register constraint to x
797         and update "isa" attribute.
798         (*pushdf): Ditto.
799         (*movdf internal): Ditto.
800         (zero_extendsidi2_1): Ditto.
801         (*truncdfdf_mixed): Ditto.
802         (*truncxfdf2_mixed): Ditto.
803         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
804         register constraint to x.
805         (*movv2sf_internal_rex64): Ditto.
806         (*mov<mode>_internal): Change Y2 register constraint to x
807         and add "isa" attribute.
808         (*movv2sf_internal): Ditto.
809         (*vec_extractv2si_1): Ditto.
810         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
811         constraints to x and update "isa" attribute.
812         (*vec_interleave_highv2df): Change Y3 registerconstraint
813         to x and update "isa" attribute.
814         (*vec_interleave_lowv2df): Ditto.
815         (*vec_concatv2df): Change Y2 register constraint to x and
816         update "isa" attribute.
817         (sse2_loadld): Ditto.
818         (*vec_extractv2di_1): Ditto.
819         (*vec_dupv4si): Ditto.
820         (*vec_dupv2di): Ditto.
821         (*vec_concatv4si): Ditto.
822         (vec_concatv2di): Ditto.
823         * config/i386/constraints.md (Y2): Remove.
824         (Y3): Ditto.
825         (Y4): Ditto.
826
827 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
828
829         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
830         dump_def_use_chain): Don't declare.
831         (mark_conflict, create_new_chain): Move before users.
832         (regrename_optimize): Move to near end of file.
833
834 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
835
836         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
837         (secondary_input_reload_class): Remove Prototype.
838         * config/avr/avr.c (byte_immediate_operand): Remove Function.
839         * config/avr/avr.md (setmemhi): Use u8_operand.
840         (strlenhi): Use const0_rtx for comparison.
841         * config/avr/avr.h (avr_reg_order): Remove Declaration.
842
843 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
844
845         * config/avr/avr.c (reg_class_tab): Make local to
846         avr_regno_reg_class.  Return smallest register class available.
847
848 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
849
850         * config/avr/avr.c (STR_PREFIX_P): New Define.
851         (avr_asm_declare_function_name): Use it.
852         (avr_asm_named_section): Use it.
853         (avr_section_type_flags): Use it.
854
855 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
856
857         * doc/md.texi (automata_option): Document collapse-ndfa.
858         * genautomata.c (COLLAPSE_OPTION): New macro.
859         (collapse_flag): New static variable.
860         (struct description): New member normal_decls_num.
861         (struct automaton): New members advance_ainsn and collapse_ainsn.
862         (gen_automata_option): Check for COLLAPSE_OPTION.
863         (collapse_ndfa_insn_decl): New static variable.
864         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
865         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
866         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
867         necessary.  Use normal_decls_num rather than decls_num, remove
868         test for special decls.
869         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
870         (make_automaton); Likewise.  Use the new advance_cycle_insn member
871         of struct automaton.
872         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
873         is set.
874         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
875         transition.  Create the necessary transitions for it.
876         (create_ainsns): Return void.  Take an automaton_t argument, and
877         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
878         callers changed.
879         (COLLAPSE_NDFA_VALUE_NAME): New macro.
880         (output_tables): Output code to define it.
881         (output_internal_insn_code_evaluation): Output code to accept
882         const0_rtx as collapse-ndfa transition.
883         (output_default_latencies, output_print_reservation_func,
884         output_print_description): Reorganize loops to use normal_decls_num
885         as loop bound; remove special case for advance_cycle_insn_decl.
886         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
887         (check_automata_insn_issues): Check for collapse_ainsn.
888         (expand_automate): Allocate sufficient space.  Initialize
889         normal_decls_num.
890
891 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
892
893         * config/avr/avr.md: Fix indentation from r177991.
894
895 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
896
897         * regrename.c (struct du_head): Remove member terminated.
898         (create_new_chain): Don't initialize it.
899         (scan_rtx_reg): Don't set or test it, test the open_chains_set
900         bitmap instead.
901         (tick, this_tick): New global variables, moved out of
902         regrename_optimize.
903         (current_id, open_chains, closed_chains, open_chains_set,
904         live_in_chains, live_hard_regs): Reorder declarations.
905         (dump_def_use_chain): Move function earlier in the file.
906         (rename_chains): New static function, broken out of
907         regrename_optimize.
908         (regrename_optimize): Use it.  Remove #if 0'ed code.
909
910 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
911
912         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
913
914 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
915
916         PR target/50172
917         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
918
919 2011-08-24  Richard Guenther  <rguenther@suse.de>
920
921         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
922         ref in the basic-block case.  Move stripping array-refs
923         to the place we create an access-function for it.  Remove
924         bogus stripping down a MEM_REF to its base.
925
926 2011-08-24  Richard Guenther  <rguenther@suse.de>
927
928         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
929         with -fno-strict-overflow.
930
931 2011-08-24  Richard Guenther  <rguenther@suse.de>
932
933         * tree-vectorizer.c (vect_print_dump_info): Avoid the
934         file and location clutter when dumping to dump files.
935
936 2011-08-24  Simon Baldwin  <simonb@google.com>
937
938         * gengtype-state.c (write_state): Remove timestamped header line.
939
940 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
941
942         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
943         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
944         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
945         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
946         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
947         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
948         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
949         rules.
950         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
951
952 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
953
954         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
955
956 2011-08-24  Richard Guenther  <rguenther@suse.de>
957
958         PR tree-optimization/50067
959         * tree-data-ref.c (dr_analyze_indices): Do not add an access
960         function for a MEM_REF base that has no evolution in the loop
961         nest or that is not analyzable.
962
963 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
964
965         * ira.c (ira_init_register_move_cost): Check small subclasses
966         through ira_reg_class_max_nregs and ira_available_class_regs.
967
968 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
969
970         * config/i386/constraints.md (Yp): New register constraint.
971         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
972         Yp register constraint.
973         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
974         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
975         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
976
977 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
978
979         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
980
981 2011-08-23  Mark Heffernan  <meheff@google.com>
982
983         PR middle-end/38509
984         * common.opt (Wfree-nonheap-object): New option.
985         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
986         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
987         to warning.
988         (expand_builtin): Make warning conditional.
989
990 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
991
992         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
993         (length_immediate): Handle imulx, ishiftx and rotatex.
994         (imm_disp): Ditto.
995         (isa): Add bmi2.
996         (enabled): Handle bmi2.
997         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
998         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
999         (*bmi2_umulditi3_1): New insn pattern.
1000         (*bmi2_umulsidi3_1): Ditto.
1001         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
1002         (*bmi2_ashl<mode>3_1): New insn pattern.
1003         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
1004         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
1005         (*bmi2_ashlsi3_1_zext): New insn pattern.
1006         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
1007         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
1008         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
1009         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
1010         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
1011         flags dependency.
1012         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
1013         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
1014         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
1015         flags dependency.
1016         (*bmi2_rorx<mode>3_1): New insn pattern.
1017         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
1018         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
1019         (*rotatert<mode>3_1 splitter): Ditto.
1020         (*bmi2_rorxsi3_1_zext): New insn pattern.
1021         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
1022         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
1023         (*rotatertsi3_1_zext splitter): Ditto.
1024
1025 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1026
1027         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
1028         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
1029         (ix86_handle_option): Handle OPT_mbmi2 case.
1030         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
1031         (x86_64-*-*): Likewise.
1032         * config/i386/bmi2intrin.h: New file.
1033         * config/i386/cpuid.h (bit_BMI2): New.
1034         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1035         BMI2 feature.
1036         * config/i386/i386-c.c (ix86_target_macros_internal):
1037         Conditionally define __BMI2__.
1038         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
1039         Handle BMI2 option.
1040         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
1041         (print_reg): New code.
1042         (ix86_print_operand): Likewise.
1043         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1044         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1045         IX86_BUILTIN_PEXT64.
1046         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1047         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1048         IX86_BUILTIN_PEXT64.
1049         * config/i386/i386.h (TARGET_BMI2): New.
1050         * config/i386/i386.md (UNSPEC_PDEP): New.
1051         (UNSPEC_PEXT): Likewise.
1052         (*bmi2_bzhi_<mode>3): Likewise.
1053         (*bmi2_pdep_<mode>3): Likewise.
1054         (*bmi2_pext_<mode>3): Likewise.
1055         * config/i386/i386.opt (mbmi2): New.
1056         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
1057         is defined.
1058         * doc/extend.texi: Document BMI2 built-in functions.
1059         * doc/invoke.texi: Document -mbmi2.
1060
1061 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
1062
1063         PR middle-end/50161
1064         * simplify-rtx.c (simplify_const_unary_operation): If
1065         op is CONST_INT, don't look at op_mode, but use instead mode.
1066         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
1067         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
1068         operation and TRUNCATE/ZERO_EXTEND if needed.
1069         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
1070         Document that operand mode must be same as operation mode,
1071         or VOIDmode.
1072         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
1073         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
1074         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
1075         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
1076         use the mode of operand for the operation and add truncate
1077         or zero_extend around if needed.
1078         * config/c6x/c6x.md (ctzdi2): Likewise.
1079         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
1080
1081 2011-08-12  Michael Matz  <matz@suse.de>
1082
1083         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
1084         (gimple_expand_cfg): Merge alignment info for coalesced pointer
1085         SSA names.
1086
1087 2011-08-23  Richard Guenther  <rguenther@suse.de>
1088
1089         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
1090         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
1091         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
1092         from ...
1093         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
1094         (mem_refs_may_alias_p): Adjust.
1095         * tree-data-ref.h (dr_may_alias_p): Adjust.
1096         * tree-data-ref.c: Include tree-affine.h.
1097         (dr_analyze_indices): Do nothing for the non-loop case.
1098         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
1099         more cases in the non-loop case.
1100         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
1101         calls to dr_may_alias_p.
1102         (write_alias_graph_to_ascii_ecc): Likewise.
1103         (write_alias_graph_to_ascii_dot): Likewise.
1104         (build_alias_set_optimal_p): Likewise.
1105
1106 2011-08-23  Richard Guenther  <rguenther@suse.de>
1107
1108         PR tree-optimization/50162
1109         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
1110
1111 2011-08-23  Richard Guenther  <rguenther@suse.de>
1112
1113         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
1114         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
1115         (create_data_ref): Also dump access functions for the created data-ref.
1116
1117 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
1118             Kirill Yukhin  <kirill.yukhin@intel.com>
1119
1120         PR target/50155
1121         * config/i386/sse.md (VI_AVX2): New.
1122         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
1123         (*<plusminus_insn><mode>3): Ditto.
1124         (<sse2_avx2>_andnot<mode>3): Ditto.
1125         (*andnot<mode>3): Fix order of cond operands.
1126         Add asserts for correct TARGET_xxx.
1127         (*<any_logic:code><mode>3): Ditto.
1128
1129 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
1130
1131         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
1132         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
1133         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
1134         regclass argument type to reg_class_t. Change 'max' and 'v' vars
1135         and return types to unsigned char. Use reg_class_contents instead
1136         of class_contents.
1137         (TARGET_CLASS_MAX_NREGS): Define.
1138
1139 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
1140
1141         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
1142         to make computed_jump_p return true.
1143
1144 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1145
1146         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
1147         (PICFLAG_FOR_TARGET): Substitute.
1148         * aclocal.m4: Regenerate.
1149         * configure: Regenerate.
1150
1151 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
1152
1153         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
1154         after reading in the pch.
1155
1156 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
1157
1158         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
1159         * configure: Regenerated.
1160
1161 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
1162
1163         PR tree-optimization/50133
1164         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
1165         from stmt instead of some statement around gsi.
1166
1167         PR middle-end/50141
1168         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
1169         innerdecl is a VAR_DECL.
1170
1171 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
1172
1173         * config/i386/avx2intrin.h: New file.
1174         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
1175         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
1176         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
1177         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
1178         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
1179         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
1180         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
1181         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
1182         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
1183         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
1184         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
1185         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
1186         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
1187         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
1188         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
1189         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
1190         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
1191         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
1192         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
1193         VOID_FTYPE_PV8SI_V8SI_V8SI,
1194         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
1195         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
1196         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
1197         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
1198         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
1199         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
1200         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
1201         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
1202         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
1203         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
1204         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
1205         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
1206         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
1207         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
1208         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
1209         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
1210         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
1211         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
1212         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
1213         V4DI_FTYPE_V4DI_INT_CONVERT,
1214         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
1215         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
1216         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1217         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1218         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1219         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1220         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1221         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1222         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1223         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1224         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1225         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1226         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1227         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1228         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1229         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1230         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1231         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1232         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1233         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1234         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1235         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1236         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1237         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1238         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1239         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1240         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1241         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1242         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1243         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1244         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1245         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1246         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1247         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1248         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1249         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1250         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1251         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1252         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1253         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1254         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1255         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1256         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1257         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1258         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1259         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1260         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1261         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1262         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1263         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1264         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1265         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1266         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1267         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1268         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1269         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1270         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1271         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1272         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1273         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
1274         IX86_BUILTIN_VBROADCASTSS_PS256,
1275         IX86_BUILTIN_VBROADCASTSD_PD256,
1276         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1277         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1278         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1279         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1280         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1281         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1282         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1283         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1284         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1285         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1286         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1287         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1288         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
1289         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1290         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1291         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1292         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1293         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
1294         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
1295         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
1296         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
1297         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
1298         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
1299         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
1300         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
1301         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
1302         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
1303         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1304         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1305         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1306         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
1307         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
1308         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1309         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1310         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1311         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1312         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1313         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1314         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1315         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1316         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1317         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1318         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1319         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1320         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1321         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1322         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1323         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1324         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1325         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1326         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1327         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1328         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1329         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1330         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1331         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1332         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1333         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1334         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1335         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1336         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1337         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1338         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1339         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1340         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1341         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1342         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1343         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1344         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1345         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1346         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1347         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1348         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1349         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1350         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1351         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1352         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1353         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1354         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1355         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1356         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1357         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1358         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1359         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1360         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1361         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1362         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1363         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1364         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1365         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
1366         IX86_BUILTIN_VBROADCASTSD_PD256,
1367         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1368         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1369         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1370         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1371         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1372         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1373         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1374         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1375         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1376         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1377         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1378         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1379         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1380         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
1381         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
1382         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
1383         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
1384         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
1385         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
1386         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
1387         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
1388         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
1389         IX86_BUILTIN_GATHERDIV8SI.
1390         (ix86_preferred_simd_mode): Support AVX2 modes.
1391         (ix86_expand_args_builtin): Support AVX2 builtins.
1392         (ix86_expand_special_args_builtin): Likewise.
1393         (ix86_expand_builtin): Likewise.
1394         * config/i386/i386.md (UNSPEC_VPERMSI): New.
1395         (UNSPEC_VPERMDF): Likewise.
1396         (UNSPEC_VPERMSF): Likewise.
1397         (UNSPEC_VPERMDI): Likewise.
1398         (UNSPEC_VPERMTI): Likewise.
1399         (UNSPEC_GATHER): Likewise.
1400         (ssemodesuffix): Extend.
1401         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1402         is defined.
1403         * config/i386/predicates.md (const1248_operand): New.
1404         * config/i386/sse.md (VI1_AVX2): New mode iterator.
1405         (VI2_AVX2): Likewise.
1406         (VI4_AVX2): Likewise.
1407         (VI8_AVX2): Likewise.
1408         (VIMAX_AVX2): Likewise.
1409         (SSESCALARMODE): Likewise.
1410         (VI12_AVX2): Likewise.
1411         (VI24_AVX2): Likewise.
1412         (VI124_AVX2): Likewise.
1413         (VI248_AVX2): Likewise.
1414         (VI48_AVX2): Likewise.
1415         (VI4SD_AVX2): Likewise.
1416         (V48_AVX2): Likewise.
1417         (AVX256MODE2P): Likewise.
1418         (AVXMODE48P_DI): Likewise.
1419         (sse2_avx2): New mode attribute.
1420         (ssse3_avx2): Likewise.
1421         (sse4_1_avx2): Likewise.
1422         (avx_avx2): Likewise.
1423         (ssebytemode): Likewise.
1424         (AVXTOSSEMODE): Likewise.
1425         (AVXMODE48P_DI): Likewise.
1426         (gthrfirstp): Likewise.
1427         (gthrlastp): Likewise.
1428         (lshift): New code_iterator
1429         (lshift): New code attribute.
1430         (lshift): Likewise.
1431         (ssescalarmodesuffix): Update.
1432         (sseunpackmode): Likewise.
1433         (ssepackmode): Likewise.
1434         (avx2_vec_dupv4sf): New insn pattern.
1435         (avx2_vec_dupv8sf): Likewise.
1436         (avx2_interleave_highv4di): Likewise.
1437         (avx2_interleave_lowv4di): Likewise.
1438         (avx2_umulv4siv4di3): Likewise
1439         (*avx2_umulv4siv4di3): Likewise
1440         (avx2_pmaddwd): Likewise.
1441         (*avx2_pmaddwd): Likewise.
1442         (avx2_lshrqv4di3): Likewise.
1443         (avx2_lshlqv4di3): Likewise.
1444         (avx2_lshl<mode>3): Likewise.
1445         (avx2_<umaxmin:code><mode>3): Likewise.
1446         (*avx2_<umaxmin:code><mode>3): Likewise.
1447         (avx2_<smaxmin:code><mode>3): Likewise.
1448         (*avx2_<smaxmin:code><mode>3): Likewise.
1449         (avx2_eq<mode>3): Likewise.
1450         (*avx2_eq<mode>3): Likewise.
1451         (avx2_gt<mode>3): Likewise.
1452         (avx2_interleave_highv32qi): New.
1453         (avx2_interleave_lowv32qi): Likewise.
1454         (avx2_interleave_highv16hi): Likewise.
1455         (avx2_interleave_lowv16hi): Likewise.
1456         (avx2_interleave_highv8si): Likewise.
1457         (avx2_interleave_lowv8si): Likewise.
1458         (avx2_pshufd): Likewise.
1459         (avx2_pshufd_1): Likewise.
1460         (avx2_pshuflwv3): Likewise.
1461         (avx2_pshuflw_1): Likewise.
1462         (avx2_pshufhwv3): Likewise.
1463         (avx2_pshufhw_1): Likewise.
1464         (avx2_uavgv32qi3): Likewise.
1465         (*avx2_uavgv32qi3): Likewise.
1466         (avx2_uavgv16hi3): Likewise.
1467         (*avx2_uavgv16hi3): Likewise.
1468         (avx2_pmovmskb): Likewise.
1469         (avx2_phaddwv16hi3): Likewise.
1470         (avx2_phadddv8si3): Likewise.
1471         (avx2_phaddswv16hi3): Likewise.
1472         (avx2_phsubwv16hi3): Likewise.
1473         (avx2_phsubdv8si3): Likewise.
1474         (avx2_phsubswv16hi3): Likewise.
1475         (avx2_pmaddubsw256): Likewise.
1476         (avx2_umulhrswv16hi3): Likewise.
1477         (*avx2_umulhrswv16hi3): Likewise.
1478         (avx2_packusdw): Likewise.
1479         (avx2_pblendd<mode>): Likewise.
1480         (avx2_<code>v16qiv16hi2): Likewise.
1481         (avx2_<code>v8qiv8si2): Likewise.
1482         (avx2_<code>v8hiv8si2): Likewise.
1483         (avx2_<code>v4qiv4di2): Likewise.
1484         (avx2_<code>v4hiv4di2): Likewise.
1485         (avx2_<code>v4siv4di2): Likewise.
1486         (avx2_pbroadcast<mode>): Likewise.
1487         (avx2_permvarv8si): Likewise.
1488         (avx2_permv4df): Likewise.
1489         (avx2_permvarv8sf): Likewise.
1490         (avx2_permv4di): Likewise.
1491         (avx2_permv2ti): Likewise.
1492         (avx2_vec_dupv4df): Likewise.
1493         (avx2_vbroadcasti128_<mode>): Likewise.
1494         (avx2_vec_set_lo_v4di): Likewise.
1495         (avx2_vec_set_hi_v4di): Likewise.
1496         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
1497         (avx2_extracti128): Likewise.
1498         (avx2_inserti128): Likewise.
1499         (avx2_ashrvv8si): Likewise.
1500         (avx2_ashrvv4si): Likewise.
1501         (avx2_<lshift>vv8si): Likewise.
1502         (avx2_<lshift>v<mode>): Likewise.
1503         (avx2_<lshift>vv2di): Likewise.
1504         (avx2_gathersi<mode>): Likewise.
1505         (*avx2_gathersi<mode>): Likewise.
1506         (avx2_gatherdi<mode>): Likewise.
1507         (*avx2_gatherdi<mode>): Likewise.
1508         (avx2_gatherdi<mode>256): Likewise.
1509         (*avx2_gatherdi<mode>256): Likewise.
1510         (<plusminus_insn><mode>3): Use VI mode iterator.
1511         (*<plusminus_insn><mode>3): Use VI mode iterator.
1512         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1513         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1514         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1515         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1516         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
1517         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
1518         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1519         Use VI2_AVX2 mode iterator.
1520         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
1521         Use VI2_AVX2 mode iterator.
1522         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
1523         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
1524         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1525         Use VI4_AVX2 mode iterator.
1526         (ashr<mode>3): Use VI24_AVX2 mode iterator.
1527         (lshr<mode>3): Use VI248_AVX2 mode iterator.
1528         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1529         Use VIMAX_AVX2 mode iterator.
1530         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1531         Use VI mode iterator.
1532         (*andnot<mode>3): Update for AVX2.
1533         (*<any_logic:code><mode>3): Likewise.
1534         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
1535         Use VI1_AVX mode iterator.
1536         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
1537         Use VI2_AVX mode iterator.
1538         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
1539         Use VI1_AVX mode iterator.
1540         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1541         Use VI8_AVX2 mode iterator.
1542         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1543         Use VI1_AVX2 mode iterator.
1544         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1545         Use VI124_AVX2 mode iterator.
1546         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1547         Use SSESCALARMODE mode iterator.
1548         (abs<mode>2): Use VI124_AVX2 mode iterator.
1549         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1550         Use VI8_AVX2 mode iterator.
1551         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1552         Use VI1_AVX2 mode iterator.
1553         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1554         Use VI1_AVX2 mode iterator.
1555         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1556         Use VI2_AVX2 mode iterator.
1557         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
1558         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
1559         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
1560         avx_maskstore<ssemodesuffix><avxsizesuffix>.
1561         Use V48_AVX2 mode iterator.
1562         * doc/extend.texi: Document AVX2 built-in functions.
1563         * doc/invoke.texi: Document -mavx2.
1564
1565 2011-08-22  Matthias Klose <doko@debian.org>
1566
1567         Revert:
1568         2011-07-11  Arthur Loiret  <aloiret@debian.org>
1569                     Matthias Klose <doko@debian.org>
1570         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1571         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1572         convention.
1573         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1574
1575 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
1576
1577         PR bootstrap/50146
1578         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1579         to #ifndef HONOR_REG_ALLOC_ORDER block.
1580
1581 2011-08-21  Richard Henderson  <rth@redhat.com>
1582
1583         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1584         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1585         * resource.c (next_insn_no_annul): Likewise.
1586         (mark_set_resources): Likewise.
1587         * reorg.c (delete_from_delay_slot): Likewise.
1588         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
1589         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
1590
1591 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
1592
1593         * config/i386/i386.md (any_div): Remove.
1594         (sgnprefix): Update for removal.
1595         (u): Ditto.
1596
1597 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
1598
1599         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
1600         for ira_reg_class_max_nregs.  Increase pressure by 1.
1601         (mark_pseudo_regno_subword_dead): Use allocno class
1602         for ira_reg_class_max_nregs.
1603
1604 2011-08-20  Richard Henderson  <rth@redhat.com>
1605
1606         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
1607         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
1608         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
1609         config/c6x/ltf.c: Adjust include path for soft-fp.
1610
1611 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1612
1613         PR other/46770
1614         * config.gcc (tm_file): Add initfini-array.h if
1615         .init_arrary/.fini_array are supported.
1616
1617         * crtstuff.c: Don't generate .ctors nor .dtors sections if
1618         USE_INITFINI_ARRAY is defined.
1619
1620         * output.h (default_elf_init_array_asm_out_constructor): New.
1621         (default_elf_fini_array_asm_out_destructor): Likewise.
1622         * varasm.c (elf_init_array_section): Likewise.
1623         (elf_fini_array_section): Likewise.
1624         (get_elf_initfini_array_priority_section): Likewise.
1625         (default_elf_init_array_asm_out_constructor): Likewise.
1626         (default_elf_fini_array_asm_out_destructor): Likewise.
1627
1628         * config/initfini-array.h: New.
1629
1630 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1631
1632         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
1633         OK for ST_REGS and FP_REGS before taking those classes into account.
1634
1635 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1636
1637         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
1638         before checking for annulled branches.
1639
1640 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1641
1642         * config/i386/i386.c (ix86_binary_operator_ok): Use
1643         satisfies_constraint_L.
1644
1645 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1646             Michael Matz  <matz@suse.de>
1647
1648         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
1649         trunc (a + copysign (nextafter (0.5, 0.0), a)).
1650
1651 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
1652
1653         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1654         * doc/tm.texi: Regenerate.
1655         * targhooks.c (default_preferred_output_reload_class): Don't use
1656         PREFERRED_OUTPUT_RELOAD_CLASS macro.
1657         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1658
1659 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
1660
1661         PR tree-optimization/48739
1662         * tree-ssa.c: Include cfgloop.h.
1663         (execute_update_addresses_taken): When updating ssa, if in loop closed
1664         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
1665         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1666
1667 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
1668
1669         PR rtl-optimization/49936
1670         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1671         for calculation of max register move costs.
1672
1673 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1674
1675         * c-parser.c (c_parser_postfix_expression): Convert operands of
1676         __builtin_complex to their semantic types.
1677
1678 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1679
1680         PR middle-end/49721
1681         * explow.c (convert_memory_address_addr_space): Also permute the
1682         conversion and addition of constant for zero-extend.
1683
1684 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1685
1686         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
1687         * doc/extend.texi (__builtin_complex): Document.
1688
1689 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1690
1691         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1692         beyond conversions.
1693         (convert_mult_to_widen): Convert constant inputs to the right type.
1694         (convert_plusminus_to_widen): Don't automatically reject inputs that
1695         are not an SSA_NAME.
1696         Convert constant inputs to the right type.
1697
1698 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1699
1700         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1701         to the correct type.
1702
1703 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1704
1705         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1706         unsigned inputs of different modes.
1707         (convert_plusminus_to_widen): Likewise.
1708
1709 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1710
1711         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
1712         'type'.
1713         Use 'type' from caller, not inferred from 'rhs'.
1714         Don't reject non-conversion statements. Do return lhs in this case.
1715         (is_widening_mult_p): Add new argument 'type'.
1716         Use 'type' from caller, not inferred from 'stmt'.
1717         Pass type to is_widening_mult_rhs_p.
1718         (convert_mult_to_widen): Pass type to is_widening_mult_p.
1719         (convert_plusminus_to_widen): Likewise.
1720
1721 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1722
1723         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
1724         Ensure the the larger type is the first operand.
1725
1726 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1727
1728         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
1729         unsupported unsigned multiplies to signed.
1730         (convert_plusminus_to_widen): Likewise.
1731
1732 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1733
1734         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
1735         conversion statement separating multiply-and-accumulate.
1736
1737 2011-08-19  Richard Guenther  <rguenther@suse.de>
1738
1739         PR tree-optimization/50067
1740         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
1741         offset only if we accounted for it.
1742
1743 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1744
1745         * config/arm/arm.md (maddhidi4): Remove '*' from name.
1746         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
1747         * optabs.c (find_widening_optab_handler_and_mode): New function.
1748         (expand_widen_pattern_expr): Use find_widening_optab_handler.
1749         (expand_binop_directly): Likewise.
1750         (expand_binop): Likewise.
1751         * optabs.h (find_widening_optab_handler): New macro define.
1752         (find_widening_optab_handler_and_mode): New prototype.
1753         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
1754         type precision rules.
1755         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
1756         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
1757         (is_widening_mult_rhs_p): Allow widening by more than one mode.
1758         Explicitly disallow mis-matched input types.
1759         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
1760         input types to fit the new handler.
1761         (convert_plusminus_to_widen): Likewise.
1762
1763 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1764
1765         * expr.c (expand_expr_real_2): Use widening_optab_handler.
1766         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
1767         (gen_insn): $N now means $a must be wider than $b, not consecutive.
1768         * optabs.c (widened_mode): New function.
1769         (expand_widen_pattern_expr): Use widening_optab_handler.
1770         (expand_binop_directly): Likewise.
1771         (expand_binop): Likewise.
1772         * optabs.h (widening_optab_handlers): New struct.
1773         (optab_d): New member, 'widening'.
1774         (widening_optab_handler): New function.
1775         (set_widening_optab_handler): New function.
1776         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
1777         widening_optab_handler.
1778         (convert_plusminus_to_widen): Likewise.
1779
1780 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1781
1782         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
1783         pedantic.
1784         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
1785         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
1786
1787 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1788
1789         * opth-gen.awk: Do not declare target save/restore structures and
1790         functions if IN_RTS defined.
1791
1792 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1793
1794         PR target/49437
1795         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
1796         when stack was realigned in interrupt handler prologue.
1797
1798 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
1799
1800         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
1801         (quals_from_declspecs): Assert _Noreturn not present.
1802         (grokdeclarator): Handle _Noreturn.
1803         (build_null_declspecs): Initialize noreturn_p.
1804         (declspecs_add_scspec): Handle RID_NORETURN.
1805         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
1806         (c_parser_attributes): Handle RID_NORETURN.
1807         * c-tree.h (struct c_declspecs): Add noreturn_p.
1808         * ginclude/stdnoreturn.h: New.
1809         * Makefile.in (USER_H): Add stdnoreturn.h.
1810
1811 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1812
1813         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
1814         (OPTION_MASK_ISA_AVX_UNSET): Update.
1815         (OPTION_MASK_ISA_AVX2_UNSET): New.
1816         (ix86_handle_option): Handle OPT_mavx2 case.
1817         * config/i386/cpuid.h (bit_AVX2): New.
1818         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1819         AVX2 feature.
1820         * config/i386/i386-c.c (ix86_target_macros_internal):
1821         Conditionally define __AVX2__.
1822         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
1823         Define "core-avx2" processor alias.  Handle avx2 option.
1824         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
1825         * config/i386/i386.h (TARGET_AVX2): New.
1826         * config/i386/i386.opt (mavx2): New.
1827         * doc/invoke.texi: Document -mavx2.
1828
1829 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
1830
1831         PR rtl-optimization/49890
1832         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
1833         subclasses of class which is superset of a pressure class.
1834
1835 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1836             Igor Zamyatin <igor.zamyatin@intel.com>
1837
1838         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
1839         with HOST_WIDE_INT for isa_flag.
1840         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
1841         isa variables.
1842
1843         * config/i386/i386.c (ix86_target_string): Replace int with
1844         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
1845         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
1846         (pta_flags): Removed.
1847         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
1848         (pta): Use HOST_WIDE_INT on flags.
1849         (builtin_isa): Use HOST_WIDE_INT on isa.
1850         (ix86_add_new_builtins): Likewise.
1851         (def_builtin): Use HOST_WIDE_INT on mask.
1852         (def_builtin_const): Likewise.
1853         (builtin_description): Likewise.
1854
1855         * config/i386/i386.opt (ix86_isa_flags): Replace int with
1856         HOST_WIDE_INT.
1857         (ix86_isa_flags_explicit): Likewise.
1858         (x_ix86_isa_flags_explicit): Likewise.
1859
1860 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
1861
1862         PR rtl-optimization/50107
1863         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
1864         (ira_hard_reg_in_set_p): New.
1865
1866         * ira-color.c (calculate_saved_nregs): New.
1867         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
1868         hard regs.
1869         (allocno_reload_assign, fast_allocation): Use
1870         ira_hard_reg_set_intersection_p instead of
1871         ira_hard_reg_not_in_set_p.
1872
1873         * ira.c (setup_reg_renumber): Use
1874         ira_hard_reg_set_intersection_p instead of
1875         ira_hard_reg_not_in_set_p.
1876         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
1877         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
1878
1879         * ira-costs.c (ira_tune_allocno_costs): Use
1880         ira_hard_reg_set_intersection_p instead of
1881         ira_hard_reg_not_in_set_p.
1882
1883 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1884             Igor Zamyatin <igor.zamyatin@intel.com>
1885
1886         * hwint.h (HOST_WIDE_INT_1): New.
1887
1888         * opt-functions.awk (switch_bit_fields): Initialize the
1889         host_wide_int field.
1890         (host_wide_int_var_name): New.
1891         (var_type_struct): Check and return HOST_WIDE_INT.
1892
1893         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
1894
1895         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
1896
1897         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
1898         check masks for HOST_WIDE_INT.
1899
1900         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
1901         (option_enabled): Likewise.
1902         (get_option_state): Likewise.
1903
1904         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
1905         to HOST_WIDE_INT.
1906
1907 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1908             Marc Glisse  <marc.glisse@normalesup.org>
1909
1910         PR libstdc++-v3/1773
1911         * target.def (decl_mangling_context): New C++ hook.
1912         * doc/tm.texi: Regenerate.
1913         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
1914         * config/sol2-protos.h: Group by source file.
1915         (solaris_cxx_decl_mangling_context): Declare.
1916         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
1917         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
1918         Use $<.
1919         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
1920         Add sol2-stubs.o to extra_objs.
1921
1922 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
1923
1924         PR target/50009
1925         * stor-layout.c (update_alignment_for_field): Don't ICE on
1926         packed flexible array members if ms_bitfield_layout_p.
1927
1928         PR target/50092
1929         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
1930         on the result before returning it.
1931
1932         PR debug/50017
1933         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
1934         is a debug stmt, use location of the first non-debug stmt after it.
1935
1936 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1937
1938         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
1939         (arm_size_rtx_costs): Likewise.
1940
1941 2011-08-18  Richard Guenther  <rguenther@suse.de>
1942
1943         * tree.h (tree_int_cst_msb): Remove.
1944         * tree.c (tree_int_cst_msb): Likewise.
1945         (tree_int_cst_sign_bit): Move from ...
1946         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
1947
1948 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1949
1950         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
1951         * doc/tm.texi: Regenerate.
1952         * target.def (rtx_costs): Add an opno parameter.
1953         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1954         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1955         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1956         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1957         * cse.c (COST_IN): Add an opno parameter.
1958         (notreg_cost): Likewise.  Update call to rtx_cost.
1959         (COST, fold_rtx): Update accordingly.
1960         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
1961         * expmed.c (emit_store_flag): Likewise.
1962         * optabs.c (avoid_expensive_constant): Add an opno parameter.
1963         Update call to rtx_cost.
1964         (expand_binop_directly, expand_binop): Likewise.
1965         (expand_twoval_binop, prepare_cmp_insn): Likewise.
1966         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
1967         (set_src_cost, get_full_set_src_cost): Update accordingly.
1968         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
1969         to target hook.
1970         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
1971         (default_adress_cost): Update calls to rtx_cost.
1972
1973         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
1974         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
1975         (arm_rtx_costs): Add an opno parameter.
1976         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
1977         adjust any recursive rtx-cost calls.
1978         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
1979         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1980         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
1981         * config/cris/cris.c (cris_rtx_costs): Likewise.
1982         * config/frv/frv.c (frv_rtx_costs): Likewise.
1983         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
1984         * config/i386/i386.c (ix86_rtx_costs): Likewise.
1985         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
1986         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
1987         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
1988         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
1989         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
1990         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
1991         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
1992         * config/mep/mep.c (mep_rtx_cost): Likewise.
1993         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
1994         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
1995         (mips_zero_extend_cost): Add an opno parameter.
1996         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
1997         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
1998         to rtx_cost.
1999         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
2000         rtx-cost calls.
2001         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2002         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2003         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
2004         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2005         (rs6000_debug_rtx_costs): Likewise.
2006         * config/s390/s390.c (s390_rtx_costs): Likewise.
2007         * config/score/score-protos.h (score_rtx_costs): Likewise.
2008         * config/score/score.c (score_rtx_costs): Likewise.
2009         * config/sh/sh.c (andcosts): Update call to rtx_cost.
2010         (sh_rtx_costs): Add an opno parameter.
2011         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2012         * config/spu/spu.c (spu_rtx_costs): Likewise.
2013         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2014         * config/v850/v850.c (v850_rtx_costs): Likewise.
2015         * config/vax/vax.c (vax_rtx_costs): Likewise.
2016         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2017
2018 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2019
2020         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
2021         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
2022         rtx_cost.
2023         * calls.c (precompute_register_parameters): Likewise.
2024         * combine.c (expand_compound_operation, make_extraction): Likewise.
2025         (force_to_mode, distribute_and_simplify_rtx): Likewise.
2026         * dse.c (find_shift_sequence): Likewise.
2027         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
2028         * expr.c (compress_float_constant): Likewise.
2029         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2030         * gcse.c (want_to_gcse_p): Likewise.
2031         * ifcvt.c (noce_try_sign_mask): Likewise.
2032         * loop-doloop.c (doloop_optimize): Likewise.
2033         * loop-invariant.c (create_new_invariant): Likewise.
2034         * optabs.c (avoid_expensive_constant): Likewise.
2035         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
2036         (try_replace_in_use, reload_cse_move2add): Likewise.
2037         * reload1.c (calculate_elim_costs_all_insns): Likewise.
2038         (note_reg_elim_costly): Likewise.
2039         * rtlanal.c (insn_rtx_cost): Likewise.
2040         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2041         * stmt.c (lshift_cheap_p): Likewise.
2042         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
2043         * config/avr/avr.c (final_prescan_insn): Likewise.
2044         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2045         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
2046
2047 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2048
2049         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
2050         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
2051         * cfgloopanal.c (seq_cost): Likewise.
2052         * loop-invariant.c (create_new_invariant): Likewise.
2053         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
2054         (reload_cse_move2add): Use get_full_set_rtx_cost.
2055
2056 2011-08-18  Richard Guenther  <rguenther@suse.de>
2057
2058         * expr.c (get_inner_reference): Fix typo in last change.
2059
2060 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
2061             Joseph Myers  <joseph@codesourcery.com>
2062
2063         PR tree-optimization/49963
2064         * hwint.c (absu_hwi): Define.
2065         * hwint.h (absu_hwi): Declare.
2066         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
2067         of abs_hwi.
2068         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2069         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2070
2071 2011-08-18  Richard Guenther  <rguenther@suse.de>
2072
2073         * expr.c (get_inner_reference): Sign-extend the constant
2074         twos-complement offset before doing arbitrary precision
2075         arithmetic on it.
2076         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2077         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
2078         to get_constraint_for_ptr_offset.
2079
2080 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2081
2082         PR target/50068
2083         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
2084
2085 2011-08-17  Richard Guenther  <rguenther@suse.de>
2086
2087         * tree.h (convert_to_ptrofftype_loc): New function.
2088         (convert_to_ptrofftype): Define.
2089         * builtins.c (expand_builtin_bzero): Use size_type_node.
2090         (fold_builtin_bzero): Likewise.
2091         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
2092         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
2093         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
2094         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
2095         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
2096         * fold-const.c (build_range_check): Negate using the original type.
2097         (fold_unary_loc): Use fold_build_pointer_plus_loc.
2098         * gimple-fold.c (gimple_adjust_this_by_delta): Use
2099         convert_to_ptrofftype.
2100         * gimplify.c (gimplify_self_mod_expr): Likewise.
2101         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
2102         (graphite_create_new_loop_guard): Likewise.
2103         * graphite-sese-to-poly.c (my_long_long): Remove.
2104         (scop_ivs_can_be_represented): Adjust.
2105         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
2106         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
2107         * tree-loop-distribution.c (build_size_arg_loc): Use
2108         size_type_node.
2109         (generate_memset_zero): Simplify.
2110         * tree-mudflap.c: Use fold_convert, not convert.
2111         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
2112         its own type.
2113         (determine_offset): Likewise for DR_STEP.
2114         (valid_initializer_p): Likewise.
2115         * tree-profile.c (prepare_instrumented_value): Convert the pointer
2116         to an integer type of same size.
2117         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
2118         to sizetype without need.
2119         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2120         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
2121         * tree-ssa-loop-manip.c (create_iv): Likewise.
2122         (determine_exit_conditions): Adjust comment.
2123         * tree-ssa-pre.c (create_expression_by_pieces): Use
2124         convert_to_ptrofftype.
2125         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
2126         * varasm.c (array_size_for_constructor): Compute using double_ints.
2127
2128 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2129
2130         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
2131         when generating an integer result where possible.  Short-cut
2132         comparison against 0 also for QImode.
2133
2134 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2135
2136         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
2137         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
2138         prototype.
2139         * config/spu/spu.c (spu_legitimize_reload_address): New function.
2140         (spu_legitimate_address_p): Do not check displacement if the base
2141         is an eliminable stack register.
2142
2143 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
2144
2145         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
2146         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2147         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
2148         m32c_preferred_output_reload_class): Remove.
2149         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
2150         Change rclass argument and return types to reg_class_t. Use
2151         reg_class_subset_p instead of class_sizes.
2152         (m32c_preferred_output_reload_class): Make static. Change rclass
2153         argument and return types to reg_class_t.
2154         (TARGET_PREFERRED_RELOAD_CLASS,
2155         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2156
2157 2011-08-16  Kai Tietz  <ktietz@redhat.com>
2158
2159         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
2160
2161 2011-08-16  Richard GUenther  <rguenther@suse.de>
2162
2163         PR tree-optimization/50082
2164         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
2165         warnings here, instead of ...
2166         (ssa_forward_propagate_and_combine): ... here.
2167         (forward_propagate_into_comparison_1): Adjust.
2168         (forward_propagate_into_comparison): Likewise.
2169         (forward_propagate_into_gimple_cond): Likewise.
2170         (forward_propagate_into_cond): Likewise.
2171
2172 2011-08-16  Andreas Schwab  <schwab@redhat.com>
2173
2174         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
2175         instead of ggc_alloc_zone_vec_rtvec_def.
2176
2177 2011-08-16  Richard Guenther  <rguenther@suse.de>
2178
2179         * tree.h (ptrofftype_p): New helper function.
2180         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
2181         offset verification.
2182         (verify_gimple_assign_binary): Likewise.
2183         * tree.c (build2_stat): Likewise.
2184         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
2185         (reset_evolution_in_loop): Likewise.
2186         * tree-chrec.h (build_polynomial_chrec): Likewise.
2187
2188 2011-08-16  Liang Wang  <lwang1@marvell.com>
2189
2190         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
2191         ggc_alloc_zone_vec_rtvec_def.
2192
2193 2011-08-16  Richard Guenther  <rguenther@suse.de>
2194
2195         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
2196         helper factored out from ...
2197         (extract_range_from_binary_expr_1): ... here.  Re-structure
2198         to not glob handling too different tree codes.
2199
2200 2011-08-15  Richard Henderson  <rth@redhat.com>
2201
2202         PR middle-end/50006
2203         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
2204         setting out to include allocate_stack named pattern as well.
2205         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
2206         * stmt.c (expand_stack_restore): Likewise.
2207
2208 2011-08-15  Richard Guenther  <rguenther@suse.de>
2209
2210         PR middle-end/50082
2211         * fold-const.c (maybe_canonicalize_comparison_1): Properly
2212         convert the modified operand to the other operand type.
2213         (fold_comparison): Call maybe_canonicalize_comparison_1 with
2214         useless conversions stripped from comparison operands.
2215
2216 2011-08-15  Richard Guenther  <rguenther@suse.de>
2217
2218         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
2219         (extract_range_from_unary_expr_1): Restructure.
2220
2221 2011-08-15  Richard Guenther  <rguenther@suse.de>
2222
2223         PR tree-optimization/50058
2224         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
2225         copy matching.
2226
2227 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2228
2229         PR target/50022
2230         * config/arm/arm.c (output_move_double): Add 2 parameters
2231         to count the number of insns emitted and whether to emit or not.
2232         Use the flag to decide when to emit and count number of instructions
2233         that will be emitted.
2234         Handle case where output_move_double might be called for calculating
2235         lengths with an invalid constant.
2236         (arm_count_output_move_double_insns): Define.
2237         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
2238         (output_move_double): Adjust prototype.
2239         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
2240         output_move_double.
2241         ("*movdi_vfp_cortexa8"): Likewise and add attribute
2242         for ce_count.
2243         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
2244         ("*movdf_soft_insn"): Likewise.
2245         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
2246         ("*cirrus_thumb2_movdi"): Likewise.
2247         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
2248         ("*cirrus_movdf_hard_insn"): Likewise.
2249         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
2250         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
2251         ("mov<mode>_internal VMMX"): Likewise.
2252         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
2253
2254 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
2255
2256         * config/i386/i386.c (ix86_expand_round_sse4): New function.
2257         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
2258         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
2259         for TARGET_ROUND.
2260
2261         (rint<mode>2): Simplify TARGET_ROUND check.
2262         (floor<mode>2): Ditto.
2263         (ceil<mode>2): Ditto.
2264         (btrunc<mode>2): Ditto.
2265
2266 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
2267
2268         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
2269         as mmix_preferred_output_reload_class.
2270
2271 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
2272
2273         * PR target/49903
2274         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
2275         (branch_unspec): New insn.
2276         (branch): Beauty farm.
2277         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
2278         to be IF_THEN_ELSE.
2279         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
2280         New static functions.
2281         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
2282         Use CONST_INT_P.  Beauty.
2283
2284 2011-08-12  Richard Henderson  <rth@redhat.com>
2285
2286         PR rtl-opt/49994
2287         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
2288         * sched-deps.c (init_deps): Clear it.
2289         (deps_analyze_insn): Consume it.
2290         (sched_analyze_insn): Fill it.
2291
2292 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2293
2294         PR target/48328
2295         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
2296         for tbh instructions.
2297
2298 2011-08-12  Diego Novillo  <dnovillo@google.com>
2299
2300         * data-streamer.h (streamer_write_zero): Rename from output_zero.
2301         (streamer_write_uhwi): Rename from lto_output_uleb128.
2302         (streamer_write_hwi): Rename from output_sleb128.
2303         (streamer_write_string): Rename from lto_output_string.
2304         (streamer_string_index): Rename from lto_string_index.
2305         (streamer_write_string_with_length): Rename from
2306         lto_output_string_with_length.
2307         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
2308         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
2309         (streamer_read_string): Rename from lto_input_string.
2310         (streamer_read_indexed_string): Rename from input_string_internal.
2311         (streamer_read_uhwi): Rename from lto_input_uleb128.
2312         (streamer_read_hwi): Rename from lto_input_sleb128.
2313         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
2314         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
2315         (streamer_write_enum): Rename from lto_output_enum.
2316         (streamer_read_enum): Rename from lto_input_enum.
2317         (streamer_write_record_start): Rename from output_record_start.
2318         (streamer_read_record_start): Rename from input_record_start.
2319         (streamer_write_bitpack): Rename from lto_output_bitpack.
2320         (streamer_read_bitpack): Rename from lto_input_bitpack.
2321         (streamer_write_char_stream): Rename from lto_output_1_stream.
2322         (streamer_read_uchar): Rename from lto_input_1_unsigned.
2323         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
2324         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
2325         (streamer_read_string_cst): Rename from input_string_cst.
2326         (streamer_read_chain): Rename from lto_input_chain.
2327         (streamer_alloc_tree): Rename from lto_materialize_tree.
2328         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
2329         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
2330         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
2331         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
2332         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
2333         (streamer_write_chain): Rename from lto_output_chain.
2334         (streamer_write_tree_header): Rename from lto_output_tree_header.
2335         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
2336         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
2337         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
2338         (streamer_write_builtin): Rename from lto_output_builtin_tree.
2339         (streamer_check_handled_ts_structures): Rename from
2340         check_handled_ts_structures.
2341         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
2342         (streamer_tree_cache_insert_at): Rename from
2343         lto_streamer_cache_insert_at.
2344         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
2345         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
2346         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
2347         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
2348         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
2349         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
2350         (write_identifier): Rename from output_identifier.
2351         (write_ts_common_tree_pointers): Rename from
2352         lto_output_ts_common_tree_pointers.
2353         (write_ts_vector_tree_pointers): Rename from
2354         lto_output_ts_vector_tree_pointers.
2355         (write_ts_complex_tree_pointers): Rename from
2356         lto_output_ts_complex_tree_pointers.
2357         (write_ts_decl_minimal_tree_pointers): Rename from
2358         lto_output_ts_decl_minimal_tree_pointers.
2359         (write_ts_decl_common_tree_pointers): Rename from
2360         lto_output_ts_decl_common_tree_pointers.
2361         (write_ts_decl_non_common_tree_pointers): Rename from
2362         lto_output_ts_decl_non_common_tree_pointers.
2363         (write_ts_decl_with_vis_tree_pointers): Rename from
2364         lto_output_ts_decl_with_vis_tree_pointers.
2365         (write_ts_field_decl_tree_pointers): Rename from
2366         lto_output_ts_field_decl_tree_pointers.
2367         (write_ts_function_decl_tree_pointers): Rename from
2368         lto_output_ts_function_decl_tree_pointers.
2369         (write_ts_type_common_tree_pointers): Rename from
2370         lto_output_ts_type_common_tree_pointers.
2371         (write_ts_type_non_common_tree_pointers): Rename from
2372         lto_output_ts_type_non_common_tree_pointers.
2373         (write_ts_list_tree_pointers): Rename from
2374         lto_output_ts_list_tree_pointers.
2375         (write_ts_vec_tree_pointers): Rename from
2376         lto_output_ts_vec_tree_pointers.
2377         (write_ts_exp_tree_pointers): Rename from
2378         lto_output_ts_exp_tree_pointers.
2379         (write_ts_block_tree_pointers): Rename from
2380         lto_output_ts_block_tree_pointers.
2381         (write_ts_binfo_tree_pointers): Rename from
2382         lto_output_ts_binfo_tree_pointers.
2383         (write_ts_constructor_tree_pointers): Rename from
2384         lto_output_ts_constructor_tree_pointers.
2385         (write_ts_target_option): Rename from lto_output_ts_target_option.
2386         (write_ts_translation_unit_decl_tree_pointers): Rename from
2387         lto_output_ts_translation_unit_decl_tree_pointers.
2388         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
2389         Rename from lto_streamer_cache_add_to_node_array.
2390         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2391         (record_common_node): Rename from lto_record_common_node.
2392
2393         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2394         declarations.
2395         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2396         function.
2397         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2398         unused function.
2399         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2400         (ipa-reference.o): Likewise.
2401         * lto-section-out.c: Include data-streamer.h.
2402         * ipa-reference.c: Include data-streamer.h.
2403
2404 2011-08-12  Nick Clifton  <nickc@redhat.com>
2405
2406         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
2407         * doc/md.texi (cmpstrn): Note that the comparison stops if both
2408         fetched bytes are zero.
2409         (cmpstr): Likewise.
2410         (cmpmem): Note that the comparison does not stop if both of the
2411         fetched bytes are zero.
2412
2413 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
2414
2415         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2416         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2417         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2418         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2419         to integer_type_node.
2420         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2421         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2422         * builtins.c (expand_builtin_in): Ditto.
2423         (mathfn_built_in_1): Ditto.
2424         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2425         BUILT_IN_IFLOOR.
2426         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2427         BUILT_IN_IROUND.
2428         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2429         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2430         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2431
2432 2011-08-12  Richard Guenther  <rguenther@suse.de>
2433
2434         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2435
2436 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
2437
2438         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2439
2440 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
2441
2442         * config/arm/arm.c (get_label_padding): New function.
2443         (create_fix_barrier, arm_reorg): Use it.
2444
2445 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2446
2447         PR target/49781
2448         * config/i386/i386.md (*lea_5_zext): New.
2449         (*lea_6_zext): Ditto.
2450         * config/i386/predicates.md (const_32bit_mask): New predicate.
2451         (lea_address_operand): Reject AND.
2452         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2453         const_32bit_mask immediate.
2454         (ix86_print_operand_address): Handle AND.
2455         (memory_address_length): Ditto.
2456
2457 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2458             Brian Hackett  <bhackett1024@gmail.com>
2459
2460         * plugin.def: Add event for finish_decl.
2461         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2462         * c-decl.c (finish_decl): Invoke callbacks on above event.
2463         * doc/plugins.texi: Document above event.
2464
2465 2011-08-11  Richard Guenther  <rguenther@suse.de>
2466
2467         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2468         lookups, make looking through aggregate copies stronger.
2469
2470 2011-08-11  Richard Henderson  <rth@redhat.com>
2471
2472         PR bootstrap/50018
2473         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2474
2475 2011-08-11  Richard Guenther  <rguenther@suse.de>
2476
2477         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2478         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2479         (vrp_visit_stmt): Likewise.
2480
2481 2011-08-11  Richard Guenther  <rguenther@suse.de>
2482
2483         PR middle-end/50040
2484         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2485         load of the other piece with TREE_NO_WARNING.
2486         * tree-flow.h (warn_uninit): Adjust prototype.
2487         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2488         the base variable and the expression that is used separately.
2489         Properly query all TREE_NO_WARNING flags.
2490         (struct walk_data): Remove.
2491         (warn_uninitialized_var): Likewise.
2492         (warn_uninitialized_vars): Do not walk gimple pieces but simply
2493         look at all SSA uses of the statement.  Handle unused memory
2494         separately.
2495         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2496
2497 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2498
2499         * config/rx/rx.md (movsicc): Allow register to register transfers.
2500         (*movsicc): Likewise.
2501         (*stcc): Restrict this pattern to EQ and NE compares.
2502         (*stcc_reg): New pattern.  Works for any comparison but only for
2503         register transfers.
2504
2505 2011-08-11   Diego Novillo  <dnovillo@google.com>
2506
2507         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2508         Call stream_write_tree instead of output_record_start.
2509         (lto_output_ts_binfo_tree_pointers): Likewise.
2510
2511         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2512         Convert it to a macro.
2513         (stream_read_tree): Likewise.
2514
2515         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2516         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2517
2518         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2519         and tree_read_bitfields.
2520         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2521         (lto_write_tree): Call it.
2522         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2523         * streamer-hooks.h (struct streamer_hooks): Remove fields
2524         name, is_streamable and alloc_tree. Update all users.
2525         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2526         (lto_materialize_tree): ... here.
2527         Handle CALL_EXPR codes.
2528         Remove call to lto_streamer_cache_append.
2529         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
2530         * tree-streamer.h (tree_read_bitfields): Declare.
2531
2532         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2533         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2534         * tree-streamer.h (stream_read_tree): New.  Replace all calls
2535         to lto_input_tree with it.
2536         (stream_write_tree): New.  Replace all calls to lto_output_tree,
2537         lto_output_tree_ref and lto_output_tree_or_ref with it.
2538         * lto-streamer-in.c (lto_read_tree): Inline code from
2539         lto_streamer_read_tree.
2540         (lto_input_tree): Move from tree-streamer-in.c.
2541         * lto-streamer-out.c (lto_output_tree_ref): Make static.
2542         Remove handling of NULL values for EXPR.
2543         Do not handle EXPRs that are not indexable.
2544         (lto_write_tree): Move from tree-streamer-out.c.
2545         Inline lto_streamer_write_tree.
2546         (lto_output_tree): Move from tree-streamer-out.c.
2547         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2548         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2549         (lto_preload_common_nodes): Likewise.
2550         Remove assertions and adjustments for nodes
2551         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2552         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
2553         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
2554         * lto-streamer.h (lto_input_tree): Declare.
2555         (lto_output_tree_ref): Remove.
2556         * streamer-hooks.h (struct streamer_hooks): Remove fields
2557         preload_common_nodes, indexable_with_decls_p,
2558         pack_value_fields, unpack_value_fields and output_tree_header.
2559         Update all users.
2560         * tree-streamer-in.c (lto_materialize_tree): Make extern.
2561         (lto_input_tree_pointers): Likewise.
2562         (lto_read_tree): Move to lto-streamer-in.c.
2563         (lto_input_integer_cst): Make extern.
2564         (lto_get_pickled_tree): Likewise.
2565         (lto_get_builtin_tree): Likewise.
2566         (lto_input_tree): Move to lto-streamer-in.c.
2567         * tree-streamer-out.c (pack_value_fields): Make extern.
2568         (lto_output_tree_or_ref): Remove.  Replace all callers with
2569         calls to stream_write_tree.
2570         (lto_output_builtin_tree): Make extern.
2571         (lto_streamer_write_tree): Inline into lto_write_tree.
2572         (lto_output_tree_pointers): Make extern.
2573         (lto_output_tree_header): Likewise.
2574         (lto_output_integer_cst): Likewise.
2575         (lto_write_tree): Move to lto-streamer-out.c.
2576         (lto_output_tree): Likewise.
2577         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
2578         (preload_common_nodes): Likewise.
2579         (lto_streamer_cache_create): Call it.
2580         * tree-streamer.h: Include streamer-hooks.h.
2581         (stream_write_tree): New.
2582         (stream_read_tree): New.
2583         (lto_input_tree): Remove.
2584         (lto_materialize_tree): Declare.
2585         (lto_input_tree_pointers): Declare.
2586         (lto_get_pickled_tree): Declare.
2587         (lto_get_builtin_tree): Declare.
2588         (lto_input_integer_cst): Declare.
2589         (lto_output_tree_header): Declare.
2590         (pack_value_fields): Declare.
2591         (lto_output_tree_pointers): Declare.
2592         (lto_output_integer_cst): Declare.
2593         (lto_output_builtin_tree): Declare.
2594
2595 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2596
2597         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
2598         only if producer writes to the register given by regno.
2599
2600 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2601             Alexander Monakov  <amonakov@ispras.ru>
2602
2603         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
2604         (sched_get_condition_with_rev_uncached): ... this.  Factor out
2605         condition caching logic into ...
2606         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
2607         attempt to use cache for instructions with zero luid.
2608         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
2609         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
2610
2611 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2612
2613         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
2614         get_seqno_for_a_jump.  Update the caller.
2615         (get_seqno_by_succs): New.  Use it ...
2616         (get_seqno_for_a_jump): ... here to find a seqno if looking at
2617         predecessors was not sufficient.
2618         (get_seqno_by_preds): Include head in iteration range, exclude insn.
2619
2620 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2621
2622         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
2623
2624 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2625
2626         * sel-sched-ir.h (register_unavailable_p): Declare.
2627         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
2628         (set_unavailable_target_for_expr): ... here to properly test
2629         availability of a register.
2630         (speculate_expr): Ditto.
2631         * sel-sched.c (substitute_reg_in_expr): Ditto.
2632         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
2633
2634 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2635
2636         * sel-sched.c (verify_target_availability): Fix usage of
2637         hard_regno_nregs.
2638
2639 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2640
2641         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
2642         recognized by cannot_copy_insn_p hook and volatile instructions.
2643
2644 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2645
2646         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
2647
2648 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
2649
2650         * doc/md.texi (define_bypass): Say that the instruction names can
2651         be filename-style globs.
2652         * Makefile.in (FNMATCH_H): Define.
2653         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
2654         * genattrtab.c: Include fnmatch.h.
2655         (bypass_list): Change field name from "insn" to "pattern".
2656         (gen_bypass_1): Update accordingly.
2657         (process_bypasses): Use fnmatch to check for matches between
2658         insn reservations and define_bypasses.
2659         * genautomata.c: Include fnmatch.h.
2660         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2661         and out_pattern respectively.
2662         (gen_bypass, insert_bypass): Update accordingly.
2663         (for_each_matching_insn, process_bypass_2, process_bypass_1)
2664         (process_bypass): New functions.
2665         (process_decls): Use process_bypass.  Update after field name changes.
2666
2667 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
2668
2669         PR target/49687
2670         * config/avr/avr.md (smulqi3_highpart): New insn.
2671         (umulqi3_highpart): New insn.
2672         (*subqi3.ashiftrt7): New insn.
2673         (smulhi3_highpart): New expander.
2674         (umulhi3_highpart): Nex expander.
2675         (*smulhi3_highpart_call): New insn.
2676         (*umulhi3_highpart_call): New insn.
2677         (extend_u): New code attribute.
2678         (extend_prefix): Rename code attribute to extend_su.
2679         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2680         widening QI/HI multiply.
2681
2682 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
2683
2684         PR tree-optimization/50039
2685         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2686         that DEF_STMT has a stmt_vec_info.
2687
2688 2011-08-10  Richard Guenther  <rguenther@suse.de>
2689
2690         * tree.h (can_trust_pointer_alignment): Remove.
2691         * builtins.c (can_trust_pointer_alignment): Remove.
2692
2693 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2694
2695         * c-typeck.c (scalar_to_vector): New function. Try scalar to
2696         vector conversion.
2697         (stv_conv): New enum for scalar_to_vector return type.
2698         (build_binary_op): Adjust.
2699         * doc/extend.texi: Description of scalar to vector expansion.
2700
2701 2011-08-10  Richard Guenther  <rguenther@suse.de>
2702
2703         * tree.h (get_pointer_alignment): Remove max-align argument.
2704         (get_object_alignment): Likewise.
2705         * builtins.c (get_object_alignment_1): Adjust.
2706         (get_object_alignment): Remove max-align argument.
2707         (get_pointer_alignment): Likewise.
2708         (expand_builtin_strlen): Adjust.
2709         (expand_builtin_memcpy): Likewise.
2710         (expand_builtin_mempcpy_args): Likewise.
2711         (expand_builtin_strncpy): Likewise.
2712         (expand_builtin_memset_args): Likewise.
2713         (expand_builtin_memcmp): Likewise.
2714         (expand_builtin_strcmp): Likewise.
2715         (expand_builtin_strncmp): Likewise.
2716         (get_builtin_sync_mem): Likewise.
2717         (fold_builtin_memset): Likewise.
2718         (fold_builtin_memory_op): Likewise.
2719         (expand_builtin_memory_chk): Likewise.
2720         * emit-rtl.c (get_mem_align_offset): Likewise.
2721         (set_mem_attributes_minus_bitpos): Likewise.
2722         * expr.c (expand_assignment): Likewise.
2723         (expand_expr_real_1): Likewise.
2724         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
2725         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2726         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
2727         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2728         * value-prof.c (gimple_stringops_transform): Likewise.
2729
2730 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
2731
2732         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
2733         * doc/tm.texi: Regenerate.
2734
2735 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
2736
2737         PR target/29560
2738         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
2739         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
2740         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
2741         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
2742         shift target is unused.
2743
2744 2011-08-10  Richard Guenther  <rguenther@suse.de>
2745
2746         PR tree-optimization/49937
2747         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
2748         using get_object_alignment_1.
2749
2750 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2751
2752         * config/i386/i386.c (ix86_emit_i387_round): New function.
2753         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
2754         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
2755         Use ix86_emit_i387_round to expand round function for i387 math.
2756         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
2757         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
2758
2759 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2760
2761         * config/sync.c: Move to ../libgcc.
2762         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
2763         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
2764         Remove.
2765
2766 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2767
2768         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
2769         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
2770         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
2771         Change 'from' and 'to' arguments type to reg_class_t.
2772         (TARGET_REGISTER_MOVE_COST): Define.
2773
2774 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
2775
2776         PR target/50026
2777         Revert:
2778         PR rtl-optimization/49990
2779         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2780         ignore classes which can not change mode.
2781         (find_costs_and_classes): Ditto.
2782
2783 2011-08-09  Richard Guenther  <rguenther@suse.de>
2784
2785         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
2786         information for ranges with only negative values.
2787         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
2788         BIT_AND_EXPR handling to handle ranges with negative values.
2789
2790 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2791
2792         * config/i386/i386.c: Remove traling spaces.
2793         * config/i386/sse.md: Likewise.
2794         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
2795         (*fma_fmsub_<mode>): Likewise.
2796         (*fma_fnmadd_<mode>): Likewise.
2797         (*fma_fnmsub_<mode>): Likewise.
2798
2799 2011-08-09  Nick Clifton  <nickc@redhat.com>
2800
2801         * config/rx/rx.md: Disable extender peepholes at -O3.
2802
2803 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2804
2805         PR target/49781
2806         * config/i386/i386.md (reload_noff_load): New.
2807         (reload_noff_store): Ditto.
2808         * config/i386/i386.c (ix86_secondary_reload): Use
2809         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
2810         double-word moves from/to non-offsetable addresses instead of
2811         generating XMM temporary.
2812
2813 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2814
2815         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
2816
2817 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
2818
2819         PR tree-optimization/50014
2820         * tree-vect-loop.c (vectorizable_reduction): Get def type before
2821         calling vect_get_vec_def_for_stmt_copy ().
2822
2823 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
2824
2825         PR rtl-optimization/49990
2826         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2827         ignore classes which can not change mode.
2828         (find_costs_and_classes): Ditto.
2829
2830 2011-08-08  Richard Henderson  <rth@redhat.com>
2831
2832         PR middle-end/49990
2833         * config/i386/i386.c (ix86_expand_prologue): Call
2834         for SEH target gen_prologue_use instead of gen_blockage
2835         at prologue's end.
2836
2837 2011-08-08  Martin Jambor  <mjambor@suse.cz>
2838
2839         PR middle-end/49923
2840         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
2841         memory alignment.
2842
2843 2011-08-08   Diego Novillo  <dnovillo@google.com>
2844
2845         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
2846         (DATA_STREAMER_H): New.
2847         (GIMPLE_STREAMER_H): New.
2848         (TREE_STREAMER_H): New.
2849         (STREAMER_HOOKS_H): New.
2850         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
2851         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
2852         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
2853         (data-streamer.o): New.
2854         (data-streamer-in.o): New.
2855         (data-streamer-out.o): New.
2856         (gimple-streamer-in.o): New.
2857         (gimple-streamer-out.o): New.
2858         (streamer-hooks.o): New.
2859         (tree-streamer.o): New.
2860         (tree-streamer-in.o): New.
2861         (tree-streamer-out.o): New.
2862         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2863         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
2864         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2865         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
2866         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2867         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
2868         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2869         (ipa-inline-analysis.o): Likewise.
2870         (ipa-pure-const.o): Likewise.
2871         * data-streamer-in.c: New.
2872         * data-streamer-out.c: New.
2873         * data-streamer.c: New.
2874         * data-streamer.h: New.
2875         * gimple-streamer-in.c: New.
2876         * gimple-streamer-out.c: New.
2877         * gimple-streamer.h: New.
2878         * ipa-inline-analysis.c: Include data-streamer.h.
2879         * ipa-prop.c: Include data-streamer.h.
2880         * ipa-pure-const.c: Include data-streamer.h.
2881         * lto-cgraph.c: Include data-streamer.h.
2882         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
2883         (lto_input_widest_uint_uleb128): Likewise.
2884         (lto_input_sleb128): Likewise.
2885         (bp_unpack_var_len_unsigned): Likewise.
2886         (bp_unpack_var_len_int): Likewise.
2887         * lto-section-out.c (lto_output_uleb128_stream): Move to
2888         data-streamer-out.c.
2889         (lto_output_widest_uint_uleb128_stream): Likewise.
2890         (lto_output_sleb128_stream): Likewise.
2891         (bp_pack_var_len_unsigned): Likewise.
2892         (bp_pack_var_len_int): Likewise.
2893         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
2894         (struct string_slot): Remove.  Update all users.
2895         (lto_tag_check_set): Make extern.
2896         (lto_tag_check_range): Move to lto-streamer.h.
2897         (lto_tag_check): Likewise.
2898         (hash_string_slot_node): Remove.  Update all users.
2899         (eq_string_slot_node): Remove.  Update all users.
2900         (string_for_index): Move to data-streamer-in.c
2901         (input_string_internal): Likewise.
2902         (input_string_cst): Move to tree-streamer-in.c.
2903         (input_identifier): Likewise.
2904         (lto_input_string): Move to data-streamer-in.c
2905         (input_record_start): Move to data-streamer.h
2906         (canon_file_name): Use new definition of struct string_slot
2907         from data-streamer.h.  Set S_SLOT.LEN.
2908         (lto_input_location): Make extern.
2909         (lto_input_chain): Move to tree-streamer-in.c.
2910         (lto_init_eh): Make extern.
2911         (input_phi): Move to gimple-streamer-in.c.
2912         (input_gimple_stmt): Likewise.
2913         (input_bb): Likewise.
2914         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
2915         (unpack_ts_real_cst_value_fields): Likewise.
2916         (unpack_ts_fixed_cst_value_fields): Likewise.
2917         (unpack_ts_decl_common_value_fields): Likewise.
2918         (unpack_ts_decl_wrtl_value_fields): Likewise.
2919         (unpack_ts_decl_with_vis_value_fields): Likewise.
2920         (unpack_ts_function_decl_value_fields): Likewise.
2921         (unpack_ts_type_common_value_fields): Likewise.
2922         (unpack_ts_block_value_fields): Likewise.
2923         (unpack_ts_translation_unit_decl_value_fields): Likewise.
2924         (unpack_value_fields): Likewise.
2925         (lto_materialize_tree): Likewise.
2926         (lto_input_ts_common_tree_pointers): Likewise.
2927         (lto_input_ts_vector_tree_pointers): Likewise.
2928         (lto_input_ts_complex_tree_pointers): Likewise.
2929         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
2930         (lto_input_ts_decl_common_tree_pointers): Likewise.
2931         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
2932         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
2933         (lto_input_ts_field_decl_tree_pointers): Likewise.
2934         (lto_input_ts_function_decl_tree_pointers): Likewise.
2935         (lto_input_ts_type_common_tree_pointers): Likewise.
2936         (lto_input_ts_type_non_common_tree_pointers): Likewise.
2937         (lto_input_ts_list_tree_pointers): Likewise.
2938         (lto_input_ts_vec_tree_pointers): Likewise.
2939         (lto_input_ts_exp_tree_pointers): Likewise.
2940         (lto_input_ts_block_tree_pointers): Likewise.
2941         (lto_input_ts_binfo_tree_pointers): Likewise.
2942         (lto_input_ts_constructor_tree_pointers): Likewise.
2943         (lto_input_ts_target_option): Likewise.
2944         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
2945         (lto_input_tree_pointers): Likewise.
2946         (lto_get_pickled_tree): Likewise.
2947         (lto_get_builtin_tree): Likewise.
2948         (lto_read_tree): Likewise.
2949         (lto_input_integer_cst): Likewise.
2950         (lto_input_tree): Likewise.
2951         * lto-streamer-out.c: Include data-streamer.h,
2952         gimple-streamer.h and streamer-hooks.h.
2953         (struct string_slot): Move to data-streamer.h.
2954         (hash_string_slot_node): Likewise.
2955         (eq_string_slot_node): Likewise.
2956         (lto_string_index): Move to data-streamer-out.c.
2957         (lto_output_string_with_length): Likewise.
2958         (lto_output_string): Likewise.
2959         (output_string_cst): Move to tree-streamer-out.c.
2960         (output_identifier): Likewise.
2961         (output_zero): Move to data-streamer-out.c
2962         (output_uleb128): Likewise.
2963         (output_sleb128): Likewise.
2964         (output_record_start): Move to data-streamer.h
2965         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
2966         (pack_ts_real_cst_value_fields): Likewise.
2967         (pack_ts_fixed_cst_value_fields): Likewise.
2968         (pack_ts_decl_common_value_fields): Likewise.
2969         (pack_ts_decl_wrtl_value_fields): Likewise.
2970         (pack_ts_decl_with_vis_value_fields): Likewise.
2971         (pack_ts_function_decl_value_fields): Likewise.
2972         (pack_ts_type_common_value_fields): Likewise.
2973         (pack_ts_block_value_fields): Likewise.
2974         (pack_ts_translation_unit_decl_value_fields): Likewise.
2975         (pack_value_fields): Likewise.
2976         (lto_output_chain): Likewise.
2977         (lto_output_ts_common_tree_pointers): Likewise.
2978         (lto_output_ts_vector_tree_pointers): Likewise.
2979         (lto_output_ts_complex_tree_pointers): Likewise.
2980         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
2981         (lto_output_ts_decl_common_tree_pointers): Likewise.
2982         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
2983         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
2984         (lto_output_ts_field_decl_tree_pointers): Likewise.
2985         (lto_output_ts_function_decl_tree_pointers): Likewise.
2986         (lto_output_ts_type_common_tree_pointers): Likewise.
2987         (lto_output_ts_type_non_common_tree_pointers): Likewise.
2988         (lto_output_ts_list_tree_pointers): Likewise.
2989         (lto_output_ts_vec_tree_pointers): Likewise.
2990         (lto_output_ts_exp_tree_pointers): Likewise.
2991         (lto_output_ts_block_tree_pointers): Likewise.
2992         (lto_output_ts_binfo_tree_pointers): Likewise.
2993         (lto_output_ts_constructor_tree_pointers): Likewise.
2994         (lto_output_ts_target_option): Likewise.
2995         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
2996         (lto_output_tree_pointers): Likewise.
2997         (lto_output_tree_header): Likewise.
2998         (lto_output_builtin_tree): Likewise.
2999         (lto_write_tree): Likewise.
3000         (lto_output_integer_cst): Likewise.
3001         (lto_output_tree): Likewise.
3002         (output_phi): Move to gimple-streamer-out.c.
3003         (output_gimple_stmt): Likewise.
3004         (output_bb): Likewise.
3005         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
3006         (streamer_hooks): Move to streamer-hooks.c.
3007         (check_handled_ts_structures): Move to tree-streamer.c
3008         (lto_streamer_cache_add_to_node_array): Likewise.
3009         (lto_streamer_cache_insert_1): Likewise.
3010         (lto_streamer_cache_insert): Likewise.
3011         (lto_streamer_cache_insert_at): Likewise.
3012         (lto_streamer_cache_append): Likewise.
3013         (lto_streamer_cache_lookup): Likewise.
3014         (lto_streamer_cache_get): Likewise.
3015         (lto_record_common_node): Likewise.
3016         (lto_preload_common_nodes): Likewise.
3017         (lto_streamer_cache_create): Likewise.
3018         (lto_streamer_cache_delete): Likewise.
3019         (streamer_hooks_init): Move to streamer-hooks.c.
3020         * lto-streamer.h: Include diagnostic.h
3021         (struct output_block, struct lto_input_block,
3022         struct data_in, struct bitpack_d): Remove forward declarations.
3023         (struct bitpack_d): Move to data-streamer.h.
3024         (struct lto_streamer_cache_d): Move to tree-streamer.h.
3025         (struct streamer_hooks): Move to streamer-hooks.h.
3026         (bp_pack_var_len_unsigned): Move to data-streamer.h.
3027         (bp_pack_var_len_int): Likewise.
3028         (bp_unpack_var_len_unsigned): Likewise.
3029         (bp_unpack_var_len_int): Likewise.
3030         (lto_input_location): Declare.
3031         (lto_tag_check_set): Declare.
3032         (lto_init_eh): Declare.
3033         (lto_output_tree_ref): Declare.
3034         (lto_output_location): Declare.
3035         (bitpack_create): Move to data-streamer.h.
3036         (bp_pack_value): Likewise.
3037         (lto_output_bitpack): Likewise.
3038         (lto_input_bitpack): Likewise.
3039         (bp_unpack_value): Likewise.
3040         (lto_output_1_stream): Likewise.
3041         (lto_input_1_unsigned): Likewise.
3042         (lto_output_int_in_range): Likewise.
3043         (lto_input_int_in_range): Likewise.
3044         (bp_pack_int_in_range): Likewise.
3045         (bp_unpack_int_in_range): Likewise.
3046         (lto_output_enum): Likewise.
3047         (lto_input_enum): Likewise.
3048         (bp_pack_enum): Likewise.
3049         (bp_unpack_enum): Likewise.
3050         * streamer-hooks.c: New.
3051         * streamer-hooks.h: New.
3052         * tree-streamer-in.c: New.
3053         * tree-streamer-out.c: New.
3054         * tree-streamer.c: New.
3055         * tree-streamer.h: New.
3056
3057 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3058
3059         * gthr-posix95.h: Remove.
3060         * gthr.h [_PTHREADS95]: Remove.
3061         * configure.ac (enable_threads): Remove posix95.
3062         * configure: Regenerate.
3063         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
3064
3065 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
3066
3067         PR target/49781
3068         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
3069         SImode addresses.
3070         (ix86_print_operand_address): Handle zero-extended addresses.
3071         (memory_address_length): Add length of addr32 prefix for
3072         zero-extended addresses.
3073         (ix86_secondary_reload): Handle moves to/from double-word general
3074         registers from/to zero-extended addresses.
3075         * config/i386/predicates.md (lea_address_operand): Reject
3076         zero-extended operands.
3077
3078 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
3079
3080         PR other/48007
3081         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
3082
3083         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
3084         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
3085
3086         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
3087         (_Unwind_Context_Reg_Val): Likewise.
3088         (_Unwind_Get_Unwind_Word): Likewise.
3089         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
3090         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
3091         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
3092         for EXTENDED_CONTEXT_BIT.
3093         (__frame_state_for): Likewise.
3094         (uw_init_context_1): Likewise.
3095         (_Unwind_GetGR): Updated.
3096         (_Unwind_SetGR): Likewise.
3097         (_Unwind_GetGRPtr): Likewise.
3098         (_Unwind_SetGRPtr): Likewise.
3099         (_Unwind_SetGRValue): Likewise.
3100         (_Unwind_GRByValue): Likewise.
3101         (uw_install_context_1): Likewise.
3102
3103         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
3104         ASSUME_EXTENDED_UNWIND_CONTEXT.
3105         * doc/tm.texi: Regenerated.
3106
3107 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3108
3109         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
3110
3111 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3112
3113         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
3114         Linux/GNU-specific.
3115         (DEC Alpha Options, -mtune): Likewise.
3116         (MIPS Options, -march): native is supported on IRIX.
3117
3118 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3119
3120         * config/sparc/driver-sparc.c: New file.
3121         * config/sparc/x-sparc: New file.
3122         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
3123         * config/sparc/sparc.opt (native): New value for enum processor_type.
3124         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
3125         * config/sparc/sparc.c (sparc_option_override): Abort if
3126         PROCESSOR_NATIVE gets here.
3127         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
3128         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
3129         DRIVER_SELF_SPECS): Define.
3130         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
3131         (SPARC Options, -mtune): Likewise.
3132         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
3133         Substitute result.
3134         * configure: Regenerate.
3135         * Makefile.in (EXTRA_GCC_LIBS): Set.
3136         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
3137         (cpp$(exeext)): Likewise.
3138
3139 2011-08-08  Richard Guenther  <rguenther@suse.de>
3140
3141         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
3142         split out from ...
3143         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
3144         by composition.
3145
3146 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
3147
3148         PR tree-optimization/50005
3149         * ipa-inline-analysis (remap_predicate): Add cast to
3150         silence signed/unsigned comparison warning.
3151
3152 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3153
3154         * modulo-sched.c (get_sched_window): Use a table for the debug output.
3155         Print the current ii.
3156         (sms_schedule_by_order): Reduce whitespace in dump line.
3157
3158 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3159
3160         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
3161         and one loop for successors.  Fix upper bound of memory range.
3162
3163 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3164
3165         PR target/50001
3166         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
3167         (TARGET_INSTANTIATE_DECLS): New define.
3168
3169 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
3170             Mikael Morin   <mikael.morin@sfr.fr>
3171
3172         * Makefile.in (INCLUDES_FOR_TARGET): New.
3173         (LIBGCC2_CFLAGS): Use it.
3174         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
3175
3176 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3177
3178         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
3179         frame->save_regs_using_mov calculation.
3180
3181 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3182
3183         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
3184         * config/i386/sse.md (castmode): New mode attribute.
3185         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
3186         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
3187
3188 2011-08-05  Jan Hubicka  <jh@suse.cz>
3189
3190         PR middle-end/49494
3191         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
3192
3193 2011-08-05  Jan Hubicka  <jh@suse.cz>
3194
3195         PR middle-end/49500
3196         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
3197         handle aliases.
3198         (create_emultls_var):New function.
3199         (ipa_lower_emutls): Handle aliases correctly.
3200
3201 2011-08-05  Jan Hubicka  <jh@suse.cz>
3202
3203         PR middle-end/49735
3204         * ipa-inline.c (recursive_inlining): Look through aliases.
3205
3206 2011-08-05  Jason Merrill  <jason@redhat.com>
3207
3208         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
3209         declarations to beginning of function.
3210
3211 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3212
3213         PR rtl-optimization/49900
3214         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
3215         ensure basic blocks stay in the same order.
3216
3217 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
3218
3219         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
3220         store_bit_field.
3221         (s390_expand_atomic): Same.
3222
3223 2011-08-05  Richard Henderson  <rth@redhat.com>
3224
3225         PR rtl-opt/49977
3226         * dwarf2cfi.c (scan_insn_after): Split out of ...
3227         (scan_trace): ... here.  Correctly place notes wrt sequences.
3228
3229 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3230             Richard Henderson  <rth@redhat.com>
3231
3232         PR rtl-opt/49982
3233         * expr.c (fixup_args_size_notes): Look through no-op moves.
3234
3235 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3236
3237         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
3238         of "m" for operand 0.  Add type and mode attribute.
3239         (*pushxf_nointeger"): Use "<" constraint for operand 0.
3240         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
3241         constraint instead of "o" for opreand 1.
3242         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
3243         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
3244         operand 0, alternative 4.
3245         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
3246
3247 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3248
3249         * config/i386/predicates.md (lea_address_operand): Rename from
3250         no_seg_address_operand.
3251         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
3252         (*lea_1_zext): Ditto.
3253         (*lea_2): Ditto.
3254         (*lea_2_zext): Ditto.
3255
3256 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3257
3258         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
3259         parts.base and parts.index.
3260         * config/i386/predicates.md (aligned_operand): Ditto.
3261         (cmpxchg8b_pic_memory_operand): Ditto.
3262
3263 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3264
3265         * config/soft-fp: Move to ../libgcc.
3266         * Makefile.in (SFP_MACHINE): Remove.
3267         (libgcc-support): Remove $(SFP_MACHINE) dependency.
3268         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
3269         * config/arm/t-arm-softfp: Move to
3270         ../libgcc/config/arm/t-softfp.
3271         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
3272         * config/c6x/t-c6x-softfp: Remove.
3273         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
3274         * config/i386/t-fprules-softfp: Move to
3275         ../libgcc/config/t-softfp-tf.
3276         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
3277         * config/ia64/t-fprules-softfp: Remove.
3278         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
3279         * config/lm32/t-fprules-softfp: Remove.
3280         * config/moxie/sfp-machine.h: Remove.
3281         * config/moxie/t-moxie-softfp: Remove.
3282         * config/rs6000/darwin-ldouble-format: Move to
3283         ../libgcc/config/rs6000/ibm-ldouble-format.
3284         * config/rs6000/darwin-ldouble.c: Move to
3285         ../libgcc/config/rs6000/ibm-ldouble.c
3286         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
3287         * config/rs6000/libgcc-ppc64.ver: Likewise.
3288         * config/rs6000/sfp-machine.h: Likewise.
3289         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
3290         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
3291         (LIB2FUNCS_EXTRA): Remove.
3292         (TARGET_LIBGCC2_CFLAGS): Remove.
3293         * config/rs6000/t-aix52: Likewise
3294         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3295         $(srcdir)/config/rs6000/darwin-ldouble.c.
3296         (SHLIB_MAPFILES): Remove.
3297         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
3298         $(srcdir)/config/rs6000/darwin-ldouble.c.
3299         * config/rs6000/t-fprules-softfp: Move to
3300         ../libgcc/config/t-softfp-sfdf.
3301         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
3302         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
3303         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
3304         $(srcdir)/config/rs6000/darwin-ldouble.c.
3305         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
3306         * config/score/t-score-softfp: Remove.
3307         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
3308         soft-fp/t-softfp from tmake_file.
3309         (arm*-*-uclinux*): Likewise.
3310         (arm*-*-ecos-elf): Likewise.
3311         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
3312         (arm*-*-rtems*): Likewise.
3313         (arm*-*-elf): Likewise.
3314         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
3315         tmake_file.
3316         (moxie-*-uclinux*): Likewise.
3317         (moxie-*-rtems*): Likewise.
3318         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
3319         tmake_file.
3320         (lm32-*-rtems*): Likewise.
3321         (lm32-*-uclinux*): Likewise.
3322         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
3323         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3324         (powerpc-*-linux*, powerpc64-*-linux*): Remove
3325         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3326         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
3327         tmake_file.
3328         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
3329         tmake_file.
3330         (tic6x-*-uclinux): Likewise.
3331         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
3332         soft-fp/t-softfp from tmake_file.
3333         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
3334         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
3335         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
3336         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3337         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
3338
3339 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3340
3341         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
3342         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
3343         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
3344         TPBIT, TPBIT_FUNCS.
3345         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
3346         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
3347         Remove.
3348         * config/arm/t-vxworks: Likewise.
3349         * config/arm/t-wince-pe: Likewise.
3350         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
3351         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3352         * config/bfin/t-bfin-elf: Likewise.
3353         * config/bfin/t-bfin-linux: Likewise.
3354         * config/bfin/t-bfin-uclinux: Likewise.
3355         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
3356         Remove.
3357         * config/fr30/t-fr30: Likewise.
3358         * config/frv/t-frv: Likewise.
3359         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
3360         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3361         * config/m32c/t-m32c: Likewise.
3362         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
3363         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3364         * config/mcore/t-mcore: Likewise.
3365         * config/mep/t-mep: Likewise.
3366         * config/microblaze/t-microblaze: Likewise.
3367         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
3368         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3369         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
3370         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3371         * config/mn10300/t-linux: Remove.
3372         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3373         * config/pdp11/t-pdp11: Likewise.
3374         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
3375         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
3376         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3377         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
3378         * config/rs6000/t-aix52: Likewise.
3379         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3380         $(srcdir)/config/rs6000/ppc64-fp.c.
3381         * config/rs6000/t-fprules-fpbit: Remove.
3382         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
3383         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3384         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
3385         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3386         * config/sparc/t-elf: Likewise.
3387         * config/sparc/t-leon: Likewise.
3388         * config/sparc/t-leon3: Likewise.
3389         * config/spu/t-spu-elf: Likewise.
3390         (DPBIT_FUNCS): Remove.
3391         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3392         * config/v850/t-v850: Likewise.
3393         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3394         (avr-*-*): Likewise.
3395         (h8300-*-rtems*): Set libgcc_tm_file.
3396         (h8300-*-elf*): Likewise.
3397         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3398         tmake_file.
3399         (powerpc-*-eabisim*): Likewise.
3400         (powerpc-*-elf*): Likewise.
3401         (powerpc-*-eabialtivec*): Likewise.
3402         (powerpc-xilinx-eabi*): Likewise.
3403         (powerpc-*-eabi*): Likewise.
3404         (powerpc-*-rtems*): Likewise.
3405         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3406         (powerpcle-*-elf*): Likewise.
3407         (powerpcle-*-eabisim*): Likewise.
3408         (powerpcle-*-eabi*): Likewise.
3409         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3410         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3411         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3412         Remove.
3413
3414 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3415
3416         * Makefile.in (UNWIND_H): Remove.
3417         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3418         ../libgcc/Makefile.in.
3419         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3420         (LIBUNWINDDEP): Remove.
3421         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3422         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3423         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3424         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3425         Don't copy $(UNWIND_H).
3426         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
3427         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3428         * aclocal.m4: Regenerate.
3429         * configure: Regenerate.
3430         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3431         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3432         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3433         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3434         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3435         * config/arm/libunwind.S, config/arm/pr-support.c,
3436         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3437         ../libgcc/config/arm.
3438         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3439         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3440         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3441         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3442         ($(T)frvend$(objext)): Likewise.
3443         * config/ia64/t-glibc (LIB2ADDEH): Remove.
3444         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3445         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3446         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3447         ../libgcc/config/ia64.
3448         * config/ia64/t-hpux (LIB2ADDEH): Remove.
3449         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3450         * config/ia64/t-vms (LIB2ADDEH): Remove.
3451         * config/ia64/vms.h (UNW_IVMS_MODE,
3452         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3453         * config/picochip/t-picochip (LIB2ADDEH): Remove.
3454         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3455         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3456         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3457         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3458         $(srcdir)/../libgcc to refer to unwinder sources.
3459         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3460         * config/t-darwin (LIB2ADDEH): Remove.
3461         * config/t-freebsd (LIB2ADDEH): Remove.
3462         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3463         * config/t-libunwind-elf: Move to ../libgcc/config.
3464         * config/t-linux (LIB2ADDEH): Remove.
3465         * config/t-sol2 (LIB2ADDEH): Remove.
3466         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3467         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3468
3469 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
3470
3471         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3472
3473         * doc/invoke.texi: Document core-avx-i.
3474
3475 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3476
3477         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3478
3479 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
3480
3481         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3482         result of multiple results reduction when extracting the final
3483         value using scalar code.
3484
3485 2011-08-05  Richard Guenther  <rguenther@suse.de>
3486
3487         PR tree-optimization/49984
3488         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3489
3490 2011-08-05  Richard Guenther  <rguenther@suse.de>
3491
3492         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3493         return true for constant integer ranges.
3494         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3495         BIT_IOR_EXPR handling.
3496
3497 2011-08-04  Kai Tietz  <ktietz@redhat.com>
3498
3499         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3500         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3501
3502 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
3503
3504         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3505         pattern def statement, and its access macro.
3506         (NUM_PATTERNS): Set to 5.
3507         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3508         pattern def statement.
3509         (vect_transform_loop): Likewise.
3510         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3511         function vect_recog_over_widening_pattern ().
3512         (vect_operation_fits_smaller_type): New function.
3513         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3514         Likewise.
3515         (vect_pattern_recog_1): Move the code that marks pattern
3516         statements to vect_mark_pattern_stmts (), and call it.  Update
3517         documentation.
3518         * tree-vect-stmts.c (vect_supportable_shift): New function.
3519         (vect_analyze_stmt): Handle pattern def statement.
3520         (new_stmt_vec_info): Initialize pattern def statement.
3521
3522 2011-08-04  Richard Henderson  <rth@redhat.com>
3523
3524         PR target/49964
3525         * config/i386/i386.c (ix86_expand_call): Don't create nested
3526         PARALLELs for TARGET_VZEROUPPER.
3527         (ix86_split_call_vzeroupper): Fix extraction of the original call.
3528         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3529         recognize nested PARALLELs.
3530         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3531         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3532         *sibcall_value_pop_vzeroupper): Likewise.
3533
3534 2011-08-04  Richard Henderson  <rth@redhat.com>
3535
3536         PR middle-end/49968
3537         * calls.c (expand_call): Use fixup_args_size_notes for
3538         emit_stack_restore.
3539         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3540         in non-standard modes.
3541
3542 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3543
3544         * gcc.c (self_spec): New variable.
3545         (static_specs): Add self_spec.
3546         (main): Call do_self_spec on "self_spec" specs after reading
3547         user specs files.  Move compare_debug handling right after that.
3548
3549 2011-08-04  Richard Guenther  <rguenther@suse.de>
3550
3551         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3552         (value_range_nonnegative_p): New function.
3553         (ssa_name_nonnegative_p): Use it.
3554         (value_range_constant_singleton): New function.
3555         (op_with_constant_singleton_value_range): Use it.
3556         (extract_range_from_binary_expr_1): New function, split out from ...
3557         (extract_range_from_binary_expr): ... this.  Remove fallback
3558         constant folding done here.
3559
3560 2011-08-04  Richard Guenther  <rguenther@suse.de>
3561
3562         PR tree-optimization/49806
3563         * tree-vrp.c (op_with_boolean_value_range_p): New function.
3564         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
3565         a new statement for a final conversion to bool.
3566
3567 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
3568
3569         * gengtype-state.c: Include "bconfig.h" if
3570         GENERATOR_FILE is defined, "config.h" otherwise.
3571         * gengtype.c: Likewise.
3572         * gengtype-lex.l: Likewise.
3573         * gengtype-parse.c: Likewise.
3574         * Makefile.in (gengtype-lex.o-warn): New variable.
3575         (plugin_resourcesdir): Likewise.
3576         (plugin_bindir): Likewise.
3577         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3578         (MOSTLYCLEANFILES): Add gengtype$(exeext).
3579         (native): Depend on gengtype$(exeext) is $enable_plugin
3580         is set to "yes".
3581         (gtype.state): Depend on s-gtype. Use temporary file.
3582         (gengtype-lex.o): New rule.
3583         (gengtype-parse.o): Likewise.
3584         (gengtype-state.o): Likewise.
3585         (gengtype$(exeext)): Likewise.
3586         (install-gengtype): Likewise.
3587         (gengtype.o): Likewise.
3588         (build/gengtype.o): Depend on version.h.
3589         (build/gengtype-state): Depend on double-int.h, version.h,
3590         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
3591         (install-plugin): Depend on install-gengtype.
3592
3593 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3594
3595         PR middle-end/49905
3596         * tree.h (init_attributes): New prototype.
3597         * attribs.c (init_attributes): No longer static.
3598
3599 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3600
3601         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
3602         maybe_suffix.
3603
3604 2011-08-03   David Li  <davidxl@google.com>
3605
3606         * tree-optimize.c (execute_fixup_cfg): Fix up entry
3607         outgoing edge counts after inlining.
3608
3609 2011-08-03   David Li  <davidxl@google.com>
3610
3611         * profile.c (compute_branch_probabilities): Compute
3612         function frequency after profile annotation.
3613
3614 2011-08-04  Alan Modra  <amodra@gmail.com>
3615
3616         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
3617         use_backchain_to_restore_sp initialisation.
3618         (rs6000_legitimate_offset_address_p): Simplify offset test.
3619
3620 2011-08-03  Richard Henderson  <rth@redhat.com>
3621
3622         * config/spu/spu.md: Use define_c_enum instead of define_constants.
3623         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
3624         (UNSPECV_NOP): New.
3625
3626 2011-08-03  Richard Henderson  <rth@redhat.com>
3627
3628         PR target/34888
3629         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
3630
3631 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
3632
3633         PR tree-optimization/49948
3634         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
3635
3636 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
3637
3638         * config/m32c/m32c.c (class_sizes): Remove.
3639         (reduce_class): Change arguments and return type to reg_class_t.
3640         Change type cc var to HARD_REG_SET. Change type best var to
3641         reg_class_t. Change type best_size var to unsigned int. Remove
3642         initialization class_sizes var. Use reg_class_size array instead
3643         of class_sizes. Use reg_class_contents array instead
3644         of class_contents.
3645
3646 2011-08-03  Richard Guenther  <rguenther@suse.de>
3647
3648         PR middle-end/49958
3649         * fold-const.c (fold_binary_loc): Only associate
3650         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
3651         overflow wraps.
3652
3653 2011-08-03  Alan Modra  <amodra@gmail.com>
3654
3655         PR rtl-optimization/49941
3656         * jump.c (mark_jump_label): Comment.
3657         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3658         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3659         (mark_used_flags): Don't mark RETURN.
3660
3661 2011-08-03  Richard Guenther  <rguenther@suse.de>
3662
3663         PR tree-optimization/49938
3664         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3665         deal with a POLYNOMIAL_CHREC.
3666
3667 2011-08-03  Revital Eres  <revital.eres@linaro.org>
3668
3669         * modulo-sched.c (calculate_stage_count,
3670         calculate_must_precede_follow, get_sched_window,
3671         try_scheduling_node_in_cycle, remove_node_from_ps): Add
3672         declaration.
3673         (update_node_sched_params, set_must_precede_follow, optimize_sc):
3674         New functions.
3675         (reset_sched_times): Call update_node_sched_params.
3676         (sms_schedule): Call optimize_sc.
3677         (get_sched_window): Change function arguments.
3678         (sms_schedule_by_order): Update call to get_sched_window.
3679         Call set_must_precede_follow.
3680         (calculate_stage_count): Add function argument.
3681
3682 2011-08-02  Richard Henderson  <rth@redhat.com>
3683
3684         PR target/49864
3685         PR target/49879
3686         * reg-notes.def (REG_ARGS_SIZE): New.
3687         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3688         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3689         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3690         different stack levels.
3691         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
3692         (maybe_move_args_size_note): New.
3693         (combine_stack_adjustments_for_block): Use it.
3694         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
3695         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
3696         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
3697         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
3698         (cur_cfa): New.
3699         (queued_args_size): Remove.
3700         (add_cfi_args_size): Assert size is non-negative.
3701         (stack_adjust_offset, dwarf2out_args_size): Remove.
3702         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
3703         (notice_args_size, notice_eh_throw): New.
3704         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
3705         (dwarf2out_frame_debug_adjust_cfa): Likewise.
3706         (dwarf2out_frame_debug_cfa_offset): Likewise.
3707         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
3708         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
3709         (change_cfi_row): Don't emit args_size.
3710         (maybe_record_trace_start_abnormal): Split out from ...
3711         (maybe_record_trace_start): Here.  Set args_size_undefined.
3712         (create_trace_edges): Update to match.
3713         (scan_trace): Handle REG_ARGS_SIZE.
3714         (connect_traces): Connect args_size between EH insns.
3715         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
3716         * explow.c (suppress_reg_args_size): New.
3717         (adjust_stack_1): Split out from ...
3718         (adjust_stack): ... here.
3719         (anti_adjust_stack): Use it.
3720         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
3721         * expr.c (mem_autoinc_base): New.
3722         (fixup_args_size_notes): New.
3723         (emit_single_push_insn_1): Rename from emit_single_push_insn.
3724         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
3725         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
3726         * reload1.c (reload_as_needed): Likewise.
3727         * rtl.h (fixup_args_size_notes): Declare.
3728
3729 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
3730
3731         PR bootstrap/49914
3732         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
3733         of abs.
3734         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3735         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3736
3737 2011-08-02  Richard Henderson  <rth@redhat.com>
3738
3739         * config/h8300/h8300.c (push, pop): Return the insn.
3740         (h8300_swap_into_er6): Generate correct unwind info.
3741         (h8300_swap_out_of_er6): Likewise.
3742         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
3743         complex cfa expression.
3744         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
3745
3746 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
3747
3748         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3749
3750 2011-08-02  Richard Henderson  <rth@redhat.com>
3751
3752         PR target/49878
3753         * config/h8300/h8300.c (h8300_move_ok): New.
3754         * config/h8300/h8300-protos.h: Declare it.
3755         * config/h8300/h8300.md (P): New mode iterator.
3756         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
3757         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
3758         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
3759         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
3760         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
3761         and pushqi1_h8300hs_normal; use PRE_MODIFY and
3762         register_no_sp_elim_operand.
3763         (*pushhi1_h8300hs_<P>): Similarly.
3764         (pushqi1, pushhi1, pushhi1_h8300): Remove.
3765         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
3766
3767 2011-08-02  Richard Henderson  <rth@redhat.com>
3768
3769         PR target/49881
3770         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
3771
3772 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
3773
3774         * c-parser.c (enum c_parser_prec): New enum, moved from within
3775         c_parser_binary_expression.
3776         (c_parser_binary_expression): Add PREC argument.  Stop parsing
3777         if operator has lower or equal precedence than PREC.
3778         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
3779         callers.
3780         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
3781         Adjust c_finish_omp_atomic caller.
3782         (c_parser_omp_taskyield): New function.
3783         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
3784         (c_parser_omp_clause_name): Handle final and mergeable clauses.
3785         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
3786         functions.
3787         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
3788         and PRAGMA_OMP_CLAUSE_MERGEABLE.
3789         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
3790         (c_parser_omp_clause_reduction): Handle min and max.
3791         * c-typeck.c (c_finish_omp_clauses): Don't complain about
3792         const qualified predetermined vars in firstprivate clause.
3793         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3794         Handle MIN_EXPR and MAX_EXPR.
3795         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
3796         and OMP_CLAUSE_MERGEABLE.
3797         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
3798         and OMP_ATOMIC_CAPTURE_NEW.
3799         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
3800         OMP_CLAUSE_MERGEABLE.
3801         (omp_clause_code_name): Likewise.
3802         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3803         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
3804         and OMP_CLAUSE_MERGEABLE.
3805         (OMP_CLAUSE_FINAL_EXPR): Define.
3806         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
3807         OMP_CLAUSE_MERGEABLE.
3808         (expand_task_call): Likewise.
3809         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
3810         (expand_omp_atomic_fetch_op): Handle cases where old or new
3811         value is needed afterwards.
3812         (expand_omp_atomic): Call expand_omp_atomic_load resp.
3813         expand_omp_atomic_store.
3814         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
3815         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
3816         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
3817         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3818         * tree-nested.c (convert_nonlocal_omp_clauses,
3819         convert_local_omp_clauses): Likewise.
3820         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
3821         OMP_ATOMIC_CAPTURE_NEW): New.
3822         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
3823         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
3824         New inlines.
3825         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
3826         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
3827         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3828
3829 2011-08-02  Kai Tietz  <ktietz@redhat.com>
3830
3831         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
3832         boolean-type.
3833         (ssa_forward_propagate_and_combine): Interprete result of
3834         forward_propagate_comparison.
3835         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
3836         boolean-typed operands for comparisons.
3837
3838 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
3839
3840         * config/avr/libgcc.S: Gather related function in the
3841         same input section.
3842         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
3843         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
3844         references.
3845         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
3846         __udivmodsi4, __divmodsi4, __prologue_saves__,
3847         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
3848         __do_copy_data, __do_clear_bss, __do_global_ctors,
3849         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
3850
3851 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
3852
3853         PR target/47766
3854         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
3855         (stack_protect_test): The pattern compares ptr_mode value.
3856
3857 2011-08-02  Alan Modra  <amodra@gmail.com>
3858
3859         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
3860         note for save_LR_around_toc_setup sequence.
3861
3862 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3863
3864         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
3865
3866 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
3867             Joseph Myers  <joseph@codesourcery.com>
3868
3869         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
3870         * hwint.c: Include diagnostic-core.h.
3871         (abs_hwi): New.
3872         (gcd): Moved here...
3873         (pos_mul_hwi): New.
3874         (mul_hwi): New.
3875         (least_common_multiple): Moved here...
3876         * hwint.h (gcd): ... from here.
3877         (least_common_multiple): ... from here.
3878         (HOST_WIDE_INT_MIN): New.
3879         (HOST_WIDE_INT_MAX): New.
3880         (abs_hwi): Declared.
3881         (gcd): Declared.
3882         (pos_mul_hwi): Declared.
3883         (mul_hwi): Declared.
3884         (least_common_multiple): Declared.
3885         * omega.c (check_pos_mul): Removed.
3886         (check_mul): Removed.
3887         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
3888         mul_hwi instead of check_mul.
3889
3890 2011-08-01  Richard Henderson  <rth@redhat.com>
3891
3892         PR target/49881
3893         * config/avr/avr.h (PUSH_ROUNDING): New.
3894         * config/avr/avr.md (pushqi1): Rename from *pushqi.
3895         (*pushhi, *pushsi, *pushsf): Remove.
3896         (MPUSH): New mode iterator.
3897         (push<MPUSH>1): New expander.
3898
3899 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
3900
3901         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
3902         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3903         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
3904         mmix_preferred_output_reload_class): Remove.
3905         * config/mmix/mmix.c (mmix_preferred_reload_class,
3906         mmix_preferred_output_reload_class): Make static. Change rclass
3907         argument and return type to reg_class_t.
3908         (TARGET_PREFERRED_RELOAD_CLASS,
3909         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3910
3911 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
3912
3913         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
3914         handling.
3915
3916 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3917
3918         PR target/47766
3919         * config/i386/i386.md (PTR): New.
3920         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
3921         (stack_protect_test): Likewise.
3922         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
3923         (stack_tls_protect_set_<mode>): Likewise.
3924         (stack_tls_protect_test_<mode>): Likewise.
3925
3926 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
3927
3928         PR target/49927
3929         * config/i386/i386.c (ix86_address_subreg_operand): New.
3930         (ix86_decompose_address): Use ix86_address_subreg_operand.
3931         (ix86_legitimate_address_p): Do not assert that subregs satisfy
3932         register_no_elim_operand in DImode.
3933
3934 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
3935
3936         PR tree-optimization/49926
3937         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
3938         in a chain doesn't have uses both inside and outside the loop.
3939
3940 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3941
3942         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
3943         * config/avr/avr-devices.c (avr_mcu_types): Use it.
3944         * config/avr/avr-mcus.def (AVR_MCU): Use it.
3945         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
3946         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
3947         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
3948         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
3949         to detect if XJMP must not be skipped.
3950
3951 2011-08-02  Alan Modra  <amodra@gmail.com>
3952
3953         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
3954         Delete.
3955         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
3956         (rs6000_emit_prologue): Don't prematurely return when
3957         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
3958         save_toc_in_prologue case.
3959         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
3960         calls_alloca.
3961
3962 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3963
3964         * config/avr/avr-devices.c: Delete SVN property svn:executable.
3965         * config/avr/predicates.md: Ditto.
3966         * config/avr/driver-avr.c: Ditto.
3967         * config/avr/genopt.sh: Set SVN property svn:executable to *.
3968
3969 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3970
3971         * calls.c (emit_library_call_value_1): Declare size only if
3972         BLOCK_REG_PADDING is defined.
3973
3974 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
3975
3976         PR target/49547
3977         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
3978         (x86_64-*-*): Likewise.
3979         * config/i386/i386.opt (mlzcnt): New.
3980         * config/i386/abmintrin.h: File removed.
3981         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
3982         * config/i386/lzcntintrin.h: ... here.  New file.
3983         (__lzcnt): Rename to ...
3984         (__lzcnt32): ... this.
3985         * config/i386/bmiintrin.h (head): Update copyright year.
3986         (__lzcnt_u16): Removed.
3987         (__lzcnt_u32): Likewise.
3988         (__lzcnt_u64): Likewise.
3989         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
3990         is defined, remove abmintrin.h.
3991         * config/i386/cpuid.h (bit_LZCNT): New.
3992         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3993         LZCNT feature.
3994         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3995         __LZCNT__ if needed.
3996         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
3997         (ix86_option_override_internal): Handle LZCNT option.
3998         (ix86_valid_target_attribute_inner_p): Likewise.
3999         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
4000         * config/i386/i386.h (TARGET_LZCNT): New.
4001         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
4002         * config/i386/i386.md (clz<mode>2): Update insn constraint.
4003         (clz<mode>2_lzcnt): Likewise.
4004         * doc/invoke.texi: Mention -mlzcnt option.
4005         * doc/extend.texi: Likewise.
4006
4007 2011-08-01  Julian Brown  <julian@codesourcery.com>
4008
4009         * configure.ac (fixed-point): Add ARM support.
4010         * configure: Regenerate.
4011         * config/arm/arm.c (arm_fixed_mode_set): New struct.
4012         (arm_set_fixed_optab_libfunc): New.
4013         (arm_set_fixed_conv_libfunc): New.
4014         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
4015         ARM-specific names.
4016         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
4017         return values in SImode.
4018         (arm_return_in_msb): Return fixed-point types in the msb.
4019         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
4020         upwards.
4021         (arm_scalar_mode_supported_p): Support fixed-point modes.
4022         (arm_vector_mode_supported_p): Support vector fixed-point modes.
4023         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
4024         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
4025         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
4026         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
4027         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
4028         New mode iterators.
4029         (qaddsub_suf): New mode attribute.
4030         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
4031         vector modes.
4032         * config/arm/predicates.md (sat_shift_operator): New predicate.
4033         * config/arm/arm-fixed.md: New.
4034         * config/arm/arm.md: Include arm-fixed.md.
4035         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
4036
4037 2011-08-01  Julian Brown  <julian@codesourcery.com>
4038
4039         * calls.c (emit_library_call_value_1): Support padding for libcall
4040         arguments and return values.
4041         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
4042         downwards in big-endian mode.
4043
4044 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4045
4046         PR debug/49887
4047         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
4048         * config/sol2-protos.h: Likewise.
4049         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
4050         solaris_code_end.
4051         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
4052         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
4053         solaris_file_end.
4054         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
4055
4056 2011-08-01  Julian Brown  <julian@codesourcery.com>
4057
4058         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
4059
4060 2011-08-01  Julian Brown  <julian@codesourcery.com>
4061
4062         * final.c (output_addr_const): Print fixed-point constants as
4063         decimal not hex.
4064
4065 2011-08-01  Richard Guenther  <rguenther@suse.de>
4066
4067         * stor-layout.c (initialize_sizetypes): Properly sign-extend
4068         bitsiztype TYPE_MAX_VALUE.
4069
4070 2011-08-01  Julian Brown  <julian@codesourcery.com>
4071
4072         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
4073         comparison helpers.
4074
4075 2011-07-31  Richard Henderson  <rth@redhat.com>
4076
4077         * config/h8300/crti.asm: Add flags to .section directive.
4078         * config/h8300/crtn.asm: Likewise.
4079
4080 2011-07-31  Richard Henderson  <rth@redhat.com>
4081
4082         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
4083         * tree.c (build_common_tree_nodes): Likewise.
4084
4085 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4086
4087         PR target/49880
4088         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
4089         (divsi3_i1): Likewise.
4090
4091 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4092
4093         PR tree-optimization/49749
4094         * tree-ssa-reassoc.c (get_rank): New forward declaration.
4095         (PHI_LOOP_BIAS): New macro.
4096         (phi_rank): New function.
4097         (loop_carried_phi): Likewise.
4098         (propagate_rank): Likewise.
4099         (get_rank): Add calls to phi_rank and propagate_rank.
4100
4101 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
4102
4103         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
4104         of TARGET_64BIT.
4105         (PTRDIFF_TYPE): Likewise.
4106
4107 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
4108
4109         PR target/49920
4110         * config/i386/i386.md (strset): Do not expand strset_singleop
4111         when %eax or $edi are fixed.
4112         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
4113         (*strsetsi_1): Ditto.
4114         (*strsethi_1): Ditto.
4115         (*strsetqi_1): Ditto.
4116         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
4117         (*rep_stossi): Ditto.
4118         (*rep_stosqi): Ditto.
4119         (*strlenqi_1): Ditto.
4120         (cmpstrnsi): Also fail when %ecx is fixed.
4121         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
4122         (*cmpstrnqi_1): Ditto.
4123         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
4124         (*strmovsi_1): Ditto.
4125         (*strmovhi_1): Ditto.
4126         (*strmovqi_1): Ditto.
4127         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
4128         (*rep_movsi): Ditto.
4129         (*rep_movqi): Ditto.
4130
4131 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
4132
4133         PR target/47908
4134         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
4135         Disable instruction scheduling for non-ColdFire targets.
4136         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4137
4138 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4139
4140         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
4141         of anti-dep edge from a branch.
4142         (add_cross_iteration_register_deps): Create anti-dep edge from
4143         a branch.
4144
4145 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4146
4147         * modulo-sched.c: Change comment.
4148         (reset_sched_times): Fix print message.
4149         (print_partial_schedule): Add print info.
4150
4151 2011-07-31  Tom de Vries  <tom@codesourcery.com>
4152
4153         PR middle-end/43513
4154         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
4155         get_object_alignment and TYPE_ALIGN.
4156
4157 2011-07-30  Tom de Vries  <tom@codesourcery.com>
4158
4159         PR middle-end/43513
4160         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
4161         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
4162
4163 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4164
4165         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
4166         <sys/sbd.h>.
4167         (cpu_types): New array.
4168         (cputype): New function.
4169         (host_detect_local_cpu): Only define buf, f if !__sgi__.
4170         Use scaninvent instead of /proc/cpuinfo if __sgi__.
4171         * config.host: Also use driver-native.o, mips/x-native on
4172         mips-sgi-irix*.
4173         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
4174         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
4175         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
4176
4177 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
4178
4179         PR middle-end/49897
4180         PR middle-end/49898
4181         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
4182         in nested parallel and outer is a gimple_reg, mark it as addressable
4183         and set its bit in task_shared_vars bitmap too.
4184
4185 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4186
4187         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
4188
4189 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4190
4191         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
4192         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
4193         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
4194         AMASK_LOCKPFTCHOK): Define.
4195         (host_detect_local_cpu): Remove buf, f, cpu_names.
4196         Define cpu_types, implver, amask.
4197         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
4198         native CPU.
4199         * config.host: Also use driver-alpha.o, alpha/x-alpha on
4200         alpha*-dec-osf*.
4201         * config/alpha/osf5.h [__alpha__ || __alpha]
4202         (host_detect_local_cpu): Declare.
4203         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
4204         (DRIVER_SELF_SPECS): Define.
4205
4206 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4207
4208         PR target/47715
4209         * config/i386/i386.md (*load_tp_x32): New.
4210         (*load_tp_x32_zext): Ditto.
4211         (*add_tp_x32): Ditto.
4212         (*add_tp_x32_zext): Ditto.
4213         (*load_tp_<mode>): Disable for TARGET_X32 targets.
4214         (*add_tp_<mode>): Ditto.
4215         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
4216         ptr_mode and convert to Pmode if needed.
4217
4218 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4219
4220         PR target/49687
4221         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
4222         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
4223         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
4224         Add X to register footprint: Clobber r26/r27.
4225
4226 2011-07-29  Richard Guenther  <rguenther@suse.de>
4227
4228         * builtins.c (fold_builtin_signbit): Build the comparison
4229         with a proper type.
4230
4231 2011-07-29  Richard Guenther  <rguenther@suse.de>
4232
4233         PR tree-optimization/49893
4234         * tree-predcom.c (suitable_reference_p): Volatile references
4235         are not suitable.
4236
4237 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4238
4239         PR target/49313
4240         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4241         (__ctzsi2): Result for 0 may be undefined.
4242         (__ctzhi2): Result for 0 may be undefined.
4243         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4244         (__popcountsi2): Ditto. And don't clobber r26.
4245         (__popcountdi2): Ditto. And don't clobber r27.
4246         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4247         (parityhi2): New expand.
4248         (paritysi2): New expand.
4249         (popcounthi2): New expand.
4250         (popcountsi2): New expand.
4251         (clzhi2): New expand.
4252         (clzsi2): New expand.
4253         (ctzhi2): New expand.
4254         (ctzsi2): New expand.
4255         (ffshi2): New expand.
4256         (ffssi2): New expand.
4257         (copysignsf3): New insn.
4258         (bswapsi2): New expand.
4259         (*parityhi2.libgcc): New insn.
4260         (*parityqihi2.libgcc): New insn.
4261         (*paritysihi2.libgcc): New insn.
4262         (*popcounthi2.libgcc): New insn.
4263         (*popcountsi2.libgcc): New insn.
4264         (*popcountqi2.libgcc): New insn.
4265         (*popcountqihi2.libgcc): New insn-and-split.
4266         (*clzhi2.libgcc): New insn.
4267         (*clzsihi2.libgcc): New insn.
4268         (*ctzhi2.libgcc): New insn.
4269         (*ctzsihi2.libgcc): New insn.
4270         (*ffshi2.libgcc): New insn.
4271         (*ffssihi2.libgcc): New insn.
4272         (*bswapsi2.libgcc): New insn.
4273
4274 2011-07-29  Richard Guenther  <rguenther@suse.de>
4275
4276         * tree-vrp.c (get_value_range): Only set parameter default
4277         definitions to varying, leave others at undefined.
4278         (extract_range_from_binary_expr): Fix undefined handling.
4279         (vrp_visit_phi_node): Handle merged undefined state.
4280
4281 2011-07-29  Wei Guozhi  <carrot@google.com>
4282
4283         PR rtl-optimization/49799
4284         * combine.c (make_compound_operation): Check if the bit field is valid
4285         before change it to bit field extraction.
4286
4287 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4288
4289         PR rtl-optimization/49891
4290         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
4291         newly created returnjumps.
4292
4293 2011-07-28  DJ Delorie  <dj@redhat.com>
4294
4295         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
4296         local frame in a naked function, and produce a suitable error for
4297         that specific case.
4298
4299         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
4300         registers to be reloaded in HI classes when the target is HI.
4301
4302 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4303
4304         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
4305         bound_one, bound_two.
4306
4307 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4308
4309         PR middle-end/48648
4310         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
4311         CLAST assignments.
4312         (translate_clast): Same.
4313         (translate_clast_assignment): New.
4314
4315 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4316
4317         PR tree-optimization/49876
4318         * sese.c (rename_uses): Do not return false on gloog_error: set
4319         the new_expr to integer_zero_node and continue code generation.
4320         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
4321
4322 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4323
4324         PR debug/49846
4325         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
4326         arguments also check if they aren't initialized with a MODE_INT
4327         mode of the same size.
4328
4329 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
4330
4331         * expr.c (get_bit_range): Handle *MEM_REF's.
4332
4333 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
4334
4335         * rtlanal.c (tablejump_p): False for returns.
4336         * reorg.c (first_active_target_insn): New static function.
4337         (find_end_label): Set JUMP_LABEL for a new returnjump.
4338         (optimize_skip, get_jump_flags, rare_destination,
4339         mostly_true_jump, get_branch_condition,
4340         steal_delay_list_from_target, own_thread_p,
4341         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
4342         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4343         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
4344         * jump.c (delete_related_insns): Likewise.
4345         (jump_to_label_p): New function.
4346         (redirect_target): New static function.
4347         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
4348         (redirect_jump_1): Assert that the new label is nonnull.
4349         (redirect_jump): Likewise.
4350         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
4351         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
4352         exit block.
4353         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
4354         changed.  Ensure that the right label is passed to redirect_jump.
4355         * function.c (emit_return_into_block,
4356         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
4357         ret_rtx in their JUMP_LABEL.
4358         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
4359         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
4360         pass ret_rtx as label.
4361         * cfglayout.c (fixup_reorder_chain): Use
4362         force_nonfallthru_and_redirect rather than force_nonfallthru.
4363         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
4364         * rtl.h (ANY_RETURN_P): New macro.
4365         (jump_to_label_p): Declare.
4366         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
4367         JUMP_LABELs.
4368         (mark_target_live_regs): Likewise.
4369         * basic-block.h (force_nonfallthru_and_redirect): Declare.
4370         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
4371         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
4372         alpha_tablejump_best_label): Remove functions.
4373         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
4374         alpha_tablejump_best_label): Remove declarations.
4375         * config/sh/sh.c (barrier_align, split_branches): Adjust for
4376         ret_rtx in JUMP_LABELs.
4377         * config/arm/arm.c (is_jump_table): Likewise.
4378
4379 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4380
4381         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
4382         special predicate.  Remove explicit mode checks.
4383
4384 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4385
4386         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
4387         DW_AT_data_member_location containing just DW_OP_plus_uconst.
4388
4389         PR debug/49871
4390         * dwarf2out.c (size_of_die, value_format, output_die): Use
4391         DW_FORM_udata instead of DW_FORM_data[48] for
4392         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
4393
4394 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4395
4396         * config/i386/i386.md (*tls_global_dynamic_64): Update
4397         length attribute.
4398
4399 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4400
4401         PR target/47715
4402         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
4403         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
4404         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
4405         (tls_dynamic_gnu2_64): Ditto.
4406         (*tls_dynamic_gnu2_lea_64): Ditto.
4407         (*tls_dynamic_gnu2_call_64): Ditto.
4408         (*tls_dynamic_gnu2_combine_64): Ditto.
4409
4410 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4411
4412         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
4413
4414 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4415
4416         PR target/47364
4417         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
4418
4419 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4420
4421         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
4422         before the core constraints. Adjust attributes.
4423         ("*thumb2_movdf_vfp"): Likewise.
4424
4425 2011-07-28  Kai Tietz  <ktietz@redhat.com>
4426
4427         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
4428         (simplify_truth_ops_using_ranges): Likewise.
4429         (build_assert_expr_for): Likewise.
4430         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
4431         and handle BIT_NOT_EXPR for truth-operation.
4432
4433 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4434
4435         PR target/49313
4436         Undo r176835 from trunk
4437         2011-07-27  Georg-Johann Lay
4438
4439 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4440
4441         PR target/49687
4442         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
4443         Add _muluhisi3, _mulshisi3, _usmulhisi3.
4444         * config/avr/libgcc.S (__mulsi3): Rewrite.
4445         (__mulhisi3): Rewrite.
4446         (__umulhisi3): Rewrite.
4447         (__usmulhisi3): New.
4448         (__muluhisi3): New.
4449         (__mulshisi3): New.
4450         (__mulohisi3): New.
4451         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
4452         declare.
4453         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
4454         (pseudo_register_or_const_int_operand): New.
4455         (combine_pseudo_register_operand): New.
4456         (u16_operand): New.
4457         (s16_operand): New.
4458         (o16_operand): New.
4459         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
4460         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
4461         (any_extend, any_extend2): New code iterators.
4462         (extend_prefix): New code attribute.
4463         (mulsi3): Rewrite. Turn insn to expander.
4464         (mulhisi3): Ditto.
4465         (umulhisi3): Ditto.
4466         (usmulhisi3): New expander.
4467         (*mulsi3): New insn-and-split.
4468         (mulu<mode>si3): New insn-and-split.
4469         (muls<mode>si3): New insn-and-split.
4470         (mulohisi3): New insn-and-split.
4471         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
4472         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
4473         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
4474         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
4475         insn-and-split.
4476         (*mulsi3_call): Rewrite.
4477         (*mulhisi3_call): Rewrite.
4478         (*umulhisi3_call): Rewrite.
4479         (*usmulhisi3_call): New insn.
4480         (*muluhisi3_call): New insn.
4481         (*mulshisi3_call): New insn.
4482         (*mulohisi3_call): New insn.
4483         (extendqihi2): Use combine_pseudo_register_operand as predicate
4484         for operand 1.
4485         (extendqisi2): Ditto.
4486         (zero_extendqihi2): Ditto.
4487         (zero_extendqisi2): Ditto.
4488         (zero_extendhisi2): Ditto.
4489         (extendhisi2): Ditto. Don't early-clobber operand 0.
4490
4491 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4492
4493         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
4494
4495 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4496
4497         PR tree-optimization/49471
4498         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
4499         iv only when the largest type is unsigned.  Do not call
4500         lang_hooks.types.type_for_size.
4501
4502 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4503
4504         PR middle-end/45450
4505         * graphite-poly.c (apply_poly_transforms): Disable legality check
4506         after an openscop read.
4507
4508 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4509
4510         PR middle-end/47691
4511         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
4512         copy_bb_and_scalar_dependences.
4513         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
4514         (graphite_copy_stmts_from_block): Update call to rename_uses.
4515         (copy_bb_and_scalar_dependences): Update call to
4516         graphite_copy_stmts_from_block.
4517         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4518
4519 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
4520
4521         PR target/49313
4522         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4523         (__ctzsi2): Result for 0 may be undefined.
4524         (__ctzhi2): Result for 0 may be undefined.
4525         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4526         (__popcountsi2): Ditto. And don't clobber r26.
4527         (__popcountdi2): Ditto. And don't clobber r27.
4528         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4529         (parityhi2): New expand.
4530         (paritysi2): New expand.
4531         (popcounthi2): New expand.
4532         (popcountsi2): New expand.
4533         (clzhi2): New expand.
4534         (clzsi2): New expand.
4535         (ctzhi2): New expand.
4536         (ctzsi2): New expand.
4537         (ffshi2): New expand.
4538         (ffssi2): New expand.
4539         (copysignsf3): New insn.
4540         (bswapsi2): New expand.
4541         (*parityhi2.libgcc): New insn.
4542         (*parityqihi2.libgcc): New insn.
4543         (*paritysihi2.libgcc): New insn.
4544         (*popcounthi2.libgcc): New insn.
4545         (*popcountsi2.libgcc): New insn.
4546         (*popcountqi2.libgcc): New insn.
4547         (*popcountqihi2.libgcc): New insn-and-split.
4548         (*clzhi2.libgcc): New insn.
4549         (*clzsihi2.libgcc): New insn.
4550         (*ctzhi2.libgcc): New insn.
4551         (*ctzsihi2.libgcc): New insn.
4552         (*ffshi2.libgcc): New insn.
4553         (*ffssihi2.libgcc): New insn.
4554         (*bswapsi2.libgcc): New insn.
4555
4556 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4557
4558         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
4559         the mode of symbolic_opreand RTXes.
4560
4561 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4562
4563         * config/i386/predicates.md (x86_64_movabs_operand): Return false
4564         for pic_32bit_operand RTXes.
4565         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
4566         in DImode.
4567
4568 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4569
4570         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
4571         for 32-bit, too.
4572         (ix86_handle_abi_attribute): Allow function attributes
4573         ms_abi/sysv_abi in 32-bit mode, too.
4574         * doc/extend.texi: Adjust attribute documentation.
4575
4576         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
4577         expression handling.
4578         (and_var_with_comparison_1): Likewise.
4579
4580 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
4581
4582         * params.h (ALLOW_STORE_DATA_RACES): New.
4583         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
4584         * Makefile.in (expr.o): Depend on PARAMS_H.
4585         * machmode.h (get_best_mode): Add argument.
4586         * fold-const.c (optimize_bit_field_compare): Add argument to
4587         get_best_mode.
4588         (fold_truthop): Same.
4589         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
4590         * expr.c (emit_group_store): Same.
4591         (copy_blkmode_from_reg): Same.
4592         (write_complex_part): Same.
4593         (optimize_bitfield_assignment_op): Add argument.
4594         Add argument to get_best_mode.
4595         (get_bit_range): New.
4596         (expand_assignment): Calculate maxbits and pass it down accordingly.
4597         (store_field): New argument.
4598         (expand_expr_real_2): New argument to store_field.  Include params.h.
4599         * expr.h (store_bit_field): New argument.
4600         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
4601         into account maxbits.
4602         * calls.c (store_unaligned_arguments_into_pseudos): New argument
4603         to store_bit_field.
4604         * expmed.c (store_bit_field_1): New argument.  Use it.
4605         (store_bit_field): Same.
4606         (store_fixed_bit_field): Same.
4607         (store_split_bit_field): Same.
4608         (extract_bit_field_1): Pass new argument to get_best_mode.
4609         (extract_bit_field): Same.
4610         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
4611         * doc/invoke.texi: Document parameter allow-store-data-races.
4612
4613 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
4614
4615         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
4616
4617 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4618
4619         * tree-vrp.c (extract_range_from_binary_expr): Remove
4620         TRUTH-binary cases and add new bitwise-cases.
4621         (extract_range_from_assignment): Likewise.
4622         (register_edge_assert_for_1): Likeiwise.
4623         (register_edge_assert_for): Likewise.
4624         (simplify_truth_ops_using_ranges): Likewise.
4625         (simplify_stmt_using_ranges): Likewise.
4626
4627 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
4628
4629         PR target/47372
4630         * config/i386/i386.c (ix86_delegitimize_address): Call
4631         simplify_gen_subreg for PIC with mode of x only if modes of
4632         x and orig_x are different.
4633
4634 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
4635
4636         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
4637         to GC allocated copy of the string.
4638         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
4639         before .debug_line, not after it.
4640
4641 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4642
4643         PR middle-end/47046
4644         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
4645         evolution_function_is_affine_p on CHREC_RIGHT.
4646
4647 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4648
4649         * tree-data-ref.c (max_stmt_executions_tree): Do not call
4650         lang_hooks.types.type_for_size.
4651
4652 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4653
4654         PR middle-end/47653
4655         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
4656         loops using wrapping semantics.
4657
4658 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4659
4660         PR middle-end/48805
4661         * tree-scalar-evolution.c (instantiate_scev_r): Return
4662         chrec_dont_know for ADDR_EXPR.
4663
4664 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4665             H.J. Lu  <hongjiu.lu@intel.com>
4666
4667         PR target/47369
4668         PR target/49853
4669         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
4670         if legitimize_tls_address returned operand in wrong mode. Allow
4671         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
4672         if legitimize_pic_address returned operand in wrong mode.
4673
4674 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4675
4676         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
4677         return false for invariants.
4678
4679 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4680
4681         * config/i386/i386.md (add->lea splitter): Implement using SWI
4682         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
4683         (add->lea zext splitter): Change operand 2 predicate to
4684         x86_64_nonmemory_operand.
4685
4686 2011-07-26  Richard Guenther  <rguenther@suse.de>
4687
4688         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
4689         frequency makes everything hot.
4690
4691 2011-07-26  Richard Guenther  <rguenther@suse.de>
4692
4693         PR tree-optimization/49840
4694         * tree-vrp.c (range_fits_type_p): Properly handle full
4695         double-int precision.
4696
4697 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4698
4699         PR bootstrap/49786
4700         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
4701         counts.
4702         (update_specialized_profile): Likewise.
4703
4704 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4705             H.J. Lu  <hongjiu.lu@intel.com>
4706
4707         PR target/47381
4708         PR target/49832
4709         PR target/49833
4710         * config/i386/i386.md (i): Change SImode attribute to "e".
4711         (g): Change SImode attribute to "rme".
4712         (di): Change SImode attribute to "nF".
4713         (general_operand): Change SImode attribute to x86_64_general_operand.
4714         (general_szext_operand): Change SImode attribute to
4715         x86_64_szext_general_operand.
4716         (immediate_operand): Change SImode attribute to
4717         x86_64_immediate_operand.
4718         (nonmemory_operand): Change SImode attribute to
4719         x86_64_nonmemory_operand.
4720         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
4721         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
4722         (*lea_1): Use SWI48 mode iterator.
4723         (*lea_1_zext): New insn pattern.
4724         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
4725         (*bt<mode>): Ditto.
4726         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
4727         Update operand constraints.
4728         (addsi_1_zext): Ditto.
4729         (*add<mode>2): Ditto.
4730         (*addsi_3_zext): Ditto.
4731         (*subsi_1_zext): Ditto.
4732         (*subsi_2_zext): Ditto.
4733         (*subsi_3_zext): Ditto.
4734         (*addsi3_carry_zext): Ditto.
4735         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
4736         (*mulsi3_1_zext): Ditto.
4737         (*andsi_1): Ditto.
4738         (*andsi_1_zext): Ditto.
4739         (*andsi_2_zext): Ditto.
4740         (*<any_or:code>si_1_zext): Ditto.
4741         (*<any_or:code>si_2_zext): Ditto.
4742         (*test<mode>_1): Use <general_operand> predicate for operand 1.
4743         (*and<mode>_2): Ditto.
4744         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
4745         (add->lea splitter): Check operand modes in insn constraint.  Extend
4746         operands less than SImode wide to SImode.
4747         (add->lea zext splitter): Do not extend input operands to DImode.
4748         (*lea_general_1): Handle only QImode and HImode operands.
4749         (*lea_general_2): Ditto.
4750         (*lea_general_3): Ditto.
4751         (*lea_general_1_zext): Remove.
4752         (*lea_general_2_zext): Ditto.
4753         (*lea_general_3_zext): Ditto.
4754         (*lea_general_4): Check operand modes in insn constraint.  Extend
4755         operands less than SImode wide to SImode.
4756         (ashift->lea splitter): Ditto.
4757         * config/i386/i386.c (ix86_print_operand_address): Print address
4758         registers with 'q' modifier on 64bit targets.
4759         * config/i386/predicates.md (pic_32bit_opreand): Define as special
4760         predicate.  Reject non-SI and non-DI modes.
4761
4762 2011-07-25  Andrew Pinski  <apinski@cavium.com>
4763
4764         PR tree-opt/49671
4765         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
4766         TREE_THIS_NOTRAP into the inner most MEM_REF.
4767         Always copy TREE_THIS_VOLATILE.
4768         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
4769         arguments are not volatile references.
4770
4771 2011-07-25  Richard Henderson  <rth@redhat.com>
4772
4773         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
4774         * final.c (final_scan_insn): Don't test for it.
4775         (rest_of_clean_state): Likewise.
4776
4777 2011-07-25  Richard Henderson  <rth@redhat.com>
4778
4779         PR debug/49841
4780         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
4781         (emit_frame_save): Likewise.
4782         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
4783         insn onto a dummy blockage insn after the join label.
4784
4785 2011-07-25  Richard Henderson  <rth@redhat.com>
4786
4787         * dwarf2cfi.c (dw_trace_info): Add ID member.
4788         (get_trace_index): Remove.  Change users to use ID member.
4789         (before_next_cfi_note): New.
4790         (connect_traces): Remove unreachable traces before the main loop.
4791         Look across one trace and generate remember/restore_state if needed.
4792
4793 2011-07-25  Richard Henderson  <rth@redhat.com>
4794
4795         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
4796
4797 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
4798
4799         * genattr.c (write_upcase, gen_attr <enum definition writing>):
4800         Move to ...
4801         * genattr-common.c ... here.
4802         (main): Call gen_attr.
4803         * optc-gen.awk: Make generated program include insn-attr-common.h .
4804         * Makefile.in (oprions.o): Depend on insn-attr-common.h
4805
4806 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4807
4808         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4809         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4810         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
4811         m32c_print_operand, m32c_print_operand_address): Remove.
4812         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
4813         Change return type to bool. Change argument type to bool.
4814         (m32c_print_operand, m32c_print_operand_address): Make static.
4815         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4816         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4817
4818 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4819
4820         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
4821         attributes): Document mmap.
4822
4823 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4824
4825         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4826         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4827         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
4828         mmix_print_operand, mmix_print_operand_address): Remove.
4829         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
4830         Change return type to bool. Change argument type to bool.
4831         (mmix_print_operand, mmix_print_operand_address): Make static.
4832         (mmix_intval, mmix_output_condition): Change 'x' argument type
4833         to const_rtx.
4834         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4835         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4836
4837 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
4838
4839         PR target/39386
4840         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
4841         shift counter for x << x and x >> x shifts.
4842
4843 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4844
4845         PR target/47124
4846         * config.gcc: Reject *-*-solaris2 configuration.
4847
4848 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
4849
4850         PR tree-optimization/49809
4851         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
4852         gimple_get_lhs instead of gimple_assign_lhs.
4853
4854 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4855
4856         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
4857
4858 2011-07-25  Richard Guenther  <rguenther@suse.de>
4859
4860         PR tree-optimization/49822
4861         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
4862         more.  Make sure to preserve stmts with side-effects.  Properly
4863         handle virtual defs, follow a longer def chain.
4864
4865 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
4866
4867         PR plugins/45348
4868         PR plugins/48425
4869         PR plugins/46577
4870         * Makefile.in: Do not flatten c-family directory when installing
4871         plugin headers.
4872
4873 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4874
4875         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
4876         original nodes if we are dealing with virtual clones.
4877
4878 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
4879
4880         * common/config/c6x/c6x-common.c: New file.
4881
4882 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
4883
4884         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
4885
4886 2011-07-25  Richard Guenther  <rguenther@suse.de>
4887
4888         PR tree-optimization/49715
4889         * tree-vrp.c: Include expr.h and optabs.h.
4890         (range_fits_type_): New function.
4891         (simplify_float_conversion_using_ranges): Likewise.
4892         (simplify_stmt_using_ranges): Call it.
4893         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
4894         * optabs.c (can_float_p): Export.
4895         * optabs.h (can_float_p): Declare.
4896
4897 2011-07-25  Richard Guenther  <rguenther@suse.de>
4898
4899         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
4900         (get_value_range): For out-of-range SSA names or names created
4901         after propagation return a read-only varying range.
4902         (dump_all_value_ranges): Adjust.
4903         (vrp_initialize): Likewise.
4904         (vrp_finalize): Likewise.
4905
4906 2011-07-24  Richard Henderson  <rth@redhat.com>
4907
4908         PR debug/49831
4909         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
4910         them entirely.
4911
4912 2011-07-24  Richard Henderson  <rth@redhat.com>
4913
4914         PR debug/49825
4915         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
4916         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
4917
4918 2011-07-24  Richard Henderson  <rth@redhat.com>
4919
4920         PR debug/49827
4921         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
4922
4923 2011-07-24  Richard Henderson  <rth@redhat.com>
4924
4925         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
4926         Zero args_size for abnormal edges.  Adjust all callers.
4927
4928 2011-07-24  Richard Henderson  <rth@redhat.com>
4929
4930         PR debug/49825
4931         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
4932
4933 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
4934
4935         PR bootstrap/49835
4936         * collect2.c (demangle_flag): Removed.
4937
4938 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
4939
4940         * configure.ac (demangler_in_ld): Default to yes.
4941         * configure: Regenerated.
4942         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
4943         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
4944         --no-demangle options straight through to ld.  When
4945         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
4946         way that has the intended effect on Windows.
4947
4948 2011-07-23  Richard Henderson  <rth@redhat.com>
4949
4950         * dwarf2cfi.c: Include basic-block.h.
4951         (dw_label_info): Remove.
4952         (trace_work_list, trace_index): New.
4953         (remember_row, emit_cfa_remember): Remove.
4954         (dw_trace_info_hash, dw_trace_info_eq): New.
4955         (get_trace_index, get_trace_info): New.
4956         (save_point_p): New.
4957         (free_cfi_row): Remove.
4958         (add_cfi): Do not emit DW_CFA_remember_state.
4959         (cfa_row_equal_p): New.
4960         (barrier_args_size): Remove.
4961         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
4962         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
4963         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
4964         (dwarf2out_cfi_begin_epilogue): Remove.
4965         (dwarf2out_frame_debug_restore_state): Remove.
4966         (connect_traces, create_pseudo_cfg): New.
4967         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
4968         * Makefile.in (dwarf2cfi.o): Update.
4969
4970 2011-07-23  Richard Henderson  <rth@redhat.com>
4971
4972         * dwarf2cfi.c (dw_trace_info): New.
4973         (dw_label_info): New.
4974         (cie_return_save): New.
4975         (cur_trace): New.
4976         (queued_args_size): Rename from args_size.  Update all users.
4977         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
4978         (def_cfa_1): Use cur_trace instead of cfa_*.
4979         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
4980         (clobbers_queued_reg_save, reg_saved_in): Likewise.
4981         (dwarf2out_frame_debug_expr): Likewise.
4982         (create_cie_data): Split out from ...
4983         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
4984
4985 2011-07-23  Richard Henderson  <rth@redhat.com>
4986
4987         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
4988         Update all users to match.
4989         (execute_dwarf2_frame): Free reg_saved_in_data.
4990
4991 2011-07-23  Richard Henderson  <rth@redhat.com>
4992
4993         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
4994         (queued_reg_saves): Don't GTY.  Change to a VEC.
4995         (queue_reg_save): Update to match.
4996         (dwarf2out_flush_queued_reg_saves): Likewise.
4997         (clobbers_queued_reg_save): Likewise.
4998         (reg_saved_in): Likewise.
4999         (execute_dwarf2_frame): Free queued_reg_saves.
5000
5001 2011-07-23  Richard Henderson  <rth@redhat.com>
5002
5003         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
5004
5005 2011-07-23  Richard Henderson  <rth@redhat.com>
5006
5007         * dwarf2cfi.c (add_cfi_args_size): Split out from...
5008         (dwarf2out_args_size): ... here.
5009         (add_cfi_restore): Split out from ...
5010         (dwarf2out_frame_debug_cfa_restore): ... here.
5011         (def_cfa_0): Split out from ...
5012         (def_cfa_1): ... here.
5013         (cfi_oprnd_equal_p, cfi_equal_p): New.
5014         (change_cfi_row): New.
5015         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
5016         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
5017         (output_cfis): Remove.
5018         * dwarf2out.c (output_fde): Simplify output_cfi loop.
5019         (dwarf2out_switch_text_section): Don't call output_cfis.
5020         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
5021         * dwarf2out.h: Update decls.
5022         (enum dw_val_class): Add dw_val_class_none.
5023
5024 2011-07-23  Richard Henderson  <rth@redhat.com>
5025
5026         * dwarf2cfi.c (update_row_reg_save): New.
5027         (dwarf2out_frame_debug_cfa_expression): Use it.
5028         (dwarf2out_frame_debug_cfa_restore): Likewise.
5029         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
5030
5031 2011-07-23  Richard Henderson  <rth@redhat.com>
5032
5033         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
5034
5035 2011-07-23  Richard Henderson  <rth@redhat.com>
5036
5037         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
5038         (cie_cfi_row): New.
5039         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
5040         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
5041         (cur_row, remember_row): New.
5042         (def_cfa_1): Use cur_row instead of the old_* variables.
5043         (dwarf2out_frame_debug_restore_state): Similarly.
5044         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
5045         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
5046         (dwarf2out_frame_debug_adjust_cfa): Likewise.
5047         (dwarf2out_frame_debug_cfa_offset): Likewise.
5048         (dwarf2out_frame_debug_expr): Likewise.
5049         (execute_dwarf2_frame): Set up cur_row.
5050         * dwarf2out.h (struct cfa_loc): Mark for GTY.
5051
5052 2011-07-23  Richard Henderson  <rth@redhat.com>
5053
5054         * basic-block.h (EDGE_PRESERVE): New.
5055         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
5056         * bb-reorder.c: Include except.h.
5057         (fix_up_crossing_landing_pad): New.
5058         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
5059         landing pads in the right partition.  Duplicate as necessary.
5060         (partition_hot_cold_basic_blocks): Fix up DF info after
5061         duplicating landing pads.
5062         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
5063         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
5064         is set properly.  Validate that EH edges are not CROSSING.
5065         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
5066         (dw2_build_landing_pads): ... here.
5067         (convert_to_eh_region_ranges): Remove code to fixup crossing
5068         landing pads.
5069         * except.h (expand_dw2_landing_pad_for_region): Declare.
5070         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
5071
5072 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
5073
5074         PR target/49816
5075         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
5076
5077 2011-07-22  Jason Merrill  <jason@redhat.com>
5078
5079         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
5080
5081 2011-07-22  Richard Henderson  <rth@redhat.com>
5082
5083         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
5084
5085 2011-07-22  Richard Henderson  <rth@redhat.com>
5086
5087         * jump.c (maybe_propagate_label_ref): Split out of...
5088         (mark_all_labels): ... here.  Do not attempt label_ref
5089         propagation while in cfglayout mode.
5090
5091 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5092
5093         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
5094         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
5095         (dwarf_attr_name): Handle DW_AT_GNU_macros.
5096         (dwarf2out_define): If the vector is empty and
5097         lineno is 0, emit a dummy entry first.
5098         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
5099         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
5100         optimize_macinfo_range): New functions.
5101         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
5102         mergeable, optimize longer strings using
5103         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
5104         optimize longer sequences of define/undef ops from headers
5105         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
5106         emit a section headers.
5107         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
5108         and macinfo_section_label to DEBUG_MACRO_SECTION
5109         resp. DEBUG_MACRO_SECTION_LABEL.
5110         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
5111         instead of DW_AT_macro_info.
5112
5113         PR other/32998
5114         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
5115         options.
5116         * dwarf2out.c: Include opts.h.
5117         (dchar_p): New typedef.  Define heap VEC for it.
5118         (producer_string): New variable.
5119         (gen_producer_string): New function.
5120         (gen_compile_unit_die): Use it.
5121         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
5122         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
5123         * doc/invoke.texi: Document -grecord-gcc-switches and
5124         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
5125         to -frecord-gcc-switches description.
5126
5127 2011-07-22  Jason Merrill  <jason@redhat.com>
5128
5129         PR c++/30112
5130         * c-decl.c (c_linkage_bindings): Define.
5131
5132 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5133
5134         PR debug/49815
5135         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
5136
5137 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
5138
5139         * config/i386/i386.c (ix86_option_override_internal): Disallow
5140         MS ABI in x32 mode.
5141         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
5142         only for TARGET_LP64.
5143         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
5144
5145 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
5146
5147         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
5148         avoid warnings when GCC is built with a C++ compiler.
5149
5150 2011-07-22  Martin Jambor  <mjambor@suse.cz>
5151
5152         PR lto/49796
5153         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
5154         if decl node is in another partition, call cgraph_get_node only once.
5155
5156 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
5157
5158         * config.gcc (x86_64-*-linux*): Set
5159         default_gnu_indirect_function to yes.
5160
5161 2011-07-22  Richard Guenther  <rguenther@suse.de>
5162
5163         PR tree-optimization/45819
5164         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5165         preserve volatile and notrap flags.
5166
5167 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5168             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5169
5170         PR bootstrap/49794
5171         * configure.ac: Test AM_ICONV with CXX.
5172         * configure: Regenerate.
5173         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
5174
5175 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5176
5177         PR bootstrap/49797
5178         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
5179         (set_cloog_options): Use it.
5180
5181 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5182
5183         PR c++/49756
5184         * gcc.c (main): Call stack_limit_increase (64MB).
5185         * toplev.c (toplev_main): Likewise.
5186
5187 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5188
5189         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
5190         instead of force_reg.
5191
5192 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5193
5194         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
5195         needed and use force_reg after convert.
5196         (ix86_expand_call): Likewise.
5197         (ix86_expand_special_args_builtin): Likewise.
5198         (ix86_expand_builtin): Likewise.
5199
5200 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5201
5202         PR middle-end/47654
5203         PR middle-end/49649
5204         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
5205         in parameter.  Initialize v1 and v2 based on the values returned
5206         by clast_name_to_lb_ub.
5207         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
5208         values.
5209         (type_for_clast_bin): Same.
5210         (type_for_clast_expr): Same.
5211         (type_for_clast_eq): Update calls to type_for_clast_expr.
5212         (type_for_clast_for): Same.
5213         (build_iv_mapping): Same.
5214         * graphite-ppl.h (value_min): New.
5215
5216 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5217
5218         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
5219         types whenever possible.
5220
5221 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5222
5223         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
5224         and ub fields.
5225         (new_clast_name_index): Add lb and ub parameters.
5226         (free_clast_name_index): New.
5227         (clast_name_to_lb_ub): New.
5228         (save_clast_name_index): Add lb and ub parameters.
5229         (compute_bounds_for_param): New.
5230         (type_for_level): Removed.
5231         (type_for_clast_for): Removed level parameter.  Do not call
5232         type_for_level.
5233         (graphite_create_new_loop): Store the lb and ub for the clast_name
5234         of the iterator of the loop that has been generated.
5235         (graphite_create_new_loop_guard): Remove parameter level.
5236         (create_params_index): Store the lb and ub of each parameter.
5237         (gloog): Use free_clast_name_index.  Pass to create_params_index
5238         the current scop.
5239
5240 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5241
5242         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
5243         (max_precision_type): Inline max_signed_precision_type.
5244         (type_for_clast_red): Use max_precision_type.
5245         (type_for_clast_bin): Same.
5246         (type_for_clast_for): Same.
5247
5248 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5249
5250         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
5251         type_for_interval.
5252         (gcc_type_for_value): Renamed type_for_value.
5253         (gcc_type_for_clast_term): Renamed type_for_clast_term.
5254         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
5255         (gcc_type_for_clast_red): Renamed type_for_clast_red.
5256         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
5257         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
5258         (graphite_translate_clast_equation): Update calls.
5259         (compute_type_for_level): Renamed type_for_level.
5260         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
5261         (build_iv_mapping): Update calls.
5262         (graphite_create_new_loop_guard): Same.
5263
5264 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5265
5266         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
5267         comment.
5268
5269 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5270
5271         * graphite-clast-to-gimple.c (struct ivs_params): New.
5272         (clast_name_to_gcc): Use ivs_params to pass around parameters.
5273         (clast_to_gcc_expression): Same.
5274         (clast_to_gcc_expression_red): Same.
5275         (gcc_type_for_clast_term): Same.
5276         (gcc_type_for_clast_expr): Same.
5277         (gcc_type_for_clast_red): Same.
5278         (gcc_type_for_clast_bin): Same.
5279         (gcc_type_for_clast_eq): Same.
5280         (graphite_translate_clast_equation): Same.
5281         (graphite_create_guard_cond_expr): Same.
5282         (graphite_create_new_guard): Same.
5283         (graphite_create_new_loop): Same.
5284         (build_iv_mapping): Same.
5285         (translate_clast_user): Same.
5286         (graphite_create_new_loop_guard): Same.
5287         (translate_clast): Same.
5288         (translate_clast_for_loop): Same.
5289         (translate_clast_for): Same.
5290         (translate_clast_guard): Same.
5291         (initialize_cloog_names): Fix typo.
5292         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
5293
5294 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5295
5296         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
5297         (new_clast_name_index): Add level parameter.
5298         (clast_name_to_level): New.
5299         (save_clast_name_index): Add level parameter.
5300         (newivs_to_depth_to_newiv): Removed.
5301         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
5302         (graphite_create_new_loop): Add level parameter.  Pass level to
5303         save_clast_name_index.
5304         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
5305         (create_params_index): Pass level to save_clast_name_index.
5306
5307 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5308
5309         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
5310         recompute type, lb, and ub.  Get them from...
5311         (graphite_create_new_loop_guard): ...here.  Pass in parameter
5312         pointers to type, lb, and ub.
5313         (translate_clast_for_loop): Update function calls.
5314         (translate_clast_for): Same.
5315
5316 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5317
5318         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
5319         psct_dynamic_dim.
5320         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
5321         (gcc_type_for_iv_of_clast_loop): Update use of level.
5322         (gloog): Start counting nesting level from 0.
5323         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
5324         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
5325         psct_dynamic_dim on level.
5326
5327 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5328
5329         * config/i386/i386.c (ix86_legitimize_address): Convert to
5330         Pmode if needed.
5331
5332 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5333
5334         * config/i386/i386.c (function_value_64): Always return pointers
5335         in Pmode.
5336         (ix86_promote_function_mode): New.
5337         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
5338
5339 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5340
5341         PR tree-optimization/49749
5342         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
5343         remove no-longer-used maxrank variable.
5344
5345 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5346
5347         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
5348
5349 2011-07-21  Jason Merrill  <jason@redhat.com>
5350
5351         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
5352         * recog.h (struct insn_data_d): Check it instead of
5353         HAVE_DESIGNATED_INITIALIZERS.
5354         * genoutput.c (output_insn_data): Likewise.
5355
5356 2011-07-21  Richard Guenther  <rguenther@suse.de>
5357
5358         PR tree-optimization/49770
5359         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
5360         valueized any operand.  Renamed from ...
5361         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
5362         (valueize_shared_reference_ops_from_ref): Return whether we
5363         valueized any operand.
5364         (vn_reference_lookup): Only when we valueized any operand
5365         use the valueized reference for alias analysis.  Do not preserve
5366         the original reference tree in this case.
5367
5368 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
5369
5370         * config/i386/i386.c (ix86_decompose_address): Reject all but
5371         register operands and subregs of DImode hard registers in index.
5372
5373 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5374
5375         * fold-const.c (fold_unary_loc): Preserve indirect
5376         comparison cast to none-boolean type.
5377         * tree-ssa.c (useless_type_conversion_p): Preserve cast
5378         from/to boolean-type.
5379         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
5380         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
5381         * tree-cfg.c (verify_gimple_comparison): Check result
5382         type of comparison expression.
5383         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
5384         of condition result and disallow type-cast sinking into comparison.
5385
5386 2011-07-21  Richard Guenther  <rguenther@suse.de>
5387
5388         * tree-ssa-forwprop.c (combine_conversions): Return whether
5389         we have to run cfg-cleanup.  Properly remove dead stmts.
5390         (ssa_forward_propagate_and_combine): Adjust.
5391
5392 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
5393
5394         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
5395
5396 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5397
5398         * tree-ssa-propagate.c (substitute_and_fold): Use
5399         do_dce flag to deside, if BB's statements are scanned
5400         in last to first, or first to last order.
5401
5402 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5403
5404         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
5405
5406 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
5407             Uros Bizjak  <ubizjak@gmail.com>
5408             Richard Henderson  <rth@redhat.com>
5409
5410         * config/i386/constraints.md (w): New.
5411
5412         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
5413         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
5414
5415         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
5416         instead of TARGET_64BIT.
5417
5418         * config/i386/i386.md (indirect_jump): Replace
5419         nonimmediate_operand with indirect_branch_operand.
5420         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
5421         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
5422         Convert operand 0 to Pmode for x32 if not PIC.
5423         (*tablejump_1): Replace nonimmediate_operand with
5424         indirect_branch_operand.  Replace constraint "m" with "w".
5425         (*call_vzeroupper): Replace constraint "m" with "w".
5426         (*call): Likewise.
5427         (*call_rex64_ms_sysv_vzeroupper): Likewise.
5428         (*call_rex64_ms_sysv): Likewise.
5429         (*call_value_vzeroupper): Likewise.
5430         (*call_value): Likewise.
5431         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
5432         (*call_value_rex64_ms_sysv): Likewise.
5433         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
5434
5435         * config/i386/predicates.md (indirect_branch_operand): New.
5436         (call_insn_operand): Support x32.
5437
5438 2011-07-20  Michael Eager  <eager@eagercon.com>
5439
5440         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
5441
5442 2011-07-20  Richard Henderson  <rth@redhat.com>
5443
5444         * cfg.c (dump_bb_info): Dump basic_block->flags.
5445         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
5446
5447 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5448
5449         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5450         of DImode hard registers in index.
5451         (ix86_legitimate_address_p): Allow subregs of base and index to span
5452         more than a word.  Assert that subregs of base and index satisfy
5453         register_no_elim_operand predicates.  Reject addresses where
5454         base and index have different modes.
5455
5456 2011-07-20  Robert Millan  <rmh@gnu.org>
5457
5458         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
5459
5460 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5461
5462         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
5463         removing now-unnecessary assignment.
5464
5465 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5466
5467         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
5468         memory address space to the type's address space.
5469
5470 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5471
5472         PR target/36467
5473         PR target/49687
5474         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
5475         and expand appropriately if there is a CONST_INT in operand2.
5476         (usmulqihi3): New insn.
5477         (*sumulqihi3): New insn.
5478         (*osmulqihi3): New insn.
5479         (*oumulqihi3): New insn.
5480         (*muluqihi3.uconst): New insn_and_split.
5481         (*muluqihi3.sconst): New insn_and_split.
5482         (*mulsqihi3.sconst): New insn_and_split.
5483         (*mulsqihi3.uconst): New insn_and_split.
5484         (*mulsqihi3.oconst): New insn_and_split.
5485         (*ashifthi3.signx.const): New insn_and_split.
5486         (*ashifthi3.signx.const7): New insn_and_split.
5487         (*ashifthi3.zerox.const): New insn_and_split.
5488         (mulsqihi3): New insn.
5489         (muluqihi3): New insn.
5490         (muloqihi3): New insn.
5491         * config/avr/predicates.md (const_2_to_7_operand): New.
5492         (const_2_to_6_operand): New.
5493         (u8_operand): New.
5494         (s8_operand): New.
5495         (o8_operand): New.
5496         (s9_operand): New.
5497         (register_or_s9_operand): New.
5498
5499 2011-07-20  Kai Tietz  <ktietz@redhat.com>
5500
5501         * builtins.c (fold_builtin_expect): See through the cast
5502         from truthvalue_type_node to long.
5503
5504 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
5505
5506         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
5507         where we can use them from the standard and altivec instruction
5508         sets, instead of always using the 3 operand VSX forms that require
5509         the destination to overlap one of the inputs.
5510         (vsx_fms*): Ditto.
5511         (vsx_fnma*): Ditto.
5512         (vsx_fnms*): Ditto.
5513
5514         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
5515         for DF types.
5516         (fmsdf4_fpr): Ditto.
5517         (nfmadf4_fpr): Ditto.
5518         (nfmsdf4_fpr): Ditto.
5519
5520 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
5521
5522         * genrecog.c (make_insn_sequence): Correct position numbering
5523         when filtering out match_scratch and match_dup.
5524
5525 2011-07-20  Richard Guenther  <rguenther@suse.de>
5526
5527         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5528         against already removed statements.
5529         (forward_propagate_into_comparison): Remove dead defining stmts.
5530         (forward_propagate_into_gimple_cond): Likewise.
5531         (forward_propagate_into_cond): Simplify.
5532         (ssa_forward_propagate_and_combine): Handle changed cfg from
5533         forward_propagate_into_comparison.
5534         * tree-ssa-phiopt.c (conditional_replacement): Use proper
5535         locations for newly built statements.
5536
5537 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5538
5539         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
5540
5541 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5542
5543         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
5544         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
5545
5546 2011-07-20  Richard Guenther  <rguenther@suse.de>
5547
5548         PR middle-end/18908
5549         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
5550         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
5551         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
5552
5553 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
5554
5555         * config/frv/frv.c (frv_register_move_cost): Define explicitly
5556         costs for subclasses of GR_REGS.
5557
5558 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5559
5560         PR target/49780
5561         * config/i386/predicates.md (no_seg_addres_operand): No more special.
5562         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5563         of DImode hard registers in base.
5564         (ix86_legitimate_address_p): Allow SImode and DImode base and index
5565         registers.
5566
5567 2011-07-20  Richard Guenther  <rguenther@suse.de>
5568
5569         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
5570         (unify_nodes): Deal with that.
5571         (solve_graph): Likewise.
5572
5573 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
5574
5575         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
5576         canonicalize left operand from ZERO_EXTEND to AND.
5577
5578 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
5579
5580         * target.def (class_max_nregs): New hook.
5581         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
5582         * doc/tm.texi: Regenerate.
5583         * targhooks.c (default_class_max_nregs): New function.
5584         * targhooks.h (default_class_max_nregs): Declare.
5585         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
5586         x_ira_reg_class_min_nregs arrays to unsigned char.
5587         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
5588         hook instead of CLASS_MAX_NREGS macro.
5589         * reginfo.c (restore_register_info): Ditto.
5590         * ira-conflicts.c (process_regs_for_copy): Use
5591         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5592         Change type rclass and aclass vars to reg_class_t.
5593         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
5594         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
5595         reg_class_t.
5596         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
5597         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5598
5599         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
5600         * config/i386/i386.c (ix86_class_max_nregs): New function.
5601         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
5602         instead of CLASS_MAX_NREGS macro.
5603         (TARGET_CLASS_MAX_NREGS): Define.
5604         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
5605         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
5606         * config/avr/avr.c (class_max_nregs): Remove function.
5607         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
5608         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
5609         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
5610         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
5611         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
5612         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
5613         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
5614         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
5615         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
5616         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
5617         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
5618         * config/score/score.h (CLASS_MAX_NREGS): Remove.
5619         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
5620         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
5621         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
5622
5623 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
5624
5625         * cif-code.def (OVERWRITABLE): Fix typo and move around.
5626         (TARGET_OPTIMIZATION_MISMATCH): Delete.
5627         (EH_PERSONALITY): Fix typo.
5628         (NON_CALL_EXCEPTIONS): Fix message.
5629         (OPTIMIZATION_MISMATCH): Adjust message.
5630         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
5631
5632 2011-07-19  Ian Lance Taylor  <iant@google.com>
5633
5634         * doc/install.texi (Configuration): Document
5635         --enable-build-poststage1-with-cxx.
5636
5637 2011-07-19  Robert Millan  <rmh@gnu.org>
5638
5639         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
5640         (GLIBC_DYNAMIC_LINKER): Remove.
5641
5642         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
5643         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5644         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5645         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
5646         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
5647         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
5648
5649         * config/mips/linux.h: Remove everything except for ...
5650         (GLIBC_DYNAMIC_LINKER): ... this macro.
5651
5652         * config/mips/linux64.h: Remove everything except for ...
5653         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5654         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5655         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
5656         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
5657         (GNU_USER_LINK_EMULATIONN32): New macros.
5658
5659         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
5660         Use the new headers.
5661
5662 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5663
5664         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
5665         Add offset_known_p and size_known_p fields.
5666         (MEM_OFFSET_KNOWN_P): Update accordingly.
5667         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
5668         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
5669         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
5670         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
5671         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
5672         (init_emit_regs): Likewise.
5673
5674 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5675
5676         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
5677         (MEM_OFFSET): Change from returning an rtx to returning a
5678         HOST_WIDE_INT.
5679         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
5680         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
5681         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5682         (clear_mem_offset): Declare.
5683         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
5684         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
5685         MEM_OFFSET to get a HOST_WIDE_INT offset.
5686         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
5687         (adjust_offset_for_component_ref): Take a bool "known_p"
5688         parameter and a HOST_WIDE_INT "offset" parameter.
5689         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
5690         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
5691         than an rtx.  Use clear_mem_offset to clear the offset.
5692         * cfgcleanup.c (merge_memattrs): Likewise.
5693         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
5694         * function.c (assign_parm_find_stack_rtl): Likewise.
5695         (assign_parm_setup_stack): Likewise.
5696         * print-rtl.c (print_rtx): Likewise.
5697         * reload.c (find_reloads_subreg_address): Likewise.
5698         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5699         * var-tracking.c (INT_MEM_OFFSET): Likewise.
5700         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
5701         (get_mem_align_offset): Likewise.
5702         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5703         (clear_mem_offset): New function.
5704         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
5705         offset rather than an rtx.  Assume both the expressio and offset
5706         are available.
5707         (r10k_needs_protection_p_1): Update accordingly, checking the
5708         expression and offset availability here instead.
5709
5710 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5711
5712         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
5713         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
5714         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
5715         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
5716         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5717         (clear_mem_size): Declare.
5718         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5719         (clear_mem_size): New function.
5720         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
5721         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
5722         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
5723         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
5724         to clear the size.
5725         (nonoverlapping_memrefs_p): Likewise.
5726         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
5727         (expand_builtin_init_trampoline): Likewise.
5728         * calls.c (compute_argument_addresses): Likewise.
5729         * cfgcleanup.c (merge_memattrs): Likewise.
5730         * dce.c (find_call_stack_args): Likewise.
5731         * dse.c (record_store, scan_insn): Likewise.
5732         * dwarf2out.c (dw_sra_loc_expr): Likewise.
5733         * expr.c (emit_block_move_hints): Likewise.
5734         * function.c (assign_parm_find_stack_rtl): Likewise.
5735         * print-rtl.c (print_rtx): Likewise.
5736         * reload.c (find_reloads_subreg_address): Likewise.
5737         * rtlanal.c (may_trap_p_1): Likewise.
5738         * var-tracking.c (track_expr_p): Likewise.
5739         * varasm.c (assemble_trampoline_template): Likewise.
5740         * config/arm/arm.c (arm_print_operand): Likewise.
5741         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
5742         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
5743         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
5744         (expand_constant_setmem_prologue): Likewise.
5745         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
5746         * config/rs6000/rs6000.c (expand_block_move): Likewise.
5747         (adjacent_mem_locations): Likewise.
5748         * config/s390/s390.c (s390_expand_setmem): Likewise.
5749         (s390_expand_insv): Likewise.
5750         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
5751         (*extendqi<mode>2_short_displ): Likewise.
5752         * config/sh/sh.c (expand_block_move): Likewise.
5753         * config/sh/sh.md (extv, extzv): Likewise.
5754
5755 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5756
5757         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
5758         (mem_attrs_htab_eq): ...here.
5759         (find_mem_attrs): Replace with...
5760         (set_mem_attrs): ...this function.  Take a mem_attrs structure
5761         rather than individual fields.
5762         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5763         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5764         (set_mem_size, change_address, adjust_address_1, offset_address)
5765         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5766         Update accordingly.
5767
5768 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5769
5770         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
5771         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
5772         Provide a dummy definition of MEM_ADDR_SPACE for generators.
5773         (target_rtl): Add x_mode_mem_attrs.
5774         (mode_mem_attrs): New macro.
5775         (get_mem_attrs): New function.
5776         * emit-rtl.c (get_mem_attrs): Rename to...
5777         (find_mem_attrs): ...this.
5778         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5779         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5780         (set_mem_size, change_address, adjust_address_1, offset_address)
5781         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5782         Update accordingly.
5783         (init_emit_regs): Initialize mode_mem_attrs.
5784
5785 2011-07-19  Richard Guenther  <rguenther@suse.de>
5786
5787         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
5788         TRUTH_*_EXPR handling.
5789         * tree-ssa-operands.c (get_expr_operands): Likewise.
5790         * tree-ssa-pre.c (fully_constant_expression): Likewise.
5791         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
5792         Likewise.
5793         (is_and_or_or): Likewise.
5794         (is_norm_cond_subset_of): Likewise.
5795
5796 2011-07-19  Richard Guenther  <rguenther@suse.de>
5797
5798         * tree.h (fold_build_pointer_plus_loc): New helper function.
5799         (fold_build_pointer_plus_hwi_loc): Likewise.
5800         (fold_build_pointer_plus): Define.
5801         (fold_build_pointer_plus_hwi): Likewise.
5802         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
5803         (fold_builtin_memory_op): Likewise.
5804         (fold_builtin_stpcpy): Likewise.
5805         (fold_builtin_memchr): Likewise.
5806         (fold_builtin_strstr): Likewise.
5807         (fold_builtin_strchr): Likewise.
5808         (fold_builtin_strrchr): Likewise.
5809         (fold_builtin_strpbrk): Likewise.
5810         (fold_builtin_strcat): Likewise.
5811         (expand_builtin_memory_chk): Likewise.
5812         (fold_builtin_memory_chk): Likewise.
5813         * c-typeck.c (build_unary_op): Likewise.
5814         * cgraphunit.c (thunk_adjust): Likewise.
5815         * fold-const.c (build_range_check): Likewise.
5816         (fold_binary_loc): Likewise.
5817         * omp-low.c (extract_omp_for_data): Likewise.
5818         (expand_omp_for_generic): Likewise.
5819         (expand_omp_for_static_nochunk): Likewise.
5820         (expand_omp_for_static_chunk): Likewise.
5821         * tree-affine.c (add_elt_to_tree): Likewise.
5822         * tree-data-ref.c (split_constant_offset_1): Likewise.
5823         * tree-loop-distribution.c (generate_memset_zero): Likewise.
5824         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
5825         * tree-predcom.c (ref_at_iteration): Likewise.
5826         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5827         (add_to_parts): Likewise.
5828         (create_mem_ref): Likewise.
5829         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5830         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
5831         (number_of_iterations_le): Likewise.
5832         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
5833         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5834         (vect_create_addr_base_for_vector_ref): Likewise.
5835         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
5836         (vect_create_cond_for_alias_checks): Likewise.
5837         * tree-vrp.c (extract_range_from_assert): Likewise.
5838         * config/alpha/alpha.c (alpha_va_start): Likewise.
5839         (alpha_gimplify_va_arg_1): Likewise.
5840         * config/i386/i386.c (ix86_va_start): Likewise.
5841         (ix86_gimplify_va_arg): Likewise.
5842         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5843         * config/mep/mep.c (mep_expand_va_start): Likewise.
5844         (mep_gimplify_va_arg_expr): Likewise.
5845         * config/mips/mips.c (mips_va_start): Likewise.
5846         (mips_gimplify_va_arg_expr): Likewise.
5847         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5848         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
5849         (rs6000_gimplify_va_arg): Likewise.
5850         * config/s390/s390.c (s390_va_start): Likewise.
5851         (s390_gimplify_va_arg): Likewise.
5852         * config/sh/sh.c (sh_va_start): Likewise.
5853         (sh_gimplify_va_arg_expr): Likewise.
5854         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
5855         * config/spu/spu.c (spu_va_start): Likewise.
5856         (spu_gimplify_va_arg_expr): Likewise.
5857         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5858         Likewise.
5859         (xstormy16_gimplify_va_arg_expr): Likewise.
5860         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
5861         (xtensa_gimplify_va_arg_expr): Likewise.
5862
5863 2011-07-19  Richard Guenther  <rguenther@suse.de>
5864
5865         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
5866         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
5867         handling.
5868
5869         PR middle-end/18908
5870         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
5871         result of BIT_*_EXPR to bitfield precision.
5872
5873 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
5874
5875         PR tree-optimization/49742
5876         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
5877         as a potential write.
5878
5879 2011-07-19  Richard Guenther  <rguenther@suse.de>
5880
5881         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
5882         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
5883         (forward_propagate_comparison): Simplify, remove obsolete code.
5884
5885 2011-07-19  Richard Guenther  <rguenther@suse.de>
5886
5887         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
5888         BIT_XOR_EXPR, same as the RTL expander does.
5889         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
5890         (verify_gimple_assign_unary): Likewise.
5891         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
5892         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
5893         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
5894
5895 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
5896
5897         PR tree-optimization/49768
5898         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
5899         if offset is smaller than bitoffset, but offset+size is bigger
5900         than bitoffset.
5901
5902 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
5903
5904         PR tree-optimization/49771
5905         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
5906         zero step, set segment length to the size of the data-ref's type.
5907
5908 2011-07-18  Martin Jambor  <mjambor@suse.cz>
5909
5910         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
5911         comments.
5912         (ipcp_values_pool): Declare.
5913         (ipcp_sources_pool): Likewise.
5914         (ipcp_lattice): Changed to forward declaration.
5915         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
5916         cannot_devirtualize.
5917         (ipa_node_params): New fields descriptors, lattices, known_vals,
5918         clone_for_all_contexts and node dead, removed fields params and
5919         count_scale.
5920         (ipa_set_param_count): Removed.
5921         (ipa_get_param_count): Made to work with descriptors vector.
5922         (ipa_get_param): Updated.
5923         (ipa_param_cannot_devirtualize_p): Removed.
5924         (ipa_param_types_vec_empty): Likewise.
5925         (ipa_set_param_used): New function.
5926         (ipa_get_param_used): Updated to use descriptors vector.
5927         (ipa_func_list): Removed.
5928         (ipa_init_func_list): Removed declaration.
5929         (ipa_push_func_to_list_1): Likewise.
5930         (ipa_pop_func_from_list): Likewise.
5931         (ipa_push_func_to_list): Removed.
5932         (ipa_lattice_from_jfunc): Remove declaration.
5933         (ipa_get_jf_pass_through_result): Declare.
5934         (ipa_get_jf_ancestor_result): Likewise.
5935         (ipa_value_from_jfunc): Likewise.
5936         (ipa_get_lattice): Update.
5937         (ipa_lat_is_single_const): New function.
5938         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
5939         (ipa_init_func_list): Likewise.
5940         (ipa_pop_func_from_list): Likewise.
5941         (ipa_get_param_decl_index): Fix coding style.
5942         (count_formal_params): Removed.
5943         (count_formal_params_1): Renamed to count_formal_params.
5944         (ipa_populate_param_decls): Update to use descriptors vector.
5945         (ipa_initialize_node_params): Likewise.
5946         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
5947         (ipa_analyze_params_uses): Likewise.
5948         (ipa_free_node_params_substructures): Likewise and free also lattices
5949         and known values.
5950         (duplicate_array): Removed.
5951         (ipa_edge_duplication_hook): Add the new edge to the list of edge
5952         clones.
5953         (ipa_node_duplication_hook): Update to use new lattices.
5954         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
5955         (ipa_free_all_structures_after_iinln): Likewise.
5956         (ipa_write_node_info): Update to use new lattices.
5957         (ipa_read_node_info): Likewise.
5958         (ipa_get_jf_pass_through_result): New function.
5959         (ipa_get_jf_ancestor_result): Likewise.
5960         (ipa_value_from_jfunc): Likewise.
5961         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
5962         * ipa-cp.c: Reimplemented.
5963         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
5964         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
5965         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
5966         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
5967         * doc/invoke.texi (devirt-type-list-size): Removed description.
5968         (ipa-cp-value-list-size): Added description.
5969
5970 2011-07-18  Richard Henderson  <rth@redhat.com>
5971
5972         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
5973         before calling create_basic_block.
5974
5975 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
5976
5977         PR middle-end/49675
5978         * tree.c (build_common_builtin_nodes): Register
5979         __builtin_return_address, __cyg_profile_func_enter
5980         and __cyg_profile_func_exit.
5981
5982 2011-07-18  Richard Henderson  <rth@redhat.com>
5983
5984         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
5985         (add_labels_and_missing_jumps): ... here.
5986         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
5987
5988 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
5989
5990         PR target/47744
5991         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5992         of DImode hard registers in PLUS address chains.
5993
5994 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5995
5996         PR bootstrap/49769
5997         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
5998         (alpha*-*-freebsd*): Likewise.
5999         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6000         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6001         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
6002         crtprec80.o, crtfastmath.o to extra_parts for all targets.
6003         (ia64*-*-elf*): Remove extra_parts.
6004         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
6005         (sparc64-*-linux*): Likewise.
6006         (sparc64-*-freebsd*): Likewise.
6007
6008         Revert:
6009         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
6010         (ia64*-*-linux*): Likewise.
6011         (mips64*-*-linux*): Likewise.
6012         (mips*-*-linux*): Likewise.
6013
6014 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
6015
6016         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
6017
6018 2011-07-18  Richard Guenther  <rguenther@suse.de>
6019
6020         * gimplify.c (gimplify_expr): Use input_location, not saved_location
6021         when building new trees.
6022
6023 2011-07-18  Richard Guenther  <rguenther@suse.de>
6024
6025         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
6026         expansion result to bitfield precision if required.
6027
6028 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6029
6030         * config.gcc (i[3456x]86-*-netware*): Remove.
6031
6032         * gthr-nks.h: Remove.
6033         * configure.ac (enable_threads): Remove nks.
6034         * configure: Regenerate.
6035
6036         * config/i386/i386.c (ix86_encode_section_info): Remove netware
6037         reference.
6038         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
6039         <netware.h> reference.
6040
6041         * config/i386/netware-libgcc.c,
6042         gcc/config/i386/netware-libgcc.def,
6043         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
6044         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
6045         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
6046         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
6047
6048         * doc/extend.texi (Function Attributes,
6049         callee_pop_aggregate_return): Remove i?86-netware reference.
6050         * doc/install.texi (Configuration, --enable-threads): Remove nks.
6051
6052 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6053
6054         PR target/49746
6055         Revert:
6056         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6057
6058         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
6059         patterns.
6060
6061 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
6062
6063         PR middle-end/49732
6064         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
6065
6066 2011-07-16  Matthias Klose  <doko@ubuntu.com>
6067
6068         * doc/install.texi: Document --enable-static-libjava.
6069
6070 2011-07-15  Richard Henderson  <rth@redhat.com>
6071
6072         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6073         Replace all three arguments by returning a VEC of edges.
6074         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
6075         pointers and counts.
6076         (fix_edges_for_rarely_executed_code): Merge ...
6077         (rest_of_handle_partition_blocks): ... into...
6078         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
6079         any work was performed.
6080         (pass_partition_blocks): Clear todo_flags_finish.
6081
6082 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
6083             Jakub Jelinek  <jakub@redhat.com>
6084             Jonathan Wakely  <jwakely.gcc@gmail.com>
6085
6086         PR libstdc++/49745
6087         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
6088         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
6089
6090 2011-07-15  Jason Merrill  <jason@redhat.com>
6091
6092         PR testsuite/49741
6093         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
6094         rather than --tool_opts.
6095
6096 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
6097
6098         * doc/plugins.texi (Building GCC plugins): gengtype needs its
6099         corresponding gtype.state.
6100
6101 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6102
6103         PR target/49723
6104         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
6105
6106 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6107
6108         PR target/48220
6109         * doc/md.texi (Standard Names): Document window_save.
6110         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
6111         expand_debug_expr and expand_debug_source_expr.  If the target has
6112         a window_save instruction, adjust the ENTRY_VALUE_EXP.
6113         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
6114         SSA_NAME_VAR is a parameter.
6115         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
6116         * var-tracking.c (parm_reg_t): New type and associated vector type.
6117         (windowed_parm_regs): New variable.
6118         (adjust_insn): If the target has a window_save instruction and this
6119         is the instruction, make its effect on parameter registers explicit.
6120         (next_non_note_insn_var_location): New function.
6121         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
6122         (vt_add_function_parameter): If the target has a window_save insn,
6123         adjust the incoming RTL and record that in windowed_parm_regs.
6124         (vt_finalize): Free windowed_parm_regs.
6125
6126 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
6127
6128         * doc/invoke.texi (C6X Options): New section.
6129         * doc/md.texi (TI C6X family): New section.
6130         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
6131         tic6x-*-uclinux.
6132         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
6133         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
6134         Provide C6X definitions.
6135         * config/c6x/c6x.md: New file.
6136         * config/c6x/constraints.md: New file.
6137         * config/c6x/predicates.md: New file.
6138         * config/c6x/c6x-sched.md.in: New file.
6139         * config/c6x/c6x-sched.md: New file.
6140         * config/c6x/gensched.sh: New file.
6141         * config/c6x/c6x-mult.md.in: New file.
6142         * config/c6x/genmult.sh: New file.
6143         * config/c6x/c6x-mult.md: New file.
6144         * config/c6x/sync.md: New file.
6145         * config/c6x/c6x-protos.h: New file.
6146         * config/c6x/sfp-machine.h: New file.
6147         * config/c6x/c6x.c: New file.
6148         * config/c6x/c6x.h: New file.
6149         * config/c6x/crti.s: New file.
6150         * config/c6x/crtn.s: New file.
6151         * config/c6x/lib1funcs.asm: New file.
6152         * config/c6x/c6x-modes.def: New file.
6153         * config/c6x/genopt.sh: New file.
6154         * config/c6x/c6x.opt: New file.
6155         * config/c6x/c6x-tables.opt: New file.
6156         * config/c6x/c6x-opts.h: New file.
6157         * config/c6x/c6x-isas.def: New file.
6158         * config/c6x/elf.h: New file.
6159         * config/c6x/elf-common.h: New file.
6160         * config/c6x/uclinux-elf.h: New file.
6161         * config/c6x/t-c6x: New file.
6162         * config/c6x/t-c6x-elf: New file.
6163         * config/c6x/t-c6x-uclinux: New file.
6164         * config/c6x/t-c6x-softfp: New file.
6165         * config/c6x/gtd.c: New file.
6166         * config/c6x/gtf.c: New file.
6167         * config/c6x/ltd.c: New file.
6168         * config/c6x/ltf.c: New file.
6169         * config/c6x/ged.c: New file.
6170         * config/c6x/gef.c: New file.
6171         * config/c6x/led.c: New file.
6172         * config/c6x/lef.c: New file.
6173         * config/c6x/eqd.c: New file.
6174         * config/c6x/eqf.c: New file.
6175         * config/c6x/libgcc-c6xeabi.ver: New file.
6176
6177         Revert
6178         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6179         PR rtl-optimization/11320
6180         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
6181         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
6182         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
6183         current_sched_info->compute_jump_reg_dependencies. Record which
6184         registers are used and which registers are set by the jump.
6185         Clear deps->reg_conditional_sets after a barrier.
6186         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
6187         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
6188         (init_deps): Initialize reg_conditional_sets.
6189         (free_deps): Clear reg_conditional_sets.
6190         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
6191         Mark registers live on entry of the fallthrough block and conditionally
6192         set as set by the jump. Mark registers live on entry of non-fallthrough
6193         blocks as used by the jump.
6194         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
6195         Mark new parameters as unused.
6196
6197 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
6198
6199         PR tree-opt/49309
6200         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
6201         Use fold_build2_loc instead of build2.
6202         Use the correct type for the new tree.
6203
6204 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6205
6206         PR rtl-optimization/11320
6207         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
6208         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
6209
6210 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6211
6212         PR target/49487
6213         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
6214         of REG.
6215         (*rotw<mode>): Use const_int_operand for operand2.
6216         Use match_scatch for operand3.
6217         (*rotb<mode>): Ditto
6218         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
6219
6220 2011-07-14  Richard Guenther  <rguenther@suse.de>
6221
6222         PR tree-optimization/49651
6223         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6224         handle dereferences with subvariables.
6225
6226 2011-07-14  Richard Guenther  <rguenther@suse.de>
6227
6228         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
6229         (fold_stmt_1): Do it here directly on gimple and as a first thing.
6230
6231 2011-07-14  Richard Guenther  <rguenther@suse.de>
6232
6233         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
6234         not bool_var when folding bool_var != 1 or bool_var == 0.
6235
6236 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6237
6238         * haifa-sched.c (schedule_insns): Remove outdated comment.
6239         (schedule_block): When computing a known value for TODO_SPEC,
6240         just set it rather than using logical operations.
6241         (try_ready): Likewise.  Use a local variable rather than a
6242         pointer to TODO_SPEC.  Reorder an if statement to move the
6243         easy case to the then block.
6244         * sched-deps.c (dep_spec_p): New static function.
6245         (update_dep): Use it to decide whether to call
6246         change_spec_dep_to_hard.
6247         (get_back_and_forw_lists): Use it.
6248         (sd_resolve_dep): Likewise.
6249         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
6250         (haifa_note_mem_dep): Likewise.
6251         (check_dep): Likewise.
6252         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
6253         (sched_free_deps): Free in two passes.
6254
6255 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
6256
6257         PR middle-end/49736
6258         * expr.c (all_zeros_p): Undo bogus part of last change.
6259
6260 2011-07-14  Matthias Klose <doko@ubuntu.com>
6261
6262         * doc/extend.texi (optimize attribute): Fix typo.
6263
6264 2011-07-14  Richard Guenther  <rguenther@suse.de>
6265
6266         * gimplify.c (gimplify_expr): Only do required conversions.
6267
6268 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6269
6270         PR target/43746
6271         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
6272         i.e. use default_elf_select_section.
6273         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
6274         (READONLY_DATA_SECTION_ASM_OP): Remove.
6275         (TARGET_ASM_NAMED_SECTION): Move from here...
6276         * config/avr/avr.c: ...to here.
6277         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
6278         (avr_asm_named_section): Make static.
6279
6280 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6281
6282         PR bootstrap/49739
6283         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
6284         and crtfastmath.o for Linux/x86.
6285
6286 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6287
6288         * haifa-sched.c: Include "hashtab.h"
6289         (sched_no_dce): New global variable.
6290         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
6291         SHADOW_P): New macros.
6292         (last_clock_var, cycle_issued_insns): Move declarations.
6293         (must_backtrack): New static variable.
6294         (struct delay_pair): New structure.
6295         (delay_htab, delay_htab_i2): New static variables.
6296         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
6297         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
6298         functions.
6299         (dep_cost_1): If delay pairs exist, try to look up the insns and
6300         use the correct pair delay if we find them.
6301         (rank-for_schedule): Tweak priority for insns that must be scheduled
6302         soon to avoid backtracking.
6303         (queue_insn): Detect conditions which force backtracking.
6304         (ready_add): Likewise.
6305         (struct sched_block_state): Add member shadows_only_p.
6306         (struct haifa_save_data): New structure.
6307         (backtrack_queue): New static variable.
6308         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
6309         unschedule_insns_until, restore_last_backtrack_point,
6310         free_topmost_backtrack_point, free_backtrack_queue,
6311         estimate_insn_tick, estimate_shadow_tick): New functions.
6312         (prune_ready_list): New arg shadows_only_p.  All callers changed.
6313         If true, remove everything that isn't SHADOW_P.  Look up delay
6314         pairs and estimate ticks to avoid scheduling the first insn too early.
6315         (verify_shadows): New function.
6316         (schedule_block): Add machinery to enable backtracking.
6317         (sched_init): Take sched_no_dce into account when setting
6318         DF_LR_RUN_DCE.
6319         (free_delay_pairs): New function.
6320         (init_h_i_d): Initialize INSN_EXACT_TICK.
6321         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
6322         * sched-deps.c (sd_unresolve_dep): New function.
6323         * sched-int. (struct haifa_sched_info): New fields save_state
6324         and restore_state.
6325         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
6326         feeds_backtrack_insn and shadow_p.
6327         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
6328         (sched_no_dce): Declare variable.
6329         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
6330         sd_unresolve_dep): Declare functions.
6331         * modulo-sched.c (sms_sched_info): Clear the two new fields.
6332         * sched-rgn.c (rgn_const_sched_info): Likewise.
6333         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6334         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
6335         (ebb_sched_info): Add them for the two new fields.
6336         (add_deps_for_risky_insns): Call add_delay_dependencies.
6337
6338 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6339
6340         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
6341         Rename -mr11.
6342         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
6343         (rs6000_call_indirect_aix): Ditto.
6344         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
6345         (call_indirect_aix<ptrsize>_internal): Ditto.
6346         (call_indirect_aix<ptrsize>_nor11): Ditto.
6347         (call_indirect_aix<ptrsize>_internal2): Ditto.
6348         (call_value_indirect_aix<ptrsize>): Ditto.
6349         (call_value_indirect_aix<ptrsize>_internal): Ditto.
6350         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
6351         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
6352         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
6353
6354 2011-07-13  Jason Merrill  <jason@redhat.com>
6355
6356         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
6357
6358 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6359
6360         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
6361         * config/spu/spu.md ("clrsb<mode>2"): New expander.
6362
6363 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
6364
6365         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
6366         * configure: Regenerate.
6367
6368 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6369
6370         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
6371         (asm_file_start): Remove.
6372         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
6373         free_bb_for_insn around code that modifies insns before
6374         restarting df analysis.
6375
6376 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6377
6378         PR target/49541
6379         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
6380         (LINK_SPEC): ... here.
6381
6382 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6383
6384         * haifa-sched.c (struct sched_block_state): New.
6385         (schedule_block): Move some local variables into such a structure.
6386
6387 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6388
6389         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
6390         * config/i386/t-crtpc: Remove.
6391         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6392         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
6393         tmake_file.
6394         (x86_64-*-darwin*): Likewise.
6395         (i[34567]86-*-linux*): Likewise.
6396         (x86_64-*-linux*): Likewise.
6397
6398         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
6399         Handle -mpc32, -mpc64, -mpc80.
6400
6401 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6402
6403         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
6404         * config/alpha/t-crtfm: Remove.
6405         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
6406         * config/i386/t-crtfm: Remove.
6407         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
6408         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
6409         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
6410         * config/sparc/t-crtfm: Remove.
6411
6412         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
6413         (alpha*-*-freebsd*): Likewise.
6414         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
6415         (x86_64-*-darwin*): Likewise.
6416         (i[34567]86-*-linux*): Likewise.
6417         (x86_64-*-linux*): Likewise.
6418         (x86_64-*-mingw*): Likewise.
6419         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
6420         (ia64*-*-freebsd*): Likewise.
6421         (ia64*-*-linux*): Likewise.
6422         (mips64*-*-linux*): Likewise.
6423         (mips*-*-linux*): Likewise.
6424         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
6425         (sparc64-*-linux*): Likewise.
6426         (sparc64-*-freebsd*): Likewise.
6427
6428 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6429
6430         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
6431         * config/darwin-crt3.c: Move to ../libgcc/config.
6432         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6433         ($(T)crt3$(objext)): Remove.
6434         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
6435         ($(T)crt2$(objext)): Remove.
6436         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
6437         (powerpc64-*-darwin*): Likewise.
6438
6439 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6440
6441         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
6442
6443         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
6444         (addsi_1_zext): This.
6445
6446 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6447
6448         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
6449         * doc/tm.texi: Regenerate.
6450         * target.def (mergeable_rodata_prefix): New defhookpod.
6451         * varasm.c (mergeable_string_section, mergeable_constant_section):
6452         Use it. Allocate name with alloca.
6453
6454 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6455
6456         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
6457
6458 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6459
6460         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
6461         overlap check.
6462
6463 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6464
6465         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
6466         (count_type_elements): Delete.
6467         (complete_ctor_at_level_p): Declare.
6468         * expr.c (flexible_array_member_p): New function, split out from...
6469         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
6470         parameter with for_ctor_p.  When for_ctor_p is true, return the
6471         number of elements that should appear in the top-level constructor,
6472         otherwise return an estimate of the number of scalars.
6473         (categorize_ctor_elements): Replace p_must_clear with p_complete.
6474         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
6475         (complete_ctor_at_level_p): New function, borrowing union logic
6476         from old categorize_ctor_elements_1.
6477         (mostly_zeros_p): Return true if the constructor is not complete.
6478         (all_zeros_p): Update call to categorize_ctor_elements.
6479         * gimplify.c (gimplify_init_constructor): Update call to
6480         categorize_ctor_elements.  Don't call count_type_elements.
6481         Unconditionally prevent clearing for variable-sized types,
6482         otherwise rely on categorize_ctor_elements to detect
6483         incomplete initializers.
6484
6485 2011-07-13  Richard Guenther  <rguenther@suse.de>
6486
6487         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
6488         the final type is integral.
6489
6490 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6491
6492         * sched-int.h (struct _dep): Add member cost.
6493         (DEP_COST, UNKNOWN_DEP_COST): New macros.
6494         * sched-deps.c (init_dep_1): Initialize DEP_COST.
6495         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
6496         (sched_change_pattern): Reset it for dependent insns.
6497
6498 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6499
6500         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
6501         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
6502         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
6503         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
6504         (CRT0_S, MCRT0_S): Remove.
6505         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
6506         Remove.
6507         (s-crt0): Remove.
6508         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
6509
6510 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
6511
6512         * cse.c (insert_with_costs): Put semi-colon after empty loop body
6513         on the next line.
6514         * emit-rtl.c (push_to_sequence): Likewise.
6515         * haifa-sched.c (max_issue): Likewise.
6516         * matrix-reorg.c (add_allocation_site): Likewise.
6517         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
6518         * reload.c (alternative_allows_const_pool_ref): Likewise.
6519         * sched-rgn.c (rgn_add_block): Likewise.
6520         (rgn_fix_recovery_cfg): Likewise.
6521         * tree.c (attribute_list_contained): Likewise.
6522
6523 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
6524
6525         * config/i386/i386.c: Tidy processor feature bitmasks.
6526         (m_P4_NOCONA): New.
6527
6528 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
6529
6530         PR rtl-opt/49474
6531         * cprop.c (find_implicit_sets): Correct the condition.
6532
6533 2011-07-12  Richard Henderson  <rth@redhat.com>
6534
6535         PR target/49713
6536         * dwarf2out.h (dwarf_frame_regnum): Remove.
6537         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
6538         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
6539         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
6540         (execute_dwarf2_frame): Initialize them.
6541         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
6542         users of the macros with the variables.
6543         (expand_builtin_dwarf_sp_column): Revert last change.
6544         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
6545         result of DWARF_FRAME_REGNUM into a local variable.
6546
6547 2011-07-12  Richard Henderson  <rth@redhat.com>
6548
6549         PR target/49714
6550         * config/i386/i386.c (x86_output_mi_thunk): Use
6551         machopic_indirect_call_target instead of machopic_indirection_name
6552         directly.
6553
6554 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
6555             Eric Botcazou  <ebotcazou@adacore.com>
6556
6557         * prefix.h: Wrap up in extern "C" block.
6558
6559 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
6560
6561         AMD bdver2 Enablement
6562         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
6563         (case ${target}): Add bdver2.
6564         * config/i386/driver-i386.c (host_detect_local_cpu): Let
6565         -march=native recognize bdver2 processors.
6566         * config/i386/i386-c.c (ix86_target_macros_internal): Add
6567         bdver2 def_and_undef
6568         * config/i386/i386.c (struct processor_costs bdver2_cost): New
6569         bdver2 cost table.
6570         (m_BDVER2): New definition.
6571         (m_AMD_MULTIPLE): Includes m_BDVER2.
6572         (initial_ix86_tune_features): Add bdver2 tuning.
6573         (processor_target_table): Add bdver2 entry.
6574         (static const char *const cpu_names): Add bdver2 entry.
6575         (ix86_option_override_internal): Add bdver2 instruction sets.
6576         (ix86_issue_rate): Add bdver2.
6577         (ix86_adjust_cost): Add bdver2.
6578         (has_dispatch): Add bdver2.
6579         * config/i386/i386.h (TARGET_BDVER2): New definition.
6580         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
6581         (enum processor_type): Add PROCESSOR_BDVER2.
6582         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
6583         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
6584         description.
6585
6586 2011-07-12  Richard Henderson  <rth@redhat.com>
6587
6588         PR target/49714
6589         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
6590         destination address in memory on some paths.
6591
6592 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
6593
6594         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
6595         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
6596         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
6597         * function.c (locate_and_pad_parm): Take it into account.
6598         * target.def (function_arg_round_boundary): New hook.
6599         * targhooks.c (default_function_arg_round_boundary): New function.
6600         * targhooks.h (default_function_arg_round_boundary): Declare.
6601         * doc/tm.texi: Regenerate.
6602
6603 2011-07-12  Richard Guenther  <rguenther@suse.de>
6604
6605         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
6606         Do not perform no-op changes.
6607
6608 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
6609
6610         * config/arm/predicates.md (neon_struct_operand): Make a normal
6611         predicate.
6612         (neon_struct_or_register_operand): New predicate.
6613         * config/arm/neon.md (movmisalign<mode>): Replace predicates
6614         with neon_struct_or_register_operand.
6615         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
6616         neon_struct_operand instead of memory_operand.
6617
6618 2011-07-12  Martin Jambor  <mjambor@suse.cz>
6619
6620         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
6621         * cgraph.c (cgraph_get_node_or_alias): Removed.
6622         (change_decl_assembler_name): Changed all calls to
6623         cgraph_get_node_or_alias to a call to cgraph_get_node.
6624         (cgraph_make_decl_local): Likewise.
6625         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
6626         * varasm.c (default_binds_local_p_1): Likewise.
6627         (decl_binds_to_current_def_p): Likewise.
6628
6629 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
6630
6631         PR tree-optimization/49712
6632         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
6633
6634 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
6635
6636         * genautomata.c (add_arc): Return void.  All callers changed.
6637         (make_automaton): Remove dead code.
6638
6639 2011-07-11  Richard Henderson  <rth@redhat.com>
6640
6641         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
6642         (DW_FRAME_POINTER_REGNUM): New.
6643         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
6644         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
6645         (dwf_regno): New.
6646         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
6647         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
6648         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
6649         Use it.
6650         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
6651         * dwarf2out.h (dwarf_frame_regnum): New.
6652         (struct cfa_loc): Document the domain of the reg member.
6653
6654 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
6655
6656         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
6657         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
6658
6659 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
6660
6661         PR debug/49676
6662         * dwarf2out.c (int_shift_loc_descriptor): New function.
6663         (int_loc_descriptor): If shorter, emit i as
6664         (i >> shift), shift, DW_OP_shl for suitable shift value.
6665         Similarly, try to optimize large negative values using
6666         DW_OP_neg of a positive value if shorter.
6667         (size_of_int_shift_loc_descriptor): New function.
6668         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
6669         changes.
6670         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
6671         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
6672         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
6673         is shorter.
6674         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
6675         addend as added DW_OP_plus if it is shorter.
6676
6677 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6678
6679         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
6680         (DTORS_SECTION_ASM_OP): Define.
6681
6682 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6683
6684         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
6685         * config/t-dfprules: Move to ../libgcc/config.
6686         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6687         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6688         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
6689         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
6690         Likewise.
6691         (i[34567]86-*-cygwin*): Likewise.
6692         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
6693         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
6694         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
6695         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
6696         D64PBIT_FUNCS, D128PBIT_FUNCS.
6697
6698 2011-07-11  Richard Guenther  <rguenther@suse.de>
6699
6700         * tree-vrp.c (simplify_conversion_using_ranges): Manually
6701         translate the source value-range through the conversion chain.
6702
6703 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
6704
6705         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
6706
6707 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6708
6709         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
6710         a bi-arch compiler defaulting to 31-bit. In this case:
6711         (tmake_file): Add s390/t-linux64.
6712         * doc/install.texi: Add s390-linux to the list of targets supporting
6713         --enable-targets=all.
6714
6715 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6716             Matthias Klose <doko@debian.org>
6717
6718         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
6719         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
6720         (tm_file): Add mips/linux64.h.
6721         (tmake_file): Add mips/t-linux64.
6722         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6723         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
6724         instead of hardcoded mabi=n32.
6725         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6726         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6727         convention.
6728
6729 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6730
6731         * passes.c (init_optimization_passes): Add invariant motion pass
6732         after induction variable optimization.
6733
6734 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
6735
6736         PR target/39633
6737         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
6738         offsets 1..5 set cc0 in a usable way.
6739
6740 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
6741
6742         * tree.h (call_expr_arg): Remove.
6743         (call_expr_argp): Likewise.
6744
6745 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
6746
6747         * config/sparc/sparc.md (save_register_window_1): Rename to...
6748         (window_save): ...this.
6749         * config/sparc/sparc.c (emit_save_register_window): Rename to...
6750         (emit_window_save): ...this.
6751         (sparc_expand_prologue): Adjust to above renaming.
6752
6753 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6754
6755         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
6756         of movabs for x32.
6757
6758 2011-07-10  Richard Henderson  <rth@redhat.com>
6759
6760         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
6761         run final, instead of emitting text directly.
6762
6763 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6764
6765         * config/i386/i386.c (ix86_option_override_internal): Turn on
6766         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
6767         small PIC models for TARGET_X32.
6768
6769 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
6770
6771         PR target/49684
6772         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
6773         $(LIBGCC2_CFLAGS).
6774
6775         PR bootstrap/49680
6776         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
6777         stray notes and debug insns by using prev_nonnote_nondebug_insn
6778         instead of PREV_INSN.
6779
6780 2011-07-09  Richard Henderson  <rth@redhat.com>
6781
6782         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
6783         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
6784         * dwarf2out.c: ... here.
6785         (output_all_cfis): Remove.
6786         (dwarf2out_switch_text_section): Use output_cfis directly.
6787         (size_of_locs): Export.
6788         (output_loc_sequence, output_loc_sequence_raw): Export.
6789         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
6790         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
6791         output_cfa_loc_raw): Move to ...
6792         * dwarfcfi.c: ... here.
6793         * dwarf2out.h: Update decls.
6794
6795 2011-07-09  Richard Henderson  <rth@redhat.com>
6796
6797         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
6798         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
6799         * dwarf2cfi.c: ... here.
6800         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
6801         (DWARF_ROUND, DWARF_CIE_ID): Remove.
6802         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
6803         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
6804         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
6805
6806 2011-07-09  Richard Henderson  <rth@redhat.com>
6807
6808         * dwarf2cfi.c (cie_return_save): New.
6809         (queue_reg_save): Use compare_reg_or_pc.
6810         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
6811         (dwarf2out_frame_debug_expr): Likewise.
6812         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
6813         (initial_return_save): Likewise.
6814         (execute_dwarf2_frame): Save and restore initial return save from
6815         the cie to the fde.
6816         * config/mips/mips.c (mips_frame_set): Remove special case for
6817         DWARF_FRAME_RETURN_COLUMN.
6818
6819 2011-07-09  Richard Henderson  <rth@redhat.com>
6820
6821         * dwarf2cfi.c (lookup_cfa): Remove.
6822         (execute_dwarf2_frame): Assert queues are empty on entry.
6823         Setup initial cfa directly, not via lookup_cfa.
6824         Don't clear args_size state here.
6825
6826 2011-07-09  Richard Henderson  <rth@redhat.com>
6827
6828         * dwarf2cfi.c (add_cfi_vec): New.
6829         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
6830         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
6831         (execute_dwarf2_frame): Set add_cfi_vec.
6832
6833 2011-07-09  Richard Henderson  <rth@redhat.com>
6834
6835         * defaults.h (ASM_COMMENT_START): Move here...
6836         * dwarf2asm.c: ... from here.
6837         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
6838         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
6839         * varasm.c: Likewise.
6840
6841 2011-07-09  Richard Henderson  <rth@redhat.com>
6842
6843         PR debug/49686
6844         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
6845         (create_cfi_notes): ... do it here instead.
6846
6847 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
6848
6849         PR debug/49676
6850         * dwarf2out.c (size_of_int_loc_descriptor): New function.
6851         (address_of_int_loc_descriptor): Use it.
6852         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
6853
6854 2011-07-09  Richard Henderson  <rth@redhat.com>
6855
6856         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
6857         (prologue, epilogue): New.
6858         (return, *rts): New.
6859         (blockage, setd, seti): New.
6860         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
6861         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
6862         (pdp11_saved_regno): New.
6863         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
6864         generate rtl instead of text.
6865         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
6866         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
6867         * config/pdp11/pdp11-protos.h: Update.
6868
6869 2011-07-09  Richard Henderson  <rth@redhat.com>
6870
6871         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
6872         try to insert an rtl prologue here.
6873         (rs6000_output_function_epilogue): Similarly.
6874         * config/rs6000/rs6000.md (prologue): Emit a barrier to
6875         satisfy !TARGET_SCHED_PROLOG.
6876         (epilogue, sibcall_epilogue): Likewise.
6877
6878 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
6879
6880         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
6881         (FP_REG_P): Delete.
6882         (IN_OR_GLOBAL_P): Likewise.
6883
6884 2011-07-08  Jason Merrill  <jason@redhat.com>
6885
6886         PR c++/45437
6887         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
6888         compound assignment.
6889
6890         * cgraph.c (cgraph_add_to_same_comdat_group): New.
6891         * cgraph.h: Declare it.
6892         * ipa.c (function_and_variable_visibility): Make sure thunks
6893         have the right visibility.
6894
6895 2011-07-08  Richard Henderson  <rth@redhat.com>
6896
6897         PR bootstrap/49680
6898         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
6899         any tablejump vector.
6900
6901         PR bootstrap/49680
6902         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
6903         end of the prologue.
6904
6905 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
6906
6907         PR target/49621
6908         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
6909         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
6910         * config/rs6000/vector.md (vector_select_<mode>,
6911         vector_select_<mode>_uns): Change second operand of NE to
6912         CONST0_RTX (<MODE>mode) instead of const0_rtx.
6913         * config/rs6000/altivec.md (*altivec_vsel<mode>,
6914         *altivec_vsel<mode>_uns): Expect second operand of NE to be
6915         zero_constant of the corresponding vector mode.
6916         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
6917         Likewise.
6918
6919 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6920
6921         * graphite-dependences.c (build_alias_set_powerset): Remove
6922         continue from loop, add one more assert.
6923
6924 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6925
6926         PR target/46779
6927         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
6928         In particular, allow 8-bit values in r28 and r29.
6929         (avr_hard_regno_scratch_ok): Disallow any register that might be
6930         part of the frame pointer.
6931         (avr_hard_regno_rename_ok): Same.
6932         (avr_legitimate_address_p): Don't allow SUBREGs.
6933
6934 2011-07-08  Julian Brown  <julian@codesourcery.com>
6935
6936         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
6937         big-endian mode.
6938         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
6939         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
6940         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
6941         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
6942         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
6943         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
6944         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
6945         registers in big-endian mode.
6946
6947 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6948
6949         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
6950         in terms of another.
6951         (write_attr_value): Write a cast if necessary.
6952
6953         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
6954         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
6955         (REG_WORDS_BIG_ENDIAN): Document.
6956         * doc/tm.texi: Regenerate.
6957         * reload.c (operands_match_p): Take it into account.
6958         (reload_adjust_reg_for_mode): Likewise.
6959         * rtlanal.c (subreg_get_info): Likewise.
6960
6961 2011-07-08  Richard Guenther  <rguenther@suse.de>
6962
6963         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
6964         folding.
6965
6966 2011-07-08  Kai Tietz  <ktietz@redhat.com>
6967
6968         * fold-const.c (fold_truth_andor): Factored out truth_andor
6969         label from fold_binary as function.
6970         (fold_binary_loc): Replace truth_andor lable
6971         by function fold_truth_andor.
6972
6973 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
6974
6975         PR middle-end/49519
6976         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
6977         check if address is stored in register. If so - give up.
6978         (check_sibcall_argument_overlap_1): Do not perform check of
6979         overlapping when it is call to address.
6980
6981 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6982
6983         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
6984         of magic '31'.
6985
6986 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6987
6988         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
6989         GET_MODE_BITSIZE where appropriate.
6990         (widen_leading, expand_parity, expand_ctz, expand_ffs,
6991         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
6992         expand_float, expand_fix): Likewise.
6993         * expr.c (convert_move, convert_modes, expand_expr_real_2,
6994         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6995         * stor-layout.c (get_mode_bounds): Likewise.
6996         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
6997         Likewise.
6998         * convert.c (convert_to_integer): Likewise.
6999         * expmed.c (expand_shift_1): Likewise.
7000
7001         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
7002         a bitsize.
7003
7004         * optabs.c (expand_binop): Tighten conditions for doubleword
7005         expansions.
7006         (widen_bswap): Assert that mode bitsize and precision are the same.
7007         * stor-layout.c (get_best_mode): Skip modes that have lower
7008         precision than bitsize.
7009         * recog.c (simplify_while_replacing): Assert that bitsize and
7010         precision are the same.
7011
7012 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7013
7014         * Makefile.in (LIBGCOV): Remove.
7015         (libgcc.mvars): Remove LIBGCOV.
7016         * libgov.c: Move to ../libgcc.
7017
7018 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7019
7020         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
7021
7022 2011-07-08  Martin Jambor  <mjambor@suse.cz>
7023
7024         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
7025         is too big for total scalarization.
7026
7027 2011-07-07  Richard Henderson  <rth@redhat.com>
7028
7029         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
7030         (DBX_DEBUGGING_INFO): Undef.
7031
7032 2011-07-07  Richard Henderson  <rth@redhat.com>
7033
7034         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
7035         Handle some opcodes specially for debugging.
7036         * print-rtl.c: Include dwarf2out.h
7037         (print_rtx): Handle NOTE_INSN_CFI.
7038         * Makefile.in (print-rtl.o): Update.
7039
7040 2011-07-07  Richard Henderson  <rth@redhat.com>
7041
7042         * tree-pass.h (pass_dwarf2_frame): Declare.
7043         * passes.c (init_optimization_passes): Add it.
7044         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
7045         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
7046         make static, do not call add_cfis_to_fde.
7047         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
7048         dwarf2out_frame_init): Merge into...
7049         (execute_dwarf2_frame): ... here.  New function.
7050         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
7051         saved_do_cfi_asm to a tri-state variable.
7052         (gate_dwarf2_frame, pass_dwarf2_frame): New.
7053         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
7054         if it has yet to be done.  Don't call dwarf2cfi_function_init.
7055         * dwarf2out.h, debug.h: Update decls.
7056         * final.c (final_start_function): Don't call
7057         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
7058         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
7059         * toplev.c (lang_dependent_init): Likewise.
7060
7061 2011-07-07  Richard Henderson  <rth@redhat.com>
7062
7063         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
7064         FDE_TABLE_INCREMENT): Replace with...
7065         (fde_vec): ... this, a new vector.
7066         (current_fde): Remove.  Replace all users with cfun->fde.
7067         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
7068         (size_of_aranges, dwarf2out_finish): Likewise.
7069         (dwarf2out_alloc_current_fde): Break out from ...
7070         (dwarf2out_begin_prologue): ... here.
7071         (dwarf2out_frame_init): Remove.
7072         * dwarf2cfi.c: Update all users of current_fde.
7073         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
7074         * dwarf2out.h: Update decls.
7075         (dw_fde_node): Add fde_index member.
7076         * function.h (struct function): Add fde member.
7077
7078 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7079             Richard Henderson  <rth@redhat.com>
7080
7081         * dwarf2cfi.c (add_cfi): Remove.
7082         (dwarf2out_cfi_label): Remove force argument.  Only generate the
7083         label name.
7084         (add_fde_cfi): Simplify the different code paths.
7085         (add_cie_cfi): New.
7086         (old_cfa, old_cfa_remember): New.
7087         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
7088         (last_reg_save_label): Remove.
7089         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
7090         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7091         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7092         dwarf2out_frame_debug_cfa_expression,
7093         dwarf2out_frame_debug_cfa_restore,
7094         dwarf2out_frame_debug_cfa_window_save,
7095         dwarf2out_frame_debug_expr): Remove label parameter.
7096         (cfi_label_required_p, add_cfis_to_fde): New.
7097         (dwarf2out_frame_debug_after_prologue): New.
7098         (dwarf2cfi_frame_init): Initialize old_cfa.
7099         (dwarf2out_frame_debug_restore_state): Likewise.
7100         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
7101         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
7102         * final.c (final_start_function): Call
7103         dwarf2out_frame_debug_after_prologue.
7104
7105 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7106             Richard Henderson  <rth@redhat.com>
7107
7108         * dwarf2cfi.c (cfi_insn): New.
7109         (dwarf2out_cfi_label): Don't emit cfi label here.
7110         (add_fde_cfi): Create a NOTE_INSN_CFI.
7111         (dwarf2out_frame_debug): Setup cfi_insn.
7112         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
7113         (dwarf2out_cfi_begin_epilogue): Make static.
7114         (dwarf2out_frame_debug_restore_state): Make static.
7115         * dwarf2out.c (output_cfi_directive): Make static.
7116         (dwarf2out_emit_cfi): New.
7117         * dwarf2out.h: Update.
7118         * final.c (final): Remove CFI notes.
7119         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
7120         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
7121         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
7122         * insn-notes.def (NOTE_INSN_CFI): New.
7123         (NOTE_INSN_CFI_LABEL): New.
7124         * rtl.h (union rtunion_def): Add rt_cfi member.
7125         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
7126
7127 2011-07-07  Richard Henderson  <rth@redhat.com>
7128
7129         * dwarf2cfi.c: New file.
7130         * Makefile.in (OBJS): Add it.
7131         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
7132         * gengtype.c (open_base_files): Include dwarf2out.h.
7133         * coretypes.h (enum var_init_status): Move from ...
7134         * rtl.h: ... here.
7135         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
7136         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
7137         expand_builtin_dwarf_sp_column, init_return_column_size,
7138         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
7139         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
7140         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
7141         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
7142         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
7143         compute_barrier_args_size, dwarf2out_args_size,
7144         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
7145         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
7146         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
7147         queue_reg_save, dwarf2out_flush_queued_reg_saves,
7148         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
7149         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7150         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7151         dwarf2out_frame_debug_cfa_expression,
7152         dwarf2out_frame_debug_cfa_restore,
7153         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
7154         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
7155         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
7156         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
7157         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
7158         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
7159         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
7160         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
7161         dw_loc_descr_node): Move to dwarf2out.h.
7162         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
7163         mem_loc_descriptor): Export.
7164         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
7165         (dwarf2out_frame_init): Extract CIE generation code to
7166         dwarf2cfi_frame_init.
7167
7168 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7169
7170         PR target/49660
7171         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
7172         MASK_V8PLUS, remove commented out flag and reorder.
7173
7174 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7175
7176         PR c/49644
7177         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
7178         one non-complex and one complex argument, call c_save_expr on both
7179         operands.
7180
7181 2011-07-07  Martin Jambor  <mjambor@suse.cz>
7182
7183         PR middle-end/49495
7184         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
7185         (verify_cgraph_node): Some functinality moved to
7186         verify_edge_corresponds_to_fndecl, call it.
7187
7188 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7189
7190         * config.gcc (*local*): Remove.
7191         * doc/install-old.texi: Don't mention local configurations.
7192
7193 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7194
7195         PR debug/49522
7196         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
7197         referencing debug insns that have been reset.
7198         (dead_debug_insert_before): Don't assert reg is non-NULL,
7199         instead return immediately if it is NULL.
7200
7201 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7202
7203         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
7204
7205 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7206
7207         * hw-doloop.c: New file.
7208         * hw-doloop.h: New file.
7209         * Makefile.in (OBJS): Add hw-doloop.o.
7210         (hw-doloop.o): New rule.
7211         ($(obj_out_file)): Add hw-doloop.h dependency.
7212         * config/bfin/bfin.c: Include "hw-doloop.h".
7213         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
7214         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
7215         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
7216         type changed to hwloop_info.  Return bool, true if the loop was
7217         successfully optimized.  Remove code that was moved to
7218         hw-doloop.c, and adjust other parts.
7219         (hwloop_fail): New static function, containing parts that used
7220         to be in bfin_optimize_loop.
7221         (bfin_discover_loop, bfin_discover_loops, free_loops,
7222         bfin_reorder_loops): Remove.
7223         (hwloop_pattern_reg): New static function.
7224         (bfin_doloop_hooks): New variable.
7225         (bfin_reorg_loops): Remove most code, call reorg_loops.
7226         * config/bfin/bfin.md (doloop_end splitter): Also enable if
7227         loop counter is a memory_operand.
7228
7229 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7230
7231         * config.gcc: Support --with-multilib-list for x86 Linux targets.
7232
7233         * configure.ac: Mention x86-64 for --with-multilib-list.
7234         * configure: Regenerated.
7235
7236         * config/i386/gnu-user64.h (SPEC_64): Support x32.
7237         (SPEC_32): Likewise.
7238         (ASM_SPEC): Likewise.
7239         (LINK_SPEC): Likewise.
7240         (TARGET_THREAD_SSP_OFFSET): Likewise.
7241         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
7242         (SPEC_X32): New.
7243
7244         * config/i386/i386.h (TARGET_X32): New.
7245         (TARGET_LP64): New.
7246         (LONG_TYPE_SIZE): Likewise.
7247         (POINTER_SIZE): Likewise.
7248         (POINTERS_EXTEND_UNSIGNED): Likewise.
7249         (OPT_ARCH64): Support x32.
7250         (OPT_ARCH32): Likewise.
7251
7252         * config/i386/i386.opt (mx32): New.
7253
7254         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
7255         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7256         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
7257         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7258
7259         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
7260         (BIONIC_DYNAMIC_LINKERX32): Likewise.
7261         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
7262
7263         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
7264
7265         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
7266
7267         * doc/invoke.texi: Document -mx32.
7268
7269 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7270
7271         * doc/invoke.texi (mwords-little-endian): Deprecate.
7272         * config/arm/arm.opt (mwords-little-endian): Likewise.
7273         * config/arm/arm.c (arm_option_override): Warn about the deprecation
7274         of -mwords-little-endian.
7275
7276 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7277
7278         * reload1.c (choose_reload_regs): Use mode sizes to check whether
7279         an old reload register completely defines the required value.
7280
7281 2011-07-07  Richard Guenther  <rguenther@suse.de>
7282
7283         * fold-const.c (fold_unary_loc): Do not strip sign-changes
7284         for NEGATE_EXPR.
7285
7286 2011-07-07  Richard Guenther  <rguenther@suse.de>
7287
7288         * tree-vrp.c (simplify_conversion_using_ranges): New function.
7289         (simplify_stmt_using_ranges): Call it.
7290
7291 2011-07-07  Kai Tietz  <ktietz@redhat.com>
7292
7293         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
7294         (lookup_logical_inverted_value): Likewise.
7295         (simplify_bitwise_binary_1): Likewise.
7296         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
7297
7298 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7299
7300         * gcc.c (%[Spec]): Don't document.
7301         (struct spec_list): Update comment.
7302         (do_spec_1): Don't handle %[Spec].
7303         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
7304
7305 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7306
7307         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
7308         default based on TARGET_ASM_NAMED_SECTION.
7309         * common/common-target.def (have_named_sections): Default to true.
7310         * common/config/default-common.c: Don't include tm.h.
7311         * common/config/picochip/picochip-common.c
7312         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
7313         * common/config/m32c/m32c-common.c: Remove.
7314         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
7315         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7316         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7317         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7318         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7319         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7320         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7321
7322 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7323
7324         PR middle-end/49640
7325         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
7326         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
7327
7328 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7329
7330         PR libmudflap/49550
7331         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
7332
7333 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7334
7335         PR target/39150
7336         * configure.ac (gcc_cv_as_hidden): Also accept
7337         x86_64-*-solaris2.1[0-9]*.
7338         (gcc_cv_as_cfi_directive): Likewise.
7339         (gcc_cv_as_comdat_group_group): Likewise.
7340         (set_have_as_tls): Likewise.
7341         * configure: Regenerate.
7342         * config.gcc (i[34567]86-*-solaris2*): Also handle
7343         x86_64-*-solaris2.1[0-9]*.
7344         * config.host (i[34567]86-*-solaris2*): Likewise.
7345         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
7346         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
7347         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
7348         (TARGET_LD_EMULATION): Use it.
7349         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
7350         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
7351         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
7352         (ASM_CPU64_DEFAULT_SPEC): Define.
7353         (ASM_CPU_SPEC): Use %(asm_cpu_default).
7354         (ASM_SPEC): Redefine.
7355         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
7356         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
7357         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
7358         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
7359         configuration.
7360         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
7361
7362 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7363
7364         * config/sol2.h (ASM_SPEC): Split into ...
7365         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
7366         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
7367         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
7368         (ASM_SPEC): Use ASM_SPEC_BASE.
7369         * config/sparc/sol2.h (ASM_SPEC): Redefine.
7370
7371 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
7372
7373         * config/avr/avr.md (*reload_insi): Change predicate #1 to
7374         const_int_operand.  Ditto for peep2 producing this insn.
7375         Add argument to output_reload_insisf call.
7376         (*movsi,*movsf): Add argument to output_movsisf call.
7377         (*reload_insf): New insn and new peep2 to produce it.
7378         * config/avr/avr-protos.h (output_movsisf): Change prototype.
7379         (output_reload_insisf): Change prototype.
7380         * config/avr/avr.c (avr_asm_len): New function.
7381         (output_reload_insisf): Rewrite.
7382         (output_movsisf): Change prototype.  output_reload_insisf for
7383         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
7384         (adjust_insn_length): Add argument to output_movsisf and
7385         output_reload_insisf call.
7386
7387 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7388
7389         * emit-rtl.c (paradoxical_subreg_p): New function.
7390         * rtl.h (paradoxical_subreg_p): Declare.
7391         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
7392         apply_distributive_law, simplify_comparison, simplify_set): Use it.
7393         * cse.c (record_jump_cond, cse_insn): Likewise.
7394         * expr.c (force_operand): Likewise.
7395         * rtlanal.c (num_sign_bit_copies1): Likewise.
7396         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
7397         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
7398         (push_reload): Use precision to check for paradoxical subregs.
7399         * expmed.c (extract_bit_field_1): Likewise.
7400
7401         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
7402         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
7403         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
7404         simplify_set, simplify_logical, expand_compound_operation,
7405         make_extraction, force_to_mode, if_then_else_cond, extended_count,
7406         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
7407         record_value_for_reg): Likewise.
7408         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
7409         * simplify-rtx. c (simplify_unary_operation_1,
7410         simplify_binary_operation_1, simplify_const_relational_operation):
7411         Likewise.
7412
7413         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
7414         instead of GET_MODE_BITSIZE where appropriate.
7415         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
7416         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
7417         init_num_sign_bit_copies_in_rep): Likewise.
7418         * cse.c (fold_rtx, cse_insn): Likewise.
7419         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
7420         * simplify-rtx.c (simplify_unary_operation_1,
7421         simplify_const_unary_operation, simplify_binary_operation_1,
7422         simplify_const_binary_operation, simplify_ternary_operation,
7423         simplify_const_relational_operation, simplify_subreg): Likewise.
7424         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
7425         simplify_if_then_else, simplify_set, expand_compound_operation,
7426         expand_field_assignment, make_extraction, if_then_else_cond,
7427         make_compound_operation, force_to_mode, make_field_assignment,
7428         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
7429         extended_count, try_widen_shift_mode, simplify_shift_const_1,
7430         simplify_comparison, record_promoted_value, simplify_compare_const,
7431         record_dead_and_set_regs_1): Likewise.
7432
7433         Revert:
7434         * simplify-rtx.c (simplify_const_binary_operation): Use the
7435         shift_truncation_mask hook instead of performing modulo by width.
7436         Compare against mode precision, not bitsize.
7437         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7438         Use shift_truncation_mask instead of constructing the value manually.
7439
7440 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7441
7442         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
7443         declaration.
7444         (rs6000_save_toc_in_prologue_p): Ditto.
7445
7446         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
7447         up the static chain (r11) during indirect function calls.
7448         (-msave-toc-indirect): New undocumented debug switch.
7449
7450         * config/rs6000/rs6000.c (struct machine_function): Add
7451         save_toc_in_prologue field to note whether the prologue needs to
7452         save the TOC value in the reserved stack location.
7453         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
7454         to save the TOC in the prologue, do so.
7455         (rs6000_trampoline_init): Don't allow creating AIX style
7456         trampolines if -mno-r11 is in effect.
7457         (rs6000_call_indirect_aix): New function to create AIX style
7458         indirect calls, adding support for -mno-r11 to suppress loading
7459         the static chain, and saving the TOC in the prologue instead of
7460         the call body.
7461         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
7462         TOC in the prologue.
7463
7464         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
7465         register numbers.
7466         (TOC_REGNUM): Ditto.
7467         (STATIC_CHAIN_REGNUM): Ditto.
7468         (ARG_POINTER_REGNUM): Ditto.
7469         (SFP_REGNO): Delete, unused.
7470         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
7471         function descriptor offsets.
7472         (TOC_SAVE_OFFSET_64BIT): Ditto.
7473         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
7474         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
7475         (AIX_FUNC_DESC_SC_32BIT): Ditto.
7476         (AIX_FUNC_DESC_SC_64BIT): Ditto.
7477         (ptrload): New mode attribute for the appropriate load of a pointer.
7478         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
7479         (call_indirect_aix64): Ditto.
7480         (call_value_indirect_aix32): Ditto.
7481         (call_value_indirect_aix64): Ditto.
7482         (call_indirect_nonlocal_aix32_internal): Ditto.
7483         (call_indirect_nonlocal_aix32): Ditto.
7484         (call_indirect_nonlocal_aix64_internal): Ditto.
7485         (call_indirect_nonlocal_aix64): Ditto.
7486         (call): Rewrite AIX indirect function calls.  Add support for
7487         eliminating the static chain, and for moving the save of the TOC
7488         to the function prologue.
7489         (call_value): Ditto.
7490         (call_indirect_aix<ptrsize>): Ditto.
7491         (call_indirect_aix<ptrsize>_internal): Ditto.
7492         (call_indirect_aix<ptrsize>_internal2): Ditto.
7493         (call_indirect_aix<ptrsize>_nor11): Ditto.
7494         (call_value_indirect_aix<ptrsize>): Ditto.
7495         (call_value_indirect_aix<ptrsize>_internal): Ditto.
7496         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7497         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7498         (call_nonlocal_aix32): Relocate in the rs6000.md file.
7499         (call_nonlocal_aix64): Ditto.
7500
7501         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
7502         -mno-r11 documentation.
7503
7504 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7505
7506         PR other/49658
7507         * doc/extend.texi (Compound Literals): Fix typo.
7508
7509 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
7510
7511         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
7512
7513 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
7514
7515         * configure.ac (plugin-version.h): Generate
7516         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
7517         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
7518         macros.
7519
7520         * configure: Regenerate.
7521
7522         * doc/plugins.texi (Building GCC plugins): Mention
7523         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
7524
7525 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7526
7527         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
7528         * combine.c (make_extraction, gen_lowpart_or_truncate,
7529         apply_distributive_law, simplify_comparison,
7530         reg_truncated_to_mode, record_truncated_value): Use it.
7531         * cse.c (notreg_cost): Likewise.
7532         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
7533         * expr.c (convert_move, convert_modes): Likewise.
7534         * optabs.c (expand_binop, expand_unop): Likewise.
7535         * postreload.c (move2add_last_label): Likewise.
7536         * regmove.c (optimize_reg_copy_3): Likewise.
7537         * rtlhooks.c (gen_lowpart_general): Likewise.
7538         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7539
7540 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
7541
7542         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
7543
7544 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7545
7546         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
7547         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
7548         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
7549         (simplify_const_unary_operation, simplify_binary_operation_1,
7550         simplify_const_binary_operation, simplify_const_relational_operation):
7551         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
7552         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
7553         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
7554         simplify_shift_const_1, simplify_comparison): Likewise.
7555         * expr.c (convert_modes): Likewise.
7556         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
7557         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
7558         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
7559
7560         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
7561
7562 2011-07-06  Richard Guenther  <rguenther@suse.de>
7563
7564         PR tree-optimization/49645
7565         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
7566         register variables.
7567         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
7568         in type qualification here ...
7569         (copy_reference_ops_from_ref): ... not here.
7570         (vn_reference_lookup_3): ... or here.
7571         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
7572         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
7573
7574 2011-07-06  Ian Lance Taylor  <iant@google.com>
7575
7576         * doc/install.texi (Configuration): It's
7577         --enable-gnu-indirect-function, not --enable-indirect-function.
7578
7579 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7580
7581         * simplify-rtx.c (simplify_const_binary_operation): Use the
7582         shift_truncation_mask hook instead of performing modulo by width.
7583         Compare against mode precision, not bitsize.
7584         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7585         Use shift_truncation_mask instead of constructing the value manually.
7586
7587 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
7588
7589         PR middle-end/47383
7590         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
7591         address computation and convert to address_mode if needed.
7592
7593 2011-07-06  Richard Guenther  <rguenther@suse.de>
7594
7595         * tree.c (build_common_tree_nodes_2): Merge with
7596         build_common_tree_nodes.
7597         * tree.h (build_common_tree_nodes): Adjust prototype.
7598         (build_common_tree_nodes_2): Remove.
7599         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
7600         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
7601
7602 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
7603
7604         PR tree-optimization/49618
7605         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
7606         t recurse on the decl.
7607         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
7608         return true if expr isn't known to be defined in current
7609         TU or some other LTO partition.
7610
7611 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
7612
7613         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
7614         override CASE_VALUES_THRESHOLD.
7615
7616         * stmt.c (toplevel): Include params.h.
7617         (case_values_threshold): Use the --param case-values-threshold
7618         value if non-zero, otherwise use machine dependent value.
7619         (expand_case): Use case_values_threshold.
7620
7621         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
7622
7623         * doc/invoke.texi (--param case-values-threshold): Document.
7624
7625 2011-07-05  Richard Henderson  <rth@redhat.com>
7626
7627         * dwarf2out.c (dwarf2out_cfi_label): Make static.
7628         (dwarf2out_flush_queued_reg_saves): Make static.
7629         (dwarf2out_reg_save): Remove.
7630         (dwarf2out_return_save): Remove.
7631         (dwarf2out_return_reg): Remove.
7632         (dwarf2out_reg_save_reg): Remove.
7633         (dwarf2out_def_cfa): Merge into ...
7634         (dwarf2out_frame_init): ... here.
7635         * dwarf2out.h, tree.h: Remove declarations as necessary.
7636
7637 2011-07-05  Richard Henderson  <rth@redhat.com>
7638
7639         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
7640         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7641         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
7642         the alloc insn.
7643
7644         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
7645         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
7646         (process_epilogue): Don't call dwarf2out_def_cfa.
7647
7648         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
7649         indicate the return address save.
7650         (process_cfa_register): Likewise.
7651
7652         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
7653         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
7654
7655         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
7656         for ar.pfs save at alloc insn.
7657
7658 2011-07-05  Richard Henderson  <rth@redhat.com>
7659
7660         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
7661         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7662         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
7663         stack pointer save.
7664         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
7665         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
7666         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
7667         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
7668
7669 2011-07-05  Richard Henderson  <rth@redhat.com>
7670
7671         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
7672         VUNSPEC_* constants here instead of via define_constants.
7673         (VUNSPEC_PEM): New constant.
7674         (procedure_entry_mask): New insn.
7675         (prologue): New expander.
7676         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
7677         (vax_expand_prologue): Rename from vax_output_function_prologue;
7678         emit rtl instead of text.
7679         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7680         (print_operand): Add 'x' prefix.
7681
7682 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7683
7684         PR middle-end/47715
7685         * calls.c (precompute_register_parameters): Promote the function
7686         argument before checking non-legitimate constant.
7687
7688 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7689
7690         PR tree-optimization/47654
7691         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
7692         (lst_do_strip_mine_loop): Return an int.
7693         (lst_do_strip_mine): Same.
7694         (scop_do_strip_mine): Same.
7695         (scop_do_block): Loop blocking should strip-mine at least two loops.
7696         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
7697         (scop_do_interchange): Same.
7698         * graphite-poly.h (scop_do_interchange): Update declaration.
7699         (scop_do_strip_mine): Same.
7700
7701 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7702
7703         * graphite-clast-to-gimple.c (precision_for_value): Removed.
7704         (precision_for_interval): Removed.
7705         (gcc_type_for_interval): Use mpz_sizeinbase.
7706
7707 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7708
7709         * graphite-ppl.h (value_max): Correct computation of max.
7710
7711 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7712
7713         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
7714
7715 2011-07-05  Richard Guenther  <rguenther@suse.de>
7716
7717         * c-decl.c (c_init_decl_processing): Defer building common
7718         tree nodes to c_common_nodes_and_builtins.
7719
7720 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
7721
7722         PR tree-optimization/49580
7723         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
7724         the loop's number of iterations.
7725         * tree-parloops.c (transform_to_exit_first_loop): Add the
7726         handling of the loop's number of iterations before the call
7727         to gimple_duplicate_sese_tail.
7728         Insert the stmt caclculating the new rhs of the loop's
7729         condition stmt to the preheader instead of iters_bb.
7730
7731 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7732
7733         PR rtl-optimization/47449
7734         * fwprop.c (forward_propagate_subreg): Don't propagate hard
7735         register nor zero/sign extended hard register.
7736
7737 2011-07-05  Richard Guenther  <rguenther@suse.de>
7738
7739         PR tree-optimization/49518
7740         PR tree-optimization/49628
7741         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
7742         irrelevant and invariant data-references.
7743         (vect_analyze_data_ref_access): For invariant loads clear the
7744         group association.
7745
7746 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
7747
7748         PR rtl-optimization/49619
7749         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
7750         pass VOIDmode as op0_mode to recursive call, and return temp even
7751         when different from tor, just if it is not IOR of the original
7752         PLUS arguments.
7753
7754         PR rtl-optimization/49472
7755         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
7756         negating MULT, negate the second operand instead of first.
7757         (simplify_binary_operation_1) <case MULT>: If one operand is
7758         a NEG and the other is MULT, don't attempt to optimize by negation
7759         of the MULT operand if it only moves the NEG operation around.
7760
7761         PR debug/49602
7762         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
7763         get_current_def return value if it can't be trusted to be
7764         the current value of the variable in the current bb.
7765
7766 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
7767
7768         PR target/49600
7769         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
7770         general register to memory for !TARGET_INTER_UNIT_MOVES.
7771
7772 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7773
7774         PR target/44643
7775         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
7776         instead of TREE_READONLY.
7777
7778 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7779
7780         * doc/extend.texi (AVR Built-in Functions): Update documentation
7781         of __builtin_avr_fmul*.
7782         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
7783         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
7784         * config/avr/avr.md (fmul): Rename to fmul_insn.
7785         (fmuls): Rename to fmuls_insn.
7786         (fmulsu): Rename to fmulsu_insn.
7787         (fmul,fmuls,fmulsu): New expander.
7788         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
7789         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
7790         * config/avr/libgcc.S (__fmul): New function.
7791         (__fmuls): New function.
7792         (__fmulsu,__fmulsu_exit): New function.
7793
7794 2011-07-04  Richard Guenther  <rguenther@suse.de>
7795
7796         PR tree-optimization/49615
7797         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
7798         basic-block index check.
7799
7800 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7801
7802         * longlong.h (count_leading_zeros, count_trailing_zeros,
7803         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
7804         resp. 64.
7805
7806 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
7807
7808         PR tree-optimization/49610
7809         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
7810         a basic block.
7811
7812 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7813             Olivier Hainque  <hainque@adacore.com>
7814             Nicolas Setton  <setton@adacore.com>
7815
7816         * tree.h (TYPE_ARTIFICIAL): New flag.
7817         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
7818         the DIE of the type if it is artificial.
7819         (gen_array_type_die): Likewise.
7820         (gen_enumeration_type_die): Likewise.
7821         (gen_struct_or_union_type_die): Likewise.
7822         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
7823         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
7824
7825 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7826
7827         * tree-object-size.c (pass_through_call): Handle
7828         BUILT_IN_ASSUME_ALIGNED.
7829
7830 2011-07-01  Martin Jambor  <mjambor@suse.cz>
7831
7832         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
7833
7834 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
7835
7836         PR middle-end/48016
7837         * explow.c (update_nonlocal_goto_save_area): Use proper mode
7838         for stack save area.
7839         * function.c (expand_function_start): Likewise.
7840
7841 2011-07-01  Richard Guenther  <rguenther@suse.de>
7842
7843         PR middle-end/49596
7844         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
7845         may have unknown refs.
7846
7847 2011-07-01  Kai Tietz  <ktietz@redhat.com>
7848
7849         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
7850
7851 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7852
7853         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
7854         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
7855         (Specific, mips-sgi-irix6): Likewise.
7856
7857 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7858
7859         PR libmudflap/49549
7860         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
7861
7862 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7863
7864         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
7865         [idx]= and [idx1 ... idx2]= before initializers if needed for
7866         array initializers.
7867
7868 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
7869
7870         * config.gcc (score-*-elf): Remove score7.o.
7871         * config/score/t-score-elf: Likewise.
7872         * config/score/score.c: Merge score7 to score.c and
7873         remove forwarding functions.
7874         * config/score/score7.c: Deleted.
7875         * config/score/score7.h: Deleted.
7876
7877 2011-07-01  Richard Guenther  <rguenther@suse.de>
7878
7879         PR tree-optimization/49603
7880         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
7881
7882 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7883
7884         * tree-sra.c (struct access): Rename total_scalarization to
7885         grp_total_scalarization
7886         (completely_scalarize_var): New function.
7887         (sort_and_splice_var_accesses): Set total_scalarization in the
7888         representative access.
7889         (analyze_access_subtree): Propagate total scalarization accross the
7890         tree, no holes in totally scalarized trees, simplify coverage
7891         computation.
7892         (analyze_all_variable_accesses): Call completely_scalarize_var instead
7893         of completely_scalarize_record.
7894
7895 2011-06-30  Richard Henderson  <rth@redhat.com>
7896
7897         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
7898         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
7899         * config/i386/i386.c: Don't include dwarf2out.h.
7900         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
7901         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
7902         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
7903         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
7904         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
7905
7906 2011-06-30  Richard Henderson  <rth@redhat.com>
7907
7908         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
7909         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7910         * final.c (final_scan_insn): Look for it, and invoke
7911         dwarf2out_frame_debug before the insn if found.
7912
7913 2011-06-30  Richard Henderson  <rth@redhat.com>
7914
7915         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
7916         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
7917
7918 2011-06-30  Richard Henderson  <rth@redhat.com>
7919
7920         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
7921         Define a vector of this type.
7922         (regs_saved_in_regs): Use a VEC.
7923         (num_regs_saved_in_regs): Remove.
7924         (compare_reg_or_pc): New.
7925         (record_reg_saved_in_reg): Split out from...
7926         (dwarf2out_flush_queued_reg_saves): ... here.
7927         (clobbers_queued_reg_save): Update for VEC.
7928         (reg_saved_in): Likewise.
7929         (dwarf2out_frame_debug_init): Likewise.
7930         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
7931         (dwarf2out_frame_debug_cfa_register): Likewise.
7932
7933 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7934
7935         PR tree-optimization/49572
7936         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
7937         type of the RHS instead of that of the LHS for the expression type.
7938
7939 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7940
7941         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
7942         unconditionally.
7943
7944 2011-06-30  Richard Guenther  <rguenther@suse.de>
7945
7946         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
7947         * tree-ssa-structalias.c (create_variable_info_for): Do not
7948         add initial constraints for non-var-decls.  Properly handle
7949         globals in other ltrans partitions.
7950         (intra_create_variable_infos): Manually create constraints for
7951         the fake no-alias parameter.
7952         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
7953         and assert there are no clones.
7954
7955 2011-06-30  Richard Guenther  <rguenther@suse.de>
7956
7957         PR tree-optimization/46787
7958         * tree-data-ref.c (dr_address_invariant_p): Remove.
7959         (find_data_references_in_stmt): Invariant accesses are ok now.
7960         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
7961         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7962         invariant loads.
7963
7964 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7965
7966         PR tree-optimization/49094
7967         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
7968         (build_accesses_from_assign): Use it.
7969
7970 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7971
7972         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7973         handling of BUILT_IN_ASSUME_ALIGNED.
7974
7975         PR debug/49364
7976         * dwarf2out.c (output_abbrev_section): Don't return early
7977         if abbrev_die_table_in_use is 1.
7978         (dwarf2out_finish): Instead don't call output_abbrev_section
7979         nor emit abbrev_section_label in that case.
7980
7981 2011-06-30  Nick Clifton  <nickc@redhat.com>
7982
7983         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
7984         for the V850E.
7985
7986 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7987
7988         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7989         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
7990
7991 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
7992
7993         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
7994         both pattern and original statements if necessary.
7995         (vect_transform_loop): Likewise.
7996         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
7997         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
7998         Mark the pattern statement only if the original statement doesn't
7999         have its own uses.
8000         (process_use): Call vect_mark_relevant with additional parameter.
8001         (vect_mark_stmts_to_be_vectorized): Likewise.
8002         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
8003         (vect_analyze_stmt): Handle both pattern and original statements
8004         if necessary.
8005         (vect_transform_stmt): Don't store vectorized pattern statement
8006         in the original statement.
8007         (vect_is_simple_use_1): Use related pattern statement only if the
8008         original statement is irrelevant.
8009         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8010
8011 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
8012
8013         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
8014         option.
8015         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
8016         entry.
8017         (TARGET_AVX128_OPTIMAL): New definition.
8018         * config/i386/i386.c (initial_ix86_tune_features): Initialize
8019         X86_TUNE_AVX128_OPTIMAL entry.
8020         (ix86_option_override_internal): Enable the generation
8021         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
8022         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
8023         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
8024
8025 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
8026
8027         PR tree-optimization/49539
8028         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
8029         names by means of stmt_references_abnormal_ssa_name.
8030         (associate_plusminus): Call can_propagate_from before propagating
8031         from definition statements.
8032         (ssa_forward_propagate_and_combine): Remove superfluous newline.
8033
8034 2011-06-29  Richard Guenther  <rguenther@suse.de>
8035
8036         * doc/invoke.texi: Document -scev dump modifier.
8037         * tree-pass.h (TDF_SCEV): New dump flag.
8038         * tree-dump.c (dump_option_value_in): Add scev.
8039         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
8040         * tree-scalar-evolution.c: Likewise.
8041
8042 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
8043
8044         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
8045         (cxa_type_match): Correct declaration.
8046         (__gnu_unwind_pr_common): Reconstruct additional indirection
8047         when __cxa_type_match returns succeeded_with_ptr_to_base.
8048
8049 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8050
8051         PR rtl-optimization/49114
8052         * reload.c (struct replacement): Remove SUBREG_LOC member.
8053         (push_reload): Do not set it.
8054         (push_replacement): Likewise.
8055         (subst_reload): Remove dead code.
8056         (copy_replacements): Remove assertion.
8057         (copy_replacements_1): Do not handle SUBREG_LOC.
8058         (move_replacements): Likewise.
8059         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
8060         Detect subregs via recursive descent instead of via SUBREG_LOC.
8061
8062 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8063
8064         * config/avr/avr.c (avr_encode_section_info): Dispatch to
8065         default_encode_section_info.
8066
8067 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
8068
8069         PR tree-optimization/49545
8070         * builtins.c (get_object_alignment_1): Update function comment.
8071         Do not use DECL_ALIGN for functions, but test
8072         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
8073         * fold-const.c (get_pointer_modulus_and_residue): Don't check
8074         for functions here.
8075         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
8076
8077 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
8078
8079         PR debug/49567
8080         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
8081         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
8082
8083 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8084
8085         PR target/34734
8086         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
8087         about uninitialized data attributed 'progmem' from here...
8088         (avr_encode_section_info): ...to this new function.
8089         (TARGET_ENCODE_SECTION_INFO): New define.
8090         (avr_section_type_flags): For data in ".progmem.data", remove
8091         section flag SECTION_WRITE.
8092
8093 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8094
8095         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
8096         _xmulhisi3_exit.
8097         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
8098         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
8099         (__umulhisi3): Ditto.
8100         * config/avr/avr.md (mulhisi3): New insn expender.
8101         (umulhisi3): New insn expender.
8102         (*mulhisi3_call): New insn.
8103         (*umulhisi3_call): New insn.
8104
8105 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8106
8107         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
8108
8109 2011-06-28  Richard Henderson  <rth@redhat.com>
8110
8111         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
8112         all code and arguments that handled pushes.  Update all callers.
8113
8114 2011-06-28  Richard Henderson  <rth@redhat.com>
8115
8116         * config/arm/arm.c (arm_output_function_prologue): Don't call
8117         thumb1_output_function_prologue.
8118         (arm_expand_prologue): Avoid dead store.
8119         (number_of_first_bit_set): Use ctz_hwi.
8120         (thumb1_emit_multi_reg_push): New.
8121         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
8122         to emit the entire prologue as rtl.
8123         (thumb1_output_interwork): Split out from
8124         thumb1_output_function_prologue.
8125         (thumb1_output_function_prologue): Remove.
8126         (arm_attr_length_push_multi): Handle thumb1.
8127         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
8128         (prologue_thumb1_interwork): New.
8129         (*push_multi): Allow thumb1; use push_mult_memory_operand.
8130         * config/arm/predicates.md (push_mult_memory_operand): New.
8131
8132 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8133
8134         * config/sparc/sync.md (*stbar): Delete.
8135         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
8136
8137 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8138
8139         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
8140
8141 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8142
8143         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
8144         (TARGET_64BIT_DEFAULT): Define.
8145         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
8146         of tm_file.
8147         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
8148
8149 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8150
8151         * common.opt (in_lto_p): New Variable entry.
8152         * flags.h (in_lto_p): Move to common.opt.
8153         * gcc.c: Include params.h.
8154         (set_option_handlers): Also use common_handle_option and
8155         target_handle_option.
8156         (main): Call global_init_params, finish_params and init_options_struct.
8157         * opts.c (debug_type_names): Move from toplev.c.
8158         (print_filtered_help): Access quiet_flag through opts pointer.
8159         (common_handle_option): Return early in the driver for some options.
8160         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
8161         opts pointer.
8162         * toplev.c (in_lto_p): Move to common.opt.
8163         (debug_type_names): Move to opts.c.
8164         * Makefile.in (OBJS): Remove opts.o.
8165         (OBJS-libcommon-target): Add opts.o.
8166         (gcc.o): Update dependencies.
8167
8168 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8169
8170         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
8171
8172 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8173
8174         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
8175         with '=' constraint modifier.
8176         (*divdf3_vfp): Likewise.
8177         ("*mulsf3_vfp"): Likewise.
8178         ("*muldf3_vfp"): Likewise.
8179         ("*mulsf3negsf_vfp"): Likewise.
8180         ("*muldf3negdf_vfp"): Likewise.
8181
8182 2011-06-28  Nick Clifton  <nickc@redhat.com>
8183
8184         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
8185         relaxation when performing an incremental link.
8186
8187 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8188
8189         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
8190         within BB from last to first.
8191
8192 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8193
8194         * genattr-common.c: New.  Based on genattr.c.
8195         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
8196         (MOSTLYCLEANFILES): Add insn-attr-common.h.
8197         (opts.o): Update dependencies.
8198         (.PRECIOUS): Add insn-attr-common.h.
8199         (simple_rtl_generated_h): Add insn-attr-common.h.
8200         (build/genattr-common.o): New.
8201         (genprogrtl): Add attr-common.
8202         * genattr.c (main): Include insn-attr-common.h.  Don't generate
8203         definitions of DELAY_SLOTS or INSN_SCHEDULING.
8204         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
8205
8206 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
8207
8208         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
8209         avr-*-* and avr-*-rtems* targets.
8210
8211         * config/avr/elf.h: New file.
8212         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
8213         (TARGET_ASM_SELECT_SECTION): Define.
8214         (INIT_SECTION_ASM_OP): Undefine.
8215         (FINI_SECTION_ASM_OP): Undefine.
8216         (READONLY_DATA_SECTION_ASM_OP): Undefine.
8217         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
8218         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
8219         * config/avr/avr.h:
8220         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
8221         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
8222         (MAX_OFILE_ALIGNMENT): Move to elf.h.
8223         (STRING_LIMIT): Move to elf.h.
8224         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
8225         (ASM_DECLARE_OBJECT_NAME): Remove.
8226         (ESCAPES): Remove.
8227         (ASM_OUTPUT_SKIP): Remove.
8228         (DWARF2_DEBUGGING_INFO): Remove.
8229         (OBJECT_FORMAT_ELF): Remove.
8230         (USER_LABEL_PREFIX): Remove.
8231         (ASM_OUTPUT_EXTERNAL): Remove.
8232         (ASM_OUTPUT_ASCII): Remove.
8233         (TYPE_ASM_OP): Remove.
8234         (SIZE_ASM_OP): Remove.
8235         (WEAK_ASM_OP): Remove.
8236         (STRING_ASM_OP): Remove.
8237         (SET_ASM_OP): Remove.
8238         (ASM_WEAKEN_LABEL): Remove.
8239         (TYPE_OPERAND_FMT): Remove.
8240         (ASM_DECLARE_FUNCTION_SIZE): Remove.
8241         (ASM_FINISH_DECLARE_OBJECT): Remove.
8242         (NO_DOLLAR_IN_LABEL): Remove.
8243         (ASM_GENERATE_INTERNAL_LABEL): Remove.
8244         (ASM_OUTPUT_CASE_LABEL): Remove.
8245         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
8246         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
8247         (gas_output_ascii): Remove.
8248         (gas_output_limited_string): Remove.
8249         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8250         * config/avr/avr-protos.h
8251         (gas_output_ascii): Remove prototye.
8252         (gas_output_limited_string): Remove prototype.
8253
8254 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
8255
8256         PR target/48637
8257         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
8258         asm operands.
8259
8260 2011-06-27  Jan Hubicka  <jh@suse.cz>
8261
8262         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
8263         node instead of references in node.
8264
8265 2011-06-27  Richard Henderson  <rth@redhat.com>
8266
8267         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
8268         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
8269         inside ifdef.
8270
8271 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
8272
8273         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
8274
8275         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
8276         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
8277         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
8278         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
8279         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
8280         (evaluate_stmt, execute_fold_all_builtins): Handle
8281         BUILT_IN_ASSUME_ALIGNED.
8282         * tree-ssa-dce.c (propagate_necessity): Likewise.
8283         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8284         call_may_clobber_ref_p_1): Likewise.
8285         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
8286         (expand_builtin_assume_aligned): New function.
8287         * doc/extend.texi (__builtin_assume_aligned): Document.
8288
8289         PR debug/49544
8290         * cselib.c (promote_debug_loc): If cselib_preserve_constants
8291         and l has two DEBUG_INSN owned locs instead of just one, adjust
8292         the second location's setting_insn too.
8293
8294 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8295
8296         PR libmudflap/38738
8297         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
8298
8299 2011-06-27  Nick Clifton  <nickc@redhat.com>
8300
8301         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
8302         bit position of highest bit set into a count of the high zero bits.
8303
8304 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8305
8306         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
8307
8308 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8309
8310         PR lto/48492
8311         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
8312         to a NULL parent.
8313
8314 2011-06-27  Richard Guenther  <rguenther@suse.de>
8315
8316         PR tree-optimization/49394
8317         * passes.c (execute_one_pass): Restore current_pass after
8318         applying IPA transforms.
8319
8320 2011-06-27  Kai Tietz  <ktietz@redhat.com>
8321
8322         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
8323         out of type precision after operation.
8324         (find_bswap): Take for limit value the integer auto-promotion
8325         into account.
8326
8327 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8328
8329         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
8330         forward scan as well.
8331
8332 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8333
8334         PR target/44241
8335         * config/vms/vms-protos.h: New file.
8336         * config/vms/vms-crtlmap.map: New file.
8337         * config/vms/vms.c: New file.
8338         * config/vms/make-crtlmap.awk: New file.
8339         * config/vms/vms-crtl.h: File removed.
8340         * config/vms/vms-crtl-64.h: File removed.
8341         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
8342         * config/alpha/vms64.h: Do not include vms-crtl-64.h
8343         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
8344         clear some builtins on VMS.  Calls vms_patch_builtins.
8345         (avms_asm_output_external): Remove.
8346         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
8347         (struct crtl_name_spec): Remove
8348         (DO_CTRL_NAMES): Remove.
8349         * config/ia64/vms.h (struct crtl_name_spec): Remove
8350         (DO_CTRL_NAMES): Remove.
8351         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
8352         clear some builtins on VMS.  Calls vms_patch_builtins.
8353         (ia64_asm_output_external): Remove DO_CRTL_NAME.
8354         * config/ia64/vms64.h: Do not include vms-crtl-64.h
8355         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
8356
8357 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8358
8359         * config/alpha/alpha.c (alpha_end_function): Always generate .end
8360         directive on VMS.
8361
8362 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8363
8364         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
8365         the function receives nonlocal gotos.
8366
8367 2011-06-27  Richard Guenther  <rguenther@suse.de>
8368
8369         PR tree-optimization/49536
8370         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
8371         For non-scalar inner types use a scalar type according to
8372         the scalar inner mode.
8373
8374 2011-06-27  Richard Guenther  <rguenther@suse.de>
8375
8376         PR tree-optimization/49365
8377         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
8378
8379 2011-06-27  Richard Guenther  <rguenther@suse.de>
8380
8381         PR tree-optimization/49169
8382         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
8383         the alignment of function decls.
8384
8385 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
8386
8387         PR target/47997
8388         * config/darwin.c (darwin_mergeable_string_section): Place string
8389         constants in '.cstring' rather than '.const' when CF/NSStrings are
8390         active.
8391
8392 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
8393
8394         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
8395         (emit_save_register_window): Likewise.
8396         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
8397         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
8398         Swap back %o7/%i7 in register naming.
8399
8400 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
8401
8402         PR driver/49371
8403         * config/darwin.c (darwin_override_options): Improve warning when
8404         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
8405         is given with fpie/fPIE.
8406         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
8407         * config/darwin9.h (PIE_SPEC): New.
8408
8409 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
8410
8411         * timevar.c (timevar_print): Increase width for display of timevar
8412         name.
8413
8414 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
8415
8416         PR c++/46400
8417         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
8418         instead of TYPE_CHAIN for chain_next for types.
8419
8420 2011-06-24  Richard Henderson  <rth@redhat.com>
8421
8422         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
8423         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
8424         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
8425         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
8426         (sparc_flat_expand_prologue): Emit individual instructions
8427         instead of one of the above.
8428
8429 2011-06-24  Easwaran Raman  <eraman@google.com>
8430
8431         PR rtl-optimization/49429
8432         PR target/49454
8433         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
8434         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
8435         used to copy y into x.
8436         * calls.c (initialize_argument_information): Mark
8437         an argument addressable if it is passed by invisible reference.
8438         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
8439         if it is passed by reference.
8440
8441 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8442
8443         PR rtl-optimization/49504
8444         * rtlanal.c (nonzero_bits1): Properly handle addition or
8445         subtraction of a pointer in Pmode if pointers extend unsigned.
8446         (num_sign_bit_copies1): Likewise.
8447
8448 2011-06-24  Martin Jambor  <mjambor@suse.cz>
8449
8450         PR tree-optimizations/49516
8451         * tree-sra.c (sra_modify_assign): Choose the safe path for
8452         aggregate copies if we also did scalar replacements.
8453
8454 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8455
8456         PR target/49335
8457         * config/arm/predicates.md (add_operator): New.
8458         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
8459
8460 2011-06-24  Andi Kleen  <ak@linux.intel.com>
8461
8462         * tree-sra.c (type_internals_preclude_sra_p): Add msg
8463         parameter. Split up ifs and report reason in *msg.
8464         (reject): Add.
8465         (find_var_candiate): Add msg variable.
8466         Split up ifs and report reason to reject.
8467         (find_param_candidates): Add msg variable.
8468         Pass msg to type_internals_preclude_sra_p.
8469
8470 2011-06-23  Jeff Law  <law@redhat.com>
8471
8472         PR middle-end/48770
8473         * reload.h (reload): Change to return a bool.
8474         * ira.c (ira): If requested by reload, run a fast DCE pass after
8475         reload has completed.  Fix comment typo.
8476         * reload1.c (need_dce): New file scoped static.
8477         (reload): Set reload_completed here.  Return whether or not a DCE
8478         pass after reload is needed.
8479         (delete_dead_insn): Set need_dce as needed.
8480
8481         PR middle-end/49465
8482         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
8483         to detect threading through joiner block.  If there was already
8484         an edge to the new target, then do not change the PHI nodes.
8485
8486 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
8487
8488         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8489         get_pointer_alignment to see if base isn't sufficiently aligned.
8490
8491 2011-06-23  Jan Hubicka  <jh@suse.cz>
8492
8493         PR tree-optimize/49373
8494         * tree-pass.h (all_late_ipa_passes): Declare.
8495         * cgraphunit.c (init_lowered_empty_function): Fix properties.
8496         (cgraph_optimize): Execute late passes; remove unreachable funcions
8497         after materialization.
8498         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
8499         LTOing.
8500         * passes.c (all_late_ipa_passes): Declare.
8501         (dump_passes, register_pass): Handle late ipa passes.
8502         (init_optimization_passes): Move ipa_pta to late passes; schedule
8503         fixup_cfg at beggining of all_passes.
8504         (apply_ipa_transforms): New function.
8505         (execute_one_pass): When doing simple ipa pass, apply all transforms.
8506
8507 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
8508
8509         * params.c: Include common/common-target.h.  Don't include tm.h.
8510         (lang_independent_params): Move from toplev.c.
8511         (global_init_params): New.
8512         * params.h (global_init_params): Declare.
8513         * target.def (default_params): Move to common-target.def.
8514         * toplev.c (lang_independent_options): Remove.
8515         (lang_independent_params): Move to params.c.
8516         (general_init): Use global_init_params.
8517         * common/common-target.def (option_default_params): Move from
8518         target.def.
8519         * common/config/ia64/ia64-common.c: Include params.h.
8520         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8521         from ia64.c.
8522         * common/config/rs6000/rs6000-common.c: Include params.h.
8523         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8524         from rs6000.c.
8525         * common/config/sh/sh-common.c: Include params.h.
8526         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8527         from sh.c.
8528         * common/config/spu/spu-common.c: Include params.h.
8529         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8530         from spu.c.
8531         * config/ia64/ia64.c (ia64_option_default_params,
8532         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
8533         * config/rs6000/rs6000.c (rs6000_option_default_params,
8534         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
8535         * config/sh/sh.c (sh_option_default_params,
8536         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
8537         * config/spu/spu.c (spu_option_default_params,
8538         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
8539         * Makefile.in (OBJS): Remove params.o.
8540         (OBJS-libcommon-target): Add params.o.
8541         (params.o, $(common_out_object_file)): Update dependencies.
8542         * doc/tm.texi: Regenerate.
8543
8544 2011-06-23  Alan Modra  <amodra@gmail.com>
8545
8546         PR bootstrap/49383
8547         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
8548         invocation for 2011-06-09 changes.
8549
8550 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8551
8552         PR libgomp/49490
8553         * omp-low.c (expand_omp_for_static_nochunk): Only
8554         use n ceil/ nthreads size for the first n % nthreads threads in the
8555         team instead of all threads except for the last few ones which
8556         get less work or none at all.
8557
8558         PR debug/49496
8559         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
8560         uses.
8561
8562 2011-06-22  Richard Guenther  <rguenther@suse.de>
8563
8564         PR tree-optimization/49493
8565         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
8566         Refer to the alias target of variables.
8567         (associate_varinfo_to_alias_1): Remove.
8568         (ipa_pta_execute): Do not associate aliases with anything.
8569         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
8570         (cgraph_function_node): Likewise.
8571         (cgraph_function_or_thunk_node): Likewise.
8572         (varpool_variable_node): Likewise.
8573
8574 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8575
8576         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
8577         * config.gcc (arm*-*-linux*): Default to gnu tls.
8578         (arm*-*-*): Add --with-tls option.
8579         (all_defaults): Add 'tls'.
8580
8581 2011-06-22  Richard Henderson  <rth@redhat.com>
8582
8583         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
8584         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8585         (dwarf2out_frame_debug_cfa_window_save): Rename from
8586         dwarf2out_window_save; make static.
8587         * tree.h (dwarf2out_window_save): Don't declare.
8588
8589         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
8590         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8591         (emit_save_register_window): Rename from gen_save_register_window;
8592         emit the insn and add REG_CFA_* notes.
8593         (sparc_expand_prologue): Update to match.
8594         * config/sparc/sparc.md (save_register_window_1): Simplify from
8595         save_register_window<P:mode>.
8596
8597 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
8598
8599         PR target/49497
8600         * config/i386/i386.md (*lea_general_2): Always allow SImode.
8601         (*lea_general_2_zext): Likewise.
8602         (imul to lea peepholes): Use const359_operand and check
8603         TARGET_PARTIAL_REG_STALL.
8604
8605         * config/i386/predicates.md (const359_operand): New.
8606
8607 2011-06-22  Michael Matz  <matz@suse.de>
8608
8609         * cgraphunit.c (assemble_thunk): Use correct return type.
8610
8611 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
8612             Dmitry Melnik  <dm@ispras.ru>
8613
8614         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
8615         (neon_output_shift_immediate): Ditto.
8616         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
8617         prototype.
8618         (neon_output_shift_immediate): Ditto.
8619         * config/arm/neon.md (vashl<mode>3): Modified constraint.
8620         (vashr<mode>3_imm): New insn pattern.
8621         (vlshr<mode>3_imm): Ditto.
8622         (vashr<mode>3): Modified constraint.
8623         (vlshr<mode>3): Ditto.
8624         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
8625         predicate.
8626         (imm_for_neon_rshift_operand): Ditto.
8627         (imm_lshift_or_reg_neon): Ditto.
8628         (imm_rshift_or_reg_neon): Ditto.
8629
8630         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
8631
8632 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8633
8634         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
8635         builtin calls even if likelyvalue is not CONSTANT.
8636         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
8637         Return get_value_for_expr of first operand
8638         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
8639         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8640         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
8641         their non-checking counterparts.
8642         (call_may_clobber_ref_p_1): Likewise.
8643         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
8644         like their non-checking counterparts.
8645         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8646         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
8647         like their non-checking counterparts.
8648         (find_func_clobbers): Likewise.
8649         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
8650         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
8651
8652         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
8653         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
8654         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
8655         of base type reference as argument.
8656         (resolve_addr_in_expr): Likewise.  Fix keep computation.
8657         (convert_descriptor_to_signed): Renamed to...
8658         (convert_descriptor_to_mode): ... this.  For wider types convert to
8659         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
8660         (typed_binop): New function.
8661         (scompare_loc_descriptor, ucompare_loc_descriptor,
8662         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
8663         default to unsigned type instead of signed.
8664
8665         PR debug/47858
8666         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
8667         (gimple_build_debug_source_bind_stat): New prototype.
8668         (gimple_build_debug_source_bind): Define.
8669         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
8670         gimple_debug_source_bind_get_value,
8671         gimple_debug_source_bind_get_value_ptr,
8672         gimple_debug_source_bind_set_var,
8673         gimple_debug_source_bind_set_value): New inlines.
8674         * gimple.c (gimple_build_debug_source_bind_stat): New function.
8675         * gimple-pretty-print.c (dump_gimple_debug): Handle
8676         GIMPLE_DEBUG_SOURCE_BIND.
8677         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
8678         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8679         * tree-parloops.c (eliminate_local_variables,
8680         separate_decls_in_region): Likewise.
8681         (separate_decls_in_region_debug): Renamed from
8682         separate_decls_in_region_debug_bind.  Handle
8683         gimple_debug_source_bind_p.
8684         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
8685         prototypes.
8686         (DECL_HAS_DEBUG_ARGS_P): Define.
8687         (struct tree_function_decl): Add has_debug_args_flag field.
8688         * tree.c (debug_args_for_decl): New variable.
8689         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
8690         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
8691         (rewrite_debug_stmt_uses): New function.
8692         (rewrite_stmt): Use it to rewrite debug stmt uses.
8693         * rtl.def (DEBUG_PARAMETER_REF): New.
8694         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
8695         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
8696         DEBUG_PARAMETER_REF.
8697         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
8698         * print-rtl.c (print_rtx): Likewise.
8699         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
8700         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
8701         debug stmts in the first bb.
8702         * tree-inline.c (remap_ssa_name): If remapping default def
8703         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
8704         a source bind debug stmt.
8705         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
8706         (maybe_move_debug_stmts_to_successors): Likewise.
8707         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
8708         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
8709         debug args vector from old_decl to new_decl.
8710         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
8711         or modified parameters, add debug bind stmts before call
8712         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
8713         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
8714         on DECL_DEBUG_EXPRs from debug args vector.
8715         (expand_debug_source_expr): New function.
8716         (expand_debug_locations): Use it for source bind insns.
8717         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
8718         * var-tracking.c (prepare_call_arguments): Add debug args
8719         to call_arguments if any.
8720         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
8721         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
8722         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
8723         (get_ref_die_offset, parameter_ref_descriptor): New functions.
8724         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
8725         (gen_subprogram_die): Handle parameters identified by
8726         DEBUG_PARAMETER_REF.
8727
8728 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8729
8730         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
8731         * doc/install.texi (Configuration): Document --with-tls.
8732         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
8733         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
8734         (arm_tls_descseq_addr): New.
8735         (legitimize_tls_address): Add tlsdesc support.
8736         (arm_cannot_copy_insn_p): Check for tlscall.
8737         (arm_emit_tls_decoration): Likewise.
8738         * config/arm/arm.h (TARGET_GNU2_TLS): New.
8739         (OPTION_DEFAULT_SPECS): Add with-tls support.
8740         * config/arm/arm.md (R1_REGNUM): Define.
8741         (tlscall): New.
8742         * config/arm/arm.opt (tls_type): New enumeration type and values.
8743         (mtls-dialect): New switch.
8744         * config/arm/arm-opts.h (enum tls_type): New.
8745
8746 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8747
8748         * attribs.c (register_attribute): Added assert to check that all
8749         attribute specs are registered with a name that is not empty and
8750         does not start with '_'.
8751         (decl_attributes): Avoid the lookup of the "naked" attribute spec
8752         if the function has no attributes.
8753         * tree.c (is_attribute_with_length_p): Removed.
8754         (is_attribute_p): Removed.
8755         (private_is_attribute_p): New.
8756         (private_lookup_attribute): New.
8757         (lookup_attribute): Removed.
8758         (lookup_ident_attribute): New.
8759         (remove_attribute): Require the first argument to be in the form
8760         'text', not '__text__'.  Updated asserts.
8761         (merge_attributes): Use lookup_ident_attributes instead of
8762         lookup_attribute.
8763         (merge_dllimport_decl_attributes): Use remove_attribute.
8764         (attribute_list_contained): Likewise.
8765         (attribute_list_equal): Immediately return 1 if the arguments are
8766         identical pointers.
8767         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
8768         'int'.  Require the first argument to be in the form 'text', not
8769         '__text__'.  Require the second argument to be an identifier.
8770         (lookup_attribute): Made inline.  Require the first argument to be
8771         in the form 'text', not '__text__'.
8772         (private_is_attribute_p, private_lookup_attribute): New.
8773         Updated comments.
8774
8775 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
8776
8777         * builtins.c: Add sync_ or SYNC__ to builtin names.
8778         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
8779         * omp-low.c: Add sync_ or SYNC__ to builtin names.
8780
8781 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8782
8783         PR target/33049
8784         * config/avr/avr.md (extzv): New expander.
8785         (*extzv): New insn.
8786         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
8787         * config/avr/constraints.md (C04): New constraint.
8788         * doc/md.texi (Machine Constraints): Document it.
8789
8790 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8791
8792         PR middle-end/49489
8793         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
8794         unsignedp argument instead of 1 for clrsb_optab.
8795         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
8796         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
8797         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
8798         * optabs.c (widen_leading): Call widen_operand and expand_unop
8799         with 0 as unsignedp argument instead of 1 for clrsb_optab.
8800         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
8801
8802 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8803
8804         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
8805
8806 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
8807
8808         * gensupport.c (add_define_attr): New static function.
8809         (is_predicable): Allow multi-alternative lists for the "predicable"
8810         attribute.
8811         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
8812         (process_one_cond_exec): Call alter_attrs_for_insn.
8813         * doc/md.texi (Defining Attributes): Mention some standard names.
8814         (Conditional Execution): Update documentation for "predicable".
8815
8816         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
8817         __builtin_clrsbll): Document.
8818         * doc/rtl.texi (clrsb): New entry.
8819         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
8820         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
8821         (expand_unop): Handle clrsb_optab.
8822         (init_optabs): Initialize it.
8823         * optabs.h (enum optab_index): New entry OTI_clrsb.
8824         (clrsb_optab): Define.
8825         * genopinit.c (optabs): Add an entry for it.
8826         * builtins.c (expand_builtin): Handle clrsb builtin functions.
8827         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
8828         BUILT_IN_CLRSBLL): New.
8829         * rtl.def (CLRSB): New code.
8830         * dwarf2out.c (mem_loc_descriptor): Handle it.
8831         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8832         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
8833         and popcount.
8834         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
8835         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
8836         (__ctzDI2): Move declaration.
8837         * config/bfin/bfin.md (clrsbsi2): New expander.
8838         (signbitssi2): Use the CLRSB rtx.
8839         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
8840         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
8841
8842 2011-06-21  Richard Guenther  <rguenther@suse.de>
8843
8844         * ipa-inline-transform.c (inline_transform): Fix previous change.
8845
8846 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
8847
8848         PR tree-optimization/49478
8849         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
8850         with constant operand.
8851
8852 2011-06-21  Richard Guenther  <rguenther@suse.de>
8853
8854         * ipa-inline-transform.c (inline_transform): Fix typo.
8855
8856 2011-06-21  Richard Guenther  <rguenther@suse.de>
8857
8858         PR tree-optimization/49483
8859         * tree-vect-stmts.c (vectorizable_assignment): Also handle
8860         VIEW_CONVERT_EXPR conversions.
8861
8862 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
8863
8864         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
8865         * config/avr/avr-tables.opt: New file (generated).
8866         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
8867         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
8868         avr-mcus.def.
8869         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
8870         (avr_option_override): Don't process -mmcu= argument here.  Set
8871         avr_current_device using avr_mcu_index.
8872         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
8873         * config/avr/avr.opt (mmcu=): Use Enum.
8874         * config/avr/t-avr (avr-devices.o): Update dependencies.
8875         ($(srcdir)/config/avr/avr-tables.opt): New.
8876         * target.def (help): Remove.
8877         * doc/tm.texi.in (TARGET_HELP): Remove.
8878         * doc/tm.texi: Regenerate.
8879         * opts.c: Don't include target.h.
8880         (common_handle_option): Don't call targetm.help.
8881         * system.h (TARGET_HELP): Poison.
8882         * Makefile.in (opts.o): Update dependencies.
8883
8884 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8885
8886         * config/usegld.h: New file.
8887         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
8888         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
8889         (LIB_SPEC): Likewise.  Search /lib.
8890         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
8891         (RDYNAMIC_SPEC): Handle GNU ld.
8892         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
8893         Define.
8894         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
8895         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
8896         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
8897         (STACK_CHECK_STATIC_BUILTIN): Define.
8898         * config/sol2.opt (compat-bsd): Remove.
8899         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
8900         * config/sol2-bi.h: New file.
8901         * config/sol2-gld.h: Remove.
8902         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
8903         (NO_DBX_BNSYM_ENSYM): Remove.
8904         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8905         (STACK_CHECK_STATIC_BUILTIN): Remove.
8906         Test USE_GLD instead of TARGET_GNU_LD.
8907         * config/i386/sol2-10.h: Rename to ...
8908         * config/i386/sol2-bi.h .. this.
8909         (SUBTARGET_EXTRA_SPECS): Redefine.
8910         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
8911         (MULTILIB_DEFAULTS): Remove.
8912         (DEFAULT_ARCH32_P): Define.
8913         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
8914         (ARCH64_SUBDIR): Define.
8915         Test USE_GLD instead of TARGET_GNU_LD.
8916         (I386_EMULATION): Rename to ...
8917         (ARCH32_EMULATION): ... this.
8918         (X86_64_EMULATION): Rename to ...
8919         (ARCH64_EMULATION): ... this.
8920         (TARGET_LD_EMULATION): Remove.
8921         (LINK_ARCH_SPEC): Remove.
8922         * config/i386/sol2-gas.h: Remove.
8923         * config/i386/t-sol2-10: Rename to ...
8924         * config/i386/t-sol2-64: ... this.
8925         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
8926         (AS_SPARC64_FLAG): Define.
8927         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
8928         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
8929         depending on TARGET_CPU_DEFAULT.
8930         (CPP_CPU_SPEC): Redefine.
8931         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
8932         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
8933         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
8934         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
8935         ASM_ARCH_DEFAULT_SPEC): Redefine.
8936         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8937         LINK_ARCH_DEFAULT_SPEC.
8938         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
8939         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
8940         (ARCH64_SUBDIR): Define.
8941         (LINK_ARCH64_SPEC): Redefine.
8942         (CC1_SPEC): Redefine.
8943         (OPTION_DEFAULT_SPECS): Redefine.
8944         (MULTILIB_DEFAULTS): Define.
8945         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
8946         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
8947         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
8948         (NO_DBX_BNSYM_ENSYM): Remove.
8949         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8950         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
8951         (TARGET_ASM_NAMED_SECTION): Likewise.
8952         (STACK_CHECK_STATIC_BUILTIN): Remove.
8953         * config/sparc/sol2-bi.h: Remove.
8954         * config/sparc/sol2-gas-bi.h: Remove.
8955         * config/sparc/sol2-gas.h: Remove.
8956         * config/sparc/sol2-gld-bi.h: Remove.
8957         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
8958         common parts ...
8959         (*-*-solaris2*): ... here.
8960
8961 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8962
8963         PR other/43564
8964         * ipa-inline.c (can_inline_edge_p): Check
8965         !DECL_DISREGARD_INLINE_LIMITS.
8966
8967 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8968
8969         PR middle-end/49139
8970         * cgraphunit.c (process_function_and_variable_attributes): warn when
8971         always_inline functions that are not inline.
8972         * ipa-inline-transform.c (inline_transform): Always call
8973         optimize_inline.
8974         * tree-inline.c (tree_inlinable_function_p): Use error instead
8975         of sorry.
8976         (expand_call_inline): Likewise.
8977
8978 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8979
8980         * Makefile.in (dg_target_exps): Set.
8981         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
8982         instead of 7, try to divide it more evenly.
8983
8984 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
8985
8986         PR target/49089
8987         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
8988         (avx256_split_unaligned_store): New definition.
8989         (ix86_option_override_internal): Enable avx256 unaligned load/store
8990         splitting only when avx256_split_unaligned_load/store is set.
8991
8992 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
8993
8994         * regrename.c (scan_rtx_reg): Handle the case where we write to an
8995         open chain in a smaller mode without failing the entire block.
8996
8997 2011-06-21  Alan Modra  <amodra@gmail.com>
8998
8999         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
9000         CONST high part large-toc address.
9001         (rs6000_tls_referenced_p): Make static.
9002         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
9003
9004 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9005
9006         PR target/49385
9007         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
9008         one of the operands is a register.
9009
9010 2011-06-20  Kai Tietz  <ktietz@redhat.com>
9011
9012         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
9013         operations in combination with binary and.
9014
9015 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
9016
9017         * regrename.c (do_replace): Don't update notes.
9018
9019 2011-06-20  Alan Modra  <amodra@gmail.com>
9020
9021         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
9022         of toc-relative address in CONST.
9023         (rs6000_delegitimize_address): Recognize changed address.
9024         (rs6000_legitimize_reload_address): Likewise.
9025         (rs6000_emit_move): Don't force these constants to memory.
9026         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
9027         toc-relative address in CONST.
9028         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
9029         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
9030
9031 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9032
9033         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
9034         (count_trailing_zeros): Likewise.
9035
9036 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9037
9038         PR other/49325
9039         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
9040         .init_array can be used with .ctors on targets.
9041         * configure: Regenerated.
9042
9043 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
9044
9045         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
9046         if the element type is volatile.
9047
9048 2011-06-18  Jan Hubicka  <jh@suse.cz>
9049
9050         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
9051         extra name aliases.
9052         (lto_symtab_resolve_can_prevail_p): Likewise.
9053         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
9054         * cgraphbuild.c (record_reference): Remove extra body alias code.
9055         (mark_load): Likewise.
9056         (mark_store): Likewise.
9057         * cgraph.h (varpool_node): Remove extra_name filed;
9058         add alias_of and extraname_alias.
9059         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
9060         (varpool_alias_aliased_node): New inline function.
9061         (varpool_variable_node): New function.
9062         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
9063         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
9064         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
9065         (input_varpool_node): Likewise.
9066         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
9067         (varpool_externally_visible_p): Remove extra body alias code.
9068         (function_and_variable_visibility): Likewise.
9069         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
9070         (ipa_pta_execute): Use it.
9071         * varpool.c (varpool_remove_node): Remove extra name alias code.
9072         (varpool_mark_needed_node): Likewise.
9073         (varpool_analyze_pending_decls): Analyze aliases.
9074         (assemble_aliases): New functoin.
9075         (varpool_assemble_decl): Use it.
9076         (varpool_create_variable_alias): New function.
9077         (varpool_extra_name_alias): Rewrite.
9078         (varpool_for_node_and_aliases): New function.
9079
9080 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
9081
9082         PR target/49411
9083         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
9084         last_arg_constant and last argument doesn't match its predicate,
9085         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
9086         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
9087         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
9088         spelling of error message.
9089         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
9090         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
9091         const_0_to_255_operand instead of const_int_operand.
9092
9093         Revert:
9094         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9095
9096         * config/i386/sse.md (blendbits): Remove mode attribute.
9097         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9098         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9099         Check integer value of operand 3 in insn constraint.
9100
9101 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
9102
9103         PR rtl-optimization/48542
9104         * reload.c (find_equiv_reg): Stop looking when finding a
9105         setjmp-type call.
9106         * reload1.c (reload_as_needed): Invalidate all reload
9107         registers when crossing a setjmp-type call.
9108
9109 2011-06-16  Jeff Law  <law@redhat.com>
9110
9111         * tree-ssa-threadupdate.c (struct redirection_data): New field
9112         intermediate_edge.
9113         (THREAD_TARGET2): Define.
9114         (redirection_data_eq): Also check that the intermediate edge is equal.
9115         (lookup_redirection_data): Drop useless argument.  Extract the
9116         outgoing_edge and intermediate edge from E.  Callers updated.
9117         (copy_phi_args, update_destination_phis): New functions.
9118         (fix_duplicate_block_edges): Likewise.
9119         (create_edge_and_update_destination_phis): Duplicate all the edges
9120         hung off e->aux.  Use copy_phi_args.
9121         (create_duplicates): Use fix_duplicate_block_edges.
9122         (fixup_template_block): Likewise.
9123         (redirect_edges): If necessary, redirect the joiner block's incoming
9124         edge to the duplicate of the joiner block.
9125         (thread_block): Don't muck up loops when threading through a joiner
9126         block.
9127         (thread_through_loop_header): Handle threading through a joiner block.
9128         (mark_threaded_blocks, register_jump_thread): Likewise.
9129         * tree-flow.h (register_jump_thread): Add new argument.  Callers
9130         updated.
9131         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
9132         (thread_across_edge): Handle threading through a joiner block.
9133
9134 2011-06-16  Martin Jambor  <mjambor@suse.cz>
9135
9136         PR tree-optimization/49343
9137         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
9138         calculate offset, provide 2nd operand for the new COMPONENT_REF.
9139
9140 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
9141
9142         * config/darwin-protos.h (machopic_select_rtx_section): Move to
9143         inside RTX_CODE ifdef.
9144
9145 2011-06-16  Tom de Vries  <tom@codesourcery.com>
9146
9147         PR target/45098
9148         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
9149         Disallow NULL pointer for pointer arithmetic.
9150
9151 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9152
9153         PR target/49398
9154         Revert.
9155         2011-06-10  Wei Guozhi  <carrot@google.com>
9156
9157         PR target/45335
9158         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9159         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9160         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9161         related peephole2.
9162         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9163         related peephole2.
9164         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9165         (arm_legitimate_ldrd_p): New prototype.
9166         (arm_output_ldrd): New prototype.
9167         * config/arm/arm.c (arm_check_ldrd_operands): New function.
9168         (arm_legitimate_ldrd_p): New function.
9169         (arm_output_ldrd): New function.
9170
9171 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9172
9173         PR middle-end/46500
9174         * doc/tm.texi.in: Update Copyright date.
9175         * doc/tm.texi: Regenerate.
9176         * targhooks.c (default_setup_incoming_varargs): Replace
9177         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9178         (default_pretend_outgoing_varargs_named): Likewise.
9179         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9180         (hook_callee_copies_named): Likewise.
9181         (default_function_arg_advance): Likewise.
9182         (default_function_arg): Likewise.
9183         (default_function_incoming_arg): Likewise.
9184         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9185         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9186         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9187         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9188         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9189         * targhooks.h (default_setup_incoming_varargs): Likewise.
9190         (default_pretend_outgoing_varargs_named): Likewise.
9191         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9192         (hook_callee_copies_named): Likewise.
9193         (default_function_arg_advance): Likewise.
9194         (default_function_arg): Likewise.
9195         (default_function_incoming_arg): Likewise.
9196         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9197         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9198         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9199         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9200         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9201         * target.def (pass_by_reference): Likewise.
9202         (setup_incoming_varargs, strict_argument_naming): Likewise.
9203         (pretend_outgoing_varargs_named, callee_copies): Likewise.
9204         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
9205         (function_incoming_arg): Likewise.
9206         * target.h: Don't include "tm.h" .
9207         (cumulative_args_t): New typedef.
9208         [GCC_TM_H] (get_cumulative_args): New static inline function.
9209         [GCC_TM_H] (pack_cumulative_args): Likewise.
9210         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
9211         argument type with cumulative_args_t.
9212         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
9213         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
9214         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
9215         (frv_arg_partial_bytes, frv_function_arg): Likewise.
9216         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
9217         (frv_function_arg_1): Likewise.
9218         * config/s390/s390.c (s390_pass_by_reference): Likewise.
9219         (s390_function_arg_advance, s390_function_arg): Likewise.
9220         * config/m32c/m32c.c (m32c_function_arg): Likewise.
9221         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
9222         (m32c_strict_argument_naming): Likewise.
9223         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
9224         (spu_function_arg_advance): Likewise.
9225         (spu_setup_incoming_varargs): Likewise.  Make static.
9226         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
9227         Remove prototype.
9228         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
9229         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9230         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
9231         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
9232         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
9233         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
9234         (mep_pass_by_reference, mep_function_arg): Likewise.
9235         (mep_function_arg_advance): Likewise.
9236         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
9237         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
9238         (m32r_function_arg, m32r_function_arg_advance): Likewise.
9239         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
9240         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
9241         (ix86_function_arg, ix86_pass_by_reference): Likewise.
9242         (ix86_setup_incoming_varargs): Likewise.
9243         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
9244         (sh_strict_argument_naming): Likewise.
9245         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
9246         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
9247         (sh_function_arg_advance, sh_function_arg): Likewise.
9248         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
9249         (pdp11_function_arg_advance): Likewise.
9250         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9251         Likewise.
9252         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
9253         * config/avr/avr.c (avr_function_arg): Likewise.
9254         (avr_function_arg_advance): Likewise.
9255         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
9256         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
9257         (xtensa_function_arg_1): Likewise.
9258         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
9259         Likewise.
9260         (xstormy16_function_arg): Likewise.
9261         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
9262         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
9263         (fr30_function_arg_advance): Likewise.
9264         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9265         (lm32_function_arg, lm32_function_arg_advance): Likewise.
9266         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
9267         (moxie_function_arg, moxie_function_arg_advance): Likewise.
9268         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
9269         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
9270         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
9271         (cris_function_arg, cris_function_incoming_arg): Likewise.
9272         (cris_function_arg_advance, cris_function_arg_1): Likewise.
9273         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
9274         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
9275         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
9276         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
9277         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
9278         (mn10300_arg_partial_bytes): Likewise.
9279         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
9280         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
9281         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
9282         (ia64_function_arg_1): Likewise.
9283         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
9284         (m68k_function_arg): Likewise.
9285         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
9286         (rs6000_function_arg, setup_incoming_varargs): Likewise.
9287         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
9288         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
9289         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
9290         (picochip_arg_advance): Likewise.
9291         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
9292         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
9293         (mcore_function_arg_advance): Likewise.
9294         * config/score/score.c (score_pass_by_reference): Likewise.
9295         (score_function_arg_advance): Likewise.
9296         (score_arg_partial_bytes): Likewise.  Make static.
9297         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
9298         * config/arm/arm.c (arm_arg_partial_bytes): Replace
9299         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9300         (arm_function_arg, arm_function_arg_advance): Likewise.
9301         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
9302         * config/pa/pa.c (pa_pass_by_reference): Likewise.
9303         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
9304         (pa_function_arg): Likewise.
9305         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
9306         (mips_function_arg, mips_function_arg_advance): Likewise.
9307         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
9308         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
9309         * config/vax/vax.c (vax_function_arg): Likewise.
9310         (vax_function_arg_advance): Likewise.
9311         * config/h8300/h8300.c (h8300_function_arg): Likewise.
9312         (h8300_function_arg_advance): Likewise.
9313         * config/v850/v850.c (v850_pass_by_reference): Likewise.
9314         (v850_strict_argument_naming, v850_function_arg): Likewise.
9315         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
9316         (v850_setup_incoming_varargs): Likewise.
9317         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
9318         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
9319         (mmix_function_arg, mmix_pass_by_reference): Likewise.
9320         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
9321         with const void *.
9322         * config/bfin/bfin.c (setup_incoming_varargs): Replace
9323         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9324         (bfin_function_arg_advance, bfin_function_arg): Likewise.
9325         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
9326         * calls.c (emit_call_1): Change type of args_so_far to
9327         cumulative_args_t.  Changed all callers.
9328         (initialize_argument_information): Likewise.
9329         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
9330         * dse.c (get_call_args): Likewise.
9331         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9332         * function.c (pass_by_reference, reference_callee_copied): Likewise.
9333         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
9334         New member args_so_far_v.  Changed all users.
9335         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
9336         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9337         * config/mips/mips.c (mips_output_args_xfer): Likewise.
9338         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9339         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9340         * config/microblaze/microblaze.c (microblaze_expand_prologue):
9341         Likewise.
9342         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
9343         m32r_pass_by_reference.
9344
9345 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
9346
9347         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
9348         argument to be a VEC of statements.
9349         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
9350         assert that pattern statements have to have their vector type set.
9351         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
9352         Change the first argument to be a VEC of statements.  Update
9353         documentation.
9354         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
9355         (vect_handle_widen_mult_by_const): New function.
9356         (vect_recog_widen_mult_pattern):  Change the first argument to be a
9357         VEC of statements.  Update documentation.  Check that the constant is
9358         INTEGER_CST.  Support multiplication by a constant that fits an
9359         intermediate type - call vect_handle_widen_mult_by_const.
9360         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
9361         call.  Handle additional pattern statements if necessary.
9362
9363 2011-06-16  Nick Clifton  <nickc@redhat.com>
9364
9365         PR target/49427
9366         * config.gcc: Set cpu_type to v850 for any V850 architecture.
9367         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
9368         md_file, extra_modes, out_file and extra_options are these are all
9369         deduced from cpu_type.
9370
9371 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9372
9373         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
9374         truncation mask to 63.
9375
9376 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9377
9378         PR target/49313
9379         PR target/29524
9380         * longlong.h: Add AVR support:
9381         (count_leading_zeros): New macro.
9382         (count_trailing_zeros): New macro.
9383         (COUNT_LEADING_ZEROS_0): New macro.
9384         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
9385         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
9386         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
9387         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
9388         (LIB2FUNCS_EXCLUDE): Add _clz.
9389         * config/avr/libgcc.S (XCALL): Move up in file.
9390         (XJMP): New C Macro.
9391         (DEFUN): New asm macro.
9392         (ENDF): New asm macro.
9393         (__ffssi2): New function.
9394         (__ffshi2): New function.
9395         (__loop_ffsqi2): New function.
9396         (__ctzsi2): New function.
9397         (__ctzhi2): New function.
9398         (__clzdi2): New function.
9399         (__clzsi2): New function.
9400         (__clzhi2): New function.
9401         (__paritydi2): New function.
9402         (__paritysi2): New function.
9403         (__parityhi2): New function.
9404         (__parityqi2): New function.
9405         (__popcounthi2): New function.
9406         (__popcountsi2): New function.
9407         (__popcountdi2): New function.
9408         (__popcountqi2): New function.
9409         (__bswapsi2): New function.
9410         (__bswapdi2): New function.
9411         (__ashldi3): New function.
9412         (__ashrdi3): New function.
9413         (__lshrdi3): New function.
9414         Fix suspicous lines.
9415
9416 2011-06-16  Richard Guenther  <rguenther@suse.de>
9417
9418         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
9419         the same as x != 0.
9420         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
9421         to (bool) X & 1.
9422         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
9423         equality compares against zero for the lower bit.
9424
9425 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
9426
9427         PR tree-optimization/49419
9428         * tree-vrp.c (execute_vrp): Call init_range_assertions
9429         before estimate_numbers_of_iterations, call
9430         free_number_of_iterations_estimates before calling
9431         remove_range_assertions.
9432
9433 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9434
9435         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
9436         (struct partial_schedule): Add rows_length field.
9437         (verify_partial_schedule): Check rows_length.
9438         (ps_insert_empty_row): Handle rows_length.
9439         (create_partial_schedule): Likewise.
9440         (free_partial_schedule): Likewise.
9441         (reset_partial_schedule): Likewise.
9442         (create_ps_insn): Remove rest_count argument.
9443         (remove_node_from_ps): Update rows_length.
9444         (add_node_to_ps): Update rows_length and call create_ps_insn
9445         without passing row_rest_count.
9446         (rotate_partial_schedule): Update rows_length.
9447
9448 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9449
9450         * ddg.c (add_intra_loop_mem_dep): New function.
9451         (build_intra_loop_deps): Call it.
9452
9453 2011-06-13  Jeff Law  <law@redhat.com>
9454
9455         * df-problems.c (df_lr_local_compute): Manually CSE
9456         PIC_OFFSET_TABLE_REGNUM.
9457         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
9458         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
9459
9460 2011-06-13  Jan Hubicka  <jh@suse.cz>
9461
9462         * cgraphunit.c (handle_alias_pairs): New function.
9463         (cgraph_finalize_compilation_unit): Use it.
9464         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
9465         as externally visible.
9466
9467 2011-06-15  Richard Guenther  <rguenther@suse.de>
9468
9469         * expr.c (expand_expr_real_2): Reduce all integral types to
9470         bitfield precision.
9471         (expand_expr_real_1): Likewise.
9472
9473 2011-06-15  Martin Jambor  <mjambor@suse.cz>
9474
9475         PR tree-optimization/48613
9476         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
9477         ipa_node_params_vector is NULL.
9478
9479 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
9480
9481         PR debug/49382
9482         * dwarf2out.c (dw_loc_list_node): Add force field.
9483         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
9484         location in the list, even if it is modified before first real insn.
9485         (output_loc_list): Emit empty ranges with force flag set.
9486         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
9487
9488 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
9489
9490         PR target/49349
9491         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
9492         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
9493         above a fence.  Update comments.
9494         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
9495         placed just above it.  Do not allow NULL place_to_insert.
9496
9497 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
9498
9499         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
9500         (slpeel_tree_peel_loop_to_edge): Don't call
9501         remove_dead_stmts_from_loop.
9502         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
9503         remove irrelevant pattern statements.  For irrelevant statements
9504         check if it is the last statement of a detected pattern, use
9505         corresponding pattern statement instead.
9506         (destroy_loop_vec_info): No need to remove pattern statements,
9507         only free stmt_vec_info.
9508         (vect_transform_loop): For irrelevant statements check if it is
9509         the last statement of a detected pattern, use corresponding
9510         pattern statement instead.
9511         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
9512         pattern statements.  Set basic block for the new statement.
9513         (vect_pattern_recog): Update documentation.
9514         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
9515         operands of pattern statements.
9516         (vectorizable_call): Fix printing.  In case of a pattern statement
9517         use the lhs of the original statement when creating a dummy
9518         statement to replace the original call.
9519         (vect_analyze_stmt): For irrelevant statements check if it is
9520         the last statement of a detected pattern, use corresponding
9521         pattern statement instead.
9522         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
9523         statements use gsi of the original statement.
9524
9525 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9526
9527         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
9528         common/common-target-def.h.
9529         * target.def (default_target_flags, handle_option,
9530         supports_split_stack, optimization_table, init_struct,
9531         except_unwind_info, unwind_tables_default, have_named_sections):
9532         Move to common/common-target.def.
9533         * target.h (enum opt_levels, struct default_options): Move to
9534         common/common-target.h.
9535         * targhooks.c (default_except_unwind_info,
9536         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9537         default_target_handle_option, empty_optimization_table): Move to
9538         common/common-targhooks.c.
9539         * targhooks.h (default_except_unwind_info,
9540         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9541         default_target_handle_option, empty_optimization_table): Move to
9542         common/common-targhooks.h.
9543         * common/common-target-def.h: Include common/common-targhooks.h.
9544         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
9545         defined.
9546         * common/common-target.def (handle_option, option_init_struct,
9547         option_optimization_table, default_target_flags,
9548         except_unwind_info, supports_split_stack, unwind_tables_default,
9549         have_named_sections): Move from target.def.
9550         (HOOK_PREFIX): Undefine at end of file.
9551         * common/common-target.h: Include input.h.
9552         (enum opt_levels, struct default_options): Move from target.h.
9553         * common/common-targhooks.c, common/common-targhooks.h: New.
9554         * config.gcc (target_has_targetm_common): Default to yes.
9555         (moxie*): Set target_has_targetm_common=no.
9556         (hppa*-*-*): Don't set target_has_targetm_common=yes.
9557         * doc/tm.texi: Regenerate.
9558         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
9559         (C_TARGET_DEF_H): Add common/common-targhooks.h.
9560         (GCC_OBJS): Remove vec.o.
9561         (OBJS): Remove hooks.o and vec.o.
9562         (OBJS-libcommon-target): Add vec.o, hooks.o and
9563         common/common-targhooks.o.
9564         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
9565         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
9566         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
9567         cfglayout.o, $(out_object_file), $(common_out_object_file)):
9568         Update dependencies.
9569         (common/common-targhooks.o): New.
9570         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
9571         * common/config/pa/pa-common.c: Include more headers.  Take
9572         copyright dates from pa.c.
9573         (pa_option_optimization_table, pa_handle_option,
9574         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
9575         TARGET_HANDLE_OPTION): Move from pa.c.
9576         * common/config/alpha/alpha-common.c,
9577         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
9578         common/config/bfin/bfin-common.c,
9579         common/config/cris/cris-common.c,
9580         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
9581         common/config/h8300/h8300-common.c,
9582         common/config/i386/i386-common.c,
9583         common/config/ia64/ia64-common.c,
9584         common/config/iq2000/iq2000-common.c,
9585         common/config/lm32/lm32-common.c,
9586         common/config/m32c/m32c-common.c,
9587         common/config/m32r/m32r-common.c,
9588         common/config/m68k/m68k-common.c,
9589         common/config/mcore/mcore-common.c,
9590         common/config/mep/mep-common.c,
9591         common/config/microblaze/microblaze-common.c,
9592         common/config/mips/mips-common.c,
9593         common/config/mmix/mmix-common.c,
9594         common/config/mn10300/mn10300-common.c,
9595         common/config/pdp11/pdp11-common.c,
9596         common/config/picochip/picochip-common.c,
9597         common/config/rs6000/rs6000-common.c,
9598         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
9599         common/config/score/score-common.c, common/config/sh/sh-common.c,
9600         common/config/sparc/sparc-common.c,
9601         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
9602         common/config/vax/vax-common.c,
9603         common/config/xstormy16/xstormy16-common.c,
9604         common/config/xtensa/xtensa-common.c: New.
9605         * config/alpha/alpha.c: Include common/common-target.h.
9606         (alpha_option_optimization_table, alpha_handle_option,
9607         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9608         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
9609         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
9610         * config/arm/arm.c (arm_option_optimization_table,
9611         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9612         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
9613         arm-common.c.
9614         * config/avr/avr.c (avr_option_optimization_table,
9615         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9616         to avr-common.c.
9617         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
9618         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
9619         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
9620         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
9621         * config/cris/cris.c (cris_option_optimization_table,
9622         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9623         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
9624         cris-common.c.
9625         * config/fr30/fr30.c (fr30_option_optimization_table,
9626         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
9627         to fr30-common.c.
9628         * config/frv/frv.c (frv_option_optimization_table,
9629         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
9630         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
9631         * config/h8300/h8300.c (h8300_option_optimization_table,
9632         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9633         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
9634         * config/i386/i386-protos.h (ix86_handle_option): Declare.
9635         * config/i386/i386.c: Include common/common-target.h.
9636         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
9637         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
9638         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
9639         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
9640         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
9641         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
9642         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
9643         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
9644         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
9645         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
9646         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
9647         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
9648         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
9649         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
9650         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
9651         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
9652         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
9653         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
9654         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
9655         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
9656         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
9657         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
9658         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
9659         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
9660         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
9661         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
9662         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
9663         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
9664         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
9665         ix86_option_optimization_table, ix86_option_init_struct,
9666         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
9667         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9668         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
9669         i386-common.c.
9670         * config/i386/t-i386 (i386.o): Update dependencies.
9671         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
9672         * config/ia64/ia64.c (ia64_option_optimization_table,
9673         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9674         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9675         ia64_handle_option): Move to ia64-common.c.
9676         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
9677         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
9678         * config/lm32/lm32.c (lm32_option_optimization_table,
9679         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9680         to lm32-common.c.
9681         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
9682         m32c-common.c.
9683         * config/m32r/m32r.c (m32r_option_optimization_table,
9684         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9685         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9686         m32r_handle_option): Move to m32r-common.c.
9687         (m32r_memory_move_cost): Remove comment referring to
9688         TARGET_HANDLE_OPTION.
9689         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
9690         Move to m68k-common.c.
9691         * config/mcore/mcore.c (mcore_option_optimization_table,
9692         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9693         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
9694         * config/mep/mep.c (mep_option_optimization_table,
9695         mep_handle_option, TARGET_HANDLE_OPTION,
9696         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
9697         Move to mep-common.c.
9698         * config/microblaze/microblaze.c
9699         (microblaze_option_optimization_table,
9700         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9701         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
9702         * config/mips/mips.c (mips_handle_option,
9703         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9704         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
9705         mips-common.c.
9706         * config/mmix/mmix.c (mmix_option_optimization_table,
9707         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9708         Move to mmix-common.c.
9709         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
9710         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
9711         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9712         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
9713         * config/pa/pa.c: Include common/common-target.h.
9714         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9715         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9716         pa_handle_option): Move to pa-common.c.
9717         (pa_option_override): Use targetm_common.except_unwind_info.
9718         (pa_asm_output_mi_thunk, pa_function_section): Use
9719         targetm_common.have_named_sections.
9720         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
9721         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9722         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9723         pdp11_handle_option, pdp11_option_init_struct): Move to
9724         pdp11-common.c.
9725         * config/picochip/picochip.c (picochip_option_optimization_table,
9726         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
9727         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
9728         * config/rs6000/rs6000.c: Include common/common-target.h.
9729         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
9730         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
9731         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
9732         rs6000_handle_option): Move to rs6000-common.c.
9733         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9734         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
9735         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9736         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
9737         * config/s390/s390.c (processor_flags_table,
9738         s390_option_optimization_table, s390_option_init_struct,
9739         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
9740         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9741         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
9742         * config/s390/s390.h (processor_flags_table): Declare.
9743         * config/score/score.c (score_option_optimization_table,
9744         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9745         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
9746         score_handle_option): Move to score-common.c.
9747         * config/sh/sh.c (sh_option_optimization_table,
9748         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9749         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9750         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
9751         * config/sparc/sparc.c: Include common/common-target.h.
9752         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9753         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
9754         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
9755         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
9756         spu_option_init_struct): Move to spu-common.c.
9757         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
9758         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
9759         * config/v850/v850.c (small_memory_physical_max,
9760         v850_handle_memory_optionn v850_handle_option,
9761         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9762         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
9763         v850-common.c.
9764         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
9765         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
9766         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9767         Move to xtensa-common.c.
9768         * cfglayout.c: Include common/common-target.h.
9769         (fixup_reorder_chain): Use targetm_common.have_named_sections.
9770         * cfgrtl.c: Include common/common-target.h.
9771         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
9772         targetm_common.have_named_sections.
9773         * dbxout.c: Include common/common-target.h.
9774         (dbxout_function_end): Use targetm_common.have_named_sections.
9775         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
9776         targetm_common.except_unwind_info.
9777         * dwarf2out.c: Include common/common-target.h.
9778         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
9779         dwarf2out_begin_prologue, dwarf2out_frame_init,
9780         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
9781         targetm_common.except_unwind_info.
9782         * except.c: Include common/common-target.h.
9783         (init_eh, finish_eh_generation,
9784         output_one_function_exception_table): Use
9785         targetm_common.except_unwind_info.
9786         (switch_to_exception_section): Use targetm_common.have_named_sections.
9787         * explow.c: Include common/common-target.h.
9788         * expr.c: Include common/common-target.h.
9789         (build_personality_function): Use targetm_common.except_unwind_info.
9790         * function.c: Include common/common-target.h.
9791         (expand_function_end): Use targetm_common.except_unwind_info.
9792         * haifa-sched.c: Include common/common-target.h.
9793         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
9794         * lto-opts.c: Include common/common-target.h instead of target.h.
9795         (lto_reissue_options): Use targetm_common.handle_option.
9796         * opts.c: Include common/common-target.h.
9797         (target_handle_option): Use targetm_common.handle_option.
9798         (init_options_struct): Update comment referring to
9799         targetm.target_option.optimization.  Use
9800         targetm_common.default_target_flags,
9801         targetm_common.unwind_tables_default and
9802         targetm_common.option_init_struct.
9803         (default_options_optimization): Use
9804         targetm_common.option_optimization_table.
9805         (finish_options): Use targetm_common.except_unwind_info,
9806         targetm_common.unwind_tables_default,
9807         targetm_common.have_named_sections and
9808         targetm_common.supports_split_stack.
9809         * toplev.c: Include common/common-target.h.
9810         (process_options): Use targetm_common.have_named_sections.
9811         * tree-tailcall.c: Include common/common-target.h.
9812         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
9813         * tree.c: Include common/common-target.h.
9814         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
9815         * varasm.c: Include common/common-target.h.
9816         (resolve_unique_section, hot_function_section,
9817         default_function_section): Use targetm_common.have_named_sections.
9818
9819 2011-06-14  Easwaran Raman  <eraman@google.com>
9820
9821         PR rtl-optimization/44194
9822         * dse.c: Include tree-flow.h
9823         (insn_info): Add new field non_frame_wild_read.
9824         (group_info): Add new fields escaped_n and escaped_p.
9825         (kill_on_calls): New variable.
9826         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
9827         (dse_step0): Initialize kill_on_calls.
9828         (can_escape): New function.
9829         (set_usage_bits): Add additional parameter; record information
9830         about escaped locations.
9831         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
9832         (dse_step2_nospill): Set kill_on_calls based on
9833         group->escaped_n and group->escaped_n.
9834         (add_wild_read): Refactor into...
9835         (reset_active_stores): ... New function, and
9836         (free_read_records): ... New function.
9837         (add_non_frame_wild_read): New function.
9838         (scan_insn): Call add_non_frame_wild_read on non-const calls.
9839         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
9840         (dse_step5_nospill): Call scan_reads_nospill for instructions
9841         marked as non_frame_wild_read.
9842         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
9843
9844 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9845
9846         * common/common-target-def.h, common/common-target.def,
9847         common/common-target.h, common/config/default-common.c,
9848         common/config/pa/pa-common.c: New files.
9849         * Makefile.in (common_out_file, common_out_object_file,
9850         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
9851         (OBJS-libcommon-target): Include $(common_out_object_file).
9852         (prefix.o): Update dependencies.
9853         ($(common_out_object_file), common/common-target-hooks-def.h,
9854         s-common-target-hooks-def-h): New.
9855         (s-tm-texi): Also check timestamp on common-target.def.
9856         (build/genhooks.o): Update dependencies.
9857         * config.gcc (common_out_file, target_has_targetm_common): Define.
9858         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
9859         TARGET_ALWAYS_STRIP_DOTDOT.
9860         * configure.ac (common_out_object_file): Define.
9861         (common_out_file, common_out_object_file): Substitute.
9862         (common): Create directory.
9863         * configure: Regenerate.
9864         * doc/tm.texi.in (targetm_common): Document.
9865         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
9866         * doc/tm.texi: Regenerate.
9867         * genhooks.c (hook_array): Also include common/common-target.def.
9868         * prefix.c (tm.h): Don't include.
9869         (common/common-target.h): Include.
9870         (ALWAYS_STRIP_DOTDOT): Don't define.
9871         (update_path): Use targetm_common.always_strip_dotdot instead of
9872         ALWAYS_STRIP_DOTDOT.
9873         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
9874
9875 2011-06-14  David Li  <davidxl@google.com>
9876
9877         * passes.c (execute_function_todo): Remove TODO_dump_func.
9878         (execute_one_pass): Remove TODO_dump_func.
9879         (execute_function_dump): New function.
9880         * tree-vrp.c: Remove TODO_dump_func.
9881         * regrename.c: Remove TODO_dump_func.
9882         * fwprop.c: Remove TODO_dump_func.
9883         * tree-into-ssa.c: Remove TODO_dump_func.
9884         * tree-complex.c: Remove TODO_dump_func.
9885         * tracer.c: Remove TODO_dump_func.
9886         * tree-loop-distribution.c: Remove TODO_dump_func.
9887         * postreload-gcse.c: Remove TODO_dump_func.
9888         * postreload.c: Remove TODO_dump_func.
9889         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
9890         * tree-tailcall.c: Remove TODO_dump_func.
9891         * ipa-cp.c: Remove TODO_dump_func.
9892         * final.c: Remove TODO_dump_func.
9893         * tree-emutls.c: Remove TODO_dump_func.
9894         * omp-low.c: Remove TODO_dump_func.
9895         * tree-ssa-dse.c: Remove TODO_dump_func.
9896         * tree-ssa-uncprop.c: Remove TODO_dump_func.
9897         * auto-inc-dec.c: Remove TODO_dump_func.
9898         * reorg.c: Remove TODO_dump_func.
9899         * tree-ssa-copyrename.c: Remove TODO_dump_func.
9900         * tree-ssa-ccp.c: Remove TODO_dump_func.
9901         * compare-elim.c: Remove TODO_dump_func.
9902         * mode-switching.c: Remove TODO_dump_func.
9903         * modulo-sched.c: Remove TODO_dump_func.
9904         * tree-call-cdce.c: Remove TODO_dump_func.
9905         * cse.c: Remove TODO_dump_func.
9906         * web.c: Remove TODO_dump_func.
9907         * tree-stdarg.c: Remove TODO_dump_func.
9908         * lto-streamer-out.c: Remove TODO_dump_func.
9909         * tree-ssa-math-opts.c: Remove TODO_dump_func.
9910         * tree-ssa-dom.c: Remove TODO_dump_func.
9911         * tree-nrv.c: Remove TODO_dump_func.
9912         * loop-init.c: Remove TODO_dump_func.
9913         * gimple-low.c: Remove TODO_dump_func.
9914         * ipa-inline.c: Remove TODO_dump_func.
9915         * tree-ssa-sink.c: Remove TODO_dump_func.
9916         * jump.c: Remove TODO_dump_func.
9917         * ifcvt.c: Remove TODO_dump_func.
9918         * tree-ssa-loop.c: Remove TODO_dump_func.
9919         * recog.c: Remove TODO_dump_func.
9920         * dse.c: Remove TODO_dump_func.
9921         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
9922         * matrix-reorg.c: Remove TODO_dump_func.
9923         * tree-eh.c: Remove TODO_dump_func.
9924         * regmove.c: Remove TODO_dump_func.
9925         * function.c: Remove TODO_dump_func.
9926         * tree-vectorizer.c: Remove TODO_dump_func.
9927         * ipa-split.c: Remove TODO_dump_func.
9928         * gcse.c: Remove TODO_dump_func.
9929         * tree-if-conv.c: Remove TODO_dump_func.
9930         * init-regs.c: Remove TODO_dump_func.
9931         * tree-ssa-phiopt.c: Remove TODO_dump_func.
9932         * implicit-zee.c: Remove TODO_dump_func.
9933         * lower-subreg.c: Remove TODO_dump_func.
9934         * bt-load.c: Remove TODO_dump_func.
9935         * tree-dfa.c: Remove TODO_dump_func.
9936         * except.c: Remove TODO_dump_func.
9937         * emit-rtl.c: Remove TODO_dump_func.
9938         * store-motion.c: Remove TODO_dump_func.
9939         * cfgexpand.c: Remove TODO_dump_func.
9940         * tree-cfgcleanup.c: Remove TODO_dump_func.
9941         * cfgcleanup.c: Remove TODO_dump_func.
9942         * tree-ssa-pre.c: Remove TODO_dump_func.
9943         * tree-sra.c: Remove TODO_dump_func.
9944         * tree-mudflap.c: Remove TODO_dump_func.
9945         * tree-ssa-copy.c: Remove TODO_dump_func.
9946         * cfglayout.c: Remove TODO_dump_func.
9947         * tree-ssa-forwprop.c: Remove TODO_dump_func.
9948         * tree-ssa-dce.c: Remove TODO_dump_func.
9949         * ira.c: Remove TODO_dump_func.
9950         * tree-ssa.c: Remove TODO_dump_func.
9951         * integrate.c: Remove TODO_dump_func.
9952         * tree-optimize.c: Remove TODO_dump_func.
9953         * tree-ssa-phiprop.c: Remove TODO_dump_func.
9954         * tree-object-size.c: Remove TODO_dump_func.
9955         * combine.c: Remove TODO_dump_func.
9956         * bb-reorder.c: Remove TODO_dump_func.
9957         * cprop.c: Remove TODO_dump_func.
9958         * var-tracking.c: Remove TODO_dump_func.
9959         * tree-profile.c: Remove TODO_dump_func.
9960         * tree-vect-generic.c: Remove TODO_dump_func.
9961         * reg-stack.c: Remove TODO_dump_func.
9962         * sched-rgn.c: Remove TODO_dump_func.
9963         * tree-ssa-structalias.c: Remove TODO_dump_func.
9964         * tree-switch-conversion.c: Remove TODO_dump_func.
9965         * tree-cfg.c: Remove TODO_dump_func.
9966         * tree-ssa-reassoc.c: Remove TODO_dump_func.
9967         * combine-stack-adj.c: Remove TODO_dump_func.
9968         * dce.c: Remove TODO_dump_func.
9969         * tree-ssanames.c: Remove TODO_dump_func.
9970         * regcprop.c: Remove TODO_dump_func.
9971
9972 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9973
9974         PR middle-end/47364
9975         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
9976         and properly handle result not in Pmode.
9977
9978 2011-06-14  Robert Millan  <rmh@gnu.org>
9979
9980         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
9981         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
9982         `config/linux.h'.
9983
9984         * config/i386/kfreebsd-gnu64.h: New file.
9985         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
9986         with `i386/kfreebsd-gnu64.h'.
9987
9988         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
9989         (GNU_USER_LINK_EMULATION64): New macros.
9990         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
9991         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
9992         of hardcoding `elf_i386' and `elf_x86_64'.
9993
9994 2011-06-14  Nick Clifton  <nickc@redhat.com>
9995
9996         PR target/49403
9997         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
9998
9999         PR target/49402
10000         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
10001
10002 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
10003
10004         PR fortran/49103
10005         * tree.h (DECL_NONSHAREABLE): Define.
10006         (struct tree_decl_common): Change decl_common_unused to
10007         decl_nonshareable_flag.
10008         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
10009         Ignore vars with DECL_NONSHAREABLE bit set.
10010         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
10011         on stores to automatic aggregate vars.
10012
10013         PR rtl-optimization/49390
10014         Revert:
10015         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10016
10017         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10018         MEM_ALIAS_SET.
10019
10020 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
10021             Tom de Vries  <tom@codesourcery.com>
10022
10023         PR target/45098
10024         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
10025         Document changed semantics.
10026         (max_stmt_executions, max_stmt_executions_int): Declare.
10027         * tree-data-ref.c (estimated_loop_iterations)
10028         (estimated_loop_iterations_int): Move functions...
10029         * tree-ssa-loop-niter.c (estimated_loop_iterations)
10030         (estimated_loop_iterations_int): here.
10031         (record_estimate): Change nb_iterations_upper_bound and
10032         nb_iterations_estimate semantics.
10033         (max_stmt_executions, max_stmt_executions_int): New function.
10034         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
10035         (max_stmt_executions_tree): this.
10036         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
10037         estimated_loop_iterations_tree.
10038         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
10039         max_stmt_executions_int instead of estimated_loop_iterations_int.
10040         * predict.c (predict_loops): Idem.
10041         * tree-parloops.c (parallelize_loops): Idem.
10042         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
10043         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
10044         (init_omega_for_ddr_1): Idem.
10045         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
10046         (loop_prefetch_arrays): Idem
10047         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
10048         max_stmt_executions instead of estimated_loop_iterations.
10049         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
10050         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
10051         instead of nb_iterations_upper_bound.
10052
10053 2011-06-13  Jan Hubicka  <jh@suse.cz>
10054
10055         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
10056
10057 2011-06-14  Richard Henderson  <rth@redhat.com>
10058
10059         PR debug/48459
10060         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
10061         (based_loc_descr): Assert it's true.
10062         (compute_frame_pointer_to_fb_displacement): Set it, rather than
10063         aborting immediately.
10064
10065 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
10066             Mingfeng Wu  <mingfeng@faraday-tech.com>
10067
10068         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
10069
10070 2011-06-13  Jan Hubicka  <jh@suse.cz>
10071
10072         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
10073
10074 2011-06-13  Jan Hubicka  <jh@suse.cz>
10075
10076         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
10077         similarly to DECL_COMDAT.
10078         * cgraphunit.c (cgraph_analyze_function): Likewise.
10079         * ipa.c (function_and_variable_visibility): Likewise.
10080
10081 2011-06-13  Jan Hubicka  <jh@suse.cz>
10082
10083         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
10084         BINFO_VIRTUALS when streaming for ltrans unit.
10085
10086 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
10087
10088         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
10089         (movdi_internal64): Same.
10090
10091 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
10092
10093         PR target/44618
10094         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
10095         a set of similar patterns, where the MATCH_OPERAND for the function
10096         argument is replaced with individual references to hardware registers.
10097         (save_fpregs_<mode>): Ditto
10098         (restore_gpregs_<mode>): Ditto
10099         (return_and_restore_gpregs_<mode>): Ditto
10100         (return_and_restore_fpregs_<mode>): Ditto
10101         (return_and_restore_fpregs_aix_<mode>): Ditto
10102
10103 2011-06-13  Jan Hubicka  <jh@suse.cz>
10104
10105         * ipa-utils.c (postorder_stack): New structure.
10106         (ipa_reverse_postorder): Handle aliases.
10107
10108 2011-06-13  Jan Hubicka  <jh@suse.cz>
10109
10110         * ipa-inline.c (reset_edge_caches): Walk aliases.
10111         (update_caller_keys): Do not test inlinability of aliases.
10112         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
10113         (do_estimate_growth): Fix typo.
10114
10115 2011-06-13  Jan Hubicka  <jh@suse.cz>
10116
10117         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
10118         (can_remove_node_now_p): ... here; handle same comdat groups.
10119         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
10120         (inline_call): Update use of can_remove_node_now_p.
10121
10122 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10123
10124         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
10125         condition to disallow non-identical memory locations.
10126         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
10127         preference to bit manipulation instructions.
10128
10129 2011-06-13  Jan Hubicka  <jh@suse.cz>
10130
10131         * cgraph.c (cgraph_for_node_thunks_and_aliases,
10132         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
10133         (nonremovable_p): New function.
10134         (cgraph_can_remove_if_no_direct_calls_p): New function.
10135         (used_from_object_file_p): New functoin.
10136         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
10137         references from aliases.
10138         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
10139         * ipa-inline.c (check_caller_edge): New function.
10140         (want_inline_function_called_once_p): Use it; accept aliases called
10141         once, too.
10142         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
10143
10144 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10145
10146         PR target/48454
10147         * config/arm/neon.md (vec_pack_trunc): Set the lengths
10148         correctly for the case with Quad vectors.
10149
10150 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
10151            Ira Rosen  <ira.rosen@linaro.org>
10152
10153         PR tree-optimization/49352
10154         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
10155         all, make sure loop_use_stmt after the loop is a def stmt of a used
10156         SSA_NAME that is the only one defined inside of the loop.  Don't
10157         check for COND_EXPR and GIMPLE_BINARY_RHS.
10158         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
10159         check_reduction is true.
10160
10161 2011-06-11  Jan Hubicka  <jh@suse.cz>
10162
10163         PR middle-end/49373
10164         * ipa.c (cgraph_externally_visible_p): Check resolution info.
10165
10166 2011-06-11  Jan Hubicka  <jh@suse.cz>
10167
10168         PR middle-end/48836
10169         * ipa-inline-transform.c: Include tree-pass.h
10170         (inline_transform): Set TODO_update_ssa_only_virtuals.
10171         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
10172
10173 2011-06-11  Jan Hubicka  <jh@suse.cz>
10174
10175         PR middle-end/49378
10176         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
10177         aliases and thunks.
10178
10179 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
10180
10181         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
10182         Take number of iterations to peel into account for equally frequent
10183         misalignment values.
10184
10185 2011-06-11  Jan Hubicka  <jh@suse.cz>
10186
10187         * lto-streamer-out.c (produce_symtab): Stream out the newly
10188         represented aliases.
10189
10190 2011-06-11  Jan Hubicka  <jh@suse.cz>
10191
10192         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
10193         varying args.
10194         (ipa_update_after_lto_read): Likewise.
10195         (ipa_write_node_info): Do not sream call_with_var_arguments.
10196         (ipa_read_node_info): Likewise.
10197
10198 2011-06-11  Jan Hubicka  <jh@suse.cz>
10199
10200         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
10201
10202 2011-06-11  Jan Hubicka  <jh@suse.cz>
10203
10204         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
10205         (lto_symtab_resolve_can_prevail_p): Likewise.
10206         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
10207         * cgraph.c (same_body_aliases_done): New global var.
10208         (cgraph_same_body_alias_1): Rename to ...
10209         (cgraph_create_function_alias): ... this one; reorg to new
10210         representation.
10211         (cgraph_same_body_alias): Use cgraph_create_function_alias;
10212         record references when asked to.
10213         (cgraph_add_thunk): Fix formating.
10214         (cgraph_get_node): Kill same body alias code.
10215         (cgraph_node_for_asm): Likewise.
10216         (cgraph_remove_same_body_alias): Remove.
10217         (cgraph_remove_node): Kill same body alias code.
10218         (cgraph_mark_address_taken_node): Mark also the aliased function
10219         as having address taken.
10220         (dump_cgraph_node): Dump same body aliases.
10221         (cgraph_for_node_thunks_and_aliases): Update for new alias
10222         representation.
10223         (cgraph_for_node_and_aliases): Likewise.
10224         * cgraph.h (same_body): Kll pointer.
10225         (same_body_alias): Update comment.
10226         (same_body_aliases_done): Declare.
10227         (cgraph_remove_same_body_alias): Remove declaration.
10228         (cgraph_create_function_alias): Declare.
10229         (cgraph_process_same_body_aliases): Declare.
10230         (cgraph_function_with_gimple_body_p): Check for alias.
10231         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
10232         (cgraph_alias_aliased_node): New function.
10233         (cgraph_function_node): Update for new aliases.
10234         (cgraph_function_or_thunk_node): Likewise.
10235         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
10236         (inline_call): Remove dead aliases.
10237         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
10238         name hack for same body aliases.
10239         (clone_of_p): Look through aliases.
10240         (verify_cgraph_node): Verify aliases.
10241         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
10242         (cgraph_process_same_body_aliases): New function.
10243         (process_function_and_variable_attributes): Disable weakref warning on
10244         alias.
10245         (cgraph_analyze_functions): Handle aliases.
10246         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
10247         (assemble_thunks): Rename to ...
10248         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
10249         (cgraph_expand_function): Remove alias output code.
10250         (cgraph_output_in_order): Skip aliases.
10251         (cgraph_preserve_function_body_p): Aliases don't need preserving.
10252         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
10253         (ipa_record_reference): Do not assert on alias references.
10254         (ipa_ref_has_aliases_p): New function.
10255         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
10256         (ipa_ref_has_aliases_p): Declare.
10257         * lto-cgraph.c (lto_output_node): Handle aliases.
10258         (input_node): Likewise.
10259         * lto-streamer-out.c (lto_output): Skip aliases.
10260         (produce_symtab): Kill same_body_alias code.
10261         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
10262         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
10263         * ipa-inline.c (update_caller_keys): Walk aliases.
10264         (inline_small_functions): Fix thinko in previous patch.
10265         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
10266         (function_and_variable_visibility): Do not walk same body aliases.
10267         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
10268         (ipa_pta_execute): Use it.
10269
10270 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10271
10272         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
10273         (*vec_dupv2df): Rename from vec_dupv2df.
10274         (vec_dupv2df): New expander.
10275
10276 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10277
10278         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
10279
10280 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10281
10282         * config/i386/i386.md: Use default value in "isa" attribute.
10283         * config/i386/sse.md: Ditto.
10284         * config/i386/mmx.md: Ditto.
10285
10286 2011-06-10  Wei Guozhi  <carrot@google.com>
10287
10288         PR target/45335
10289         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
10290         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
10291         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
10292         related peephole2.
10293         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
10294         related peephole2.
10295         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
10296         (arm_legitimate_ldrd_p): New prototype.
10297         (arm_output_ldrd): New prototype.
10298         * config/arm/arm.c (arm_check_ldrd_operands): New function.
10299         (arm_legitimate_ldrd_p): New function.
10300         (arm_output_ldrd): New function.
10301
10302 2011-06-10  David Li  <davidxl@google.com>
10303
10304         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10305         * passes.c (passr_eq): New function.
10306         (create_pass_tab): New function.
10307         (pass_traverse): New function.
10308         (dump_one_pass): New function.
10309         (dump_pass_list): New function.
10310         (dump_passes): New function.
10311
10312 2011-06-10  Jan Hubicka  <jh@suse.cz>
10313
10314         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
10315         setting the nothrow flag.
10316         * ipa-reference.c (propagate): Skip aliases.
10317         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
10318         (propagate_nothrow): Skip aliases; do not update cgraph.
10319         (local_pure_const): Do not update cgraph.
10320         * tree-profile.c (tree_profiling): Do fixup_cfg.
10321
10322 2011-06-10  Jan Hubicka  <jh@suse.cz>
10323
10324         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
10325         (cgraph_local_node_p): ... here; handle aliases.
10326         (has_addr_references_p): Break out from ...;
10327         (cgraph_remove_unreachable_nodes) ... here.
10328
10329 2011-06-10  Jan Hubicka  <jh@suse.cz>
10330
10331         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
10332         * common.opt (flag_inline_functions_called_once): Do not
10333         initialize to 1.
10334
10335 2011-06-10  Jan Hubicka  <jh@suse.cz>
10336
10337         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
10338         (ipcp_initialize_node_lattices): Do not deal with aliases;
10339         Do not try to propagate through thunks.
10340         (ipcp_change_tops_to_bottom): Do not deal with aliases.
10341
10342 2011-06-10  Jan Hubicka  <jh@suse.cz>
10343
10344         * ipa-prop.c (ipa_write_node_info): Stream jump functions
10345         for indirect calls.
10346         (ipa_read_node_info): Likewise.
10347
10348 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10349
10350         PR lto/49302
10351         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
10352         (build_and_insert_call): Likewise.
10353         (build_and_insert_ref): New.
10354         (gimple_expand_builtin_pow): Minor cleanup.
10355         (gimple_expand_builtin_cabs): New.
10356         (execute_cse_sincos): Add case for BUILT_IN_CABS.
10357
10358 2011-06-10  Jan Hubicka  <jh@suse.cz>
10359
10360         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
10361         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
10362         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
10363         (ipcp_propagate_stage): Skip aliases when propagating.
10364         (ipcp_need_redirect_p): Skip aliases.
10365         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
10366         collect_callers_of_node.
10367         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
10368         for aliases.
10369         (ipa_compute_jump_functions): Look through aliases.
10370
10371 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10372
10373         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
10374
10375 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10376
10377         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
10378         Adjust comments.
10379         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
10380
10381 2011-06-10  Jan Hubicka  <jh@suse.cz>
10382
10383         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
10384         Update call of gimple_get_virt_method_for_binfo.
10385         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
10386         refuse_thunks parameter.
10387         (gimple_fold_call): Update.
10388         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
10389
10390 2011-06-10  Jan Hubicka  <jh@suse.cz>
10391
10392         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
10393         (not_all_callers_have_enough_arguments_p): ... this one; turn into
10394         worker for cgraph_for_node_and_aliases.
10395         (convert_callers_for_node): Break out from ...
10396         (convert_callers): ... here.
10397         (modify_function): Use collect_callers_of_node.
10398         (ipa_early_sra): Use cgraph_for_node_and_aliases.
10399
10400 2011-06-10  Richard Guenther  <rguenther@suse.de>
10401
10402         PR tree-optimization/49361
10403         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
10404         when not already in gimple form.
10405
10406 2011-06-10  Richard Guenther  <rguenther@suse.de>
10407
10408         PR bootstrap/49344
10409         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
10410         FOR_EACH_PHI_OR_STMT_USE.
10411
10412 2011-06-10  Jan Hubicka  <jh@suse.cz>
10413
10414         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
10415         (clone_inlined_nodes): ... here.
10416         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
10417         to real destination prior inlining.
10418         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
10419         can_early_inline_edge_p, want_early_inline_function_p,
10420         want_early_inline_function_p, want_inline_small_function_p,
10421         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
10422         edge_badness, update_all_callee_keys, lookup_recursive_calls,
10423         add_new_edges_to_heap, inline_small_functions, flatten_function,
10424         inline_always_inline_functions, early_inline_small_functions): Use
10425         cgraph_function_or_thunk_node.
10426         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
10427         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
10428         (do_estimate_edge_growth_1): Break out from ...
10429         (do_estimate_growth) ... here; walk aliases.
10430         (inline_generate_summary): Skip aliases.
10431
10432 2011-06-10  Richard Guenther  <rguenther@suse.de>
10433
10434         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
10435         forward when combining, visit inserted stmts when a stmt was changed.
10436
10437 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
10438
10439         * tree.h (error_operand_p): Add.
10440         * dbxout.c (dbxout_type_fields): Use the latter.
10441         * c-decl.c (add_stmt): Likewise.
10442         * gimplify.c (omp_add_variable, omp_notice_variable,
10443         gimplify_scan_omp_clauses): Likewise.
10444
10445 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
10446
10447         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
10448         when a value is actually passed in regs.
10449
10450 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
10451             Laurent Rougé  <laurent.rouge@menta.fr>
10452
10453         * doc/invoke.texi (SPARC options): Add -mflat.
10454         * config/sparc/sparc.opt: Likewise.
10455         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
10456         (sparc_flat_expand_prologue): Declare.
10457         (sparc_flat_expand_epilogue): Likewise.
10458         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
10459         (CPP_ENDIAN_SPEC): Replace with...
10460         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
10461         (CPP_SPEC): Adjust to above change.
10462         (EXTRA_SPECS): Likewise.
10463         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
10464         (INCOMING_REGNO): Likewise.
10465         (OUTGOING_REGNO): Likewise.
10466         (LOCAL_REGNO): Likewise.
10467         (SETUP_FRAME_ADDRESSES): Likewise.
10468         (FIXED_REGISTERS): Set 0 for %fp.
10469         (CALL_USED_REGISTERS): Likewise.
10470         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
10471         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
10472         (RETURN_ADDR_REGNUM): Define.
10473         (RETURN_ADDR_RTX): Use it.
10474         (INCOMING_RETURN_ADDR_REGNUM): Define.
10475         (INCOMING_RETURN_ADDR_RTX): Use it.
10476         (DWARF_FRAME_RETURN_COLUMN): Likewise.
10477         (EH_RETURN_REGNUM): Define.
10478         (EH_RETURN_STACKADJ_RTX): Use it.
10479         (EH_RETURN_HANDLER_RTX): Delete.
10480         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
10481         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
10482         Delete.
10483         (struct machine_function): Add frame_size, apparent_frame_size,
10484         frame_base_reg, frame_base_offset, n_global_fp_regs and
10485         save_local_in_regs_p fields.
10486         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
10487         sparc_frame_base_offset, sparc_n_global_fp_regs,
10488         sparc_save_local_in_regs_p): New macros.
10489         (sparc_option_override): Error out if -fcall-saved-REG is specified
10490         for Out registers.
10491         (eligible_for_restore_insn): Fix formatting.
10492         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
10493         (eligible_for_sibcall_delay): Likewise.
10494         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
10495         (sparc_legitimate_address_p): Adjust to above change.
10496         (save_global_or_fp_reg_p): New predicate.
10497         (return_addr_reg_needed_p): Likewise.
10498         (save_local_or_in_reg_p): Likewise.
10499         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
10500         (SORR_SAVE, SORR_RESTORE): Delete.
10501         (sorr_pred_t): New typedef.
10502         (sorr_act_t): New enum.
10503         (save_or_restore_regs): Rename to...
10504         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
10505         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
10506         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
10507         mechanism.  Add CFI information for double-word saves in 32-bit mode.
10508         (emit_adjust_base_to_offset): New function extracted from...
10509         (emit_save_or_restore_regs): ...this.  Rename the rest to...
10510         (emit_save_or_restore_regs_global_fp_regs): ...this.
10511         (emit_save_or_restore_regs_local_in_regs): New function.
10512         (gen_create_flat_frame_[123]): New functions.
10513         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
10514         (sparc_flat_expand_prologue): New function.
10515         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
10516         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
10517         (sparc_flat_expand_epilogue): New function.
10518         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
10519         (output_return): Likewise.
10520         (output_sibcall): Likewise.
10521         (sparc_output_mi_thunk): Likewise.
10522         (sparc_frame_pointer_required): Likewise.
10523         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
10524         function optimization.
10525         * config/sparc/sparc.md (flat): New attribute.
10526         (prologue): Add TARGET_FLAT handling.
10527         (save_register_window): Disable if TARGET_FLAT.
10528         (create_flat_frame_[123]): New patterns.
10529         (epilogue): Add TARGET_FLAT handling.
10530         (sibcall_epilogue): Likewise.
10531         (eh_return): New expander.
10532         (eh_return_internal): New insn and splitter.
10533         (return_internal): Add TARGET_FLAT handling.
10534         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
10535         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
10536         (nonlocal_goto): Add TARGET_FLAT handling.
10537         * config/sparc/t-elf: Add -mflat multilib.
10538         * config/sparc/t-leon: Likewise.
10539
10540 2011-06-10  Jan Hubicka  <jh@suse.cz>
10541
10542         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
10543         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
10544         (self_recursive_p): Use cgraph_function_node.
10545         (propagate_pure_const): Likewise.
10546         (propagate_nothrow): Likewise.
10547         * ipa-reference.c (ipa_reference_get_not_read_global): Use
10548         cgraph_function_node.
10549         (propagate_bits): Likewise.
10550         (propagate): Likewise.
10551
10552 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10553             Richard Earnshaw  <rearnsha@arm.com>
10554
10555         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
10556         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
10557         (*thumb2_movdi_vfp): Delete.
10558         (*arm_movdi_vfp_cortexa8): Delete.
10559         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
10560         (*movdi_vfp_cortexa8): Likewise.
10561
10562 2011-06-10  Richard Guenther  <rguenther@suse.de>
10563
10564         * stor-layout.c (initialize_sizetypes): Give names to all
10565         sizetype kinds.
10566
10567 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
10568
10569         PR tree-optimization/49318
10570         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
10571         irrelevant pattern statements.
10572
10573 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10574
10575         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
10576
10577         PR bootstrap/49354
10578         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
10579         to last assignment.
10580
10581 2011-06-09  Jan Hubicka  <jh@suse.cz>
10582
10583         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
10584         do not recompute reachable flag.
10585         (cgraph_finalize_function, cgraph_analyze_functions): Set
10586         redefined_extern_inline here.
10587
10588 2011-06-09  Jan Hubicka  <jh@suse.cz>
10589
10590         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
10591         (cgraph_only_called_directly_p): ... this one; bring offline.
10592         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10593         varpool_used_from_object_file_p): Drop names from the declaratoin.
10594         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
10595         collect_callers_of_node): New.
10596         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
10597         (cgraph_edge_recursive_p): Use cgraph_function_node.
10598         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
10599         (cgraph_node_cannot_be_local_p_1): Break out from ...
10600         (cgraph_node_can_be_local_p): ... here; walk aliases.
10601         (cgraph_for_node_thunks_and_aliases): New function.
10602         (cgraph_for_node_and_aliases): New function.
10603         (cgraph_make_node_local_1): Break out from ...
10604         (cgraph_make_node_local) ... here; use
10605         cgraph_for_node_thunks_and_aliases.
10606         (cgraph_set_nothrow_flag_1): Break out from ...
10607         (cgraph_set_nothrow_flag) ... here;
10608         use cgraph_for_node_thunks_and_aliases.
10609         (cgraph_set_const_flag_1): Break out from ...
10610         (cgraph_set_const_flag) ... here;
10611         use cgraph_for_node_thunks_and_aliases.
10612         (cgraph_set_pure_flag_1): Break out from ...
10613         (cgraph_set_pure_flag) ... here;
10614         use cgraph_for_node_thunks_and_aliases.
10615         (cgraph_propagate_frequency_1): Break out from ...
10616         (cgraph_propagate_frequency) ... here; use
10617         cgraph_for_node_thunks_and_aliases.
10618         (cgraph_used_from_object_file_p): Do not care about aliases.
10619         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
10620         New functions.
10621         (collect_callers_of_node_1, collect_callers_of_node): New functions.
10622
10623 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10624
10625         PR rtl-optimization/49154
10626         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
10627         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
10628         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
10629         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
10630         * config/cris/cris.h (cris_register_move_cost): Remove
10631         !TARGET_V32 code.  Tweak comments.
10632
10633 2011-06-09  Jan Hubicka  <jh@suse.cz>
10634
10635         * cgraphbuild.c (record_eh_tables): Mark personality function as having
10636         address taken.
10637
10638 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10639
10640         PR rtl-optimization/49154
10641         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
10642         is a matching slot in the hashtable, assign it to classes_ptr.
10643
10644         PR rtl-optimization/49154
10645         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
10646         register classes.
10647         * doc/tm.texi: Regenerate.
10648
10649 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10650
10651         PR target/49307
10652         * config/sh/sh.md (UNSPEC_CHKADD): New.
10653         (chk_guard_add): New define_insn_and_split.
10654         (symGOT_load): Use chk_guard_add instead of blockage.
10655
10656 2011-06-09  Kai Tietz  <ktietz@redhat.com>
10657
10658         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
10659
10660 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10661
10662         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
10663
10664 2011-06-09  Wei Guozhi  <carrot@google.com>
10665
10666         PR target/46975
10667         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
10668         (peephole2 for conditional move): Generate 16 bit instructions.
10669
10670 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
10671
10672         * config/i386/i386.md (*movdi_internal_rex64): Merge
10673         alternatives 6 and 8.
10674
10675 2011-06-09  David Li  <davidxl@google.com>
10676
10677         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10678         * passes.c (passr_eq): New function.
10679         (create_pass_tab): New function.
10680         (pass_traverse): New function.
10681         (dump_one_pass): New function.
10682         (dump_pass_list): New function.
10683         (dump_passes): New function.
10684
10685 2011-06-09  David Li  <davidxl@google.com>
10686
10687         * tree-complex.c (tree_lower_complex): Gate cleanup.
10688         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
10689         (execute_optimize_stdarg): Ditto.
10690         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
10691         (execute_cleanup_eh_1): Ditto.
10692         (execute_cleanup_eh): Ditto.
10693         * gcse.c (gate_rtl_pre): Ditto.
10694         (execute_rtl_pre): Ditto.
10695         * except.c (finish_eh_generation): Ditto.
10696         (convert_to_eh_region_ranges): Ditto.
10697         * cprop.c (one_cprop_pass): Ditto.
10698
10699 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
10700
10701         PR target/48673
10702         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
10703         in all basic blocks.
10704
10705 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10706
10707         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
10708         (HAVE_ENABLE_EXECUTE_STACK): Define.
10709         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
10710         (HAVE_ENABLE_EXECUTE_STACK): Define.
10711         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
10712         (HAVE_ENABLE_EXECUTE_STACK): Define.
10713         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
10714         (ENABLE_EXECUTE_STACK): Remove.
10715         (HAVE_ENABLE_EXECUTE_STACK): Define.
10716         [IN_LIBGCC2]: Don't include <windows.h>.
10717         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10718         (HAVE_ENABLE_EXECUTE_STACK): Define.
10719         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
10720         (HAVE_ENABLE_EXECUTE_STACK): Define.
10721         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
10722         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
10723         (HAVE_ENABLE_EXECUTE_STACK): Define.
10724         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
10725         (HAVE_ENABLE_EXECUTE_STACK): Define.
10726         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
10727         (HAVE_ENABLE_EXECUTE_STACK): Define.
10728         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10729         (HAVE_ENABLE_EXECUTE_STACK): Define.
10730         * config/alpha/alpha.c (alpha_trampoline_init): Test
10731         HAVE_ENABLE_EXECUTE_STACK.
10732         * config/i386/i386.c (ix86_trampoline_init): Likewise.
10733         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10734         (sparc64_initialize_trampoline): Likewise.
10735         * libgcc2.c [L_enable_execute_stack]: Remove.
10736         * system.h (ENABLE_EXECUTE_STACK): Poison.
10737         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
10738         * doc/tm.texi: Regenerate.
10739         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
10740
10741 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
10742
10743         PR middle-end/49308
10744         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
10745         variable.  After resetting and rescanning insn continue with previous
10746         statement.
10747
10748 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10749
10750         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
10751         (gcc_cv_ld_hidden): Likewise.
10752         * configure: Regenerate.
10753         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
10754         (ix86_stack_protect_fail): Mark unused.
10755         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
10756         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
10757         [TARGET_MACHO]: Don't define.
10758         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
10759         (TARGET_STACK_PROTECT_FAIL): Likewise.
10760         (rs6000_stack_protect_fail): Mark unused.
10761         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
10762         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
10763
10764 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10765
10766         * varasm.c (get_section): Print location of other conflict
10767         for section conflicts.
10768
10769 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10770
10771         * config/i386/driver-i386.c (host_detect_local_cpu):
10772         Add model 0x2d Intel CPU.
10773
10774 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10775
10776         * reginfo.c (global_regs_decl): Add.
10777         (globalize_reg): Add decl parameter. Compute location.  Pass location
10778         to warnings and add inform. Store decl in global_regs_decl.
10779         * rtl.h (globalize_reg): Update prototype.
10780         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
10781
10782 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
10783
10784         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
10785
10786 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10787
10788         PR target/49305
10789         * config/sh/predicates.md (general_movsrc_operand): Check
10790         mode for memory with indexed address for QI and HImode.
10791         (general_movdst_operand): Likewise.
10792
10793 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10794
10795         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
10796
10797 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
10798
10799         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
10800         (num_ssa_operands): Likewise.
10801         (op_iter_init_phiuse): Forward-declare.
10802         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
10803
10804 2011-06-08  Nick Clifton  <nickc@redhat.com>
10805
10806         * doc/invoke.texi (ARM Options): Update description of
10807         -mthumb-interwork.
10808
10809 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
10810
10811         * config/i386/driver-i386.c (host_detect_local_cpu): Support
10812         unknown Intel family 0x6 CPUs.
10813
10814 2011-06-08  Martin Jambor  <mjambor@suse.cz>
10815
10816         * tree-sra.c (mark_rw_status): Removed.
10817         (analyze_access_subtree): New parameter parent instead of
10818         mark_read and mark_write, propagate from that.
10819
10820 2011-06-08  Julian Brown  <julian@codesourcery.com>
10821
10822         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
10823         for double-precision helper functions in hard-float mode if only
10824         single-precision arithmetic is supported in hardware.
10825
10826 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
10827
10828         PR rtl-optimization/49303
10829         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
10830         code_motion_path_driver returned 0 or 1.
10831         (sel_region_finish): Clear h_d_i_d.
10832
10833 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10834
10835         * config/sh/sh.c (prepare_move_operands): Set pic register
10836         appropriately for global and local dynamic tls models even
10837         if flag_pic is unset.
10838
10839 2011-06-07  Jason Merrill  <jason@redhat.com>
10840
10841         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
10842
10843 2011-06-07  Xinliang David Li  <davidxl@google.com>
10844         * passes.c (enable_disable_pass): Handle assembler name.
10845         (is_pass_explicitly_enabled_or_disabled): Ditto.
10846
10847 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10848
10849         PR tree-optimization/48497
10850         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
10851
10852 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10853
10854         PR tree-optimization/46728
10855         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
10856         to use gimple_val_nonnegative_real_p.
10857         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
10858         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
10859
10860 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
10861
10862         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
10863
10864 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
10865
10866         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
10867         constant vectors.
10868
10869 2011-06-07  Richard Guenther  <rguenther@suse.de>
10870
10871         * stor-layout.c (initialize_sizetypes): Initialize all
10872         sizetypes based on target definitions.
10873         (set_sizetype): Remove.
10874         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
10875         * tree.h (set_sizetype): Remove.
10876
10877 2011-06-07  Nick Clifton  <nickc@redhat.com>
10878
10879         * config.gcc: Unify V850 architecture options and add support for
10880         newer V850 architectures.
10881         * config/v850/t-v850e: Delete.
10882
10883 2011-06-07  Richard Guenther  <rguenther@suse.de>
10884
10885         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
10886         Call set_sizetype from here.
10887
10888 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
10889
10890         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
10891         (*maddhisi4tb, *maddhisi4tt): New define_insns.
10892
10893 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
10894             Andrew Stubbs  <ams@codesourcery.com>
10895
10896         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
10897         multiplies.
10898         * doc/md.texi (Canonicalization of Instructions): Document widening
10899         multiply canonicalization.
10900
10901 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
10902
10903         PR gcov-profile/49299
10904         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
10905
10906 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
10907
10908         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
10909         a pointer.
10910         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
10911         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
10912         vect_recog_pow_pattern): Likewise.
10913         (vect_pattern_recog_1): Remove declaration.
10914         (widened_name_p): Remove declaration.  Add new argument to specify
10915         whether to check that both types are either signed or unsigned.
10916         (vect_recog_widen_mult_pattern): Update documentation.  Handle
10917         unsigned patterns and multiplication by constants.
10918         (vect_pattern_recog_1): Update vect_recog_func references.  Use
10919         statement information from the statement returned from pattern
10920         detection functions.
10921         (vect_pattern_recog): Update vect_recog_func reference.
10922         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
10923         multiplication by a constant use the type of the other operand.
10924
10925 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
10926
10927         PR rtl-optimization/49145
10928         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
10929
10930 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
10931
10932         PR debug/49262
10933         * dwarf2out.c (native_encode_initializer): Decrement count in each
10934         iteration.
10935
10936         PR debug/49294
10937         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
10938         non-MODE_INT modes.
10939
10940         PR c++/49264
10941         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
10942         if stmt folded into nothing.
10943         * tree-inline.c (fold_marked_statements): If a builtin at the end of
10944         a bb folded into nothing, just update cgraph edges and move to next bb.
10945         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
10946         to be NULL.  Don't compute count and frequency if new_call is NULL.
10947
10948 2011-06-04  Diego Novillo  <dnovillo@google.com>
10949
10950         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
10951         (cgraph.o): Likewise.
10952         (cgraphunit.o): Likewise.
10953         * cgraphunit.c: Include lto-streamer.h
10954         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
10955         if LTO is enabled.
10956         * lto-streamer-in.c (unpack_value_fields): Call
10957         streamer_hooks.unpack_value_fields if set.
10958         (lto_materialize_tree): For unhandled nodes, first try to
10959         call lto_streamer_hooks.alloc_tree, if it exists.
10960         (lto_input_ts_decl_common_tree_pointers): Move reading of
10961         DECL_INITIAL to lto_streamer_read_tree.
10962         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
10963         (lto_streamer_read_tree): New.
10964         (lto_reader_init): Rename from lto_init_reader.
10965         Move initialization code to lto/lto.c.
10966         * lto-streamer-out.c (pack_value_fields): Call
10967         streamer_hooks.pack_value_fields if set.
10968         (lto_output_tree_ref): For tree nodes that are not normally indexable,
10969         call streamer_hooks.indexable_with_decls_p before giving up.
10970         (lto_output_ts_decl_common_tree_pointers): Move handling
10971         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
10972         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
10973         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
10974         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
10975         (lto_streamer_write_tree): New.
10976         (lto_output): Call lto_streamer_init directly.
10977         (lto_writer_init): Remove.
10978         * lto-streamer.c (streamer_hooks): New.
10979         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
10980         instead of lto_preload_common_nodes.
10981         (lto_is_streamable): Move from lto-streamer.h
10982         (lto_streamer_hooks_init): New.
10983         (streamer_hooks): New.
10984         (streamer_hooks_init): New.
10985         * lto-streamer.h (struct output_block): Forward declare.
10986         (struct lto_input_block): Likewise.
10987         (struct data_in): Likewise.
10988         (struct bitpack_d): Likewise.
10989         (struct streamer_hooks): Declare.
10990         (streamer_hooks): Declare.
10991         (lto_streamer_hooks_init): Declare.
10992         (lto_streamer_write_tree): Declare.
10993         (lto_streamer_read_tree): Declare.
10994         (streamer_hooks_init): Declare.
10995         (lto_is_streamable): Move to lto-streamer.c
10996
10997 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10998
10999         * longlong.h (smul_ppmm): The resulting register pair contains the
11000         higher order word first.
11001
11002 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11003
11004         PR tree-optimization/46728
11005         * builtins.c (powi_table): Remove.
11006         (powi_lookup_cost): Remove.
11007         (powi_cost): Remove.
11008         (expand_powi_1): Remove.
11009         (expand_powi): Remove.
11010         (expand_builtin_pow_root): Remove.
11011         (expand_builtin_pow): Remove.
11012         (expand_builtin_powi): Eliminate handling of constant exponent.
11013         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
11014
11015 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11016
11017         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
11018
11019 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11020
11021         * dce.c (reset_unmarked_insns_debug_uses): New.
11022         (delete_unmarked_insns): Skip debug insns.
11023         (prescan_insns_for_dce): Likewise.
11024         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
11025         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
11026         active reg can be found.
11027         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
11028         (convert_regs_1): Use it.
11029
11030 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11031
11032         * tree-pretty-print.c (dump_function_header): Add flags.
11033         Don't dump decl_uid with nouid.
11034         * tree-pretty-print.h (dump_function_header): Adjust.
11035         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
11036         * passes.c (pass_init_dump_file): Pass dump_flags on.
11037         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
11038
11039 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11040
11041         PR bootstrap/49270
11042         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
11043
11044 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
11045
11046         PR tree-optimization/49243
11047         * calls.c (setjmp_call_p): Also check if fndecl has the
11048         returns_twice attribute.
11049
11050 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11051
11052         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
11053         -ffast-math etc.
11054
11055 2011-06-06  Richard Henderson  <rth@redhat.com>
11056             Georg-Johann Lay  <avr@gjlay.de>
11057
11058         PR target/42210
11059         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
11060         New predicates.
11061         * config/avr/avr.md ("insv"): New insn expander.
11062         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
11063         "*insv.not.io", "*insv.reg"): New insns.
11064
11065 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
11066
11067         PR target/49285
11068         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
11069         to nonimmediate_operand from memory_operand for the operand that is to
11070         be forced to memory by the expander.  Lose the constraints.
11071
11072 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
11073
11074         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
11075         EH return when delayed branches are disabled.
11076
11077 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
11078
11079         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
11080         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
11081         calculation.
11082         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
11083         Simplify MODE_V1DF and MODE_V2SF handling.
11084         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
11085         Simplify MODE_SF handling.
11086
11087 2011-06-04  Jan Hubicka  <jh@suse.cz>
11088
11089         PR tree-optimization/48893
11090         PR tree-optimization/49091
11091         PR tree-optimization/49179
11092         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
11093         Bounds check.
11094
11095 2011-06-04  Jan Hubicka  <jh@suse.cz>
11096
11097         PR lto/48954
11098         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
11099         bitmaps.
11100
11101 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11102
11103         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
11104
11105 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
11106
11107         PR target/49281
11108         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
11109         to be strictly smaller than 1 << shiftcount.
11110
11111 2011-06-04  Jan Hubicka  <jh@suse.cz>
11112
11113         PR tree-optimize/48929
11114         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
11115         of empty predicate.
11116
11117 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
11118
11119         PR debug/48333
11120         * calls.c (emit_call_1): Prefer the __builtin declaration of
11121         builtin functions.
11122
11123 2011-06-03   Diego Novillo  <dnovillo@google.com>
11124
11125         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
11126         (lto_input_tree_pointers): Likewise.
11127         * lto-streamer-out.c (pack_value_fields): Likewise.
11128         (lto_output_tree_pointers): Likewise.
11129         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
11130         and OPTIMIZATION_NODE.
11131
11132 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11133
11134         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
11135         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
11136         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
11137         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
11138         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
11139         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
11140         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
11141         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
11142         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
11143         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
11144         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
11145         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
11146         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
11147         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
11148         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
11149         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
11150         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
11151         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
11152         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
11153         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
11154         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
11155         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
11156         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
11157         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
11158         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
11159         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
11160         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
11161         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
11162         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
11163         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
11164         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
11165         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
11166         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
11167         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
11168         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
11169         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
11170         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
11171         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
11172         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
11173         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
11174         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
11175         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
11176         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
11177         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
11178         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
11179         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
11180         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
11181         * system.h (MD_UNWIND_SUPPORT): Poison.
11182         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
11183         * doc/tm.texi: Regenerate.
11184         * unwind-dw2.c: Include md-unwind-support.h instead of
11185         MD_UNWIND_SUPPORT.
11186         * config/ia64/unwind-ia64.c: Likewise.
11187         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11188
11189 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
11190
11191         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
11192
11193 2011-06-03  Richard Henderson  <rth@redhat.com>
11194             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11195
11196         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
11197         (sigill_hdlr): Correct insn, insn size.
11198         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
11199
11200 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11201
11202         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
11203         t-slibgcc-dummy.
11204         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
11205         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
11206         * config/mips/t-iris: Remove.
11207         * config/mips/t-irix6: New file.
11208         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
11209
11210 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11211
11212         * Makefile.in (LIB2ADDEHDEP): Remove.
11213         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
11214         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
11215         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
11216         * config/t-darwin (LIB2ADDEHDEP): Remove.
11217         * config/t-freebsd (LIB2ADDEHDEP): Remove.
11218         * config/t-linux (LIB2ADDEHDEP): Remove.
11219
11220 2011-06-03  Diego Novillo  <dnovillo@google.com>
11221
11222         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
11223         (lto_register_var_decl_in_symtab): Likewise.
11224         (lto_register_function_decl_in_symtab): Likewise.
11225         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
11226         logic to uniquify_nodes.
11227
11228 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11229
11230         * config/alpha/t-osf5: Remove.
11231         * config/alpha/t-osf-pthread: Remove.
11232         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
11233         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
11234
11235 2011-06-03  Julian Brown  <julian@codesourcery.com>
11236
11237         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
11238         (strongarm1110): Use strongarm tuning.
11239         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
11240         * config/arm/arm.c (arm_strongarm_tune): New.
11241         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11242         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
11243         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
11244         setting, using previous defaults or 1 for Cortex-A5.
11245         (arm_option_override): Set max_insns_skipped from current tuning.
11246
11247 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
11248
11249         * doc/install.texi (Options specification): Document --with-specs.
11250
11251 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11252
11253         * config/arm/neon.md (orndi3_neon): Actually split it.
11254
11255 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11256
11257         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
11258         * var-tracking.c (reverse_op): Limite recurse depth to 5.
11259
11260 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11261
11262         PR debug/47590
11263         * target.def (delay_sched2, delay_vartrack): New.
11264         * doc/tm.texi.in: Update.
11265         * doc/tm.texi: Rebuild.
11266         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
11267         * var-tracking.c (gate_handle_var_tracking): Likewise.
11268         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
11269         (bfin_flag_var_tracking): Drop.
11270         (output_file_start): Don't save and override flag_var_tracking.
11271         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
11272         (bfin_reorg): Test original variables.
11273         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11274         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
11275         (ia64_flag_var_tracking): Drop.
11276         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11277         (ia64_file_start): Don't save and override flag_var_tracking.
11278         (ia64_override_options_after_change): Ditto
11279         flag_schedule_insns_after_reload.
11280         (ia64_reorg): Test original variables.
11281         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
11282         (picochip_flag_var_tracking): Drop.
11283         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11284         (picochip_option_override): Don't save and override
11285         flag_schedule_insns_after_reload.
11286         (picochip_asm_file_start): Ditto flag_var_tracking.
11287         (picochip_reorg): Test original variables.
11288         * config/spu/spu.c (spu_flag_var_tracking): Drop.
11289         (TARGET_DELAY_VARTRACK): Define.
11290         (spu_var_tracking): New.
11291         (spu_machine_dependent_reorg): Call it.
11292         (asm_file_start): Don't save and override flag_var_tracking.
11293
11294 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
11295
11296         PR target/49163
11297         * config/sh/predicates.md (general_movsrc_operand): Return 0
11298         for memory and memory subreg of which address is an invalid
11299         indexed address for QI and HImode.
11300         (general_movdst_operand): Likewise.
11301
11302 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11303
11304         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
11305         edges only, when there is a non-local label in the function.
11306         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
11307
11308 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11309
11310         * config/i386/constraints.md (Y3): New register constraint.
11311         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
11312         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
11313         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
11314         *sse2_interleave_lowv2df.
11315
11316 2011-06-02  Julian Brown  <julian@codesourcery.com>
11317
11318         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
11319         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
11320         (arm_cortex_a5_tune): New.
11321
11322 2011-06-02  Julian Brown  <julian@codesourcery.com>
11323
11324         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
11325         * config/arm/arm.c (arm_default_branch_cost): New.
11326         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11327         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
11328         (arm_fa726_tune): Set branch_cost field using
11329         arm_default_branch_cost.
11330         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
11331         current_tune structure.
11332         * dojump.c (tm_p.h): Include file.
11333
11334 2011-06-02  Julian Brown  <julian@codesourcery.com>
11335
11336         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
11337         tuning.
11338         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
11339         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
11340         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
11341         field.
11342         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
11343         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
11344         (arm_fa726te_tune): Add prefer_constant_pool setting.
11345         (arm_v6t2_tune, arm_cortex_tune): New.
11346         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
11347         prefer_constant_pool setting.
11348
11349 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11350
11351         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
11352         switch statement.
11353         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
11354         (*movdf_internal) <case 6,7,8>: Ditto.
11355
11356         * config/i386/constraints.md (Y4): New register constraint.
11357         * config/i386/sse.md (vec_set<mode>_0): Merge with
11358         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
11359         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
11360         *vec_extractv2di_1_sse.
11361         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
11362         and *vec_concatv2di_rex64_sse.
11363
11364 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
11365
11366         PR target/48807
11367         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
11368         of cgraph_local_info for null before attempting to use it.
11369
11370 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11371
11372         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
11373         (current_function_dynamic_alloc_count): Delete.
11374         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
11375         (expand_builtin_nonlocal_goto): Remove obsolete comment.
11376         (expand_builtin_update_setjmp_buf): Remove dead code.
11377         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
11378         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
11379         support.
11380         * function.c (instantiate_virtual_regs): Likewise.
11381         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
11382         for a block with a single abnormal incoming edge.
11383         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
11384         (SETJMP_VIA_SAVE_AREA): Delete.
11385         * config/sparc/sparc-protos.h (load_got_register): Declare.
11386         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
11387         (load_got_register): Make global.
11388         (sparc_frame_pointer_required): Add 'static'.
11389         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
11390         (sparc_builtin_setjmp_frame_value): New function.
11391         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
11392         (save_stack_nonlocal): New expander.
11393         (restore_stack_nonlocal): Likewise.
11394         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
11395         (nonlocal_goto_internal): New insn.
11396         (goto_handler_and_restore): Delete.
11397         (builtin_setjmp_setup): Likewise.
11398         (do_builtin_setjmp_setup): Likewise.
11399         (setjmp): Likewise.
11400         (builtin_setjmp_receiver): New expander.
11401
11402 2011-06-01  David Li  <davidxl@google.com>
11403
11404         PR middle-end/49261
11405         * tree-pretty-print.c (dump_function_header): Format cleanup.
11406
11407 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
11408
11409         PR target/49238
11410         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
11411         needed when original operands are used for msw_skip comparison.
11412
11413 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11414
11415         PR debug/49250
11416         * var-tracking.c (add_uses, add_stores): Don't call
11417         cselib_subst_to_values on ENTRY_VALUE.
11418
11419 2011-06-01  Diego Novillo  <dnovillo@google.com>
11420
11421         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
11422         output_record_start with LTO_null instead of output_zero.
11423         (lto_output_ts_binfo_tree_pointers): Likewise.
11424         (lto_output_tree): Likewise.
11425         (output_eh_try_list): Likewise.
11426         (output_eh_region): Likewise.
11427         (output_eh_lp): Likewise.
11428         (output_eh_regions): Likewise.
11429         (output_bb): Likewise.
11430         (output_function): Likewise.
11431         (output_unreferenced_globals): Likewise.
11432         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
11433         instead of NUM_TREE_CODES.
11434         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
11435         (lto_output_int_in_range): Change << to >> when shifting VAL.
11436
11437 2011-06-01  Diego Novillo  <dnovillo@google.com>
11438
11439         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
11440         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
11441
11442 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11443
11444         PR target/45074
11445         * optabs.h (valid_multiword_target_p): Declare.
11446         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
11447         doing multi-word operations.
11448         * optabs.c (expand_binop): Likewise.
11449         (expand_doubleword_bswap): Likewise.
11450         (expand_absneg_bit): Likewise.
11451         (expand_unop): Likewise.
11452         (expand_copysign_bit): Likewise.
11453         (multiword_target_p): New function.
11454
11455 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11456
11457         PR rtl-optimization/48830
11458         PR rtl-optimization/48808
11459         PR rtl-optimization/48792
11460         * reload.c (push_reload): Check contains_reg_of_mode.
11461         * reload1.c (strip_paradoxical_subreg): New function.
11462         (gen_reload_chain_without_interm_reg_p): Use it to handle
11463         paradoxical subregs.
11464         (emit_output_reload_insns, gen_reload): Likewise.
11465
11466 2011-06-01  David Li  <davidxl@google.com>
11467
11468         * predict.c : Change pass name
11469         * ipa.c: Ditto.
11470         * dce.c: Ditto.
11471         * tree-profile.c: Ditto.
11472         * except.c: Ditto.
11473
11474 2011-06-01  David Li  <davidxl@google.com>
11475
11476         * tree-pretty-print.c (dump_function_header): New function.
11477         * final.c (rest_of_clean_state): Use header dumper.
11478         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
11479         * passes.c (pass_init_dump_file): Use header dumper.
11480
11481 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11482
11483         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
11484         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
11485         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
11486         New functions.
11487         (mem_loc_descriptor): Use them.
11488
11489         * var-tracking.c (create_entry_value): New function.
11490         (vt_add_function_parameter): Use it.
11491
11492 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11493
11494         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
11495         Include <signal.h>, <ucontext.h>.
11496         (sigill_caught): Define.
11497         (sigill_hdlr): New function.
11498         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
11499         insns can be executed.
11500         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
11501         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
11502
11503 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11504
11505         * config/t-slibgcc-darwin: Move to ...
11506         * config/t-slibgcc-dummy: ... this.  Clarify comments.
11507         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
11508         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
11509         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
11510         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
11511         Remove i386/t-crtstuff from tmake_file.
11512         (i[34567]86-*-solaris2*): Remove t-svr4,
11513         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
11514         t-slibgcc-dummy.
11515         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
11516         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
11517         sparc/t-crtfm from tmake_file.
11518         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
11519         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
11520         Remove extra_parts.
11521         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
11522         * config/i386/t-nwld (SHLIB_LINK): Remove.
11523         * config/i386/t-rtems-i386: Rename to ...
11524         * config/i386/t-rtems: ... this.
11525         ($(T)crti.o, $(T)crtn.o): Remove.
11526         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
11527         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
11528         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
11529         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
11530         EXTRA_MULTILIB_PARTS): Remove.
11531         * config/sparc/t-sol2-64: Likewise.
11532         * config/sparc/t-sol2: Remove.
11533         * config/sparc/t-crtin: Remove.
11534         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
11535         * config/i386/gmon-sol2.c: Remove.
11536         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
11537         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
11538         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
11539         * config/i386/sol2-gc1.asm: Remove.
11540         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
11541         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
11542         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
11543         * config/t-slibgcc-sld: Remove.
11544
11545 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11546
11547         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
11548         base_type_for_mode with op_mode instead of mode.
11549
11550 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
11551
11552         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
11553         Cortex-A15.
11554         * config/arm/arm-tune.md: Regenerate.
11555         * config/arm/arm-tables.opt: Regenerate.
11556         * config/arm/arm.c (FL_DIV): Rename...
11557         (FL_THUMB_DIV): ... to this.
11558         (FL_ARM_DIV): Define.
11559         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
11560         (arm_arch_hwdiv): Remove.
11561         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
11562         (arm_issue_rate): Add cortexr5.
11563         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
11564         __ARM_ARCH_EXT_IDIV__.
11565         (TARGET_IDIV): Define.
11566         (arm_arch_hwdiv): Remove.
11567         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
11568         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
11569         (divsi3, udivsi3): New patterns.
11570         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
11571         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
11572
11573 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11574
11575         * ipa-utils.c (ipa_dfs_info): New field scc_no.
11576         * ipa-utils.c (searchc): Set scc_no.
11577
11578 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11579
11580         * ipa-utils.c (searchc_env): New field allow_overwritable.
11581         (searchc): do not ignore edges to overwritable nodes if indicated
11582         by env->allow_overwritable.
11583         (ipa_reduced_postorder): Set env.allow_overwritable.
11584
11585 2011-06-01  Richard Guenther  <rguenther@suse.de>
11586
11587         * tree.c (free_lang_data): Do not reset boolean_type_node nor
11588         char_type_node.
11589         * lto-streamer.c (lto_record_common_node): Take node pointer,
11590         do not register types.
11591         (lto_preload_common_nodes): Explicitly skip preloading nodes
11592         that differ between frontends.
11593
11594 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11595
11596         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
11597         NON_FLOAT_REGS.
11598
11599 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11600
11601         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
11602         parameter value for dump. Dump cost on outermost call only.
11603         (rs6000_memory_move_cost): Dump cost on outermost call only.
11604
11605 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11606
11607         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
11608         DW_OP_GNU_convert ops.
11609
11610         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
11611         cselib_preserve_constants.
11612         (cselib_lookup_1): If cselib_preserve_constants,
11613         a new VALUE is being created for REG and there is a VALUE for the
11614         same register in wider mode, add another loc with lowpart SUBREG of
11615         the wider VALUE.
11616         (cselib_subst_to_values): Handle ENTRY_VALUE.
11617         * var-tracking.c  (replace_expr_with_values): Return NULL for
11618         ENTRY_VALUE too.
11619         * dwarf2out.c (convert_descriptor_to_signed): New function.
11620         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
11621         instead of two shifts.
11622         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
11623         the right mode if needed.
11624         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
11625         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
11626         convert_descriptor_to_signed.
11627         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
11628         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
11629
11630         PR target/48688
11631         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
11632
11633 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11634
11635         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
11636         of X87MODEI12 and SWI48x instead of SSEMODEI24.
11637         (SWI248x): New mode iterator, rename from X87MODEI.
11638         (X87MODEI): Remove mode iterator.
11639         (X87MODEI12): Ditto.
11640         (SSEMODEI24): Ditto.
11641
11642 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11643
11644         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
11645         * doc/invoke.texi: Document max-vartrack-expr-depth.
11646         * var-tracking.c (EXPR_DEPTH): New.
11647         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
11648
11649 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11650
11651         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
11652         * config/i386/sse.md: Add n to negated FMA pattern names.
11653
11654 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11655
11656         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
11657
11658 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11659
11660         * gengtype-state.c (read_state_params_structs): Initialize previous.
11661
11662 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11663
11664         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
11665         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
11666
11667 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11668
11669         * config/i386/i386.md (*movtf_internal): Avoid allocating general
11670         registers.  Penalize F*r->o alternative to prevent partial memory
11671         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
11672         CONST_DOUBLE immediates when optimizing function for size.  Do not move
11673         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11674         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
11675         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
11676         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
11677         alternatives.
11678         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
11679
11680         (fp_register_operand splitters): Use fp_register_operand
11681         constraint.  Do not use FP_REG_P in insn condition.
11682         (any_fp_register_operand splitters): Use any_fp_register_operand
11683         constraint.  Do not use ANY_FP_REG_P in insn condition.
11684
11685 2011-05-31  Jan Hubicka  <jh@suse.cz>
11686
11687         * cgraph.h (cgraph_inline_failed_t): Give enum a name
11688         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
11689         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
11690         (lto_output_edge): Use output_enum and var_len_unsigned.
11691         (lto_output_varpool_node): Likewise.
11692         (input_overwrite_node): Do not take resolution parameter;
11693         extract it from a bitpack.
11694         (input_node): Do not read resolution; use input_enum and
11695         var_len_unsigned.
11696         (input_varpool_node): Likewise.
11697         (input_edge): Likewise.
11698         (input_cgraph_1): Likewise.
11699
11700 2011-05-31  Richard Guenther  <rguenther@suse.de>
11701
11702         * gimple.c (gimple_register_canonical_type): Do not register
11703         any types via gimple_register_type.
11704
11705 2011-05-31  Jan Hubicka  <jh@suse.cz>
11706
11707         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
11708         of thunks.
11709
11710 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11711
11712         PR rtl-optimization/49235
11713         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
11714         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
11715
11716 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
11717
11718         PR tree-optimization/49093
11719         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
11720         data references.
11721
11722 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
11723
11724         PR debug/49047
11725         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
11726         for concrete functions containing the code of cloned functions.
11727
11728 2011-05-31  Richard Guenther  <rguenther@suse.de>
11729
11730         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
11731         to ...
11732         (forward_propagate_into_comparison_1): ... this.
11733         (forward_propagate_comparison): Rename to ...
11734         (forward_propagate_into_comparison): ... this.  Split out
11735         real forward propagation code to ...
11736         (forward_propagate_comparison): ... this.
11737         (forward_propagate_into_gimple_cond): Remove looping.
11738         (forward_propagate_into_cond): Likewise.
11739         (simplify_not_neg_expr): Return whether we have done something.
11740         (simplify_gimple_switch): Likewise.
11741         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
11742         (ssa_forward_propagate_and_combine): ... this.  Re-structure
11743         to do a forward forward-propagation walk on BBs and a backward
11744         stmt combining walk on BBs.  Consistently re-scan changed statements.
11745         (pass_forwprop): Adjust.
11746
11747 2011-05-30  Ian Lance Taylor  <iant@google.com>
11748
11749         * godump.c (go_format_type): Correct length of name added to
11750         obstack for anonymous field.
11751
11752 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11753
11754         PR target/49186
11755         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
11756         part of the second operand is 0.
11757
11758 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
11759
11760         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
11761         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
11762         to memory for !TARGET_MEMORY_MISMATCH_STALL.
11763         (*movdf_internal_rex64): Do not penalize F->r alternative.
11764         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
11765         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
11766         when optimizing function for size.  Do not move CONST_DOUBLEs
11767         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11768         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
11769         SUBREGs.  Do not check for MEM_P operands in the insn condition,
11770         check for ANY_FP_REGNO_P instead.
11771         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
11772         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
11773         function for speed.
11774         * config/i386/i386.c (ix86_option_override_internal): Do not
11775         set TARGET_INTEGER_DFMODE_MOVES here.
11776
11777 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
11778
11779         PR target/49168
11780         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
11781
11782 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11783
11784         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
11785         DW_TAG_rvalue_reference_type even for
11786         -gdwarf-4 -fno-debug-types-section.
11787
11788 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11789
11790         PR tree-optimization/46728
11791         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
11792         (build_and_insert_binop): New.
11793         (gimple_expand_builtin_pow): Reorder args for
11794         build_and_insert_call; use build_and_insert_binop; add more
11795         optimizations for fractional exponents.
11796
11797 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
11798
11799         PR bootstrap/49190
11800
11801         Revert:
11802         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
11803
11804         * tree.h (struct tree_identifier): Inherit from tree_typed, not
11805         tree_common.
11806         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11807         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11808         TS_BASE instead of TS_COMMON.
11809         * varasm.c (assemble_name): Remove assert.
11810
11811 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
11812
11813         * config.gcc: Keep obselete list sorted.
11814
11815 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11816             Eric Botcazou  <ebotcazou@adacore.com>
11817
11818         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
11819         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
11820         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
11821         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
11822         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
11823
11824 2011-05-30  Richard Guenther  <rguenther@suse.de>
11825
11826         * gimple.c (gimple_types_compatible_p_1): Compare record
11827         and union type members properly.
11828
11829 2011-05-30  Richard Guenther  <rguenther@suse.de>
11830
11831         PR tree-optimization/49210
11832         * ipa-split.c (split_function): Care for the case where the call
11833         result is not trivially convertible to the result holding variable.
11834
11835 2011-05-30  Richard Guenther  <rguenther@suse.de>
11836
11837         PR tree-optimization/49218
11838         * tree-vrp.c (adjust_range_with_scev): Properly check whether
11839         overflow occured.
11840
11841 2011-05-30  Richard Guenther  <rguenther@suse.de>
11842
11843         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
11844         New function split out from ...
11845         (forward_propagate_into_gimple_cond): ... here.  Adjust.
11846         (forward_propagate_into_cond): Likewise.
11847         (forward_propagate_comparison): Also propagate into
11848         comparisons on assignment RHS.  Change return value to
11849         behave similar to forward_propagate_into_cond.
11850         (tree_ssa_forward_propagate_single_use_vars): Handle
11851         strict-overflow warnings properly for forward_propagate_comparison.
11852
11853 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11854
11855         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
11856         from plugin linker.
11857         * configure: Regenerate.
11858
11859 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
11860
11861         PR tree-optimization/49199
11862         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
11863         non-reduction operands are either defined in the loop or by induction.
11864
11865 2011-05-29  Xinliang David Li  <davidxl@google.com>
11866
11867         * opts-global.c (handle_common_deferred_options): Handle new options.
11868         * passes.c (register_one_dump_file): Call register_pass_name.
11869         (execute_one_pass): Check explicit enable/disable flag.
11870         (passr_hash): New function.
11871         (passr_eq): Ditto.
11872         (register_pass_name): Ditto.
11873         (get_pass_by_name): Ditto.
11874         (pass_hash): Ditto.
11875         (pass_eq): Ditto.
11876         (enable_pass): Ditto.
11877         (disable_pass): Ditto.
11878         (is_pass_explicitly_enabled_or_disabled): Ditto.
11879
11880 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
11881
11882         * config/i386/i386.md (*movoi_internal_avx): Use
11883         standard_sse_constant_opcode for alternative 0.
11884         (*movti_internal_sse): Ditto.
11885         (*movti_internal_rex64): Use standard_sse_constant_opcode for
11886         alternative 2.
11887         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
11888         sselog1 type moves.
11889         (*movsi_internal): Ditto.
11890         (*movdi_internal): Ditto.  Add ssecvt type moves.
11891
11892 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
11893
11894         PR target/48830
11895         * rtlanal.c (simplify_subreg_regno): Adjust comment.
11896
11897 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
11898
11899         PR rtl-optimization/49095
11900         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
11901         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
11902
11903 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11904
11905         PR target/43995
11906         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
11907         recurse_p argument.  Only follow register copies if it is set,
11908         and prevent mips_find_pic_call_symbol from recursing.
11909         (mips_find_pic_call_symbol): Add a recurse_p argument.
11910         Pass it to mips_pic_call_symbol_from_set.
11911         (mips_annotate_pic_calls): Update accordingly.
11912
11913 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11914
11915         * emit-rtl.c (try_split): Use a loop to search for
11916         NOTE_INSN_CALL_ARG_LOCATIONs.
11917
11918 2011-05-29  Richard Guenther  <rguenther@suse.de>
11919
11920         PR tree-optimization/49217
11921         * ipa-pure-const.c (propagate_pure_const): Fix typos.
11922
11923 2011-05-28  Jan Hubicka  <jh@suse.cz>
11924
11925         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
11926         length.
11927         (string_slot_free): Remove
11928         (create_output_block): Initialize obstack.
11929         (destroy_output_block): Free obstack.
11930         (lto_string_index): Add PERSISTENT parameter; do not duplicate
11931         the string unless it needs to be added into the hash.
11932         (lto_output_string_with_length): Add persistent attribute;
11933         handle NULL strings.
11934         (lto_output_string): Add PERSISTENT parameter.
11935         (output_string_cst, output_identifier): Simplify.
11936         (lto_output_location_bitpack): Update.
11937         (lto_output_builtin_tree): Update.
11938         * lto-streamer.h (struct output_block): Add obstack.
11939         (lto_output_string, lto_output_string_with_length): Remove
11940         declarations; functions are static now.
11941
11942 2011-05-28  Jan Hubicka  <jh@suse.cz>
11943
11944         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
11945         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
11946         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
11947         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
11948         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
11949         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
11950         unpack_ts_decl_with_vis_value_fields,
11951         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
11952         lto_get_builtin_tree): Use enum and variable length i/o.
11953         * basic-block.h (profile_status_d): Add PROFILE_LAST.
11954         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
11955         New functions.
11956         (bp_pack_enum, bp_unpack_enum): New macros.
11957
11958 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11959
11960         * genrecog.c: Remove redundant forward declarations.
11961
11962 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11963
11964         * config.gcc: Deprecate mips*-*-openbsd*.
11965
11966 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11967
11968         PR bootstrap/49195
11969         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
11970         for match_op_dup.
11971
11972 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
11973
11974         PR middle-end/48981
11975         * gengtype.c (vec_prefix_type): New function.
11976         (note_def_vec): Use vec_prefix_type and change the length
11977         attribute to be based on the prefix.
11978         * vec.c: Include coretypes.h before vec.h.
11979         (struct vec_prefix): Remove.
11980         (vec_gc_p_reserve): Change the offsetof to sizeof.
11981         (vec_gc_p_reserve_exact): Likewise.
11982         (vec_heap_p_reserve): Likewise.
11983         (vec_heap_p_reserve_exact): Likewise.
11984         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
11985         (vec_stack_p_reserve): Change the offsetof to sizeof.
11986         (vec_stack_p_reserve_exact): Likewise.
11987         * vec.h (struct vec_prefix): New struct definition.
11988         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
11989         (VEC_T_GTY(T,B)): Likewise.
11990         (DEF_VEC_FUNC_P(T)): Use prefix field.
11991         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
11992         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
11993
11994 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11995
11996         PR tree-optimization/46728
11997         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
11998         (powi_as_mults): Add gimple_set_location.
11999         (build_and_insert_call): New.
12000         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
12001         0.5, 0.25, 0.75, 1./3., or 1./6.
12002
12003 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
12004
12005         * doc/contrib.texi: Update copyright years.
12006         (Contributors): Add Zdenek Sojka.
12007
12008 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
12009
12010         * c-decl.c (c_push_function_context): Copy the current statement
12011         list stack.
12012         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
12013         (finish_struct): Call building_stmt_list_p instead of checking
12014         cur_stmt_list.
12015         * c-parser.c (c_parser_postfix_expression): Likewise.
12016         * c-typeck.c (c_end_compound_stmt): Likewise.
12017         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
12018         * tree-iterator.c (stmt_list_cache): Change to a VEC.
12019         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
12020         (free_stmt_list): Likewise.
12021         * tree.h (struct tree_statement_list): Include typed_tree instead
12022         of tree_common.
12023         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
12024         as TS_TYPED instead of TS_COMMON.
12025
12026 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12027             Uros Bizjak  <ubizjak@gmail.com>
12028
12029         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
12030         (HAVE_AS_IX86_TLSGDPTL): Define.
12031         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
12032         (HAVE_AS_IX86_TLSLDMPLT): Define.
12033         * configure: Regenerate.
12034         * config.in: Regenerate.
12035         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
12036         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
12037         TARGET_SUN_TLS, use @tlsgdplt or @plt.
12038         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
12039         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
12040         @tlsldmplt or @plt.
12041         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
12042
12043 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12044
12045         * sched-int.h (struct _haifa_deps_insn_data): New members cond
12046         and reverse_cond.
12047         (INSN_COND, INSN_REVERSE_COND): New macros.
12048         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
12049         once.
12050         (sched_get_condition_with_rev): Cache the results, and look them up
12051         if possible.
12052         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
12053         are clobbered by the current insn.
12054         * target.def (exposed_pipline): New sched data hook.
12055         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
12056         * doc/tm.texi: Regenerate.
12057
12058 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12059
12060         PR tree-optimization/49170
12061         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
12062         sincos or cexp.
12063
12064 2011-05-27  Richard Guenther  <rguenther@suse.de>
12065
12066         PR middle-end/49189
12067         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
12068         of comparisons.
12069
12070 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12071
12072         * haifa-sched.c (sched_scan_info): Remove.
12073         (schedule_block): Call sched_extend_luids rather than sched_init_luids
12074         with NULL args.
12075         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
12076         Remove functions.
12077         (sched_scan): Remove.
12078         (sched_extend_luids): Renamed from luids_extend_insn and no longer
12079         static.  All callers changed.
12080         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
12081         static.  All callers changed.
12082         (sched_init_luids): Remove all arguments except the first.  All
12083         callers changed.  Don't use sched_scan.
12084         (haifa_init_h_i_d): Likewise.
12085         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
12086         manually rather than using sched_init_luids.  Likewise with
12087         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
12088         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
12089         rather than sched_init_luids with NULL args.
12090         * sel-sched-ir.c (new_insns): Remove variable.
12091         (sched_scan): New static function, previously in haifa-sched.c.  Remove
12092         all arguments but the first two; all callers changed.
12093         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
12094         rather than sched_init_luids.
12095         (sel_init_bbs): Remove second argument.  All callers changed.
12096         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
12097         with NULL arguments.
12098         (create_insn_rtx_from_pattern): Likewise.
12099         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
12100         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
12101         (sched_init_insn_luid, sched_extend_luids): Declare.
12102         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
12103         declarations.
12104
12105 2011-05-27  Richard Guenther  <rguenther@suse.de>
12106
12107         PR middle-end/49177
12108         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
12109         A CMP B ? (T) true : (T) false for non-integral types T again.
12110
12111 2011-05-27  Jan Hubicka  <jh@suse.cz>
12112
12113         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
12114         so 0 means NULL string.
12115         (lto_output_string_with_length): ... here.
12116         (lto_output_string, output_string_cst, output_identifier): Update
12117         handling of NULL strings.
12118         (lto_output_location_bitpack): New function.
12119         (lto_output_location): Use it.
12120         (lto_output_tree_ref): Use output_record_start.
12121         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
12122         len values.
12123         * lto-streamer-in.c (string_for_index): Break out from ...; offset
12124         values by 1.
12125         (input_string_internal): ... here;
12126         (input_string_cst, input_identifier, lto_input_string): Update handling
12127         of NULL strings.
12128         (lto_input_location_bitpack): New function
12129         (lto_input_location): Use it.
12130         (unpack_ts_type_common_value_fields): Pack align & alias in var len
12131         values.
12132         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
12133         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
12134         (bp_pack_value): Sanity check the value range.
12135         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
12136         New functions.
12137         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
12138         New functions.
12139
12140 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
12141
12142         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
12143         call_arg_location instructions down the floor.
12144
12145 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
12146
12147         PR rtl-optimization/49154
12148         * ira.c (setup_pressure_classes): Process class without sublcasses
12149         as a candidate for pressure classes.
12150
12151 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
12152
12153         PR rtl-optimization/48575
12154         * genrecog.c (position_type): New enum.
12155         (position): New structure.
12156         (decision): Use position structure instead of a string.
12157         (root_pos, peep2_insn_pos_list): New variables.
12158         (next_position, compare_positions): New functions.
12159         (new_decision): Use position structures instead of strings.
12160         (maybe_both_true): Likewise.
12161         (change_state): Likewise.
12162         (write_tree): Likewise.
12163         (make_insn_sequence): Likewise.
12164
12165 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12166
12167         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
12168         TS_BASE instead of TS_COMMON.
12169         (find_decls_types_r): Check for TS_TYPED structure before looking at
12170         TREE_TYPE.
12171         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
12172         Add chain field.
12173         (BLOCK_CHAIN): Use new chain field.
12174
12175 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
12176
12177         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
12178         moves expensive on Power7 also.
12179
12180 2011-05-26  Richard Guenther  <rguenther@suse.de>
12181
12182         * fold-const.c (fold_unary_loc): Remove bogus code.
12183
12184 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12185
12186         * tree.h (struct tree_identifier): Inherit from tree_typed, not
12187         tree_common.
12188         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12189         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12190         TS_BASE instead of TS_COMMON.
12191         * varasm.c (assemble_name): Remove assert.
12192
12193 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12194
12195         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
12196         substituted first.
12197         * libgcc-std.ver: Delete file.
12198
12199 2011-05-26  Richard Guenther  <rguenther@suse.de>
12200
12201         PR tree-optimization/48702
12202         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
12203         only when we know the base address is within bounds.
12204         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
12205         assume the base address of TARGET_MEM_REFs is in bounds.
12206
12207 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12208
12209         PR target/49099
12210         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
12211         declaration in TARGET_SOLARIS.
12212
12213 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
12214
12215         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
12216         The instruction is then expanded explicitly.
12217         (supported_compare): Callable instruction.
12218         (compare): Likewise.
12219
12220 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12221
12222         PR c++/49165
12223         * gimplify.c (shortcut_cond_r): Don't special case
12224         COND_EXPRs if they have void type on one of their arms.
12225
12226 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12227
12228         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
12229         to reduce duplication, and to achieve a slightly more logical order
12230         of operations.
12231
12232 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12233
12234         PR tree-optimization/49161
12235         * tree-vrp.c (struct case_info): New type.
12236         (compare_case_labels): Sort case_info structs instead of
12237         trees, and not primarily by CASE_LABEL uids but by
12238         label_for_block indexes.
12239         (find_switch_asserts): Put case labels into struct case_info
12240         array instead of TREE_VEC, adjust sorting, compare label_for_block
12241         values instead of CASE_LABELs.
12242
12243 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12244
12245         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
12246         ("orndi3_neon"): Likewise.
12247         ("bic<mode>3_neon"): Likewise.
12248
12249 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
12250
12251         PR tree-optimization/49038
12252         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
12253         Ensure at least one epilogue iteration if required by data
12254         accesses with gaps.
12255         * tree-vectorizer.h (struct _loop_vec_info): Add new field
12256         to mark loops that require peeling for gaps.
12257         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
12258         (vect_get_known_peeling_cost): Take peeling for gaps into
12259         account.
12260         (vect_transform_loop): Generate epilogue if required by data
12261         access with gaps.
12262         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
12263         loop as requiring an epilogue if there are gaps in the end of
12264         the strided group.
12265
12266 2011-05-25  Ian Lance Taylor  <iant@google.com>
12267
12268         * godump.c (go_format_type): Output the first field with a usable
12269         Go type, if any.
12270
12271 2011-05-25  Ian Lance Taylor  <iant@google.com>
12272
12273         * godump.c (go_format_type): Check for invalid type names, pointer
12274         target types, and struct field types.
12275
12276 2011-05-25  Jason Merrill  <jason@redhat.com>
12277
12278         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
12279
12280 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
12281
12282         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
12283
12284 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12285
12286         * config/i386/i386.md (*movqi_extv_1)): Put back
12287         "register_operand" check in "type" calculation.
12288         (*movqi_extzv_2): Likewise.
12289
12290 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12291
12292         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
12293
12294 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12295
12296         PR bootstrap/49160
12297         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
12298         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
12299         __divxc3, __divtc3): Wrap definitions in #ifndef.
12300
12301 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12302
12303         PR target/49142
12304         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
12305         "register_operand" check and replace q_regs_operand with
12306         QIreg_operand in "type" calculation.
12307         (*movqi_extv_1): Likewise.
12308         (*movqi_extzv_2_rex64): Likewise.
12309         (*movqi_extzv_2): Likewise.
12310
12311         * config/i386/predicates.md (QIreg_operand): New.
12312
12313 2011-05-25  Richard Guenther  <rguenther@suse.de>
12314
12315         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
12316         type-based offset disambiguation, streamline MEM_REF and
12317         TARGET_MEM_REF handling.
12318
12319 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12320
12321         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
12322         (bdesc_special_args): Add pause intrinsic.
12323
12324         * config/i386/i386.md (UNSPEC_PAUSE): New.
12325         (pause): Likewise.
12326         (*pause): Likewise.
12327         * config/i386/ia32intrin.h (__pause): Likewise.
12328
12329         * doc/extend.texi (X86 Built-in Functions): Add documentation for
12330         pause intrinsic.
12331
12332 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12333
12334         PR tree-optimization/46728
12335         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
12336         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
12337
12338 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
12339
12340         * tree.h (struct tree_exp): Inherit from struct tree_typed.
12341         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
12342         instead of TS_COMMON.
12343
12344 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12345
12346         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
12347         LIBGCC2_GNU_PREFIX is defined.
12348         (__N): New macro.
12349         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
12350         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
12351         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
12352         __clz_tab): Define using __N.
12353         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
12354         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
12355         * target.def (libfunc_gnu_prefix): New hook.
12356         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
12357         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
12358         * doc/tm.texi: Regenerate.
12359         * system.h (LIBGCC2_GNU_PREFIX): Poison.
12360         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
12361         account.
12362         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
12363         (init_optabs): Likewise for the bswap libfuncs.
12364         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
12365         and divide.
12366         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
12367         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
12368         * libgcc-std.ver: Remove.
12369         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
12370         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
12371         libgcc-std.ver.
12372         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12373         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
12374         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
12375         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
12376         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
12377         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12378         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12379         * config/fixed-bit.h (FIXED_OP): Define differently depending on
12380         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
12381         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
12382
12383 2011-05-25  Jan Hubicka  <jh@suse.cz>
12384
12385         * lto-streamer-out.c (output_record_start): Use lto_output_enum
12386         (lto_output_tree): Use output_record_start.
12387         * lto-streamer-in.c (input_record_start): Use lto_input_enum
12388         (lto_get_pickled_tree): Use input_record_start.
12389         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
12390         (lto_value_range_error): New function.
12391         * lto-streamer.h (lto_value_range_error): Declare.
12392         (lto_output_int_in_range, lto_input_int_in_range): New functions.
12393         (lto_output_enum, lto_input_enum): New macros.
12394
12395 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12396
12397         * common.opt (flag_stack_usage_info): New variable.
12398         (-Wstack-usage): New option.
12399         * doc/invoke.texi (Warning options): Document -Wstack-usage.
12400         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
12401         <OPT_fstack_usage>: Likewise.
12402         * toplev.c (output_stack_usage): Handle -Wstack-usage.
12403         * calls.c (expand_call): Test flag_stack_usage_info variable instead
12404         of flag_stack_usage.
12405         (emit_library_call_value_1): Likewise.
12406         * explow.c (allocate_dynamic_stack_space): Likewise.
12407         * function.c (instantiate_virtual_regs ): Likewise.
12408         (prepare_function_start): Likewise.
12409         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
12410         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12411         * config/arm/arm.c (arm_expand_prologue): Likewise.
12412         (thumb1_expand_prologue): Likewise.
12413         * config/avr/avr.c (expand_prologue): Likewise.
12414         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12415         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12416         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
12417         * config/mips/mips.c (mips_expand_prologue): Likewise.
12418         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12419         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12420         * config/s390/s390.c (s390_emit_prologue): Likewise.
12421         * config/sh/sh.c (sh_expand_prologue): Likewise.
12422         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12423         * config/spu/spu.c (spu_expand_prologue): Likewise.
12424
12425 2011-05-25  Richard Guenther  <rguenther@suse.de>
12426
12427         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
12428         (gimple_canonical_types_compatible_p): Likewise.
12429
12430 2011-05-25  Jan Hubicka  <jh@suse.cz>
12431
12432         PR middle-end/49062
12433         * ipa.c (function_and_variable_visibility): Only add to same
12434         comdat group list if DECL_ONE_ONLY.
12435
12436 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
12437
12438         PR rtl-optimization/49014
12439         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
12440
12441 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
12442
12443         PR target/49128
12444         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
12445
12446 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12447
12448         PR rtl-optimization/48757
12449         * ira-build.c (loop_with_eh_edge_p): Rename to
12450         loop_with_complex_edge_p, check edges on complexity, make function
12451         conditional.
12452         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
12453         conditional.
12454
12455 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12456
12457         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
12458         force flag_ira_share_save_slots to 0.
12459
12460 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12461
12462         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
12463         (vt_initialize): Set PROLOGUE_BB unconditionally.
12464         Add block comment about CFA_BASE_RTX machinery.
12465         Reset FP_CFA_OFFSET to -1 on all invalid paths.
12466         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
12467
12468 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12469
12470         PR objc/48187
12471         * c-parser.c (c_parser_objc_class_instance_variables): More robust
12472         parsing of syntax error in ObjC instance variable lists.  In
12473         particular, avoid an infinite loop if there is a stray ']'.
12474         Updated error message.
12475
12476 2011-05-24  Ian Lance Taylor  <iant@google.com>
12477
12478         * godump.c (go_define): Don't accept a string immediately after
12479         another operand.
12480
12481 2011-05-24  Ian Lance Taylor  <iant@google.com>
12482
12483         * godump.c (struct godump_container): Add invalid_hash field.
12484         (go_format_type): Return false if type is found in invalid_hash.
12485         (go_output_typedef): Add invalid type to invalid_hash.
12486         (go_finish): Create and delete invalid_hash.
12487
12488 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12489
12490         PR tree-optimization/46728
12491         * tree-ssa-math-opts.c (powi_table): New.
12492         (powi_lookup_cost): New.
12493         (powi_cost): New.
12494         (powi_as_mults_1): New.
12495         (powi_as_mults): New.
12496         (gimple_expand_builtin_powi): New.
12497         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
12498         (gate_cse_sincos): Remove sincos/cexp restriction.
12499
12500 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12501
12502         PR target/3746
12503         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
12504         mips-tdump native.
12505         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
12506         * mips-tdump.c: Likewise.
12507
12508 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12509
12510         PR target/49128
12511         * config/i386/driver-i386.c (host_detect_local_cpu): Always
12512         add -mno-XXX.  Handle FMA.
12513
12514 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12515
12516         PR rtl-optimization/48633
12517         * ira-build.c (loop_with_eh_edge_p): New function.
12518         (mark_loops_for_removal): Use it.
12519
12520 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12521
12522         PR rtl-optimization/48971
12523         * ira.c (setup_pressure_classes): Don't check register move cost
12524         for classes with one registers.  Don't add pressure class if there
12525         is a pressure class with the same available hard registers.
12526         Check contains_reg_of_mode.  Fix a typo in collecting
12527         temp_hard_regset.  Ignore hard registers not belonging to a class.
12528
12529 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
12530
12531         PR target/49133
12532         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
12533
12534 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12535             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12536
12537         PR gcov-profile/48845
12538         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
12539
12540 2011-05-24  Richard Guenther  <rguenther@suse.de>
12541
12542         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
12543         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
12544         (gimple_types_compatible_p_1): Adjust.
12545         (iterative_hash_canonical_type): Do not bother about complete vs.
12546         incomplete types.
12547         (gimple_canonical_types_compatible_p): Likewise.
12548
12549 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12550
12551         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
12552
12553 2011-05-24  Richard Guenther  <rguenther@suse.de>
12554
12555         PR bootstrap/49078
12556         * gimple.c (gimple_register_canonical_type): Revert
12557         previous change.
12558         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
12559         does not for a tree for the case where it matters.  Cache
12560         pointer-type alias-sets.
12561
12562 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
12563
12564         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
12565         (OBJS): Remove options.o, opts-common.o and prefix.o.
12566         (OBJS-libcommon-target): New.
12567         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
12568         (BACKEND): Include libcommon-target.a.
12569         (MOSTLYCLEANFILES): Include libcommon-target.a.
12570         (libcommon-target.a): New.
12571         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
12572         prefix.o.
12573
12574 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
12575
12576         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
12577         parts of output shared with the driver.
12578         * optc-gen.awk: Don't generate parts of output not shared with the
12579         driver.
12580         * opth-gen.awk: Remove GCC_DRIVER conditionals.
12581         * doc/options.texi (SourcerInclude): Mention options-save.c.
12582         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
12583         (OBJS): Add options-save.o.
12584         (options-save.c, options-save.o): New.
12585         (options.o): Update dependencies.
12586         (gcc-options.o): Remove.
12587         (mostlyclean): Remove options-save.c.
12588
12589 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12590
12591         PR debug/49032
12592         * dbxout.c: Include cgraph.h.
12593         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
12594         and without value expr, return NULL if no varpool node exists for
12595         it or if it is not needed.
12596         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
12597
12598         PR c/49120
12599         * c-decl.c (start_decl): Convert expr to void_type_node.
12600
12601 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
12602
12603         PR rtl-optimization/48826
12604         * emit-rtl.c (try_split): When splitting a call that is followed
12605         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
12606
12607 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12608
12609         * cfgexpand.c (expand_debug_expr): For unused non-addressable
12610         parameters passed in memory prefer using DECL_INCOMING_RTL over
12611         the pseudos it will be copied into.
12612
12613 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12614
12615         PR target/47315
12616         * config/i386/i386.c (ix86_option_override_internal): Save the
12617         initial options after checking vzeroupper.
12618
12619 2011-05-23  David Li  <davidxl@google.com>
12620
12621         PR tree-optimization/48988
12622         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
12623         Initialize has_valid_pred for each pred chain.
12624
12625 2011-05-23  Richard Guenther  <rguenther@suse.de>
12626
12627         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
12628         (iterative_hash_gimple_type): Always hash type names.
12629
12630 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
12631
12632         * c-typeck.c (build_function_call_vec): Tweak call to
12633         check_function_arguments.
12634
12635 2011-05-23  Richard Guenther  <rguenther@suse.de>
12636
12637         PR tree-optimization/49115
12638         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
12639         is not necessarily carried out, do not claim it kills the ref.
12640         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
12641
12642 2011-05-23  Richard Guenther  <rguenther@suse.de>
12643
12644         PR middle-end/15419
12645         * builtins.c (fold_builtin_memory_op): Be less restrictive about
12646         what pointer types we accept for folding.
12647
12648 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12649
12650         * gthr-gnat.c: Remove.
12651         * gthr-gnat.h: Remove.
12652         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
12653         * config/t-freebsd (LIB2ADDEH): Likewise.
12654         * config/t-linux (LIB2ADDEH): Likewise.
12655         * config/t-sol2 (LIB2ADDEH): Likewise.
12656         * config/ia64/t-vms (LIB2ADDEH): Likewise.
12657         * configure.ac (target_thread_file): Remove gnat handling.
12658         * configure: Regenerate.
12659         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
12660
12661 2011-05-23  Tristan Gingold  <gingold@adacore.com>
12662             Eric Botcazou  <ebotcazou@adacore.com>
12663
12664         * gcov.c (create_file_names): If no object directory is specified,
12665         keep the directory of the file.
12666
12667 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12668
12669         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
12670         * configure: Regenerate.
12671
12672 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12673
12674         PR middle-end/48973
12675         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
12676         failed and the comparison has a single bit signed type, use
12677         constm1_rtx instead of const1_rtx for true value.
12678         (do_store_flag): If ops->type is single bit signed type, disable
12679         signel bit test optimization and pass -1 instead of 1 as last
12680         parameter to emit_store_flag_force.
12681
12682 2011-05-23  Tom de Vries  <tom@codesourcery.com>
12683
12684         PR target/45098
12685         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
12686         function.
12687         (infer_loop_bounds_from_undefined): Use new function.
12688
12689 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12690
12691         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
12692         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
12693         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
12694         and -O0 otherwise.
12695         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
12696
12697 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12698
12699         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
12700         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
12701         returns true.
12702
12703 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12704
12705         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
12706
12707 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12708
12709         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
12710         UNSPEC_MOVE_PIC pattern.
12711
12712 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12713
12714         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
12715         (sparc-*-rtems*): Likewise.
12716         (sparc64-*-elf*): Likewise.
12717         (sparc64-*-rtems*): Likewise.
12718         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
12719         * config/sparc/t-crtin: New file.
12720         * config/sparc/t-sol2 (crti.o): Delete rule.
12721         (crtn.o): Likewise.
12722         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
12723         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
12724         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
12725         (ENDFILE_SPEC): Add crtn.o.
12726
12727 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12728
12729         PR middle-end/48689
12730         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
12731         CODE_CONTAINS_STRUCT (TS_COMMON).
12732
12733 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
12734
12735         PR middle-end/49029
12736         * expmed.c (extract_fixed_bit_field): Test whether target can be used
12737         only after deciding which mode to use.
12738
12739 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12740
12741         PR target/45098
12742         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
12743         for call to get_shiftadd_cost.
12744
12745 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
12746
12747         PR target/49104
12748         * config/i386/cpuid.h (bit_MMXEXT): New define.
12749
12750 2011-05-22  Nick Clifton  <nickc@redhat.com>
12751
12752         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
12753         initialisation of non-existant args[2] element.  Use args[] array
12754         not arg[] array to pass arguments to build_function_type_list.
12755
12756 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
12757
12758         PR tree-optimization/49087
12759         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
12760
12761 2011-05-21  Jason Merrill  <jason@redhat.com>
12762
12763         PR c++/49092
12764         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
12765         static storage duration.
12766
12767 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12768
12769         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
12770         frame pointer.
12771
12772 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12773
12774         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
12775         false if there are call-saved registers here...
12776         (sparc_can_use_return_insn_p): ...but here instead.
12777         (save_or_restore_regs): Fix thinko.
12778         (sparc_expand_prologue): Use current_function_is_leaf.
12779         (sparc_frame_pointer_required): Likewise.
12780
12781 2011-05-21  Nick Clifton  <nickc@redhat.com>
12782
12783         PR target/49098
12784         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
12785
12786 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12787
12788         * gengtype.c (walk_type): Implemented "atomic" GTY option.
12789         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
12790
12791 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
12792
12793         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
12794         * optc-gen.awk: Move common code to opt-read.awk.
12795         * opth-gen.awk: Likewise.
12796         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
12797
12798 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
12799
12800         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
12801
12802 2011-05-20  Tom de Vries  <tom@codesourcery.com>
12803
12804         PR target/45098
12805         * tree-ssa-loop-ivopts.c: Include expmed.h.
12806         (get_shiftadd_cost): New function.
12807         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
12808
12809 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12810
12811         PR bootstrap/49086
12812         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
12813         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
12814
12815 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12816
12817         * Makefile.in: Update comment referring to $(OBJS-common).
12818
12819 2011-05-20  Ian Lance Taylor  <iant@google.com>
12820
12821         * godump.c (go_output_typedef): Put enum constants in the macro
12822         hash table to avoid duplicate Go const definitions.
12823
12824 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12825
12826         * Makefile.in (LIBDEPS): Add libcommon.a.
12827         (LIBS): Likewise.
12828         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
12829         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
12830         pretty-print.o and version.o.
12831         (OBJS-libcommon): New.
12832         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
12833         (BACKEND): Add libcommon.a.
12834         (MOSTLYCLEANFILES): Likewise.
12835         (libcommon.a): New.
12836         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
12837         (cpp$(exeext)): Likewise.
12838         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
12839         pretty-print.o and input.o.
12840         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
12841         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
12842         (errors.o): Remove.
12843         (mips-tfile): Don't explicitly use version.o.
12844         (mips-tdump): Likewise.
12845         (gcov.o): Depend on $(DIAGNOSTIC_H).
12846         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
12847         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
12848         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
12849         * gcov-dump.c: Include intl.h and diagnostic.h.
12850         (main): Initialize diagnostics.
12851         * gcov.c: Include diagnostic.h.
12852         (fnotice): Remove.
12853         (main): Initialize diagnostics.
12854         * lto-wrapper.c: Include diagnostic.h.
12855         (main): Initialize diagnostics.
12856
12857 2011-05-20  Michael Matz  <matz@suse.de>
12858
12859         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
12860
12861 2011-05-20  Michael Matz  <matz@suse.de>
12862             Richard Guenther  <rguenther@suse.de>
12863
12864         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
12865         use lto_streamer_cache_append directly instead of returning a VEC.
12866         (preload_common_node): Remove.
12867         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
12868         track seen nodes.
12869         (lto_streamer_cache_create): Call lto_preload_common_nodes.
12870
12871 2011-05-20  Richard Guenther  <rguenther@suse.de>
12872
12873         PR tree-optimization/49079
12874         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
12875         MEM_REFs correctly for the trailing array access detection.
12876         Special case constants the same way as decls for overall size
12877         constraining.
12878
12879 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
12880
12881         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
12882         argument expansion.
12883
12884 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12885
12886         PR tree-optimization/49073
12887         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
12888         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
12889         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
12890
12891 2011-05-20  Richard Guenther  <rguenther@suse.de>
12892
12893         PR middle-end/48849
12894         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
12895         of pointer types the same way the middle-end does.
12896
12897 2011-05-20  Richard Guenther  <rguenther@suse.de>
12898
12899         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
12900         or pointer-to chains.  Delay all fixup to uniquify_nodes.
12901
12902 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
12903
12904         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
12905         (fma4_fmaddsub): Likewise
12906
12907 2011-05-19  Jan Hubicka  <jh@suse.cz>
12908
12909         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
12910         (GIMPLE_TYPE_PAIR_SIZE): New macro.
12911         (type_pair_cache): New static var.
12912         (lookup_type_pair): Use fixed sized custom hash; make inline.
12913         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
12914         calls of lookup_type_pair.
12915         (print_gimple_types_stats): Remove cache stats.
12916         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
12917         and gtc_ob.
12918
12919 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
12920
12921         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
12922         when TARGET_RDRND is active.
12923         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
12924         Generate dummy SImode target register when target is NULL.
12925
12926 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12927
12928         * config/arm/arm-fpus.def: New.
12929         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
12930         arm-fpus.def.
12931         * config/arm/arm-tables.opt: Regenerate.
12932         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
12933         (arm_option_override): Don't decode FPU name to string here.
12934         * config/arm/arm.opt (mfpu=): Use Enum.
12935         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
12936         Update dependencies.
12937
12938 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12939
12940         * collect2.c: Include diagnostic.h.
12941         (fatal_perror, fatal, error, fancy_abort): Remove.
12942         (main): Set progname.  Call xmalloc_set_program_name and
12943         diagnostic_initialize.
12944         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
12945         scan_libraries, resolve_lib_name): Call fatal_error instead of
12946         fatal and fatal_perror.
12947         * collect2.h (error, fatal, fatal_perror): Don't declare.
12948         * tlink.c: Include diagnostic-core.h.
12949         (recompile_files): Call fatal_error instead of fatal_perror.
12950         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
12951         pretty-print.o and input.o.
12952         (collect2.o, tlink.o): Update dependencies.
12953
12954 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12955
12956         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
12957
12958 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12959
12960         PR target/40483
12961         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
12962         COMDAT group syntax, both SPARC and x86 variants.
12963         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
12964         * configure: Regenerate.
12965         * config/sol2.h (TARGET_SOLARIS): Define.
12966         (PUSHSECTION_FORMAT): Remove.
12967         (SECTION_NAME_FORMAT): Define.
12968         * config/sol2.c: Include hashtab.h.
12969         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
12970         expansion, using SECTION_NAME_FORMAT.
12971         (solaris_comdat_htab): New variable.
12972         (struct comdat_entry): Define.
12973         (comdat_hash): New function.
12974         (comdat_eq): New function.
12975         (solaris_elf_asm_comdat_section): New function.
12976         (solaris_define_comdat_signature): New function.
12977         (solaris_code_end): New function.
12978         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
12979         (solaris_code_end): Declare.
12980         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
12981         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
12982         solaris_code_end.
12983         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
12984         Remove ATTRIBUTE_UNUSED.
12985         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
12986         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
12987         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
12988         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
12989         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
12990         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
12991         (PUSHSECTION_FORMAT): Remove.
12992         (SECTION_NAME_FORMAT): Redefine.
12993
12994 2011-05-19  Kai Tietz  <ktietz@redhat.com>
12995
12996         * tree-cfg.c (verify_gimple_assign_binary): Barf on
12997         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
12998         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
12999
13000 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
13001             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13002
13003         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
13004
13005 2011-05-19  Richard Guenther  <rguenther@suse.de>
13006
13007         PR middle-end/48985
13008         * tree-object-size.c (addr_object_size): If the pointed-to
13009         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
13010
13011 2011-05-19  Richard Guenther  <rguenther@suse.de>
13012
13013         * gimple.c (gimple_types_compatible_p_1): Compare names of
13014         the types themselves.
13015         (iterative_hash_gimple_type): And hash them that way.
13016         (gimple_register_type_1): If we register a main variant properly
13017         initialize the leader to ourselves.
13018
13019 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13020
13021         PR target/45098
13022         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
13023         get_loop_invariant_expr_id.
13024         (get_loop_invariant_expr_id): Use get_expr_id.
13025         (parm_decl_cost): New function.
13026         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
13027         Improve bound cost estimation.  Use different inv_expr_id for elim and
13028         express cases.
13029
13030 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13031
13032         PR target/45098
13033         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
13034         cost_base.cost == 0.
13035
13036 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
13037
13038         PR target/49002
13039         * config/i386/sse.md
13040         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
13041         load cast.
13042
13043 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13044
13045         PR tree-optimization/49039
13046         * tree-vrp.c (extract_range_from_binary_expr): For
13047         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
13048         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
13049
13050 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13051
13052         PR target/45098
13053         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
13054
13055 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
13056
13057         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
13058         (*tls_global_dynamic_64): Ditto.
13059         (*tls_local_dynamic_base_32_gnu): Ditto.
13060         (*tls_local_dynamic_base_64): Ditto.
13061         (tls_initial_exec_64_sun): Ditto.
13062
13063 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
13064
13065         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
13066         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
13067         bf592-none.
13068         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
13069         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
13070         * config/bfin/bfin.c (bfin_cpus): Add bf592.
13071         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
13072         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
13073         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
13074         * config/bfin/elf.h (LIB_SPEC): Add bf592.
13075
13076 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
13077
13078         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
13079         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
13080         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
13081         target_thread_pointer, arm_structure_size_boundary, struct
13082         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
13083         struct abi_name, arm_all_abis): Remove.
13084         (arm_option_override) Don't process most enumerated option values here.
13085         Don't process target_fpe_name here.  Work with integer not string for
13086         structure size boundary; use separate diagnostics for each case.
13087         * config/arm/arm.h (enum float_abi_type, enum
13088         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
13089         to arm-opts.h.
13090         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
13091         arm_structure_size_boundary): Remove.
13092         * config/arm/arm.opt (mabi=): Use Enum and Init.
13093         (arm_abi_type): New Enum and EnumValue entries.
13094         (mfloat-abi=): Use Enum and Init.
13095         (float_abi_type): New Enum and EnumValue entries.
13096         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
13097         (mfp16-format=): Use Enum and Init.
13098         (arm_fp16_format_type): New Enum and EnumValue entries.
13099         (mstructure-size-boundary=): Use UInteger and Init.
13100         (mtp=): Use Enum and Init.
13101         (arm_tp_type): New Enum and EnumValue entries.
13102
13103 2011-05-18  Richard Guenther  <rguenther@suse.de>
13104
13105         PR tree-optimization/49018
13106         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
13107         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
13108         gimple_has_side_effects.
13109
13110 2011-05-18  Richard Guenther  <rguenther@suse.de>
13111
13112         * gimple.c (gimple_register_type_1): New function, split out from ...
13113         (gimple_register_type): ... here.  Avoid infinite recursion.
13114
13115 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13116
13117         PR tree-optimization/41881
13118         * tree-vectorizer.h (struct _loop_vec_info): Add new field
13119         reduction_chains along with a macro for its access.
13120         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
13121         (destroy_loop_vec_info): Free reduction chains.
13122         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
13123         (vect_is_slp_reduction): New function.
13124         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
13125         (vect_create_epilog_for_reduction): Support SLP reduction chains.
13126         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
13127         definition types for reduction chains.
13128         (vect_supported_load_permutation_p): Don't allow permutations for
13129         reduction chains.
13130         (vect_analyze_slp_instance): Support reduction chains.
13131         (vect_analyze_slp): Try to build SLP instance from reduction chains.
13132         (vect_get_constant_vectors):  Handle reduction chains.
13133         (vect_schedule_slp_instance): Mark the first statement of the
13134         reduction chain as reduction.
13135
13136 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13137
13138         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
13139         names for group elements access.
13140         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
13141         reduction chains as well.  Remove data reference and interleaving
13142         related words from the fields names.
13143         * tree-vect-loop.c (vect_transform_loop): Use new names for group
13144         elements access.
13145         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
13146         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
13147         vect_update_interleaving_chain, vect_same_range_drs,
13148         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
13149         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
13150         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
13151         vect_analyze_group_access, vect_analyze_data_ref_access,
13152         vect_create_data_ref_ptr, vect_transform_strided_load,
13153         vect_record_strided_load_vectors): Likewise.
13154         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
13155         vect_model_load_cost, vectorizable_store, vectorizable_load,
13156         vect_remove_stores, new_stmt_vec_info): Likewise.
13157         * tree-vect-slp.c (vect_build_slp_tree,
13158         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
13159
13160 2011-05-18  Richard Guenther  <rguenther@suse.de>
13161
13162         PR middle-end/48989
13163         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
13164         operand verification.
13165         (verify_gimple_assign_binary): Likewise.
13166         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
13167         to non-1-precision BOOLEAN_TYPEs.
13168
13169 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13170
13171         PR target/45098
13172         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
13173
13174 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13175
13176         PR tree-optimization/49000
13177         * tree-ssa.c (execute_update_addresses_taken): Call
13178         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
13179         be rewritten and decl has been marked for renaming, reset
13180         the debug stmt.
13181
13182 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
13183
13184         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
13185         enum_opts_set when testing if attributes have set -mfpmath=.
13186
13187 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
13188
13189         * config/mips/mips.c (mips_handle_option): Remove unused variable.
13190
13191 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13192
13193         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
13194         info->entry with 0
13195         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
13196         id.transform_lang_insert_block with NULL.
13197
13198 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13199
13200         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
13201         (output_fp_compare): Change args 3 and 4 to bool.
13202         (ix86_expand_call): Change arg 6 to bool.
13203         (ix86_attr_length_immediate_default): Change arg 2 to bool.
13204         (ix86_attr_length_vex_default): Change arg 3 to bool.
13205         * config/i386/i386.md: Update all uses.
13206         * config/i386/i386.c: Ditto.
13207         (ix86_flags_dependent): Change return type to bool.
13208
13209 2011-05-17  Richard Guenther  <rguenther@suse.de>
13210
13211         * gimple.c (type_hash_pair_compare): Fix comparison.
13212
13213 2011-05-17  Richard Guenther  <rguenther@suse.de>
13214
13215         * gimple.c (iterative_hash_gimple_type): Simplify singleton
13216         case some more, fix final hash value of the non-singleton case.
13217
13218 2011-05-17  Richard Guenther  <rguenther@suse.de>
13219
13220         PR bootstrap/49013
13221         Revert
13222         2011-05-16  Richard Guenther  <rguenther@suse.de>
13223
13224         * gimple.c (gimple_types_compatible_p_1): Use names of the
13225         type itself, not its main variant.
13226         (iterative_hash_gimple_type): Likewise.
13227
13228 2011-05-17  Richard Guenther  <rguenther@suse.de>
13229
13230         * gimple.c (gimple_register_canonical_type): Use the main-variant
13231         leader for computing the canonical type.
13232
13233 2011-05-17  Nick Clifton  <nickc@redhat.com>
13234
13235         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
13236         moves.
13237
13238         * config/rx/rx.md: Add peephole to remove redundant extensions
13239         after loads.
13240         (bitset_in_memory): Use rx_restricted_mem_operand.
13241         (bitinvert_in_memory): Likewise.
13242         (bitclr_in_memory): Likewise.
13243
13244 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
13245             Nick Clifton  <nickc@redhat.com>
13246
13247         * config/rx/rx.md: Add peepholes to match a register move followed
13248         by a comparison of the moved register.  Replace these with an
13249         addition of zero that does both actions in one instruction.
13250
13251 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
13252
13253         PR target/48986
13254         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
13255         predicate to allow CONST_INT.
13256         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
13257
13258 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13259
13260         * opts-common.c (opt_enum_arg_to_value): New.
13261         * opts.h (opt_enum_arg_to_value): Declare.
13262         * config/i386/i386.opt (fpmath): Remove.
13263         (mfpmath=): Use Enum, Init and Save.
13264         (fpmath_unit): New Enum and EnumValue entries.
13265         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
13266         name for function fpmath state.
13267         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
13268         * config/i386/i386.c: Include diagnostic.h.
13269         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
13270         (ix86_target_string): Take enum fpmath_unit value instead of string.
13271         (ix86_debug_options): Update call to ix86_target_string.
13272         (ix86_option_override_internal): Don't process fpmath strings here.
13273         (x86_function_specific_save, ix86_function_specific_restore):
13274         Don't handle fpmath state specially.
13275         (ix86_function_specific_print): Pass fpmath state to
13276         ix86_target_string instead of printing in this function.
13277         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
13278         Handle enum attributes.
13279         (IX86_ATTR_ENUM, ix86_opt_enum): New.
13280         (ix86_valid_target_attribute_tree): Update option_strings
13281         handling.  Handle fpmath as enum option.
13282         (ix86_can_inline_p): Update field names for function fpmath state.
13283         (ix86_expand_builtin): Update call to ix86_target_string.
13284         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
13285         (ix86_fpmath): Remove.
13286         * config/i386/t-i386 (i386.o): Update dependencies.
13287
13288 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13289
13290         PR preprocessor/48677
13291         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
13292         from decoded_options[0], not from itself.
13293
13294 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
13295
13296         * config/i386/constraints.md (z): New constraint.
13297         * config/i386/i386.c (c): New mode attribute.
13298         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
13299         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
13300         constraint for operand 0.
13301         (*call_vzeroupper): Ditto.
13302         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
13303         (*call_rex64_ms_sysv_vzeroupper): Ditto.
13304         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
13305         Use "lzm" constraint for operand 0.
13306         (*call_pop_vzeroupper): Ditto.
13307         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
13308         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
13309         constraint for operand 0.
13310         (*sibcall_vzeroupper): Ditto.
13311         (*sibcall_rex64_ms_sysv): Ditto.
13312         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
13313         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
13314         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
13315         (*sibcall_pop_vzeroupper): Ditto.
13316         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
13317         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
13318         mode iterator.  Use "<c>zm" constraint for operand 1.
13319         (*call_value_vzeroupper): Ditto.
13320         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
13321         for operand 1.
13322         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
13323         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
13324         *call_value_pop_1.  Use "lzm" constraint for operand 1.
13325         (*call_value_pop_vzeroupper): Ditto.
13326         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
13327         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
13328         mode iterator.  Use "Uz" constraint for operand 1.
13329         (*sibcall_value_vzeroupper): Ditto.
13330         (*sibcall_value_rex64_ms_sysv): Ditto.
13331         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
13332         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
13333         constraint for operand 1.
13334         (*sibcall_value_pop_vzeroupper): Ditto.
13335         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
13336         and "z" constraint for operand 2.
13337         (*tls_global_dynamic_32_gnu): Ditto.
13338         (*tls_local_dynamic_base_32_gnu): Ditto.
13339         (*tls_local_dynamic_base_64): Ditto.
13340         (*tls_local_dynamic_32_once): Ditto.
13341         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
13342         Update all callers.
13343         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
13344
13345 2011-05-16  Richard Guenther  <rguenther@suse.de>
13346
13347         * gimple.c (gimple_types_compatible_p_1): Use names of the
13348         type itself, not its main variant.
13349         (iterative_hash_gimple_type): Likewise.
13350
13351 2011-05-16  Richard Guenther  <rguenther@suse.de>
13352
13353         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
13354         always visit pointer target and function result and argument types.
13355
13356 2011-05-16  Jason Merrill  <jason@redhat.com>
13357
13358         PR c++/48999
13359         * tree-inline.c (copy_statement_list): Put back recursion.
13360
13361 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13362
13363         PR target/27663
13364         PR target/41076
13365         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
13366         * config/avr/avr.md ("*ior<mode>qi.byte0",
13367         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
13368
13369 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13370
13371         PR target/45099
13372         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
13373         register is needed for a function argument.
13374
13375 2011-05-16  Richard Guenther  <rguenther@suse.de>
13376
13377         * gimple.c (struct type_hash_pair): New type.
13378         (type_hash_pair_compare): New function.
13379         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
13380
13381 2011-05-16  Revital Eres  <revital.eres@linaro.org>
13382
13383         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
13384
13385 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13386
13387         * config/i386/i386.md (floating point move splitters): Fix
13388         usage of standard_80387_constant_p.
13389         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
13390
13391 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13392
13393         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
13394
13395 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13396
13397         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
13398         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
13399         (tree_ssa_lim_finalize): Likewise.
13400
13401 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
13402
13403         * config/i386/constraint.md (Yd, Yx): New register constraints.
13404         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
13405         Yd conditional register constraint.
13406         (*movtf_internal): Use standard_sse_constant_opcode.
13407         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
13408         Yx conditional register constraint.
13409         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
13410         Yd conditional register constraint.  Use standard_sse_constant_p to
13411         check for valid SSE constants and call standard_sse_constant_opcode to
13412         output SSE insn.
13413         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
13414         constants and call standard_sse_constant_opcode to output SSE insn.
13415         * config/i386/i386.c (ix86_option_ovverride_internal): Set
13416         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
13417         optimize_size is set.
13418         (standard_sse_constant_opcode): Output conditional AVX insn templates.
13419
13420 2011-05-14  Tobias Burnus  <burnus@net-b.de>
13421
13422         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
13423
13424 2011-05-13  Martin Jambor  <mjambor@suse.cz>
13425
13426         * ipa-prop.c (ipa_cst_from_jfunc): New function.
13427         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
13428         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
13429         (evaluate_conditions_for_ipcp_clone): Removed.
13430         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
13431         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
13432         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
13433
13434 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
13435
13436         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
13437         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
13438         lieu of MAY_HAVE_DEBUG_STMTS.
13439         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
13440         debug statements if !MAY_HAVE_DEBUG_STMTS.
13441
13442 2011-05-13  Martin Thuresson  <martint@google.com>
13443
13444         PR gcov-profile/47793
13445         * libgcov.c (gcov_exit): Support relative profile paths.
13446         * doc/invoke.texi (-fprofile-dir): Update for above change.
13447
13448 2011-05-13  Richard Guenther  <rguenther@suse.de>
13449
13450         * gimple.c (gimple_canonical_types_compatible_p): Do not use
13451         type-pair caching, do not compare hashes.
13452
13453 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
13454
13455         PR middle-end/48965
13456         * tree-cfg.c (edge_to_cases_cleanup): Return true.
13457         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
13458
13459 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13460
13461         * gimplify.c (gimplify_expr): Make sure operand is boolified.
13462         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
13463         compatible type for TRUTH_NOT_EXPR.
13464
13465 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13466
13467         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
13468         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
13469         can_create_pseudo_p ().
13470
13471 2011-05-13  Richard Guenther  <rguenther@suse.de>
13472
13473         PR lto/48978
13474         * gimple.c (iterative_hash_gimple_type): Revert change in
13475         pointer target and function result and argument hashing.
13476
13477 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
13478
13479         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
13480         (*movxf_internal_nointeger): Ditto.
13481         (*movdf_internal_rex64): Ditto.
13482         (*movdf_internal): Ditto.
13483         (*movdf_internal_nointeger): Ditto.
13484         (*movsf_internal): Ditto.
13485         (sincos splitters): Use can_create_pseudo ().
13486
13487 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
13488
13489         * config/i386/i386-opts.h: New.
13490         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
13491         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
13492         ix86_section_threshold): Remove.
13493         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
13494         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
13495         OPT_mbranch_cost_.
13496         (ix86_option_override_internal): Don't decode strings for options
13497         other than -march=, -mtune= and -mfpmath=.  Don't allow for
13498         __attribute__ uses in remaining diagnostics for options with
13499         string arguments.  Don't check for integer arguments being negative.
13500         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
13501         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
13502         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
13503         ix86_branch_cost, ix86_section_threshold): Remove.
13504         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
13505         HeaderInclude.
13506         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
13507         but not Var.
13508         (masm=): Use Enum and Init.
13509         (asm_dialect): New Enum and EnumValue entries.
13510         (mbranch-cost=): Use UInteger.
13511         (mlarge-data-threshold=): Use UInteger and Init.
13512         (mcmodel=): Use Enum and Init.
13513         (cmodel): New Enum and EnumValue entries.
13514         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
13515         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
13516         mregparm=): Use UInteger.
13517         (mstringop-strategy=): Use Enum and Init.
13518         (stringop_alg): New Enum and EnumValue entries.
13519         (mtls-dialect=): Use Enum and Init.
13520         (tls_dialect): New Enum and EnumValue entries.
13521         (mabi=): Use Enum and Init.
13522         (calling_abi): New Enum and EnumValue entries.
13523         (mveclibabi=): Use Enum and Init.
13524         (ix86_veclibabi): New Enum and EnumValue entries.
13525
13526 2011-05-13  Nick Clifton  <nickc@redhat.com>
13527
13528         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
13529         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
13530
13531 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13532
13533         PR middle-end/48984
13534         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
13535         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
13536         (gimple_boolify): Check for cast for boolean_type_node instead for
13537         BOOLEAN_TYPE.
13538
13539 2011-05-13  Richard Guenther  <rguenther@suse.de>
13540
13541         PR tree-optimization/48172
13542         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
13543         multiplying by number of iterations for equal step.
13544         (vect_create_cond_for_alias_checks): Likewise.
13545
13546 2011-05-13  Andreas Schwab  <schwab@redhat.com>
13547
13548         * configure.ac: Use AS_HELP_STRING throughout.
13549         * configure: Regenerate.
13550
13551 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13552
13553         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
13554         (ix86_emit_restore_regs_using_mov): Likewise.
13555         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13556
13557 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
13558
13559         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
13560         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
13561         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
13562         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
13563         RTX_OK_FOR_OLO10_P): ...here.
13564         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
13565         SYMBOLIC_CONST.
13566
13567 2011-05-12  Kai Tietz  <ktietz@redhat.com>
13568
13569         * gimplify.c (gimple_boolify): Re-boolify expression
13570         arguments even if expression type is of kind BOOLEAN_TYPE.
13571         (gimplify_boolean_expr): Removed.
13572         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
13573         and XOR. Additional take care that we keep expression's type.
13574         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
13575         of TRUTH_AND|OR|XOR_EXPR.
13576
13577 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13578
13579         PR tree-optimization/48975
13580         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
13581         on all bbs here and free and clear ifc_bbs at the end.
13582
13583 2011-05-12  Richard Guenther  <rguenther@suse.de>
13584
13585         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
13586         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
13587         until after simple checks.
13588         (gimple_types_compatible_p): Likewise.
13589         (iterative_hash_gimple_type): Always hash pointer targets
13590         and function return and argument types.
13591         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
13592         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
13593         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
13594         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
13595         completely in the simple compare section.
13596         (gimple_register_canonical_type): Query the cache again after
13597         registering.
13598
13599 2011-05-12  Richard Guenther  <rguenther@suse.de>
13600
13601         PR tree-optimization/48172
13602         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
13603         the number of iterations from the segment size calculation.
13604         (vect_create_cond_for_alias_checks): Adjust.
13605
13606 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13607
13608         PR debug/48967
13609         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
13610         if validate_subreg fails.
13611
13612 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
13613
13614         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
13615         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
13616         early.
13617
13618 2011-05-12  DJ Delorie  <dj@redhat.com>
13619
13620         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
13621         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
13622         created builtin into rx_builtins array.
13623         (rx_builtin_decl): New function.
13624         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
13625
13626 2011-05-12  DJ Delorie  <dj@redhat.com>
13627             Nick Clifton  <nickc@redhat.com>
13628
13629         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
13630         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
13631         (rx_is_legitimate_address): Add pre-decrement and post-increment
13632         addressing in HImode and QImode.  Fix test for out of range
13633         REG+INT addressing.
13634         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
13635         (rx_align_for_label): Test label before extracting its usage count.
13636         (rx_adjust_insn_lengths): Fix selection of insn codes.
13637         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
13638
13639 2011-05-11  Jason Merrill  <jason@redhat.com>
13640
13641         * tree.c (type_hash_canon): Use struct tree_type_non_common.
13642
13643 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13644
13645         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
13646         reindent the subsequent block.
13647
13648 2011-05-11  Satoru Takabayashi  <satorux@google.com>
13649             Paul Pluzhnikov  <ppluzhnikov@google.com>
13650
13651         * doc/install.texi (Configuration): Document --with-linker-hash-style.
13652         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
13653         * config.in: Add LINKER_HASH_STYLE.
13654         * configure.ac: Add --with-linker-hash-style.
13655         * configure: Regenerate.
13656
13657 2011-05-11  Richard Guenther  <rguenther@suse.de>
13658
13659         PR middle-end/48964
13660         * gimple.c (iterative_hash_canonical_type): Fix typo.
13661
13662 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
13663
13664         * config/i386/i386.c (legitimize_tls_address)
13665         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13666         expanders directly for TARGET_GNU2_TLS.  Determine pic and
13667         __tls_get_addr symbol reference here.  Update call to
13668         gen_tls_global_dynamic_{32,64} for added arguments.
13669         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13670         expanders directly for TARGET_GNU2_TLS.  Determine
13671         __tls_get_addr symbol reference here.  Update call to
13672         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
13673         unique UNSPEC REG_EQUIV to libcall block.
13674         (ix86_tls_get_addr): Declare static.
13675         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
13676         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
13677         Do not determine pic and __tls_get_addr symbol reference here. Do not
13678         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
13679         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
13680         (tls_global_dynamic_64): Add operand 2.  Do not determine
13681         __tls_get_addr symbol reference here.  Do not call
13682         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
13683         (tls_local_dynamic_base64): Ditto for operand 1.
13684
13685 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13686
13687         * function.c (expand_function_start): Initialize stack_check_probe_note
13688         only if the generic stack checking mechanism is used.
13689
13690 2011-05-11  Richard Guenther  <rguenther@suse.de>
13691
13692         PR tree-optimization/15256
13693         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
13694         (A & B) | C, combine (A op CST1) op CST2.
13695         (tree_ssa_forward_propagate_single_use_vars): Only bother to
13696         visit assigns that have uses.
13697
13698 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
13699
13700         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
13701         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
13702         (unpack_ts_type_common_value_fields): ...this.  Update comment.
13703         (unpack_value_fields): Adjust for renaming.
13704         (lto_input_ts_type_tree_pointers): Split into...
13705         (lto_input_ts_type_common_tree_pointer): ...this and...
13706         (lto_input_ts_type_non_common_tree_pointers): ...this.
13707         (lto_input_tree_pointers): Adjust for above split.
13708         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
13709         (pack_ts_type_common_value_fields): ...this.  Update comment.
13710         (lto_output_ts_type_tree_pointers): Split into...
13711         (lto_output_ts_type_common_tree_pointers): ...this and...
13712         (lto_output_ts_type_non_common_tree_pointers): ...this.
13713         (lto_output_tree_pointers): Adjust for above split.
13714         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
13715         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
13716         * stor-layout.c (vector_type_mode): Adjust location of mode field.
13717         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
13718         Define.
13719         (struct tree_type): Split into...
13720         (struct tree_type_common: ...this and...
13721         (struct tree_type_with_lang_specific): ...this and...
13722         (struct tree_type_non_common): ...this.  Adjust accessor macros
13723         accordingly.
13724         (TYPE_VALUES_RAW): Define.
13725         (union tree_node): Update for above changes.
13726         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
13727         TS_TYPE_NON_COMMON.
13728         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
13729         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
13730         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
13731         * treestructu.def (TS_TYPE): Remove.
13732         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
13733         Define.
13734
13735 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
13736
13737         PR debug/48159
13738         * tree-ssa.c (reset_debug_uses): New function.
13739         * tree-flow.h (reset_debug_uses): New prototype.
13740         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
13741         * tree-loop-distribution.c (generate_loops_for_partition): Call
13742         reset_debug_uses on the stmts that will be removed.  Keep around
13743         all debug stmts, don't count them as bits in partition bitmap.
13744         (generate_builtin): Don't count debug stmts or labels as bits in
13745         partition bitmap.
13746
13747 2011-05-11  Richard Guenther  <rguenther@suse.de>
13748
13749         * gimple.c (gimple_type_hash_1): Merge with ...
13750         (gimple_type_hash): ... this.
13751         (gtc_visit): Remove mode parameter and simplify accordingly.
13752         (gimple_types_compatible_p_1): Likewise.
13753         (gimple_types_compatible_p): Likewise.
13754         (iterative_hash_gimple_type): Likewise.
13755         (visit): Likewise.
13756         (gimple_type_eq): Adjust.
13757
13758 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13759
13760         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
13761         enters the branch create an anti edge in the opposite direction
13762         to prevent the creation of reg-moves.
13763         * modulo-sched.c: Adjust comment to reflect the fact we are
13764         scheduling closing branch.
13765         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
13766         (stage_count): New field in struct partial_schedule.
13767         (calculate_stage_count): New function.
13768         (normalize_sched_times): Rename to reset_sched_times and handle
13769         incrementing the sched time of the nodes by a constant value
13770         passed as parameter.
13771         (duplicate_insns_of_cycles): Skip closing branch.
13772         (sms_schedule_by_order): Schedule closing branch.
13773         (ps_insn_find_column): Handle closing branch.
13774         (sms_schedule): Call reset_sched_times and adjust the code to
13775         support scheduling of the closing branch.
13776         (ps_insert_empty_row): Update calls to normalize_sched_times
13777         and rotate_partial_schedule functions.
13778
13779 2011-05-11  Richard Guenther  <rguenther@suse.de>
13780
13781         PR middle-end/48953
13782         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
13783
13784 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
13785
13786         * opts.c (finish_options): Move warning settings from process_options.
13787         * toplev.c (process_options): Move warning settings to finish_options.
13788
13789 2011-05-11  Richard Guenther  <rguenther@suse.de>
13790
13791         PR tree-optimization/18041
13792         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
13793         (simplify_bitwise_binary): ... this.  Handle operand conversions
13794         by applying them to the result instead.
13795         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
13796
13797 2011-05-11  Richard Guenther  <rguenther@suse.de>
13798
13799         * gimple.c (gimple_canonical_types_compatible_p): Split out
13800         from gimple_types_compatible_p and friends.  Do not recurse
13801         to pointed-to types.
13802         (gimple_canonical_type_eq): Use it.
13803         (iterative_hash_canonical_type): Split out from
13804         iterative_hash_gimple_type and friends.  Do not recurse
13805         to pointed-to types.
13806         (gimple_canonical_type_hash): Use it, allocate the hash here.
13807
13808 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13809
13810         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
13811         recognizing doloop.
13812
13813 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13814
13815         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
13816         instead of PREV_INSN.
13817
13818 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13819
13820         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
13821         * loop-doloop.c (doloop_condition_get): Likewise.
13822         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
13823         (doloop_end): New.
13824         * config/arm/arm.md (*addsi3_compare0): Remove "*".
13825
13826 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
13827
13828         * tree.def (CASE_LABEL_EXPR): Add an operand.
13829         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
13830
13831 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13832
13833         * c-decl.c (c_override_global_bindings_to_false): Remove.
13834         (global_bindings_p): Don't check
13835         c_override_global_bindings_to_false.
13836         * c-tree.h (c_override_global_bindings_to_false): Remove.
13837         * c-typeck.c (composite_type): Don't set
13838         c_override_global_bindings_to_false.
13839
13840 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
13841
13842         PR target/48857, 48495
13843         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
13844         (VSX_MODE): Ditto.
13845         (VSX_MOVE_MODE): Ditto.
13846         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
13847         VSX vector types.  Add V2DImode.
13848         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
13849         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
13850         (MODES_TIEABLE_P): Ditto.
13851
13852         * config/rs6000/rs6000.c (rs6000_emit_move): Use
13853         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
13854         VSX_VECTOR_MODE.
13855         (init_cumulative_args): Ditto.
13856         (rs6000_function_arg_boundary): Ditto.
13857         (rs6000_function_arg_advance_1): Ditto.
13858         (rs6000_function_arg): Ditto.
13859         (rs6000_function_ok_for_sibcall): Ditto.
13860         (emit_frame_save): Ditto.
13861         (rs6000_function_value): Ditto.
13862         (rs6000_libcall_value): Ditto.
13863
13864 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13865
13866         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13867         i386/darwin-lib.h to $libgcc_tm_file.
13868         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
13869
13870 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13871
13872         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
13873
13874 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13875
13876         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
13877         * config/rs6000/rs6000-tables.opt: New file (generated).
13878         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
13879         rs6000/rs6000-tables.opt to extra_options.
13880         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
13881         * config/rs6000/rs6000.c (rs6000_select): Remove.
13882         (processor_target_table): Move contents to rs6000-cpus.def.
13883         (darwin_rs6000_override_options): Check
13884         global_options_set.x_rs6000_cpu_index instead of
13885         rs6000_select[1].string.
13886         (rs6000_option_override_internal): Likewise.
13887         (rs6000_handle_option): Don't assert that global structures are in
13888         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
13889         (rs6000_default_cpu): New variable.
13890         (rs6000_file_start): Set it instead of local default_cpu.  Check
13891         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
13892         global_options_set.x_rs6000_tune_index instead of rs6000_select.
13893         (rs6000_darwin_file_start): Check rs6000_default_cpu and
13894         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
13895         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
13896         rs6000_select): Remove.
13897         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
13898         Remove.
13899         (mcpu=, mtune=): Use Var, Init, Enum and Save.
13900         * config/rs6000/t-rs6000
13901         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
13902         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13903         global_options_set.x_rs6000_cpu_index instead of
13904         rs6000_select[1].string.
13905         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13906         global_options_set.x_rs6000_cpu_index instead of
13907         rs6000_select[1].string.
13908
13909 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13910
13911         * config.gcc (libgcc_tm_file): Define instead of including files
13912         from ../../libgcc/config/ in tm_file.
13913         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
13914         * configure: Regenerate.
13915         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
13916         libgcc_tm.h, cs-libgcc_tm.h): New.
13917         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
13918         (clean): Remove libgcc_tm.h.
13919         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
13920         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
13921         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
13922
13923 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
13924
13925         PR target/48896
13926         * config/avr/avr.c (avr_ret_register): Return unsigned int
13927         instead of int.
13928         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
13929         it to avr_libcall_value.
13930         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
13931         expand_expr.
13932         (avr_expand_binop_builtin): Ditto.
13933         (avr_expand_unop_builtin): Ditto.
13934
13935 2011-05-10  DJ Delorie  <dj@redhat.com>
13936
13937         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
13938         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
13939         * config/rx/rx.c (rx_align_for_label): Add label and
13940         uses_threshold parameters.  Do not align when the label is not
13941         used enough.
13942         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
13943
13944 2011-05-10  Richard Guenther  <rguenther@suse.de>
13945
13946         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
13947         a series of conversions and apply foldings similar to what
13948         fold-const does.
13949         (tree_ssa_forward_propagate_single_use_vars): Call it.
13950
13951 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
13952
13953         PR tree-optimization/48611
13954         PR tree-optimization/48794
13955         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
13956         referenced from RESX or EH_DISPATCH arguments.
13957
13958         PR debug/48928
13959         * dfp.c (decimal_to_decnumber): Handle conversion from
13960         dconst{1,2,m1,half}.
13961
13962 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13963
13964         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
13965         for !flag_prefer_avx128.
13966         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
13967
13968 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13969
13970         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
13971         (fold_ternary_loc): Use expr_location_or.
13972
13973 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13974
13975         PR debug/48853
13976         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
13977         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
13978         Pmode and mem_mode is not VOIDmode.
13979
13980 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
13981
13982         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
13983         TYPE_QUAL_RESTRICT): Convert to enum.
13984
13985 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13986
13987         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
13988         (const_pow2_1_to_8_operand): Ditto.
13989         (const_pow2_1_to_128_operand): Ditto.
13990         (const_pow2_1_to_32768_operand): Ditto.
13991         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
13992         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
13993         in insn constraint to check integer value of operand 3.
13994         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
13995
13996         (PINSR_MODE): New mode iterator.
13997         (sse2p4_1): New mode attribute.
13998         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
13999         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
14000         iterator.  Use const_int_operand instead of
14001         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
14002         exact_log2 in insn constraint to check integer value of operand 3.
14003
14004 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14005
14006         * config/i386/sse.md (blendbits): Remove mode attribute.
14007         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
14008         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
14009         Check integer value of operand 3 in insn constraint.
14010
14011 2011-05-09  Richard Guenther  <rguenther@suse.de>
14012
14013         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
14014         for diagnostics.
14015         (lto_symtab_merge): Likewise.  Do not register types here.
14016         (lto_symtab_merge_decls_2): Likewise.
14017         (lto_symtab_merge_decls_1): Likewise.
14018         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
14019         * gimple.c (enum gtc_mode): Declare.
14020         (gimple_types_compatible_p): Make static.
14021
14022 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14023
14024         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
14025         temporary register to match Pmode.
14026
14027 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14028
14029         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
14030         and *vec_concatv4si_1_avx.
14031
14032 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14033
14034         PR rtl-optimization/48927
14035         * ira-conflicts.c (commutative_constraint_p): Use
14036         recog_data.alternative_enabled_p to disable alternatives where
14037         "enabled" attribute is false.
14038         (get_dup_num): Ditto.
14039         * ira-lives.c (single_reg_class): Ditto.
14040         (ira_implicitly_set_insn_hard_regs): Ditto.
14041
14042 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
14043
14044         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
14045         (dataflow_set_preserve_mem_locs): Likewise.
14046
14047 2011-05-09  Philipp Thomas  <pth@suse.de>
14048
14049         * config/mep/mep.c (mep_validate_vliw): Syntax description
14050         should not be translated.
14051
14052 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
14053
14054         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
14055         * config/mips/mips-tables.opt: New file (generated).
14056         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
14057         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
14058         MIPS_ARCH_OPTION_NATIVE): Define.
14059         * config/mips/mips.c (mips_cpu_info_table): Move contents to
14060         mips-cpus.def.
14061         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
14062         mips_parse_cpu): Remove.
14063         (mips_cpu_info_from_opt, mips_default_arch): New.
14064         (mips_handle_option): Don't assert that global structures are in
14065         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
14066         (mips_option_override): Use new variables and functions to set
14067         state of these options.  Use strcmp to check for individual CPU names.
14068         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
14069         definition.
14070         * config/mips/mips.opt (march=): Use ToLower and Enum.
14071         (mips): Use ToLower, Enum and Var.
14072         (mtune=): Use ToLower and Enum.
14073         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
14074
14075 2011-05-08  Jan Hubicka  <jh@suse.cz>
14076
14077         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
14078         Arrange type pairs to be UID ordered.
14079         (gimple_lookup_type_leader): Make inline.
14080
14081 2011-05-09  Nick Clifton  <nickc@redhat.com>
14082
14083         PR target/48899
14084         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
14085         PROCESSOR_DEFAULT.
14086
14087         PR target/48897
14088         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
14089         variable 's'.
14090
14091 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
14092
14093         * combine.c (simplify_comparison): Abstract out parts into...
14094         (simplify_compare_const): ... new function.
14095         (try_combine): Generalize parallel arithmetic/compare combining
14096         to call simplify_compare_const() and CANONICALIZE_COMPARE().
14097
14098 2011-05-08  Jan Hubicka  <jh@suse.cz>
14099
14100         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
14101         (cgraph_create_virtual_clone): Call hooks once virtual clone
14102         is finished.
14103         * cgraph.h (cgraph_clone_node): Update prototype.
14104         * ipa-cp.c (ipcp_estimate_growth): Use
14105         estimate_ipcp_clone_size_and_time.
14106         * ipa-inline-transform.c (clone_inlined_nodes): Update.
14107         * lto-cgraph.c (input_node): Update.
14108         * ipa-inline.c (recursive_inlining): Update.
14109         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
14110         (evaluate_conditions_for_known_args): Break out from ...
14111         (evaluate_conditions_for_edge): ... here.
14112         (evaluate_conditions_for_ipcp_clone): New function.
14113         (inline_node_duplication_hook): Update clone summary based
14114         on parameter map.
14115         (estimate_callee_size_and_time): Rename to ...
14116         (estimate_node_size_and_time): take NODE instead of EDGE;
14117         take POSSIBLE_TRUTHS as argument.
14118         (estimate_callee_size_and_time): Update.
14119         (estimate_ipcp_clone_size_and_time): New function.
14120         (do_estimate_edge_time): Update.
14121
14122 2011-05-08  Richard Guenther  <rguenther@suse.de>
14123
14124         PR middle-end/48908
14125         PR middle-end/48905
14126         * expmed.c (expand_shift_1): Compute adjusted constant shift
14127         amount manually.
14128
14129 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14130
14131         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
14132
14133 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14134
14135         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
14136
14137 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
14138
14139         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
14140
14141 2011-05-07  Jan Hubicka  <jh@suse.cz>
14142
14143         * ipa-inline-transform.c (inline_call): Account when program size
14144         decreases.
14145         * ipa-inline.c (relative_time_benefit): New function.
14146         (edge_badness): Reorganize to be power 2 based; fix thinko when
14147         computing badness for negative growth; update comments to match
14148         reality; better dumps.
14149
14150 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
14151
14152         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
14153         type to bool and adjust comment.
14154         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
14155         (fold_mathfn_compare): Remove calls to global_bindings_p.
14156         (fold_inf_compare): Likewise.
14157         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
14158         * c-tree.h (global_bindings_p): Adjust prototype.
14159         * c-decl.c (global_bindings_p): Return bool and simplify.
14160
14161 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
14162
14163         PR tree-optimization/48837
14164         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
14165         when accumulator transformation is performed.
14166
14167 2011-05-06  Jan Hubicka  <jh@suse.cz>
14168
14169         * i386.h (ix86_tune_indices): Add
14170         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
14171         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
14172         * i386.c (initial_ix86_tune_features): Add
14173         X86_SOFTARE_PREFETCHING_BENEFICIAL.
14174         (software_prefetching_beneficial_p): Remove predicate.
14175         (ix86_option_override_internal): Use new macro.
14176
14177 2011-05-06  Jan Hubicka  <jh@suse.cz>
14178
14179         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
14180
14181 2011-05-06  Jan Hubicka  <jh@suse.cz>
14182
14183         * cgraph.c (cgraph_add_thunk): Create real function node instead
14184         of alias node; finalize it and mark needed/reachale; arrange visibility
14185         to be right and add it into the corresponding same comdat group list.
14186         (dump_cgraph_node): Dump thunks.
14187         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
14188         cgraph_function_with_gimple_body_p,
14189         cgraph_first_function_with_gimple_body,
14190         cgraph_next_function_with_gimple_body): New functions.
14191         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
14192         New macros.
14193         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
14194         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14195         * cgraphunit.c (cgraph_finalize_function): Only look into possible
14196         devirtualization when optimizing.
14197         (verify_cgraph_node): Verify thunks.
14198         (cgraph_analyze_function): Analyze thunks.
14199         (cgraph_mark_functions_to_output): Output thunks only in combination
14200         with function they are assigned to.
14201         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
14202         alias into normal node.
14203         (assemble_thunks): New functoin.
14204         (cgraph_expand_function): Use it.
14205         * lto-cgraph.c (lto_output_node): Stream thunks.
14206         (input_overwrite_node): Stream in thunks.
14207         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
14208         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
14209         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
14210         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
14211         (inline_analyze_function): Do not care about thunk jump functions.
14212         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
14213         * ipa-prop.c (ipa_prop_write_jump_functions): Use
14214         cgraph_function_with_gimple_body_p.
14215         * passes.c (do_per_function_toporder): Use
14216         cgraph_function_with_gimple_body_p.
14217         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14218         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
14219         (function_called_by_processed_nodes_p): Likewise.
14220
14221 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14222
14223         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
14224         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
14225         entries.
14226         (mabi=): Replace with separate entries for mabi=altivec,
14227         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
14228         mabi=ieeelongdouble and mabi=ibmlongdouble.
14229         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14230         check for -mabi=spe without SPE ABI support here.
14231         (rs6000_handle_option): Replace OPT_mabi_ handling with
14232         OPT_mabi_altivec and OPT_mabi_spe handling.
14233
14234 2011-05-06  Cary Coutant  <ccoutant@google.com>
14235
14236         * dwarf2out.c (contains_subprogram_definition): New function.
14237         (should_move_die_to_comdat): Call it.
14238
14239 2011-05-06  Jeff Law  <law@redhat.com>
14240
14241         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
14242         remove_ctrl_stmt_and_useless_edges.
14243         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
14244         (fixup_template_block, thread_single_edge): Likewise.
14245         (mark_threaded_blocks): Use THREAD_TARGET.
14246
14247 2011-05-06  Alan Modra  <amodra@gmail.com>
14248
14249         PR target/48900
14250         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14251         const0_rtx as the arg to the dummy __tls_get_addr libcall.
14252
14253 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14254
14255         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
14256         constraint modifier to "r".
14257
14258 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14259
14260         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
14261         fall through for OPT_mcmodel_.
14262
14263 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14264
14265         * config/s390/s390.c (s390_asm_trampoline_template): Comment
14266         instruction sizes.
14267         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
14268
14269 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14270
14271         PR target/47930
14272         * config/arm/arm.opt (marm): Document it.
14273         (mthumb): Reject negative variant.
14274
14275 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14276
14277         PR target/48898
14278         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14279         Fix typo in "ccvt" variable name.
14280
14281 2011-05-06  Tristan Gingold  <gingold@adacore.com>
14282
14283         PR target/48895
14284         * config/vms/vms-ar.c (main): Remove cwd variable.
14285
14286 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
14287
14288         PR debug/48902
14289         * var-tracking.c (prepare_call_arguments): Move else before #endif.
14290
14291 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
14292
14293         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
14294         * gimplify.c (gimplify_switch_expr): Likewise.
14295         * omp-low.c (expand_omp_sections): Likewise.
14296         * tree-eh.c (lower_try_finally_switch): Likewise.
14297         (lower_eh_dispatch): Likewise.
14298         * tree.h (build_case_label): Declare.
14299         * tree.c (build_case_label): Define.
14300
14301 2011-05-05  Jason Merrill  <jason@redhat.com>
14302
14303         PR c++/40975
14304         * tree-inline.c (copy_tree_r): Use copy_statement_list.
14305         (copy_statement_list): Don't recurse.
14306         * stor-layout.c (copy_self_referential_tree_r): Don't allow
14307         STATEMENT_LIST.
14308
14309 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14310
14311         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
14312         through from -mfpu= handling.
14313         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
14314
14315 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
14316
14317         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
14318         POST_MODIFY.
14319
14320 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
14321
14322         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
14323         for 11.31.
14324         (hppa[12]*-*-hpux11*): Ditto.
14325         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
14326         * config/ia64/hpux-unix2003.h: New.
14327         * config/pa/pa-hpux1131.opt: New.
14328         * config/pa/pa-hpux1131.h: New.
14329         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
14330         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
14331         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
14332
14333 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14334
14335         PR debug/48853
14336         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
14337         instead of mode as 3rd argument to recursive call.
14338         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
14339         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
14340         VOIDmode.
14341         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
14342         don't give up if mode is Pmode and mem_mode is not VOIDmode.
14343         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
14344         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
14345
14346 2011-05-05  Julian Brown  <julian@codesourcery.com>
14347
14348         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
14349         parenthesis in D-register case.
14350
14351 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14352
14353         * opt-functions.awk (var_type_struct): Handle Enum options.
14354         * optc-gen.awk: Don't check range of variables of character type.
14355         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
14356         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
14357         rs6000_sdata_name, rs6000_explicit_options): Remove.
14358         (rs6000_option_override_internal): Check for -malign-power here.
14359         Use global_options_set instead of rs6000_explicit_options.
14360         (rs6000_parse_fpu_option): Remove.
14361         (rs6000_handle_option): Access variables via opts and opts_set
14362         pointers.  Use error_at and warning_at.  Add fall-through
14363         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
14364         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
14365         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
14366         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
14367         here.  Don't use rs6000_parse_fpu_option.
14368         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
14369         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
14370         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
14371         (mrecip=): Use Var.
14372         (mspe): Use Var and Save.
14373         (mtraceback=): Use Enum and Var.
14374         (rs6000_traceback_type): New Enum and EnumValue entries.
14375         (mfloat-gprs=): Use Enum, Var and Save.
14376         (rs6000_float_gprs): New Enum and EnumValue entries.
14377         (mlong-double-): use Var and Save.
14378         (msched-costly-dep=, minsert-sched-nops=): Use Var.
14379         (malign-): Use Enum and Var.
14380         (rs6000_alignment_flags): New Enum and EnumValue entries.
14381         (mfpu=): Use Enum.
14382         (fpu_type_t): New Enum and EnumValue entries.
14383         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14384         global_options_set instead of rs6000_explicit_options.
14385         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14386         global_options_set instead of rs6000_explicit_options.
14387         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14388         global_options_set instead of rs6000_explicit_options.
14389         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14390         global_options_set instead of rs6000_explicit_options.
14391         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
14392         global_options_set instead of rs6000_explicit_options.
14393         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14394         global_options_set instead of rs6000_explicit_options.
14395         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
14396         definition.
14397         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14398         global_options_set instead of rs6000_explicit_options.
14399         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
14400         (rs6000_cmodel): New Enum and EnumValue entries.
14401         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14402         global_options_set instead of rs6000_explicit_options.
14403         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
14404         (mtls-size=): Use Enum and Var.
14405         (rs6000_tls_size): New Enum and EnumValue entries.
14406
14407 2011-05-05  Michael Matz  <matz@suse.de>
14408
14409         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
14410         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
14411         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
14412         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
14413         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
14414         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
14415         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
14416         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
14417         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
14418         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
14419         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
14420         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
14421         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
14422         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
14423         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
14424         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
14425
14426 2011-05-05  Richard Guenther  <rguenther@suse.de>
14427
14428         * expmed.c (expand_variable_shift): Rename to ...
14429         (expand_shift_1): ... this.  Take an expanded shift amount.
14430         For rotates recurse directly not building trees for the shift amount.
14431         (expand_variable_shift): Wrap around expand_shift_1.
14432         (expand_shift): Adjust.
14433
14434 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14435
14436         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
14437
14438 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14439
14440         * tree.h (get_pending_sizes): Remove prototype.
14441         (put_pending_size): Likewise.
14442         (put_pending_sizes): Likewise.
14443         * stor-layout.c (pending_sizes): Delete.
14444         (get_pending_sizes): Likewise.
14445         (put_pending_size): Likewise.
14446         (put_pending_sizes): Likewise.
14447         (variable_size): Do not call put_pending_size and tidy up.
14448         * function.h (struct function): Remove dont_save_pending_sizes_p.
14449         * lto-streamer-in.c (input_function): Do not stream it.
14450         * lto-streamer-out.c (output_function): Likewise.
14451         * tree-inline.c (initialize_cfun): Do not copy it.
14452         * c-decl.c (store_parm_decls): Do not set it.
14453         * omp-low.c (create_task_copyfn): Likewise.
14454         * tree-optimize.c (tree_rest_of_compilation): Likewise.
14455
14456 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
14457
14458         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
14459         conditions.
14460         (*movdf_internal): Ditto.
14461         (*movdf_internal_nointeger): Ditto.
14462         (*movsf_internal): Ditto.
14463
14464 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14465
14466         * c-decl.c (finish_decl): Don't call get_pending_sizes.
14467         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
14468         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
14469         (c_variable_size): Remove.
14470         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
14471         call put_pending_sizes.
14472         (get_parm_info): Add parameter expr.  Use it to set
14473         arg_info->pending_sizes.
14474         (store_parm_decls): Use arg_info->pending_sizes instead or calling
14475         get_pending_sizes.
14476         * c-parser.c (c_parser_parms_declarator): Update call to
14477         c_parser_parms_list_declarator.
14478         (c_parser_parms_list_declarator): Take parameter expr.  Update
14479         call to push_parm_decl.  Update recursive call.  Don't call
14480         get_pending_sizes.  Update calls to get_parm_info.
14481         (c_parser_objc_method_definition): Update calls to
14482         c_parser_objc_method_decl and objc_start_method_definition.
14483         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
14484         (c_parser_objc_method_decl): Add parameter expr.  Update call to
14485         grokparm.
14486         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
14487         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
14488         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
14489
14490 2011-05-05  Michael Hope  <michael.hope@linaro.org>
14491
14492         PR pch/45979
14493         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
14494         __ARM_EABI__ hosts.
14495
14496 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14497
14498         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14499         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
14500         (spu_output_mi_thunk): New function.
14501
14502 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14503
14504         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
14505         targetm.asm_out.print_operand.
14506         * config/sol2.c: Include target.h.
14507
14508 2011-05-04  Jan Hubicka  <jh@suse.cz>
14509
14510         * ipa-inline.c (reset_edge_caches): New function.
14511         (update_caller_keys): Add check_inlinablity_for; do not
14512         reset edge caches; remove now unnecesary loop.
14513         (update_callee_keys): Add comments; reset node_growth_cache of callee.
14514         (update_all_callee_keys): Likewise.
14515         (inline_small_functions): Sanity check cache; update code
14516         recomputing it.
14517
14518 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
14519
14520         PR rtl-optimization/47612
14521         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
14522         as the last insn of the sequence to be moved.
14523
14524 2011-05-04  Tobias Burnus  <burnus@net-b.de>
14525
14526         PR fortran/48864
14527         * doc/invoke.texi (Ofast): Document that it
14528         enables Fortran's -fno-protect-parens.
14529
14530 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14531
14532         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
14533
14534 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14535
14536         * stor-layout.c (variable_size): Do not issue errors.
14537
14538 2011-05-04  Richard Guenther  <rguenther@suse.de>
14539
14540         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
14541         for array-ref indices.
14542         (tree_coverage_counter_addr): Likewise.
14543         (build_fn_info_type): Use size_int for index types.
14544         (build_gcov_info): Likewise.
14545
14546 2011-05-04  Richard Guenther  <rguenther@suse.de>
14547
14548         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
14549         to build_int_cst.
14550         * c-typeck.c (really_start_incremental_init): Use bitsize_int
14551         for constructor indices.
14552         (push_init_level): Likewise.
14553
14554 2011-05-04  Richard Guenther  <rguenther@suse.de>
14555
14556         * explow.c (promote_mode): Move variable declarations before code.
14557
14558 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
14559
14560         * tree.h (build_function_type_array): Declare.
14561         (build_varargs_function_type_array): Declare.
14562         (build_function_type_vec, build_varargs_function_type_vec): Define.
14563         * tree.c (build_function_type_array_1): New function.
14564         (build_function_type_array): New function.
14565         (build_varargs_function_type_array): New function.
14566
14567 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
14568
14569         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
14570         before setting STMT_VINFO_TYPE.
14571
14572 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14573
14574         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
14575         instead of spu_pass_by_reference.
14576
14577 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14578
14579         * calls.c (emit_library_call_value_1): Invoke
14580         promote_function_mode hook on libcall arguments.
14581         * explow.c (promote_function_mode, promote_mode): Handle TYPE
14582         argument being NULL.
14583         * targhooks.c (default_promote_function_mode): Lisewise.
14584         * config/s390/s390.c (s390_promote_function_mode): Likewise.
14585         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
14586
14587         * doc/tm.texi: Document that TYPE argument might be NULL.
14588
14589 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14590
14591         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
14592
14593 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14594
14595         From Bernd Schmidt
14596         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
14597
14598 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14599
14600         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
14601         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
14602         Move ...
14603         * mips-tfile.c: ... here.
14604         Don't include coretypes.h, tm.h, filenames.h.
14605         (saber_stop): Remove definition and all calls.
14606         [__SABER__]: Remove.
14607         (__LINE__): Remove default.
14608         (Size_t, Ptrdiff_t): Remove definitions.
14609         Replace by size_t, ptrdiff_t.
14610         [!MIPS_DEBUGGING_INFO]: Remove.
14611         (SHASH_SIZE, THASH_SIZE): Remove defaults.
14612         (progname): Add const.
14613         (STATIC): Remove.
14614         Replace all uses by static.
14615         (ALIGN_SYMTABLE_OFFSET): Remove default.
14616         * mips-tdump.c: Don't include coretypes.h, tm.h.
14617         Remove !MIPS_IS_STAB guard.
14618         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
14619         $(TM_H), filenames.h dependencies.
14620         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
14621
14622 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14623
14624         From Jie Zhang
14625         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
14626         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
14627
14628 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14629
14630         From Bernd Schmidt
14631         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
14632         account and save/restore RETS.
14633         (PROFILE_BEFORE_PROLOGUE): Define.
14634         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
14635         the push insn to use predecrement.
14636
14637 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14638
14639         From Jie Zhang
14640         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
14641
14642 2011-05-04  Nick Clifton  <nickc@redhat.com>
14643
14644         * config/mn10300/mn10300.c: Include cfgloop.h.
14645         (DUMP): New macro.
14646         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
14647         Lcc or a FLcc insn into the instruction stream.
14648         (mn10300_block_contains_call): New function.  Returns true if the
14649         given basic block contains a CALL insn.
14650         (mn10300_loop_contains_call_insn): New function.  Returns true if
14651         the given loop contains a CALL insn.
14652         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
14653         to use the SETLB and Lcc or FLcc insns.
14654         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
14655         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
14656         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
14657         disable the SETLB optimization.
14658         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
14659         __SETLB__ or __NO_SETLB__.
14660         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
14661         (movsf_internal): Handle MDR register.
14662         (cmpsi): Make visible.
14663         (setlb): New pattern.
14664         (Lcc): New pattern.
14665         (FLcc): New pattern.
14666
14667 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14668
14669         PR target/48860
14670         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
14671         for reg<->xmm moves.
14672         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
14673         (vec_concatv2di_rex64_sse): Ditto.
14674         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
14675         (*vec_extractv2di_1_rex64): Ditto.
14676
14677         Revert:
14678         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
14679
14680         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14681         reg<->xmm moves.
14682         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
14683
14684 2011-05-04  Richard Guenther  <rguenther@suse.de>
14685
14686         * tree.h (int_const_binop): Remove notrunc argument.
14687         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
14688         create integer constants that are properly truncated.
14689         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
14690         (const_binop): Remove zero notrunc argument to int_const_binop.
14691         (size_binop_loc): Likewise.
14692         (fold_div_compare): Likewise.
14693         (maybe_canonicalize_comparison_1): Likewise.
14694         (fold_comparison): Likewise.
14695         (fold_binary_loc): Likewise.
14696         (multiple_of_p): Likewise.
14697         * expr.c (store_constructor): Likewise.
14698         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14699         (maybe_fold_stmt_addition): Likewise.
14700         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
14701         * stor-layout.c (layout_type): Likewise.
14702         * tree-data-ref.c (tree_fold_divides_p): Likewise.
14703         * tree-sra.c (build_ref_for_offset): Likewise.
14704         (build_user_friendly_ref_for_offset): Likewise.
14705         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
14706         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
14707         * tree-ssa-loop-niter.c (inverse): Likewise.
14708         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14709         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
14710         * tree-switch-conversion.c (check_range): Likewise.
14711         (build_constructors): Likewise.
14712         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
14713         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
14714         (extract_range_from_assert): Likewise.
14715         (vrp_int_const_binop): Likewise.
14716         (extract_range_from_binary_expr): Likewise.
14717         (extract_range_from_unary_expr): Likewise.
14718         (check_array_ref): Likewise.
14719         (find_case_label_range): Likewise.
14720         (simplify_div_or_mod_using_ranges): Likewise.
14721         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
14722         comparing case labels for merging.
14723
14724 2011-05-03  Mark Wielaard  <mjw@redhat.com>
14725
14726         * dwarf2out.c (debug_str_hash_forced): Removed.
14727         (gen_label_for_indirect_string): Removed.
14728         (get_debug_string_label): Removed.
14729         (AT_string_form): Generate label directly.
14730         (output_indirect_string): Test indirect_string_node for
14731         DW_FORM_strp instead of checking label and refcount.
14732         (prune_indirect_string): Removed.
14733         (prune_unused_types): Don't check debug_str_hash_forced or
14734         call prune_indirect_string.
14735
14736 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14737
14738         PR other/48093
14739         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
14740
14741 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14742
14743         PR debug/47994
14744         PR debug/47919
14745         * combine.c (try_combine): Skip debug insns at m_split tests.
14746
14747 2011-04-26  Mark Wielaard  <mjw@redhat.com>
14748
14749         PR42288
14750         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
14751         when info_section_emitted.
14752
14753 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
14754
14755         * config/mips/mips-opts.h: New.
14756         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
14757         to mips-opts.h.
14758         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
14759         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
14760         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
14761         via opts pointer.
14762         * config/mips/mips.h (enum mips_code_readable_setting): Move to
14763         mips-opts.h.
14764         (mips_abi, mips_code_readable): Don't declare.
14765         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
14766         (mabi=): Use Enum and Var.
14767         (mips_abi): New Enum and EnumValue entries.
14768         (mcode-readable=): Use Enum and Var.
14769         (mips_code_readable_setting): New Enum and EnumValue entries.
14770         (mr10k-cache-barrier=): Use Enum and Var.
14771         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
14772
14773 2011-05-03  Jan Hubicka  <jh@suse.cz>
14774
14775         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
14776         replace hash by pointer map.
14777         (cgraph_node_set_element_def, cgraph_node_set_element,
14778         const_cgraph_node_set_element, varpool_node_set_element_def,
14779         varpool_node_set_element, const_varpool_node_set_element): Remove.
14780         (free_cgraph_node_set, free_varpool_node_set): New function.
14781         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
14782         * tree-emutls.c: Free varpool node set.
14783         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
14784         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14785         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
14786         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14787         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
14788         Move here from ipa.c; implement using pointer_map
14789         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
14790         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14791         debug_cgraph_node_set, varpool_node_set_new,
14792         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14793         dump_varpool_node_set, debug_varpool_node_set):
14794         Move to ipa-uitls.c.
14795         * passes.c (ipa_write_summaries): Update.
14796
14797 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14798
14799         From Mike Frysinger:
14800         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
14801         bf542/bf544/bf547/bf548/bf549.
14802
14803 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14804
14805         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
14806
14807 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14808
14809         From Bernd Schmidt:
14810         * config/bfin/bfin.md (MOVCC): New mode_macro.
14811         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
14812         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
14813         comments from generated assembly.
14814
14815 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14816
14817         From Bernd Schmidt
14818         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
14819         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
14820         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
14821         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
14822         * config/bfin/lib1funcs.asm (___muldi3): New function.
14823
14824 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14825
14826         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
14827         build_function_type_list instead of build_function_type.
14828         Rearrange initialization of `args' to do so.
14829
14830 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14831
14832         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
14833         instead of build_function_type.
14834
14835 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14836
14837         * config/rs6000/rs6000.c (spe_init_builtins): Call
14838         build_function_type_list instead of build_function_type.
14839         (paired_init_builtins, altivec_init_builtins): Likewise.
14840         (builtin_function_type): Likewise.
14841
14842 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14843
14844         * config/sh/sh.c (sh_media_init_builtins): Call
14845         build_function_type_list instead of build_function_type.
14846
14847 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14848
14849         * config/sparc/sparc.c (sparc_file_end): Call
14850         build_function_type_list instead of build_function_type.
14851
14852 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14853
14854         * config/alpha/alpha.c (alpha_init_builtins): Call
14855         build_function_type_list instead of build_function_type.
14856
14857 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14858
14859         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
14860         build_function_type_list instead of build_function_type.
14861
14862 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14863
14864         * config/iq2000/i2000.c (iq2000_init_builtins): Call
14865         build_function_type_list instead of build_function_type.
14866         Delete `endlink' variable.
14867
14868 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14869
14870         * config/avr/avr.c (avr_init_builtins): Call
14871         build_function_type_list instead of build_function_type.
14872
14873 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14874
14875         * config/picochip/picochip.c (picochip_init_builtins): Call
14876         build_function_type_list instead of build_function_type.
14877         Delete `endlink' variable.
14878
14879 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14880
14881         * config/bfin/bfin.c (bfin_init_builtins): Call
14882         build_function_type_list instead of build_function_type.
14883
14884 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14885
14886         From Bernd Schmidt
14887         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
14888         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
14889
14890 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14891
14892         From Jie Zhang:
14893         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
14894         libbffastfp overrides libgcc when -mfast-fp.
14895
14896 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14897
14898         Originally from Bernd Schmidt
14899         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
14900         * config/bfin/bfin.c (override_options): Test it and error if
14901         TARGET_FDPIC.
14902
14903 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14904
14905         Originally From Bernd Schmidt
14906         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
14907         FD-PIC.
14908
14909 2011-05-03  Jeff Law  <law@redhat.com>
14910
14911         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
14912         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
14913         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
14914         than accessing AUX field directly.  Free the AUX field before
14915         clearing it.
14916         (thread_block, thread_through_loop_header): Likewise.
14917         (thread_single_edge, mark_threaded_blocks): Likewise.
14918         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
14919         (register_jump_thread): Do not attempt to thread to a NULL edge.
14920
14921 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14922
14923         * function.c (init_function_start): Call decide_function_section.
14924         * varasm.c (decide_function_section): New function.
14925         (assemble_start_function): When not using
14926         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
14927         or first_function_block_is_cold.
14928         * rtl.h (decide_function_section): Declare.
14929
14930 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14931             Jakub Jelinek  <jakub@redhat.com>
14932
14933         PR target/48774
14934         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
14935         only succeed if req_mode is the same as set_mode.
14936
14937 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14938
14939         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
14940         * genemit.c (gen_exp): Handle RETURN.
14941         * emit-rtl.c (verify_rtx_sharing): Likewise.
14942         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
14943         * rtl.c (copy_rtx): RETURN is shared.
14944         * rtl.h (enum global_rtl_index): Add GR_RETURN.
14945         (ret_rtx): New.
14946         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
14947         * config/s390/s390.c (s390_emit_epilogue): Likewise.
14948         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
14949         * config/cris/cris.c (cris_expand_return): Likewise.
14950         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
14951         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
14952         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
14953         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
14954         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
14955         Likewise.
14956         * config/v850/v850.c (expand_epilogue): Likewise.
14957         * config/bfin/bfin.c (bfin_expand_call): Likewise.
14958         * config/arm/arm.md (epilogue): Likewise.
14959         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
14960         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
14961         variable to ret_reg.
14962
14963 2011-05-03  Richard Guenther  <rguenther@suse.de>
14964
14965         PR lto/48846
14966         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
14967         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
14968         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
14969
14970 2011-05-03  Richard Guenther  <rguenther@suse.de>
14971
14972         * c-decl.c (grokdeclarator): Instead of looking at
14973         TREE_OVERFLOW check if the constant fits in the index type.
14974
14975 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14976
14977         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
14978         (vec_store_lanes<mode><mode>): Likewise.
14979
14980 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14981
14982         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
14983         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
14984         convert_optab_index values.
14985         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
14986         * genopinit.c (optabs): Initialize the new optabs.
14987         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
14988         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
14989         (expand_STORE_LANES): New functions.
14990         * tree.h (build_array_type_nelts): Declare.
14991         * tree.c (build_array_type_nelts): New function.
14992         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
14993         (vect_model_load_cost): Likewise.
14994         (vect_store_lanes_supported, vect_load_lanes_supported)
14995         (vect_record_strided_load_vectors): Declare.
14996         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
14997         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
14998         (vect_transform_strided_load): Split out statement recording into...
14999         (vect_record_strided_load_vectors): ...this new function.
15000         * tree-vect-stmts.c (create_vector_array, read_vector_array)
15001         (write_vector_array, create_array_ref): New functions.
15002         (vect_model_store_cost): Add store_lanes_p argument.
15003         (vect_model_load_cost): Add load_lanes_p argument.
15004         (vectorizable_store): Try to use store-lanes functions for
15005         interleaved stores.
15006         (vectorizable_load): Likewise load-lanes and loads.
15007         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
15008         to vect_model_store_cost.
15009         (vect_build_slp_tree): Likewise vect_model_load_cost.
15010
15011 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
15012
15013         * hooks.h (hook_bool_mode_uhwi_false): Declare.
15014         * hooks.c (hook_bool_mode_uhwi_false): New function.
15015         * target.def (array_mode_supported_p): New hook.
15016         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
15017         * doc/tm.texi: Regenerate.
15018         * stor-layout.c (mode_for_array): New function.
15019         (layout_type): Use it.
15020         * config/arm/arm.c (arm_array_mode_supported_p): New function.
15021         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
15022
15023 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
15024
15025         PR target/48723
15026         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
15027         for -fstack-check if the size to allocate is negative.
15028
15029 2011-05-02  Lawrence Crowl  <crowl@google.com>
15030
15031         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
15032         (timevar_cond_start): New for starting a timer only when it is not
15033         already running.
15034         (timevar_cond_stop): New for stopping a timer when it was not already
15035         running.
15036
15037         * timevar.c (timevar_stop): Enable start/stop timers to start again.
15038         (timevar_cond_start): New as above.
15039         (timevar_cond_stop): New as above.
15040
15041         * timevar.def: Add start/stop timers for compiler phases,
15042         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
15043         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
15044         and TV_PHASE_FINALIZE.
15045         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
15046         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
15047         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
15048         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
15049         Make unused TV_OVERLOAD into a start/stop timer.
15050
15051         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
15052         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
15053         to indicate that they are start/stop timers.
15054
15055         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
15056         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
15057         Move initialization to do_compile.
15058         (do_compile): Add initialization from above.
15059         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
15060
15061         * c-decl.c (c_write_global_declarations): Add start/stop of
15062         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
15063
15064         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
15065         or TV_PARSE_INLINE, as appropriate.
15066         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
15067         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
15068
15069 2011-05-02  Jason Merrill  <jason@redhat.com>
15070
15071         PR c++/40975
15072         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
15073
15074 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
15075
15076         PR c/35445
15077         * c-decl.c (finish_decl): Only create a composite if the types are
15078         compatible.
15079
15080 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15081
15082         * config/fr30/fr30-protos.h (Mmode): Don't define.
15083         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
15084         definition where used.
15085         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
15086         define.  Expand definitions where used.
15087         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
15088         Expand definitions where used.
15089         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
15090         rx_function_arg, rx_function_arg_advance,
15091         rx_function_arg_boundary): Expand definitions of those macros.
15092         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
15093         definition where used.
15094
15095 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15096
15097         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
15098         reg<->xmm moves.
15099         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
15100         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
15101         with *movv2sf_internal_rex64_avx.
15102         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
15103         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
15104         Use %v prefix in insn mnemonic to handle TARGET_AVX.
15105         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
15106         "vex" in "prefix" attribute calculation.
15107         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
15108
15109 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
15110
15111         PR target/47951
15112         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
15113         inputs match the output.
15114
15115 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
15116
15117         PR target/47955
15118         * config/m68k/m68k.c (m68k_expand_prologue): Set
15119         current_function_static_stack_size.
15120
15121 2011-05-02   Jan Hubicka  <jh@suse.cz>
15122
15123         * lto-streamer.c (lto_streamer_cache_insert_1,
15124         lto_streamer_cache_lookup, lto_streamer_cache_create,
15125         lto_streamer_cache_delete): Use pointer map instead of hashtable.
15126         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
15127
15128 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15129
15130         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
15131         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
15132         config/m68k/t-opts: New files.
15133         * config/m68k/m68k-tables.opt: New file (generated).
15134         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
15135         extra_options and m68k/t-opts to tmake_file.
15136         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
15137         (all_isas): Initialize using m68k-isas.def.
15138         (all_microarchs): Initialize using m68k-microarchs.def.
15139         (m68k_find_selection): Remove.
15140         (m68k_handle_option): Don't assert that global structures are in
15141         use.  Use error_at.  Access variables via opts pointer.  Don't
15142         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
15143         directly for -m68020-40 and -m68020-60.
15144         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
15145         m68k_tune_entry here.
15146         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
15147         to m68k-opts.h.
15148         (m68k_library_id_string): Remove declaration.
15149         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
15150         (m68k_library_id_string): New Variable.
15151         (march=, mcpu=, mtune=): Use Enum and Var.
15152
15153 2011-05-02  Richard Guenther  <rguenther@suse.de>
15154
15155         * varasm.c (output_constructor_regular_field): Compute zero-based
15156         index with double-ints.  Make sure to ICE instead of producing
15157         wrong code.
15158         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
15159         in asserts.  Properly use a signed type.
15160
15161 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15162
15163         * config/i386/sse.md (V): New mode iterator.
15164         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
15165         TARGET_SSE2.
15166         (V_256): Rename from AVX256MODE.
15167         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
15168         condition to all users.
15169         (VF1): Ditto.
15170         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
15171         condition to all users.
15172         (VF_128): Make V4SF mode unconditional.
15173         (VF_256): Rename from AVX256MODEF2P.
15174         (VI4F_128): Rename from SSEMODE4S.
15175         (VI8F_128): Rename from SSEMODE2D.
15176         (VI4F_256): Rename from AVX256MODE8P.
15177         (VI8F_256): Rename from AVX256MODE4P.
15178         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
15179         (ssescalarmodesuffix): Remove SF and DF modes.
15180         (SSEMODE124): Remove.
15181         (SSEMODE1248): Ditto.
15182         (SSEMODEF2P): Ditto.
15183         (AVXMODEF2P): Ditto.
15184         (AVXMODEFDP): Ditto.
15185         (AVXMODEFSP): Ditto.
15186         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
15187         unconditional.
15188         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
15189         unconditional.
15190         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
15191         xop_pcmov_<mode>256.  Use V mode iterator.
15192
15193         Adjust RTX patterns globally for renamed mode attributes.
15194
15195 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15196
15197         * haifa-sched.c (sched_emit_insn): Emit insn before first
15198         non-scheduled insn.  Inform back-end about new insn.  Add
15199         new insn to scheduled_insns list.
15200
15201 2011-05-02  Richard Guenther  <rguenther@suse.de>
15202
15203         PR tree-optimization/48822
15204         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
15205         (process_scc): Indicate which iteration we start.
15206
15207 2011-05-02  Jan Hubicka  <jh@suse.cz>
15208
15209         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
15210         (lto_section_overrun): New.
15211         * lto-section-out.c (append_block): Rename to ...
15212         (lto_append_block): ... this one; export.
15213         (lto_output_1_stream): Move lto lto-streamer.h
15214         (lto_output_data_stream): Update.
15215         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
15216         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
15217         functions.
15218
15219 2011-05-02  Richard Guenther  <rguenther@suse.de>
15220
15221         * tree.c (tree_code_counts): New global array.
15222         (record_node_allocation_statistics): Count individual tree codes.
15223         (dump_tree_statistics): Dump individual code stats.
15224
15225 2011-05-01  Jan Hubicka  <jh@suse.cz>
15226
15227         * ipa-inline.c (caller_growth_limits): Fix thinko when
15228         looking for largest stack frame.
15229         * ipa-inline.h (dump_inline_summary): Declare.
15230         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
15231         on stack usage.
15232         (dump_inline_summary): Export.
15233         (debug_inline_summary): Declare as DEBUG_FUNCTION.
15234
15235 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
15236
15237         * reginfo.c (memory_move_cost): Change rclass argument type form
15238         'enum reg_class' to reg_class_t.
15239         * reload.h (memory_move_cost): Update prototype.
15240         * postreload.c reload_cse_simplify_set): Change type dclass var to
15241         reg_class_t.
15242         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
15243         Update prototype.
15244         (ira_allocate_and_set_costs): Change aclass argument type form
15245         'enum reg_class' to reg_class_t.
15246         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
15247         Change aclass argument type to reg_class_t.
15248         (update_conflict_hard_reg_costs): Change type aclass and pref vars
15249         to reg_class_t.
15250         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
15251         memory_move_cost call.
15252
15253         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
15254         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
15255         Change type tmp var to reg_class_t.
15256
15257 2011-04-30  Jan Hubicka  <jh@suse.cz>
15258
15259         * ipa-inline.c (can_inline_edge_p): Disregard limits when
15260         inlining into function with flatten attribute.
15261         (want_inline_small_function_p): Be more realistic about inlining
15262         cold calls where callee size grows.
15263
15264 2011-04-30  Jan Hubicka  <jh@suse.cz>
15265
15266         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
15267         flags.
15268
15269 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
15270
15271         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15272         PRINT_OPERAND_PUNCT_VALID_P): Remove.
15273         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
15274         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
15275         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15276         (print_operand): Rename to...
15277         (sparc_print_operand): ...this. Make static. Adjust
15278         sparc_print_operand function call.
15279         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
15280         functions.
15281
15282 2011-04-30  Jan Hubicka  <jh@suse.cz>
15283
15284         PR middle-end/48752
15285         * ipa-inline.c (early_inliner): Disable when doing late
15286         addition of function.
15287
15288 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
15289
15290         * dwarf2out.c (get_address_mode): New inline.
15291         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
15292         if not dwarf_strict emit
15293         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
15294         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
15295         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
15296         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
15297         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
15298         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
15299         mem_loc_descriptor callers.
15300         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
15301         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
15302         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
15303         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
15304         (base_types): New variable.
15305         (get_base_type_offset, calc_base_type_die_sizes,
15306         base_type_for_mode, mark_base_types, base_type_cmp,
15307         move_marked_base_types): New functions.
15308         (calc_die_sizes): Assert that die_offset is 0 or equal to
15309         next_die_offset.
15310         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
15311         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
15312         callers.  If not dwarf_strict, call mem_loc_descriptor even for
15313         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
15314         (gen_subprogram_die): Don't give up on call site parameters
15315         with non-integral or large integral modes.  Adjust
15316         mem_loc_descriptor callers.
15317         (prune_unused_types): Call prune_unused_types_mark on base_types
15318         vector entries.
15319         (resolve_addr): Call mark_base_types.
15320         (dwarf2out_finish): Call move_marked_base_types.
15321
15322         PR tree-optimization/48809
15323         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
15324         type.
15325         (gen_inbound_check): Don't compute index_expr - range_min in utype
15326         again, instead reuse SSA_NAME initialized in build_arrays.
15327         Remove two useless gsi_for_stmt calls.
15328
15329 2011-04-29  Jeff Law  <law@redhat.com>
15330
15331         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
15332
15333 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15334
15335         * cgraph.h (cgraph_postorder): Remove declaration.
15336         * ipa-utils.h (ipa_free_postorder_info): Declare.
15337         (ipa_reverse_postorder): Likewise.
15338         * cgraphunit.c: Include ipa-utils.h.
15339         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
15340         * ipa-inline.c: Include ipa-utils.h.
15341         (ipa_inline): Update call to ipa_reverse_postorder.
15342         * ipa-pure-const.c (propagate_pure_const): Update call to
15343         ipa_reduced_postorder and ipa_print_order.  Call
15344         ipa_free_postorder_info to clean up.
15345         (propagate_nothrow): Likewise.
15346         * ipa-reference.c (propagate): Removed a useless call to
15347         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
15348         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
15349         * ipa.c: Include ipa-utils.h.
15350         (ipa_profile): Update call to ipa_reverse_postorder.
15351         (cgraph_postorder): Moved to...
15352         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
15353         (ipa_utils_print_order): Renamed to ipa_print_order.
15354         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
15355         comments.
15356         (ipa_free_postorder_info): New function.
15357         * passes.c: Include ipa-utils.h.
15358         (do_per_function_toporder): Update call to ipa_reverse_postorder.
15359         (ipa_write_summaries): Likewise.
15360         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
15361         (cgraphunit.o): Likewise.
15362         (ipa.o): Likewise.
15363         (ipa-inline.o): Likewise.
15364
15365 2011-04-29  Jan Hubicka  <jh@suse.cz>
15366
15367         * gcc.dg/tree-ssa/inline-10.c: New testcase.
15368         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
15369         * ipa-inline.h (clause_t): Turn into unsigned int.
15370         * ipa-inline-analysis.c (add_clause): Do more simplification.
15371         (and_predicates): Shortcut more cases.
15372         (predicates_equal_p): Move forward; check that clauses are properly
15373         ordered.
15374         (or_predicates): Shortcut more cases.
15375         (edge_execution_predicate): Rewrite as...
15376         (set_cond_stmt_execution_predicate): ... this function; handle
15377         __builtin_constant_p.
15378         (set_switch_stmt_execution_predicate): New .
15379         (compute_bb_predicates): New.
15380         (will_be_nonconstant_predicate): Update TODO.
15381         (estimate_function_body_sizes): Use compute_bb_predicates
15382         and free them later, always try to estimate if stmt is constant.
15383         (estimate_time_after_inlining, estimate_size_after_inlining):
15384         Gracefully handle optimized out edges.
15385         (read_predicate): Fix off by one error.
15386
15387 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
15388
15389         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
15390
15391 2011-04-27  Xinliang David Li  <davidxl@google.com>
15392
15393         * tree-profile.c (init_ic_make_global_vars): Set
15394         tls attribute on ic vars.
15395         * coverage.c (coverage_end_function): Initialize
15396         function_list with zero.
15397
15398 2011-04-29  Richard Guenther  <rguenther@suse.de>
15399
15400         * builtins.c (fold_builtin_classify_type): Use integer_type_node
15401         for the type of the result.
15402         (fold_builtin_isascii): Likewise.
15403         (fold_builtin_toascii): Use integer_type_node where appropriate.
15404         (fold_builtin_logb): Likewise.
15405         (fold_builtin_frexp): Likewise.
15406         (fold_builtin_strstr): Likewise.
15407         (fold_builtin_strpbrk): Likewise.
15408         (fold_builtin_fputs): Likewise.
15409         (fold_builtin_sprintf): Likewise.
15410         (fold_builtin_snprintf): Likewise.
15411         (fold_builtin_printf): Likewise.
15412         (do_mpfr_remquo): Use a proper type for the assigned constant.
15413         (do_mpfr_lgamma_r): Likewise.
15414         * dwarf2out.c (resolve_one_addr): Use size_int.
15415         * except.c (init_eh): Likewise.
15416         (assign_filter_values): Use integer_type_node for filter values.
15417         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
15418         indices.
15419         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
15420         for EH region numbers.
15421         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
15422         for the shift amount.
15423
15424 2011-04-29  Richard Guenther  <rguenther@suse.de>
15425
15426         * expr.h (expand_shift): Rename to ...
15427         (expand_variable_shift): ... this.
15428         (expand_shift): Take a constant shift amount.
15429         * expmed.c (expand_shift): Rename to ...
15430         (expand_variable_shift): ... this.
15431         (expand_shift): New wrapper around expand_variable_shift.
15432         * expr.c (convert_move, emit_group_load_1, emit_group_store,
15433         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
15434         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
15435         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
15436         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
15437         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
15438         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
15439         emit_store_flag_1, emit_store_flag): Likewise.
15440         * builtins.c (expand_builtin_signbit): Likewise.
15441         * calls.c (load_register_parameters): Likewise.
15442         * function.c (assign_parm_setup_block): Likewise.
15443         * lower-subreg.c (resolve_shift_zext): Likewise.
15444         * optabs.c (widen_bswap, expand_abs_nojump,
15445         expand_one_cmpl_abs_nojump, expand_float): Likewise.
15446         * spu/spu.c (spu_expand_extv): Likewise.
15447         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15448
15449 2011-04-29  Richard Guenther  <rguenther@suse.de>
15450
15451         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
15452         for the remapped region number.
15453         * predict.c (build_predict_expr): Use integer_type_node for the
15454         predict kind.
15455         * fold-const.c (fold_binary_loc): Use integer_type_node for
15456         the shift amount.  Use a proper type for the PLUS_EXPR operand.
15457
15458 2011-04-29  Michael Matz  <matz@suse.de>
15459
15460         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
15461         other trees that just builtins.
15462         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
15463
15464 2011-04-29  Richard Guenther  <rguenther@suse.de>
15465
15466         * tree-nested.c (get_trampoline_type): Use size_int.
15467         (get_nl_goto_field): Likewise.
15468         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
15469         for all indexes.
15470         (lower_eh_constructs_2): Likewise.
15471         (lower_resx): Likewise.
15472         (lower_eh_dispatch): Likewise.
15473         * tree-mudflap.c (mf_build_string): Use size_int.
15474         (mudflap_register_call): Use integer_type_node for the flag.
15475         (mudflap_enqueue_constant): Use size_int.
15476         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
15477         instead of rebuilding it.
15478
15479 2011-04-29  Richard Guenther  <rguenther@suse.de>
15480
15481         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
15482         Handle OBJ_TYPE_REF.
15483         (find_func_aliases_for_call): Use it more consistently.
15484
15485 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
15486
15487         * haifa-sched.c (last_nondebug_scheduled_insn): New.
15488         (rank_for_schedule): Use it.
15489         (schedule_block): Set it.
15490
15491 2011-04-28  David Li  <davidxl@google.com>
15492
15493         * tree.c (crc32_string): Use crc32_byte.
15494         (crc32_byte): New function.
15495         * tree.h (crc32_byte): New function.
15496         * gcov.c (read_graph_file): Handle new cfg_cksum.
15497         (read_count_file): Ditto.
15498         * profile.c (instrument_values): Ditto.
15499         (get_exec_counts): Ditto.
15500         (read_profile_edge_counts): Ditto.
15501         (compute_branch_probabilities): Ditto.
15502         (compute_value_histograms): Ditto.
15503         (branch_prob): Ditto.
15504         (end_branch_prob): Ditto.
15505         * coverage.c (read_counts_file): Ditto.
15506         (get_coverage_counts): Ditto.
15507         (tree_coverage_counter_addr): Ditto.
15508         (coverage_checksum_string): Ditto.
15509         (coverage_begin_output): Ditto.
15510         (coverage_end_function): Ditto.
15511         (build_fn_info_type): Ditto.
15512         (build_fn_info_value): Ditto.
15513         * libgcov.c (gcov_exit): Ditto.
15514         * gcov-dump.c (tag_function): Ditto.
15515         (compute_checksum): Remove.
15516
15517 2011-04-29  Alan Modra  <amodra@gmail.com>
15518
15519         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15520         unspec plus offset.  Tidy macho code.
15521
15522 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15523
15524         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
15525         node instead of a decl.  Update all callers.
15526         * cgraph.h: Update declaration.
15527
15528 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
15529
15530         PR tree-optimization/48765
15531         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
15532         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
15533         to indicate if loop aware SLP is being used.  Scan the statements
15534         and update the vectorization factor according to the type of
15535         vectorization before statement analysis.
15536         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
15537         pass it to vect_analyze_loop_operations.
15538         (vectorizable_reduction): Set number of copies to 1 in case of pure
15539         SLP statement.
15540         * tree-vect-stmts.c (vectorizable_conversion,
15541         vectorizable_assignment, vectorizable_shift,
15542         vectorizable_operation, vectorizable_type_demotion,
15543         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
15544         Likewise.
15545         (vectorizable_condition): Move the check that it is not SLP
15546         vectorization before the number of copies check.
15547         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
15548         to vectorize the loop using SLP.
15549
15550 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
15551
15552         PR middle-end/48597
15553         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
15554         inline asm.
15555
15556 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
15557
15558         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
15559         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
15560         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15561         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15562         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
15563         linux*.h headers.
15564         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
15565         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15566         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15567         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15568         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15569         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
15570         REG_NAME.
15571         * config/i386/linux.h (REG_NAME): Don't define.
15572         * config/i386/linux64.h (REG_NAME): Don't define.
15573         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
15574         Undefine before defining.
15575
15576 2011-04-28  Jan Hubicka  <jh@suse.cz>
15577
15578         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
15579         nonconstant_names array.
15580         (estimate_function_body_sizes): Build nonconstant_names array; handle
15581         BUILT_IN_CONSTANT_P.
15582
15583 2011-04-28  Richard Guenther  <rguenther@suse.de>
15584
15585         PR bootstrap/48804
15586         Revert
15587         2011-04-28  Richard Guenther  <rguenther@suse.de>
15588
15589         * tree-ssa-structalias.c (solve_constraints): Build succ graph
15590         as late as possible.
15591
15592 2011-04-28  Richard Guenther  <rguenther@suse.de>
15593
15594         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
15595         (debug_constraint): Do it here.
15596         (dump_constraints): And here.
15597         (rewrite_constraints): And here.
15598         (dump_constraint_edge): Remove.
15599         (dump_constraint_graph): Rewrite to produce DOT output.
15600         (solve_constraints): Build succ graph as late as possible.
15601         Dump constraint graphs before and after solving.
15602
15603 2011-04-28  Richard Guenther  <rguenther@suse.de>
15604
15605         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15606         New function split out from ...
15607         (find_func_aliases): ... here.  Call it.
15608         (find_func_aliases_for_call): Likewise.
15609
15610 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15611
15612         * internal-fn.h (internal_fn_name_array): Declare.
15613         (internal_fn_flags_array): Likewise.
15614
15615 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15616
15617         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
15618         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
15619         Move from sse.md.
15620         (ssemodefsuffix): Remove.
15621         (ssevecmodesuffix): New mode attribute.
15622         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
15623         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
15624         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
15625         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
15626         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
15627         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
15628         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
15629         ssemodesuffix mode attribute.
15630         (float splitters): Use ssevecmodesuffix mode attribute.
15631         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
15632         (sseinsmode): Rename from avxvecmode.
15633         (avxsizesuffix): Rename from avxmodesuffix.
15634         (sseintvecmode): Rename from avxpermvecmode.
15635         (ssedoublevecmode): Rename from ssedoublesizemode.
15636         (ssehalfvecmode): Rename from avxhalfvecmode.
15637         (ssescalarmode): Rename from avxscalarmode.
15638         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
15639         templates for ssemodesuffix mode attribute.
15640         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
15641         mode attribute.
15642
15643         Adjust RTX patterns globally for renamed mode attributes.
15644
15645 2011-04-27  Jan Hubcika  <jh@suse.cz>
15646
15647         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
15648         * ipa-inline-analysis.c: Include alloc-pool.h.
15649         (edge_predicate_pool): New.
15650         (trye_predicate_p): New function
15651         (false_predicate_p): New function.
15652         (add_clause): Sanity check that false clauses are "optimized";
15653         never add clauses to predicate that is already known to be false.
15654         (and_predicate): Use flase_predicate_p.
15655         (evaulate_predicate): Rename to ...
15656         (evaluate_predicate): ... this one; update all callers; assert
15657         that false is not listed among possible truths.
15658         (dump_predicate): Use true_predicate_p.
15659         (account_size_time): Use false_predicate_p.
15660         (evaulate_conditions_for_edge): Rename to ...
15661         (evaluate_conditions_for_edge) ... this one.
15662         (edge_set_predicate): New function.
15663         (inline_edge_duplication_hook): Duplicate edge predicates.
15664         (inline_edge_removal_hook): Free edge predicates.
15665         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
15666         (dump_inline_summary): Update.
15667         (estimate_function_body_sizes): Set edge predicates.
15668         (estimate_calls_size_and_time): Handle predicates.
15669         (estimate_callee_size_and_time): Update.
15670         (remap_predicate): Add toplev_predicate; update comment.
15671         (remap_edge_predicates): New function.
15672         (inline_merge_summary): Compute toplev predicate; update.
15673         (read_predicate): New function.
15674         (read_inline_edge_summary): Use it.
15675         (inline_read_section): Likewise.
15676         (write_predicate): New function.
15677         (write_inline_edge_summary): Use it.
15678         (inline_write_summary): Likewise.
15679         (inline_free_summary): Free alloc pool and edge summary vec.
15680
15681 2011-04-27  Richard Guenther  <rguenther@suse.de>
15682
15683         * tree-ssa-structalias.c (changed_count): Remove.
15684         (changed): Use a bitmap.
15685         (unify_nodes): Adjust.
15686         (do_sd_constraint): Likewise.
15687         (do_ds_constraint): Likewise.
15688         (do_complex_constraint): Likewise.
15689         (solve_graph): Likewise.
15690
15691 2011-04-27  Jan Hubicka  <jh@suse.cz>
15692
15693         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
15694
15695 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15696
15697         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
15698         (avx_vperm2f128_*_operand): Ditto.
15699         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
15700         Use avx_vpermilp_parallel in insn condition.
15701         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
15702         Use avx_vperm2f128_parallel in insn condition.
15703
15704 2011-04-27  Richard Guenther  <rguenther@suse.de>
15705
15706         * Makefile.in (tree-ssa-structalias.o): Remove
15707         gt-tree-ssa-structalias.h dependency.
15708         (GTFILES): Remove tree-ssa-structalias.c.
15709         * tree.c (allocate_decl_uid): New function.
15710         (make_node_stat): Use it.
15711         (copy_node_stat): Likewise.
15712         * tree.h (allocate_decl_uid): Declare.
15713         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
15714         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
15715         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
15716         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
15717         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
15718         (struct heapvar_map): Likewise.
15719         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
15720         heapvar_insert): Likewise.
15721         (make_heapvar_for): Rename to ...
15722         (make_heapvar): ... this.  Simplify.
15723         (fake_var_decl_obstack): New global var.
15724         (build_fake_var_decl): New function.
15725         (make_constraint_from_heapvar): Adjust.
15726         (handle_lhs_call): Likewise.
15727         (create_function_info_for): Likewise.
15728         (intra_create_variable_infos): Likewise.
15729         (init_alias_vars): Allocate fake_var_decl_obstack.
15730         (init_alias_heapvars, delete_alias_heapvars): Remove.
15731         (compute_points_to_sets): Do not call init_alias_heapvars.
15732         (ipa_pta_execute): Likewise.
15733         (delete_points_to_sets): Free fake_var_decl_obstack.
15734
15735 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15736
15737         * config/spu/divmovti4.c (union qword_UTItype): New data type.
15738         (si_from_UTItype, si_to_UTItype): New functions.
15739         (__udivmodti4): Use them to implement type-punning.
15740         * config/spu/multi3.c (union qword_TItype): New data type.
15741         (si_from_TItype, si_to_TItype): New functions.
15742         (__multi3): Use them to implement type-punning.
15743
15744 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15745
15746         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
15747
15748 2011-04-27  Jan Hubicka  <jh@suse.cz>
15749
15750         * ipa-prop.c (function_insertion_hook_holder): New holder.
15751         (ipa_add_new_function): New function.
15752         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
15753         Register/deregister holder.
15754
15755 2011-04-27  Richard Guenther  <rguenther@suse.de>
15756
15757         PR tree-optimization/48772
15758         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
15759
15760 2011-04-27  Richard Guenther  <rguenther@suse.de>
15761
15762         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
15763         TARGET_MEM_REF handling.
15764
15765 2011-04-27  Nick Clifton  <nickc@redhat.com>
15766
15767         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
15768         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
15769         (REG_CLASS_NAMES): Likewise.
15770         (REG_CLASS_CONTENTS): Likewise.
15771         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15772         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15773         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
15774         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
15775         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
15776         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
15777         duplicate register classes.
15778         (frv_class_likely_spilled_p): Likewise.
15779         (frv_register_move_cost): Likewise.
15780
15781         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
15782         end of the regno_reg_class array.
15783
15784 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
15785
15786         PR c/48742
15787         * c-typeck.c (build_binary_op): Don't wrap arguments if
15788         int_operands is true.
15789
15790 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
15791
15792         PR target/48767
15793         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
15794         targetm.calls.must_pass_in_stack for void type.
15795
15796 2011-04-26  Jan Hubicka  <jh@suse.cz>
15797
15798         * cgraphbuild.c (build_cgraph_edges): Update call
15799         of cgraph_create_edge and cgraph_create_indirect_edge.
15800         * cgraph.c (cgraph_create_edge_including_clones,
15801         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
15802         cgraph_update_edges_for_call_stmt_node): Do not take nest
15803         argument; do not initialize call_stmt_size/time.
15804         (dump_cgraph_node): Do not dump nest.
15805         (cgraph_clone_edge): Do not take loop_nest argument;
15806         do not propagate it; do not clone call_stmt_size/time.
15807         (cgraph_clone_node): Likewise.
15808         (cgraph_create_virtual_clone): Update.
15809         * cgraph.h (struct cgraph_edge): Remove
15810         call_stmt_size/call_stmt_time/loop_nest.
15811         (cgraph_create_edge, cgraph_create_indirect_edge,
15812         cgraph_create_edge_including_clones, cgraph_clone_node): Update
15813         prototype.
15814         * tree-emutls.c (gen_emutls_addr): Update.
15815         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
15816         loop_nest; handle indirect calls, too.
15817         (clone_inlined_nodes): Do not care about updating inline summaries.
15818         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
15819         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
15820         stream call_stmt_size/call_stmt_time/loop_nest.
15821         * ipa-inline.c (edge_badness): Update.
15822         (ipa_inline): dump summaries after inlining.
15823         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
15824         New.
15825         (inline_edge_summary): New function.
15826         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
15827         (inline_edge_removal_hook): Handle edge summaries.
15828         (inline_edge_duplication_hook): New hook.
15829         (inline_summary_alloc): Alloc hooks.
15830         (initialize_growth_caches): Do not register removal hooks.
15831         (free_growth_caches); Do not free removal hook.
15832         (dump_inline_edge_summary): New function.
15833         (dump_inline_summary): Use it.
15834         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
15835         (inline_update_callee_summaries): New function.
15836         (inline_merge_summary): Use it.
15837         (do_estimate_edge_time, do_estimate_edge_growth): Update.
15838         (read_inline_edge_summary): New function.
15839         (inline_read_section): Use it.
15840         (write_inline_edge_summary): New function.
15841         (inline_write_summary): Use it.
15842         (inline_free_summary): Free edge new holders.
15843         * tree-inline.c (copy_bb): Update.
15844
15845 2011-04-26  Jason Merrill  <jason@redhat.com>
15846
15847         * tree-eh.c (lower_try_finally_switch): Create the label along with
15848         the CASE_LABEL_EXPR.
15849
15850 2011-04-26  David S. Miller  <davem@davemloft.net>
15851             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15852
15853         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
15854         * configure: Regenerate.
15855
15856 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15857
15858         PR target/48258
15859         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
15860         reduction.
15861         (VEC_reduc): New code iterator and splitters for vector reduction.
15862         (VEC_reduc_name): Ditto.
15863         (VEC_reduc_rtx): Ditto.
15864         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
15865         (reduc_<VEC_reduc_name>_v4sf): Ditto.
15866
15867         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
15868         support for extracting SF on VSX.
15869
15870         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
15871         generating xscvspdp.
15872         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
15873         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
15874         double add, minimum, maximum vector reduction.
15875         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
15876         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
15877         optimize double vector reduction.
15878         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
15879
15880 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
15881
15882         * config/fr30/fr30.h (inhibit_libc): Don't define.
15883         * config/m32r/m32r-protos.h: Correct comment.
15884         * config/v850/v850.h (GHS_default_section_names,
15885         GHS_current_section_names): Use tree, not union tree_node *.
15886
15887 2011-04-26  Xinliang David Li  <davidxl@google.com>
15888
15889         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
15890         * c-family/c-opts.c (c_common_handle_option): Set
15891         warn_maybe_uninitialized.
15892         * opts.c (common_handle_option): Ditto.
15893         * common.opt:  New option.
15894         * tree-ssa.c (warn_uninit): Add one more parameter.
15895         (warn_uninitialized_var): Pass warning code.
15896         * tree-flow.h: Interface change.
15897
15898 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15899
15900         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
15901         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
15902         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
15903
15904 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15905
15906         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
15907         * config/mips/mips.opt (mmips-tfile): Remove.
15908
15909         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
15910         mips-tdump reference to ...
15911         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
15912         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
15913         reference by Tru64 UNIX.
15914
15915 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
15916
15917         PR debug/48768
15918         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
15919         is error_mark_node, set value to NULL.
15920
15921         PR tree-optimization/48734
15922         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
15923         if return value from maybe_fold_*_comparsions isn't something
15924         the code is prepared to handle.
15925
15926 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
15927
15928         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
15929         mode check.
15930         (ext_QIreg_nomode_operands): Remove.
15931         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
15932         (*andsi_1): Ditto.
15933         (*andhi_1): Ditto.
15934
15935 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
15936
15937         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
15938
15939 2011-04-26  Richard Guenther  <rguenther@suse.de>
15940
15941         * c-typeck.c (build_unary_op): Do not expand array-refs via
15942         pointer arithmetic.  Only adjust qualifiers for function types.
15943
15944 2011-04-26  Richard Guenther  <rguenther@suse.de>
15945
15946         PR middle-end/48694
15947         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
15948         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
15949         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
15950         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
15951
15952 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
15953
15954         * doc/extend.texi: Document __underlying_type.
15955
15956 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
15957
15958         * config/rs6000/titan.md (automata_option "progress"): Remove.
15959
15960 2011-04-25  Jeff Law  <law@redhat.com>
15961
15962         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
15963
15964 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
15965
15966         * system.h (ENUM_BITFIELD): Remove.
15967
15968 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
15969             Eric Botcazou  <ebotcazou@adacore.com>
15970
15971         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
15972         for STORE_FLAG_VALUE==-1 case.
15973
15974 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
15975
15976         PR target/43804
15977         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15978         LEGITIMATE_PIC_OPERAND_P.
15979
15980 2011-04-24  Jan Hubicka  <jh@suse.cz>
15981
15982         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
15983         WPA hack.
15984         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
15985         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
15986         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
15987         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
15988         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
15989         Sanity check predicate length.
15990         (remap_predicate): Likewise; sanity check jump functions.
15991         (inline_read_section, inline_write_summary): Sanity check
15992         predicate length.
15993
15994 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
15995
15996         PR other/48748
15997         * doc/extend.texi (Type Traits): Document __is_standard_layout,
15998         __is_literal_type, and __is_trivial; update throughout about
15999         possibly cv-qualified void types.
16000
16001 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16002
16003         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
16004         testsuite and make it version agnostic.
16005
16006 2011-04-22  Jan Hubicka  <jh@suse.cz>
16007
16008         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
16009
16010 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
16011
16012         PR c/48685
16013         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
16014         to VOID_TYPE even around MODIFY_EXPR.
16015
16016 2011-04-22  Mike Stump  <mikestump@comcast.net>
16017
16018         * gensupport.c (read_md_rtx): Fix typo in comment.
16019         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
16020         comment.
16021
16022 2011-04-22  Jan Hubicka  <jh@suse.cz>
16023
16024         * gengtype.c (open_base_files): Add ipa-inline.h include.
16025         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
16026         ipa-prop.c; update all uses.
16027         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
16028         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
16029         merge summary of inlined function into former caller.
16030         * ipa-inline.c (max_benefit): Remove.
16031         (edge_badness): Compensate for removal of benefits.
16032         (update_caller_keys): Use
16033         reset_node_growth_cache/reset_edge_growth_cache.
16034         (update_callee_keys): Likewise.
16035         (update_all_callee_keys): Likewise.
16036         (inline_small_functions): Do not collect max_benefit; do not reset
16037         estimated_growth; call free_growth_caches and initialize_growth_caches.
16038         * ipa-inline.h (struct condition, type clause_t, struct predicate,
16039         struct size_time_entry): New structures.
16040         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
16041         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
16042         and estimated_growth.
16043         (edge_growth_cache_entry): New structure.
16044         (node_growth_cache, edge_growth_cache): New global vars.
16045         (estimate_growth): Turn into inline.
16046         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
16047         initialize_growth_caches, free_growth_caches): Declare.
16048         (estimate_edge_growth): Rewrite.
16049         (estimate_edge_time): Implement as inline cache lookup.
16050         (reset_node_growth_cache, reset_edge_growth_cache): New inline
16051         functions.
16052         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
16053         (NUM_CONDITIONS): New constant.
16054         (predicate_conditions): New enum.
16055         (IS_NOT_CONSTANT): New constant.
16056         (edge_removal_hook_holder): New var.
16057         (node_growth_cache, edge_growth_cache): New global vars.
16058         (true_predicate, single_cond_predicate, false_predicate,
16059         not_inlined_predicate, add_condition, add_clause, and_predicates,
16060         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
16061         dump_clause, dump_predicate, account_size_time,
16062         evaulate_conditions_for_edge): New functions.
16063         (inline_summary_alloc): Move to heap.
16064         (inline_node_removal_hook): Clear condition and entry vectors.
16065         (inline_edge_removal_hook): New function.
16066         (initialize_growth_caches, free_growth_caches): New function.
16067         (dump_inline_summary): Update.
16068         (edge_execution_predicate): New function.
16069         (will_be_nonconstant_predicate): New function.
16070         (estimate_function_body_sizes): Compute BB and constantness predicates.
16071         (compute_inline_parameters): Do not clear estimated_growth.
16072         (estimate_edge_size_and_time): New function.
16073         (estimate_calls_size_and_time): New function.
16074         (estimate_callee_size_and_time): New function.
16075         (remap_predicate): New function.
16076         (inline_merge_summary): New function.
16077         (do_estimate_edge_time): New function based on...
16078         (estimate_edge_time): ... this one.
16079         (do_estimate_edge_growth): New function.
16080         (do_estimate_growth): New function based on....
16081         (estimate_growth): ... this one.
16082         (inline_analyze_function): Analyze after deciding on jump functions.
16083         (inline_read_section): New function.
16084         (inline_read_summary): Use it.
16085         (inline_write_summary): Write all the new data.
16086         * ipa-prop.c (ipa_get_param_decl_index): Export.
16087         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
16088         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
16089         Declare.
16090         (ipa_get_lattice): Move here from ipa-cp.c
16091         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
16092         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
16093         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
16094         cgraph_edge_inlinable_p): Remove.
16095         * cgraphunit.c: Include ipainline.h
16096         (cgraph_process_new_functions): Update call of
16097         compute_inline_parameters.
16098
16099 2011-04-22  Richard Guenther  <rguenther@suse.de>
16100
16101         * tree.c (build_int_cst): Properly create canonicalized integer
16102         constants.
16103         (build_int_cst_type): Remove scary comments.
16104
16105 2011-04-22  Xinliang David Li  <davidxl@google.com>
16106
16107         * toplev.c (process_options): Enable -Werror=coverage-mismatch
16108         by default when -Wno-error is not specified.
16109         * opts-global.c (decode_options): Remove call to
16110         control_warning_options.
16111
16112 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16113
16114         PR tree-optimization/48717
16115         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
16116         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
16117
16118 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
16119
16120         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
16121         definition where used.
16122
16123 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16124
16125         PR c/48716
16126         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
16127         TREE_STATIC variables declared inside of some OpenMP construct.
16128
16129 2011-04-22  Martin Jambor  <mjambor@suse.cz>
16130
16131         PR middle-end/48585
16132         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
16133
16134 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
16135
16136         PR c/36750
16137         * c-typeck.c (pop_init_level): Do not warn about initializing
16138         with ` = {0}'.
16139
16140 2011-04-22  Alan Modra  <amodra@gmail.com>
16141
16142         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
16143         when returning call_cookie.
16144         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
16145         pointers, to functions with no more vector args than the current
16146         function, and some non-local calls for ABI_V4.
16147         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
16148         sibcall_nonlocal_aix64): Combine to ..
16149         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
16150         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
16151         (sibcall_value_nonlocal_aix<mode>): ..likewise.
16152         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
16153         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
16154         operand.
16155         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
16156         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
16157         sibcall_value_symbolic_64): Delete.
16158
16159 2011-04-21  Xinliang David Li  <davidxl@google.com>
16160
16161         * cgraph.h: Remove pid.
16162         * cgraph.c: Remove pid.
16163         * value-prof.c (init_node_map): New function.
16164         (del_node_map): New function.
16165         (find_func_by_funcdef_no): New function.
16166         (gimple_ic_transform): Call new function.
16167         * cgraphunit.c (cgraph_finalize_function): Remove pid.
16168         * function.c (get_last_funcdef_no): New function.
16169         * function.h (get_last_funcdef_no): New function.
16170         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
16171         to libgcov function.
16172         (tree-profiling): Call node map init and delete function.
16173
16174 2011-04-21  Ian Lance Taylor  <iant@google.com>
16175
16176         * godump.c (go_format_type): Use exported Go name for anonymous
16177         field name.
16178
16179 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16180
16181         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
16182         Call builtin_function_type_list instead of builtin_function_type.
16183         (UNARY, BINARY, TRINARY, QUAD): Likewise.
16184
16185 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16186
16187         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
16188         build_function_type_list instead of build_function_type.
16189         Delete variable `endlink'.
16190
16191 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16192
16193         * config/s390/s390.c (s390_init_builtins): Call
16194         build_function_type_list instead of build_function_type.
16195
16196 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16197
16198         * config/ia64/ia64.c (ia64_init_builtins): Call
16199         build_function_type_list instead of builtin_function_type.
16200
16201 2011-04-21  Easwaran Raman  <eraman@google.com>
16202
16203         * cfgexpand.c (stack_var): Remove OFFSET...
16204         (add_stack_var): ...and its reference here...
16205         (expand_stack_vars): ...and here.
16206         (stack_var_cmp): Sort by descending order of size.
16207         (partition_stack_vars): Change heuristic.
16208         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
16209         (dump_stack_var_partition): Add newline after each partition.
16210
16211 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
16212             Jeff Law  <law@redhat.com>
16213
16214         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
16215         * gengtype.c (matching_file_name_substitute): Likewise.
16216
16217 2011-04-21  Richard Guenther  <rguenther@suse.de>
16218
16219         PR lto/48703
16220         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
16221
16222 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
16223
16224         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
16225
16226 2011-04-21  Richard Guenther  <rguenther@suse.de>
16227
16228         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
16229         file name.
16230
16231 2011-04-21  Richard Guenther  <rguenther@suse.de>
16232
16233         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
16234         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
16235         Use DECL_P, not SSA_VAR_P.
16236         (ptr_derefs_may_alias_p): Likewise.
16237         (ptr_deref_may_alias_ref_p_1): Likewise.
16238         (decl_refs_may_alias_p): Likewise.
16239         (refs_may_alias_p_1): Likewise.
16240         (ref_maybe_used_by_call_p_1): Likewise.
16241         (call_may_clobber_ref_p_1): Likewise.
16242         (indirect_ref_may_alias_decl_p): Assume indirect refrences
16243         are either MEM_REF or TARGET_MEM_REF.
16244         (indirect_refs_may_alias_p): Likewise.
16245         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
16246         for MEM_EXPR of indirect calls.
16247
16248 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16249
16250         * vmsdbgout.c (write_srccorr): Compute file length from the string.
16251         (dst_file_info_struct): Remove flen field.
16252         (lookup_filename): Remove code that set flen field.
16253
16254 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16255
16256         * config/ia64/ia64.c (ia64_start_function): Add a guard.
16257
16258 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
16259
16260         PR target/48708
16261         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
16262         vec_extract and vec_concat for non-SSE4_1 targets.
16263
16264 2011-04-21  Richard Guenther  <rguenther@suse.de>
16265
16266         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
16267         return statements.
16268
16269 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16270
16271         * config/i386/cygming.h (union tree_node, TREE): Don't define or
16272         undefine.
16273         (FILE): Don't undefine.
16274
16275 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16276
16277         * config/alpha/alpha.c (struct machine_function): Use rtx, not
16278         struct rtx_def *.
16279         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
16280         struct rtx_def *.
16281         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
16282         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
16283         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
16284         rtx_def *.
16285         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
16286         definitions where used.
16287         * config/microblaze/microblaze.h (struct microblaze_args): Use
16288         rtx, not struct rtx_def *.
16289         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
16290         rtx_def *.
16291         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
16292         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
16293         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
16294         not struct rtx_def *.
16295         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
16296         struct rtx_def *.
16297         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
16298         rtx_def *.
16299         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
16300
16301 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16302
16303         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
16304         operand_equal_p to compare DR_BASE_ADDRESSes.
16305         (vect_check_interleaving): Likewise.
16306
16307 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16308
16309         PR target/46329
16310         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
16311         for all Neon struct constants.
16312
16313 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16314
16315         * target.def (legitimate_constant_p): New hook.
16316         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
16317         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
16318         * doc/tm.texi: Regenerate.
16319         * hooks.h (hook_bool_mode_rtx_true): Declare.
16320         * hooks.c (hook_bool_mode_rtx_true): Define.
16321         * system.h (LEGITIMATE_CONSTANT_P): Poison.
16322         * calls.c (precompute_register_parameters): Replace uses of
16323         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
16324         (emit_library_call_value_1): Likewise.
16325         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
16326         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
16327         * ira-costs.c (scan_one_insn): Likewise.
16328         * recog.c (general_operand, immediate_operand): Likewise.
16329         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
16330         * reload1.c (init_eliminable_invariants): Likewise.
16331
16332         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
16333         mode argument.
16334         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
16335         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
16336         argument.
16337         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16338         * config/alpha/predicates.md (input_operand): Update call to
16339         alpha_legitimate_constant_p.
16340
16341         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
16342         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
16343         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
16344         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16345         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
16346         (arm_legitimate_constant_p): New functions.
16347         (arm_cannot_force_const_mem): Make static.
16348
16349         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
16350
16351         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
16352         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
16353         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
16354         instead of bfin_legitimate_constant_p.
16355         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
16356         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16357
16358         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
16359
16360         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
16361
16362         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
16363         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
16364         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16365         (frv_legitimate_constant_p): Make static.  Add a mode argument.
16366
16367         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
16368         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
16369         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
16370
16371         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
16372         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
16373         * config/i386/i386.c (legitimate_constant_p): Rename to...
16374         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
16375         argument.
16376         (ix86_cannot_force_const_mem): Update accordingly.
16377         (ix86_legitimate_address_p): Likewise.
16378         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16379         * config/i386/i386.md: Update commentary.
16380
16381         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
16382         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
16383         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16384         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
16385
16386         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
16387
16388         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
16389         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
16390         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16391         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
16392
16393         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
16394         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
16395         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
16396
16397         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
16398         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16399         (m32r_legitimate_constant_p): New function.
16400
16401         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
16402         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
16403         LEGITIMATE_CONSTANT_P.
16404         (LEGITIMATE_CONSTANT_P): Delete.
16405         * config/m68k/m68k.c (m68k_expand_prologue): Call
16406         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
16407         (m68k_legitimate_constant_p): New function.
16408         * config/m68k/m68k.md: Update comments.
16409
16410         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
16411         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16412         (mcore_legitimate_constant_p): New function.
16413
16414         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
16415         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
16416         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
16417         Add a mode argument.
16418         (mep_legitimate_address): Update accordingly.
16419         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16420
16421         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
16422         Delete.
16423         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
16424         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
16425         static.  Check OP's mode for VOIDmode.
16426         (microblaze_legitimate_constant_p): New function.
16427         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16428
16429         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
16430         * config/mips/mips.c (mips_legitimate_constant_p): New function.
16431         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
16432         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16433         * config/mips/predicates.md: Update comments.
16434
16435         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
16436         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
16437         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16438         (mmix_legitimate_constant_p): Make static, return a bool, and take
16439         a mode argument.
16440         (mmix_print_operand_address): Update accordingly.
16441
16442         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
16443         Delete.
16444         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
16445         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
16446         static.  Add a mode argument.
16447         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16448
16449         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
16450
16451         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
16452         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16453         (pa_legitimate_constant_p): New function.
16454
16455         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
16456
16457         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
16458         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16459         (pdp11_legitimate_constant_p): New function.
16460
16461         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
16462         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16463         (rs6000_legitimate_constant_p): New function.
16464
16465         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
16466         (rx_legitimate_constant_p): ...this.
16467         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
16468         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
16469         (rx_legitimate_constant_p): ...this.
16470         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16471         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
16472
16473         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
16474         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
16475         * config/s390/s390.c (legitimate_constant_p): Rename to...
16476         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
16477         and add a mode argument.
16478         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16479
16480         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
16481
16482         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
16483         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16484         (sh_legitimate_constant_p): New function.
16485
16486         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
16487         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
16488         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16489         (legitimate_constant_p): Rename to...
16490         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
16491         argument.
16492         (constant_address_p): Update accordingly.
16493
16494         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
16495         argument and return a bool.
16496         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
16497         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16498         (spu_legitimate_constant_p): Add a mode argument and return a bool.
16499         (spu_rtx_costs): Update accordingly.
16500         * config/spu/predicates.md (vec_imm_operand): Likewise.
16501
16502         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
16503
16504         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
16505         * config/v850/v850.c (v850_legitimate_constant_p): New function.
16506         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16507
16508         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
16509         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
16510         * config/vax/vax.c (legitimate_constant_p): Likewise.
16511
16512         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
16513         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16514         (xtensa_legitimate_constant_p): New function.
16515
16516 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16517
16518         * target.def (cannot_force_const_mem): Add a mode argument.
16519         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
16520         * doc/tm.texi: Regenerate.
16521         * hooks.h (hook_bool_mode_rtx_false): Declare.
16522         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
16523         (hook_bool_mode_const_rtx_true): Likewise.
16524         (hook_bool_mode_rtx_false): New function.
16525         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
16526         to be non-VOID.  Update call to cannot_force_const_mem.
16527         (find_reloads): Update accordingly.
16528         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
16529         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
16530         argument.
16531         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
16532         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
16533         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
16534         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
16535         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
16536         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
16537         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
16538         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16539         (m68k_cannot_force_const_mem): ...this new function.
16540         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
16541         argument.
16542         (mips_const_insns, mips_legitimize_const_move): Update calls.
16543         (mips_secondary_reload_class): Likewise.
16544         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16545         (pa_cannot_force_const_mem): ...this new function.
16546         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
16547         (rs6000_cannot_force_const_mem): ...this new function.
16548         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
16549         argument.
16550         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
16551         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
16552         to...
16553         (xtensa_cannot_force_const_mem): ...this new function.
16554
16555 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16556
16557         * config/mips/mips.c (mips16_build_function_stub): Call
16558         build_function_type_list instead of build_function_type.
16559         (mips16_build_call_stub): Likewise.
16560
16561 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16562
16563         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
16564         instead of build_function_type.
16565
16566 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16567
16568         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
16569         instead of build_function_type.
16570
16571 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
16572
16573         PR target/48678
16574         * config/i386/i386.md (insv): Change operand 0 constraint to
16575         "register_operand".  Change operand 1 and 2 constraint to
16576         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
16577         * config/i386/sse.md (sse4_1_pinsrb): Export.
16578         (sse2_pinsrw): Ditto.
16579         (sse4_1_pinsrd): Ditto.
16580         (sse4_1_pinsrq): Ditto.
16581         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
16582         * config/i386/i386.c (ix86_expand_pinsr): New.
16583
16584 2011-04-20  Easwaran Raman  <eraman@google.com>
16585
16586         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
16587         containing union type only with -fstrict-aliasing.
16588
16589 2011-04-20  Jim Meyering  <meyering@redhat.com>
16590
16591         Remove useless if-before-free tests.
16592         * calls.c (expand_call, save_area): Likewise.
16593         * cfgcleanup.c (try_forward_edges): Likewise.
16594         * collect2.c (collect_execute): Likewise.
16595         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
16596         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
16597         * coverage.c (coverage_checksum_string): Likewise.
16598         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
16599         * cselib.c (cselib_init): Likewise.
16600         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
16601         (df_set_clean_cfg): Likewise.
16602         * function.c (free_after_compilation): Likewise.
16603         * gcc.c (do_spec_1, main): Likewise.
16604         * gcov.c (create_file_names): Likewise.
16605         * gensupport.c (identify_predicable_attribute): Likewise.
16606         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
16607         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
16608         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
16609         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
16610         * ipa-pure-const.c (local_pure_const): Likewise.
16611         * ipa-reference.c (propagate): Likewise.
16612         * ira-costs.c (free_ira_costs): Likewise.
16613         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
16614         * matrix-reorg.c (mat_free): Likewise.
16615         * prefix.c (get_key_value): Likewise.
16616         * profile.c (compute_value_histograms): Likewise.
16617         * reload1.c (free_reg_equiv): Likewise.
16618         * sched-deps.c (free_deps): Likewise.
16619         * sel-sched-ir.c (fence_clear): Likewise.
16620         * sese.c (set_rename, if_region_set_false_region): Likewise.
16621         * tree-data-ref.c (free_rdg): Likewise.
16622         * tree-eh.c (lower_try_finally): Likewise.
16623         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
16624         * tree-ssa-live.c (delete_var_map): Likewise.
16625         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
16626         * tree-ssa-pre.c (phi_trans_add): Likewise.
16627
16628 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
16629
16630         PR tree-optimization/48611
16631         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
16632         beyond ERT_MUST_NOT_THROW region.
16633
16634 2011-04-20  Catherine Moore  <clm@codesourcery.com>
16635
16636         * config/mips/mips.opt (mfix-24k): New.
16637         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
16638         * config/mips/mips.md (length): Increase by 4 for stores if
16639         fixing 24K errata.
16640         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
16641         all noreorder if fixing 24K errata.
16642         * doc/invoke.texi: Document mfix-24k.
16643
16644 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
16645
16646         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
16647         quad-word modes, reduce to 9-bit index range when above 1016 limit.
16648
16649 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16650
16651         * config/arm/arm.c (arm_gen_constant): Move movw support ....
16652         (const_ok_for_op): ... to here.
16653
16654 2011-04-20  Kai Tietz  <ktietz@redhat.com>
16655
16656         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
16657         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
16658
16659 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16660
16661         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
16662
16663 2011-04-20  Richard Guenther  <rguenther@suse.de>
16664
16665         PR tree-optimization/47892
16666         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
16667         are if-convertible.
16668
16669 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
16670
16671         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
16672
16673 2011-04-20  Tristan Gingold  <gingold@adacore.com>
16674
16675         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
16676
16677 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
16678
16679         PR target/18145
16680
16681         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
16682         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
16683         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
16684         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
16685         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
16686
16687         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
16688         New prototype.
16689
16690         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
16691         (avr_asm_named_section, avr_asm_output_aligned_common,
16692         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
16693         New functions to update...
16694         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
16695         (avr_asm_init_sections): Overwrite section callbacks for
16696         data_section, bss_section.
16697         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
16698         from here to...
16699         (avr_file_end): ...here.
16700
16701 2011-04-20  Richard Guenther  <rguenther@suse.de>
16702
16703         PR middle-end/48695
16704         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
16705         objects and types here.  Adjust for their offset before comparing.
16706
16707 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16708
16709         * tree-vect-stmts.c (vectorizable_store): Only chain one related
16710         statement per copy.
16711
16712 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16713
16714         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
16715         (GIMPLE_H): Include $(INTERNAL_FN_H).
16716         (OBJS-common): Add internal-fn.o.
16717         (internal-fn.o): New rule.
16718         * internal-fn.def: New file.
16719         * internal-fn.h: Likewise.
16720         * internal-fn.c: Likewise.
16721         * gimple.h: Include internal-fn.h.
16722         (GF_CALL_INTERNAL): New gf_mask.
16723         (gimple_statement_call): Put fntype into a union with a new
16724         internal_fn field.
16725         (gimple_build_call_internal): Declare.
16726         (gimple_build_call_internal_vec): Likewise.
16727         (gimple_call_same_target_p): Likewise.
16728         (gimple_call_internal_p): New function.
16729         (gimple_call_internal_fn): Likewise.
16730         (gimple_call_fntype): Return null for internal calls.
16731         (gimple_call_set_fntype): Assert that the function is not internal.
16732         (gimple_call_set_fn): Likewise.
16733         (gimple_call_set_fndecl): Likewise.
16734         (gimple_call_set_internal_fn): New function.
16735         (gimple_call_addr_fndecl): Handle null functions.
16736         (gimple_call_return_type): Likewise null types.
16737         * gimple.c (gimple_build_call_internal_1): New function.
16738         (gimple_build_call_internal): Likewise.
16739         (gimple_build_call_internal_vec): Likewise.
16740         (gimple_call_same_target_p): Likewise.
16741         (gimple_call_flags): Handle calls to internal functions.
16742         (gimple_call_fnspec): New function.
16743         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
16744         (gimple_has_side_effects): Handle null functions.
16745         (gimple_rhs_has_side_effects): Likewise.
16746         (gimple_call_copy_skip_args): Handle calls to internal functions.
16747         * cfgexpand.c (expand_call_stmt): Likewise.
16748         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
16749         * gimple-fold.c (gimple_fold_call): Handle null functions.
16750         (gimple_fold_stmt_to_constant_1): Don't fold
16751         calls to internal functions.
16752         * gimple-low.c (gimple_check_call_args): Handle calls to internal
16753         functions.
16754         * gimple-pretty-print.c (dump_gimple_call): Likewise.
16755         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
16756         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
16757         (do_warn_unused_result): Likewise.
16758         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
16759         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
16760         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
16761         the target of a call.
16762         (initialize_hash_element): Update accordingly.
16763         (hashable_expr_equal_p): Use gimple_call_same_target_p.
16764         (iterative_hash_hashable_expr): Handle calls to internal functions.
16765         (print_expr_hash_elt): Likewise.
16766         * tree-ssa-pre.c (can_value_number_call): Likewise.
16767         (eliminate): Handle null functions.
16768         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
16769         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
16770         (find_func_aliases): Likewise.
16771         * value-prof.c (gimple_ic_transform): Likewise.
16772         (gimple_indirect_call_to_profile): Likewise.
16773         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16774         * lto-streamer-out.c (output_gimple_stmt): Likewise.
16775
16776 2011-04-19  Jan Hubicka  <jh@suse.cz>
16777
16778         * ipa-inline-transform.c (save_inline_function_body): Add comments.
16779         * ipa-inline.c (inline_small_functions): Compute summaries first,
16780         populate heap later.
16781
16782 2011-04-19  Jan Hubicka  <jh@suse.cz>
16783
16784         * cgraph.h (save_inline_function_body): Remove.
16785         * ipa-inline-transform.c: New file, broke out of...
16786         * ipa-inline.c: ... this one; Update toplevel comment.
16787         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
16788         make global.
16789         (update_noncloned_frequencies): Move to ipa-inline-transform.c
16790         (cgraph_mark_inline_edge): Rename to inline_call; move to
16791         ipa-inline-transform.c.
16792         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
16793         move to ipa-inline-transform.c
16794         (recursive_inlining, inline_small_functions, flatten_function,
16795         ipa_inline, inline_always_inline_functions,
16796         early_inline_small_functions): Update.
16797         (inline_transform): Move to ipa-inline-transform.c.
16798         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
16799         Declare.
16800         * Makefile.in (ipa-inline-transform.o): New file.
16801         * cgraphunit.c (save_inline_function_body): Move to
16802         ipa-inline-transform.c
16803
16804 2011-04-19  DJ Delorie  <dj@redhat.com>
16805
16806         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
16807         registers if we already know there aren't any.
16808         (m32c_emit_epilogue): Don't emit a barrier here.
16809         (m32c_emit_eh_epilogue): Likewise.
16810         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
16811         operands at expand time.
16812         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
16813         int" wchar type.
16814         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
16815         duplicates.  Provide aliases instead.
16816         * config/m32c/prologue.md (eh_return): Emit a barrier here.
16817         (eh_epilogue): Add a "(return)" here as a hint to other parts of
16818         the compiler.
16819
16820 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
16821
16822         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
16823         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
16824         (general_or_i64_p, sparc_register_move_cost): New function.
16825
16826 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16827
16828         * doc/install.texi (Configuration, --enable-threads): Remove mach.
16829         Add lynx, mipssde.  Sort table.
16830
16831 2011-04-19  Xinliang David Li  <davidxl@google.com>
16832
16833         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
16834         not negative.
16835
16836 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
16837
16838         PR target/48678
16839         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
16840         is a SUBREG with non-MODE_INT mode inside of it.
16841
16842 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16843
16844         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
16845         also according to actual contants.
16846         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
16847         (gimple_fold_call): Use it.
16848         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
16849
16850 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16851
16852         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
16853         non-pointer assignments.
16854
16855 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16856
16857         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
16858         account anc_offset and otr_type from the indirect edge info.
16859         * ipa-prop.c (get_ancestor_addr_info): New function.
16860         (compute_complex_ancestor_jump_func): Assignment analysis moved to
16861         get_ancestor_addr_info, call it.
16862         (ipa_note_param_call): Do not initialize information about polymorphic
16863         calls, return the indirect call graph edge.  Remove the last
16864         parameter, adjust all callers.
16865         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
16866         parameters.  Initialize polymorphic information in the indirect edge.
16867
16868 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16869
16870         PR lto/48148
16871         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
16872         the types if they have different enumeration identifiers.
16873
16874 2011-04-19  Jan Hubicka  <jh@suse.cz>
16875
16876         * cgraph.h (cgraph_optimize_for_size_p): Declare.
16877         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
16878         * predict.c (cgraph_optimize_for_size_p): Break out from ...
16879         (optimize_function_for_size_p) ... here.
16880
16881 2011-04-19  Richard Guenther  <rguenther@suse.de>
16882
16883         PR lto/48207
16884         * tree.c (free_lang_data): Do not reset the decl-assembler-name
16885         langhook.
16886
16887 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16888
16889         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
16890         if DECL_NO_INLINE_WARNING_P is set on the function.
16891
16892 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
16893
16894         PR fortran/47976
16895         * reload1.c (inc_for_reload): Return void. All callers changed.
16896         (emit_input_reload_insns): Don't try to delete previous output
16897         reloads to a register, or record spill_reg_store for autoincs.
16898
16899 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
16900
16901         * gengtype.h: Updated copyright year.
16902         (struct input_file_st): Add inpisplugin field.
16903         (type_fileloc): New function.
16904         * gengtype.c
16905         (write_typed_struct_alloc_def): Add gcc_assert.
16906         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
16907         (write_typed_alloc_defns): Don't output for plugin files.
16908         (input_file_by_name): Clear inpisplugin field.
16909         (main): Set inpisplugin field for plugin files.
16910
16911 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
16912
16913         * gengtype-state.c (string_eq): New.
16914         (read_state): Use string_eq instead of strcmp when creating the
16915         state_ident_tab.
16916
16917 2011-04-19  Wei Guozhi  <carrot@google.com>
16918
16919         PR target/47855
16920         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
16921         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
16922         linkage.
16923         * config/arm/constraints.md (Uu): New constraint.
16924         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
16925
16926 2011-04-19  Tristan Gingold  <gingold@adacore.com>
16927
16928         * config.gcc (-*-*-*vms): Added.
16929         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
16930         definitions moved.
16931         * config/vms/vms-ld.c: New file.
16932         * config/vms/vms-ar.c: New file.
16933         * config/vms/t-vmsnative: New file.
16934
16935 2011-04-18  Xinliang David Li  <davidxl@google.com>
16936
16937         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
16938
16939 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
16940
16941         PR middle-end/48661
16942         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
16943         if TREE_TYPE (v) is non-NULL.
16944
16945         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
16946         gimple_get_virt_mehtod_for_binfo.
16947         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
16948         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
16949         callers.
16950         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16951
16952 2011-04-18  Michael Matz  <matz@suse.de>
16953             Steve Ellcey  <sje@cup.hp.com>
16954
16955         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
16956         use its mode as source mode if it isn't VOIDmode.
16957
16958 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
16959
16960         * doc/passes.texi: Fill crossref nodes.
16961
16962 2011-04-18  Jim Meyering  <meyering@redhat.com>
16963
16964         Fix doubled-word typos in comments and strings
16965         * config/alpha/vms-unwind.h: s/for for/for/
16966         * config/arm/unwind-arm.h: Likewise.
16967         * config/microblaze/microblaze.c: Likewise.
16968         * config/sh/constraints.md: s/in in/in/
16969         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
16970
16971 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
16972
16973         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
16974         (AVX_FLOAT_MODE_P): Ditto.
16975         (AVX128_VEC_FLOAT_MODE_P): Ditto.
16976         (AVX256_VEC_FLOAT_MODE_P): Ditto.
16977         (AVX_VEC_FLOAT_MODE_P): Ditto.
16978         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
16979         (UNSPEC_MASKSTORE): Ditto.
16980         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
16981         Merge from <sse>_movmsk<ssemodesuffix> and
16982         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
16983         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
16984         iterator.
16985         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
16986         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
16987         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
16988
16989 2011-04-18  Jan Hubicka  <jh@suse.cz>
16990
16991         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
16992
16993         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
16994         (want_inline_function_called_once_p): Break out the logic from
16995         ipa_inline.
16996         (edge_badness): Ensure that profile is not misupdated.
16997         (lookup_recursive_calls): Prioritize by call frequencies.
16998         (inline_small_functions): Move program size estimates here;
16999         actually process whole queue even when unit growth has been
17000         met. (to properly compute inline_failed reasons and for the
17001         case unit size decrease.) Revisit comments on recursive inlining.
17002         (ipa_inline): Remove unit summary code; first inline hot calls
17003         of functions called once, cold calls next.
17004         (order, nnodes): Remove unused variables.
17005         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
17006         (GTFILES): Remove ipa-inline.c
17007         * sel-sched.c (fill_insns): Silence uninitialized var warning.
17008
17009 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17010
17011         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
17012
17013 2011-04-18  Jie Zhang  <jie@codesourcery.com>
17014             Richard Earnshaw  <rearnsha@arm.com>
17015
17016         * arm.c (neon_builtin_type_bits): Remove.
17017         (typedef enum neon_builtin_mode): New.
17018         (T_MAX): Don't define.
17019         (typedef enum neon_builtin_datum): Remove bits, codes[],
17020         num_vars and base_fcode.  Add mode, code and fcode.
17021         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
17022         VAR10): Change accordingly.
17023         (neon_builtin_data[]): Change accordingly
17024         (arm_init_neon_builtins): Change accordingly.
17025         (neon_builtin_compare): Remove.
17026         (locate_neon_builtin_icode): Remove.
17027         (arm_expand_neon_builtin): Change accordingly.
17028
17029         * arm.h (enum arm_builtins): Move to ...
17030         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
17031
17032         * arm.c (arm_builtin_decl): Declare.
17033         (TARGET_BUILTIN_DECL): Define.
17034         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
17035         (arm_builtin_decls[]): New.
17036         (arm_init_neon_builtins): Store builtin declarations in
17037         arm_builtin_decls[].
17038         (arm_init_tls_builtins): Likewise.
17039         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
17040         (arm_builtin_decl): New.
17041
17042 2011-04-18  Richard Guenther  <rguenther@suse.de>
17043
17044         * tree.c (upper_bound_in_type): Build properly canonicalized
17045         INTEGER_CSTs.
17046         (lower_bound_in_type): Likewise.
17047
17048 2011-04-18  Richard Guenther  <rguenther@suse.de>
17049
17050         * gimple.h (gimple_call_addr_fndecl): New function.
17051         (gimple_call_fndecl): Use it.
17052         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
17053         for direct calls.
17054         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
17055         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
17056
17057 2011-04-18  Richard Guenther  <rguenther@suse.de>
17058
17059         PR middle-end/48650
17060         * tree.c (build_string): STRING_CST is now derived from tree_typed.
17061
17062 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17063
17064         PR lto/48492
17065         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
17066         DECL_IN_CONSTANT_POOL without RTL.
17067
17068 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
17069             Ira Rosen  <ira.rosen@linaro.org>
17070
17071         PR target/48252
17072         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
17073         to match neon_vzip/vuzp/vtrn_internal.
17074         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
17075         outputs explicitly dependent on both inputs.
17076         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
17077
17078 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
17079
17080         PR tree-optimization/48616
17081         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
17082         whether the shift is by scalar or vector based on whether all SLP
17083         scalar stmts have the same rhs.
17084
17085 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
17086
17087         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
17088         memory operands.
17089
17090 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
17091
17092         PR target/43700
17093         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
17094         registers.
17095
17096 2011-04-17  Jan Hubicka  <jh@suse.cz>
17097
17098         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
17099         * cgrpahunit.c (cgraph_finalize_function): Do not set
17100         finalized_by_frontend.
17101         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17102         finalized_by_frontend.
17103
17104 2011-04-17  Jan Hubicka  <jh@suse.cz>
17105
17106         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
17107         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
17108         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
17109         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
17110         method.
17111         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
17112         gimple-fold.c
17113         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
17114
17115 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
17116
17117         PR lto/48538
17118         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
17119         is non-null before accessing it.
17120         (input_cgraph): Remove trailing spaces.
17121
17122 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17123
17124         * params.def (sms-min-sc): New param flag.
17125         * modulo-sched.c (sms_schedule): Use it.
17126         * doc/invoke.texi (sms-min-sc): Document it.
17127
17128 2011-04-17  Jan Hubicka  <jh@suse.cz>
17129
17130         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
17131         present, also set gimple_call_set_cannot_inline.
17132         * ipa-inline.c: Update toplevel comment.
17133         (MAX_TIME): Remove.
17134         (cgraph_clone_inlined_nodes): Fix linebreaks.
17135         (cgraph_check_inline_limits): Restructure to ...
17136         (caller_growth_limits): ... this one; be more tolerant
17137         on growth in nested inline chains; add explanatory comment;
17138         fix stack accounting thinko introduced by previous patch.
17139         (cgraph_default_inline_p): Remove.
17140         (report_inline_failed_reason): New function.
17141         (can_inline_edge_p): New function.
17142         (can_early_inline_edge_p): New function.
17143         (leaf_node_p): Move upwards in file.
17144         (want_early_inline_function_p): New function.
17145         (want_inline_small_function_p): New function.
17146         (want_inline_self_recursive_call_p): New function.
17147         (cgraph_edge_badness): Rename to ...
17148         (edge_badness) ... this one; fix linebreaks.
17149         (update_edge_key): Update call of edge_baddness; add
17150         detailed dump about queue updates.
17151         (update_caller_keys): Use can_inline_edge_p and
17152         want_inline_small_function_p.
17153         (cgraph_decide_recursive_inlining): Rename to...
17154         (recursive_inlining): Use can_inline_edge_p and
17155         want_inline_self_recursive_call_p; simplify and remove no longer
17156         valid FIXME.
17157         (cgraph_set_inline_failed): Remove.
17158         (add_new_edges_to_heap): Use can_inline_edge_p and
17159         want_inline_small_function_p.
17160         (cgraph_decide_inlining_of_small_functions): Rename to ...
17161         (inline_small_functions): ... this one; cleanup; use
17162         can/want predicates; cleanup debug ouput; work edges till fibheap
17163         is exhausted and do not stop once unit growth is reached; remove
17164         later loop processing remaining edges.
17165         (cgraph_flatten): Rename to ...
17166         (flatten_function): ... this one; use can_inline_edge_p
17167         and can_early_inline_edge_p predicates.
17168         (cgraph_decide_inlining): Rename to ...
17169         (ipa_inline): ... this one; remove unreachable nodes before
17170         inlining functions called once; simplify the pass.
17171         (cgraph_perform_always_inlining): Rename to ...
17172         (inline_always_inline_functions): ... this one; use
17173         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
17174         (cgraph_decide_inlining_incrementally): Rename to ...
17175         (early_inline_small_functions): ... this one; simplify
17176         using new predicates; cleanup; make dumps prettier.
17177         (cgraph_early_inlining): Rename to ...
17178         (early_inliner): newer inline regular functions into always-inlines;
17179         fix updating of call stmt summaries.
17180         (pass_early_inline): Update for new names.
17181         (inline_transform): Fix formating.
17182         (gate_cgraph_decide_inlining): Rename to ...
17183         (pass_ipa_inline): ... this one.
17184         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
17185         * ipa-inline-analysis.c (dump_inline_summary): Update.
17186         (compute_inline_parameters): Do not compute disregard_inline_limits;
17187         look for mismatching arguments.
17188         (estimate_growth): Fix handlig of non-trivial self recursion.
17189         (inline_read_summary): Do not read info->disregard_inline_limits.
17190         (inline_write_summary): Do not write info->disregard_inline_limits.
17191         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
17192         and move all checks into can_inline_edge_p predicate; re-enable code
17193         comparing optimization levels.
17194         (expand_call_inline): Do not test inline_forbidden_into_p.
17195         * Makefile.in (ipa-inline.o): Update arguments.
17196
17197 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17198
17199         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
17200
17201 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17202
17203         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
17204
17205 2011-04-17  Michael Matz  <matz@suse.de>
17206
17207         PR tree-optimization/48622
17208         PR lto/48645
17209         * ipa-inline-analysis.c (inline_read_summary): Read size/time
17210         in same order as they're written.
17211
17212 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17213
17214         * config/pa/predicates.md: Reorganize and simplify predicates.
17215         Eliminate duplicate code checks.
17216         (arith_operand): Rename to arith14_operand
17217         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
17218         * config/pa/pa.md: Use renamed operands.
17219         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
17220         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
17221         arith11_operand, adddi3_operand, indexed_memory_operand,
17222         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
17223         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
17224         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
17225         move_dest_operand, move_src_operand, prefetch_cc_operand,
17226         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
17227         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
17228         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
17229         div_operand, int5_operand, movb_comparison_operator,
17230         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
17231         arith_double_operand, ireg_operand, lhs_lshift_operand,
17232         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
17233         integer_store_memory_operand): Likewise.
17234         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
17235         (integer_store_memory_operand, read_only_operand,
17236         function_label_operand, borx_reg_operand,
17237         non_hard_reg_operand): Likewise.
17238         (eq_neq_comparison_operator): Delete unused operator.
17239         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
17240         function_label_operand.
17241         (emit_move_sequence): Likewise.
17242
17243 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17244
17245         * config/i386/sse.md (sseunpackmode): New mode attribute.
17246         (ssepackmode): Ditto.
17247         (vec_pack_trunc_<mode>): Macroize expander from
17248         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
17249         (vec_unpacks_lo_<mode>): Macroize expander from
17250         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17251         (vec_unpacks_hi_<mode>): Macroize expander from
17252         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17253         (vec_unpacku_lo_<mode>): Macroize expander from
17254         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17255         (vec_unpacku_hi_<mode>): Macroize expander from
17256         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17257         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
17258         ix86_expand_sse4_unpack.
17259         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
17260
17261 2011-04-16  Jan Hubicka  <jh@suse.cz>
17262
17263         * cgraphbuild.c: Include ipa-inline.h.
17264         (reset_inline_failed): Use initialize_inline_failed.
17265         * cgraph.c: Include ipa-inline.h.
17266         (cgraph_create_node_1): Do not initialize estimated_growth.
17267         (initialize_inline_failed): More to ipa-inline-analysis.c
17268         (dump_cgraph_node): Do not dump inline flags.
17269         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
17270         and disregard_inline_limits flags.
17271         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
17272         time, size, estimated_growth.
17273         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
17274         Update.
17275         * cgraphunit.c (cgraph_decide_is_function_needed): Use
17276         DECL_DISREGARD_INLINE_LIMITS.
17277         (cgraph_analyze_function): Do not initialize
17278         node->local.disregard_inline_limits.
17279         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17280         inlinable, versionable and disregard_inline_limits.
17281         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
17282         cgraph_check_inline_limits, cgraph_default_inline_p,
17283         cgraph_edge_badness, update_caller_keys, update_callee_keys,
17284         add_new_edges_to_heap): Update.
17285         (cgraph_decide_inlining_of_small_function): Update; set
17286         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
17287         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
17288         cgraph_decide_inlining_incrementally): Update.
17289         * ipa-inline.h (inline_summary): Add inlinable, versionable,
17290         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
17291         time, size and estimated_growth parameters.
17292         (estimate_edge_growth): Update.
17293         (initialize_inline_failed): Declare.
17294         * ipa-split.c: Include ipa-inline.h
17295         (execute_split_functions): Update.
17296         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
17297         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
17298         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
17299         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
17300         estimated_growth to INT_MIN.
17301         (inline_node_duplication_hook): Likewise.
17302         (dump_inline_summary): Dump new fields.
17303         (compute_inline_parameters): Update.
17304         (estimate_edge_time, estimate_time_after_inlining,
17305         estimate_size_after_inlining, estimate_growth, inline_read_summary,
17306         inline_write_summary):
17307         (initialize_inline_failed): Move here from cgraph.c.
17308         * tree-sra.c: Include ipa-inline.h.
17309         (ipa_sra_preliminary_function_checks): Update.
17310         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
17311         ipa-inline.h.
17312
17313 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17314
17315         * config/i386/sse.md (V16): New mode iterator.
17316         (VI1, VI8): Ditto.
17317         (AVXMODEQI, AVXMODEDI): Remove.
17318         (sse2, sse3): New mode attribute.
17319         (mov<mode>): Use V16 mode iterator.
17320         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
17321         (push<mode>1): Use V16 mode iterator.
17322         (movmisalign<mode>): Ditto.
17323         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17324         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
17325         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17326         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
17327         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
17328         avx_movdqu<avxmodesuffix>.
17329         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
17330         *avx_movdqu<avxmodesuffix>.
17331         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
17332         avx_lddqu<avxmodesuffix>.
17333         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
17334         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
17335         avx_movnt<AVXMODEDI:mode>.
17336         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
17337         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
17338
17339 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17340
17341         PR target/48629
17342         * haifa-sched.c (prune_ready_list, schedule_block): Use
17343         sched_pressure_p rather than flag_sched_pressure.
17344
17345 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
17346
17347         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17348         cgraph_get_node instead of cgraph_get_create_node.
17349
17350 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
17351
17352         * cfgexpand.c (expand_debug_expr): Use
17353         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
17354
17355 2011-04-15  Michael Matz  <matz@suse.de>
17356
17357         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
17358         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
17359         * function.c (gimplify_parameters): Ditto.
17360         * gimplify.c (gimplify_vla_decl): Ditto.
17361
17362         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
17363         (gimple_call_set_alloca_for_var): New inline function.
17364         (gimple_call_alloca_for_var_p): Ditto.
17365         * gimple.c (gimple_build_call_from_tree): Remember
17366         CALL_ALLOCA_FOR_VAR_P state.
17367         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
17368
17369         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
17370         calls if they were for VLA objects.
17371
17372 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17373
17374         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
17375         of ADR_EXPRs.
17376
17377 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17378
17379         PR middle-end/48601
17380         * tree-emutls.c (lower_emutls_function_body): Call
17381         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
17382         result is non-NULL.
17383
17384 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
17385
17386         * c-decl.c (detect_field_duplicates): Call
17387         objc_detect_field_duplicates instead of objc_get_interface_ivars.
17388
17389 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
17390
17391         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
17392         * gimple.c (gimple_asm_clobbers_memory_p): Define.
17393         * ipa-pure-const.c (check_stmt): Call it.
17394         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
17395
17396 2011-04-15  Richard Guenther  <rguenther@suse.de>
17397
17398         PR tree-optimization/48290
17399         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
17400         Properly decide inhibiting propagation based on the valueized
17401         operand.  Do loop-closed SSA form preserving here ...
17402         (init_copy_prop): ... not here.
17403
17404 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17405
17406         PR target/48612
17407         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
17408         (*ieee_smax<mode>3): Likewise.
17409
17410 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17411
17412         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
17413         Replace match_operand with match_dup for the third operand in
17414         these expanders.
17415
17416 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17417
17418         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
17419         to track processing of conditionals.  Update all callers.
17420         (try_combine, simplify_if_then_else): Update.
17421
17422 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17423
17424         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
17425         -fsched-pressure.
17426
17427 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
17428
17429         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
17430         instead of match_operand for operand 3.
17431
17432 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
17433
17434         * recog.h (insn_operand_data): Add an "allows_mem" field.
17435         * genoutput.c (output_operand_data): Initialize it.
17436         * optabs.c (maybe_legitimize_operand_same_code): New function.
17437         (maybe_legitimize_operand): Use it when matching the original
17438         op->value.
17439
17440 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17441
17442         * gimplify.c: Fix issues in comments throughout.
17443         (voidify_wrapper_expr): Fix long line.
17444         (build_stack_save_restore): Likewise.
17445         (gimplify_loop_expr): Likewise.
17446         (gimplify_compound_lval): Likewise.
17447         (gimplify_init_ctor_eval): Likewise.
17448         (gimplify_modify_expr_rhs): Likewise.
17449         (omp_notice_threadprivate_variable): Likewise.
17450
17451 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17452
17453         * cfgexpand.c (expand_call_stmt): Convert the function type to the
17454         original one if this is not a builtin function.
17455
17456 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
17457
17458         PR target/48605
17459         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
17460         offset it as needed based on top 2 bits in operands[3], change
17461         MEM mode to SFmode and mask those 2 bits away from operands[3].
17462
17463 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17464
17465         * c-parser.c (c_parser_objc_protocol_definition): Updated for
17466         change from objc_declare_protocols() to objc_declare_protocol().
17467
17468 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
17469
17470         * config/i386/sse.md (sse4_1): New mode attribute.
17471         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
17472         avx_blend<ssemodesuffix><avxmodesuffix> and
17473         sse4_1_blend<ssemodesuffix> using VF mode iterator.
17474         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
17475         avx_blendv<ssemodesuffix><avxmodesuffix> and
17476         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
17477         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
17478         avx_dp<ssemodesuffix><avxmodesuffix> and
17479         sse4_1_dp<ssemodesuffix> using VF mode iterator.
17480         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
17481         (sse4_1_packusdw): Merge with *avx_packusdw.
17482         (sse4_1_pblendvb): Merge with *avx_pblendvb.
17483         (sse4_1_pblendw): Merge with *avx_pblendw.
17484         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
17485         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
17486         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
17487         VF mode iterator.
17488         (sse4_1_round<ssescalarmodesuffix>): Merge with
17489         *avx_round<ssescalarmodesuffix>.
17490         (aesenc): Merge with *avx_aesenc.
17491         (aesenclast): Merge with *avx_aesenclast.
17492         (aesdec): Merge with *avx_aesdec.
17493         (aesdeclast): Merge with *avx_aesdeclast.
17494         (pclmulqdq): Merge with *pclmulqdq.
17495         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
17496         New predicate.
17497         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
17498
17499 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
17500
17501         PR middle-end/48608
17502         * cfgexpand.c (get_decl_align_unit): Renamed to ...
17503         (align_local_variable): This.  Update DECL_ALIGN.
17504         (add_stack_var): Updated.
17505         (expand_one_stack_var): Likewise.
17506
17507 2011-04-14  Richard Guenther  <rguenther@suse.de>
17508
17509         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
17510         Remove.
17511         (dse_initialize_block_local_data, dse_leave_block,
17512         record_voperand_set, get_stmt_uid): Likewise.
17513         (dse_possible_dead_store_p): Allow any kind of killing stmt.
17514         (dse_optimize_stmt): Remove voperand set handling code.
17515         Simplify and improve to handle any kind of killing stmt.
17516         (dse_record_phi): Remove.
17517         (dse_enter_block): Simplify.
17518         (tree_ssa_dse): Likewise.
17519         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
17520
17521 2011-04-14  Jan Hubicka  <jh@suse.cz>
17522
17523         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
17524         * cgraph.h (struct inline_summary): Move to ipa-inline.h
17525         (cgraph_local_info): Remove inline_summary.
17526         * ipa-cp.c: Include ipa-inline.h.
17527         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
17528         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
17529         accesor.
17530         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
17531         (input_overwrite_node): Do not set inline summary.
17532         (input_node): Do not stream inline summary.
17533         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
17534         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
17535         growth; we do not have inline parameters computed for that anyway.
17536         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
17537         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
17538         (inline_summary_t): New type and VECtor.
17539         (debug_inline_summary, dump_inline_summaries): Declare.
17540         (inline_summary): Use VOCtor.
17541         (estimate_edge_growth): Kill hack computing call stmt size directly.
17542         * lto-section-in.c (lto_section_name): Add inline section.
17543         * ipa-inline-analysis.c: Include lto-streamer.h
17544         (node_removal_hook_holder, node_duplication_hook_holder): New holders
17545         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
17546         (inline_summary_vec): Define.
17547         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
17548         dump_inline_summaries): New functions.
17549         (estimate_function_body_sizes): Properly compute size/time of outgoing
17550         calls.
17551         (compute_inline_parameters): Alloc inline_summary; do not compute
17552         size/time of incomming calls.
17553         (estimate_edge_time): Avoid missing time summary hack.
17554         (inline_read_summary): Read inline summary info.
17555         (inline_write_summary): Write inline summary info.
17556         (inline_free_summary): Free all hooks and inline summary vector.
17557         * lto-streamer.h: Add LTO_section_inline_summary section.
17558         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
17559         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
17560
17561 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17562
17563         * tree-vectorizer.h (vect_strided_store_supported): Add a
17564         HOST_WIDE_INT argument.
17565         (vect_strided_load_supported): Likewise.
17566         (vect_permute_store_chain): Return void.
17567         (vect_transform_strided_load): Likewise.
17568         (vect_permute_load_chain): Delete.
17569         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
17570         count argument.  Check that the count is a power of two.
17571         (vect_strided_load_supported): Likewise.
17572         (vect_permute_store_chain): Return void.  Update after above changes.
17573         Assert that the access is supported.
17574         (vect_permute_load_chain): Likewise.
17575         (vect_transform_strided_load): Return void.
17576         * tree-vect-stmts.c (vectorizable_store): Update calls after
17577         above interface changes.
17578         (vectorizable_load): Likewise.
17579         (vect_analyze_stmt): Don't check for strided powers of two here.
17580
17581 2011-04-14  Richard Guenther  <rguenther@suse.de>
17582
17583         PR tree-optimization/48590
17584         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
17585         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17586         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
17587         BUILT_IN_STACK_SAVE.
17588         * tree-ssa-dce.c (propagate_necessity): Handle
17589         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17590
17591 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17592
17593         * c-parser.c (c_parser_objc_class_declaration): Updated call to
17594         objc_declare_class.
17595
17596 2011-04-14  Richard Guenther  <rguenther@suse.de>
17597
17598         * tree.h (get_object_alignment_1): Declare.
17599         * builtins.c (get_object_alignment_1): Split out worker from ...
17600         (get_object_alignment): ... here.
17601         * fold-const.c (get_pointer_modulus_and_residue): Use
17602         get_object_alignment_1.
17603
17604 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17605
17606         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
17607         type parameter.
17608         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
17609         parameter.  Generalise code to handle arrays as well as vectors.
17610         (vect_setup_realignment): Update accordingly.
17611         * tree-vect-stmts.c (vectorizable_store): Likewise.
17612         (vectorizable_load): Likewise.
17613
17614 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17615
17616         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
17617         within the per-copy loop.
17618
17619 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17620
17621         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
17622         in the dump file.
17623
17624 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17625
17626         * doc/options.texi (Negative): Explicitly mention that the
17627         Negative chain must be circular.
17628
17629 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
17630
17631         * function.h (block_chainon): Declare.
17632         * function.c (block_chainon): Define.
17633
17634 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
17635             Eric Weddington  <eric.weddington@atmel.com>
17636             Georg-Johann Lay  <avr@gjlay.de>
17637
17638         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
17639         New Includes
17640         (avr_init_builtins, avr_expand_builtin,
17641         avr_expand_delay_cycles, avr_expand_unop_builtin,
17642         avr_expand_binop_builtin ): New functions.
17643         (avr_builtin_id): New enum
17644         (struct avr_builtin_description): New struct
17645         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
17646         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
17647
17648         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
17649         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
17650         UNSPECV_DELAY_CYCLES): new enumeration values
17651         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
17652         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
17653         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
17654         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
17655         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
17656         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
17657         "fmulsu"): New insns
17658
17659         * config/avr/avr-c.c: fix line endings
17660         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
17661         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
17662         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
17663         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
17664         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
17665
17666         * doc/extend.texi (AVR Built-in Functions): New node
17667         (Target Builtins): Add documentation of AVR
17668         built-in functions.
17669
17670 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
17671
17672         PR target/44643
17673         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
17674         alone. Error if non-const data has attribute progmem.
17675
17676 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17677
17678         * tree.h (struct tree_constructor): Include tree_typed instead of
17679         tree_common.
17680         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
17681         TS_TYPED instead of TS_COMMON.
17682
17683 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17684
17685         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
17686         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
17687         (sse2_psadbw): Merge with *avx_psadbw.
17688         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
17689         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
17690         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
17691         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
17692         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
17693         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
17694         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
17695         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
17696         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
17697         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
17698         (ssse3_palignrti): Merge with *avx_palignrti.
17699
17700 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17701
17702         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
17703         * tree-ssanames.c (fini_ssanames): VEC_free it.
17704         (make_ssa_name_fn): Update for VECness of free_ssanames.
17705         (release_ssa_name, release_dead_ssa_names): Likewise.
17706         * tree.h (struct tree_ssa_name): Include tree_typed instead of
17707         tree_common.
17708         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
17709         TS_TYPED instead of TS_COMMON.
17710
17711 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17712
17713         * postreload-gcse.c (gcse_after_reload_main): Add calls to
17714         statistics_counter_event.
17715         * tree-ssa-copyrename.c (stats): Define.
17716         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
17717         statistics_counter_event.
17718         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
17719         (bswap_stats, widen_mul_stats): Define.
17720         (insert_reciprocals): Increment rdivs_inserted.
17721         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
17722         rfuncs_inserted.  Add calls to statistics_counter_event.
17723         (execute_cse_sincos_1): Increment inserted.
17724         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
17725         statistics_counter_event.
17726         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
17727         of bswap_stats.  Add calls to statistics_counter_event.
17728         (convert_mult_to_widen): Increment widen_mults_inserted.
17729         (convert_plusminus_to_widen): Increment maccs_inserted.
17730         (convert_mult_to_fma): Increment fmas_inserted.
17731         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
17732         calls to statistics_counter_event.
17733
17734 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
17735
17736         PR rtl-optimization/48455
17737         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
17738         `temp_costs->mem_cost'.
17739
17740 2011-04-13  Jan Hubicka  <jh@suse.cz>
17741
17742         * ipa-inline.h: New file.
17743         * ipa-inline-analysis.c: New file. Broken out of ...
17744         * ipa-inline.c: ... this file; update toplevel comment;
17745         include ipa-inline.h
17746         (inline_summary): Move to ipa-inline.h
17747         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
17748         ipa-inline-analysis.c.
17749         (cgraph_estimate_time_after_inlining): Rename to
17750         estiamte_time_after_inlining; move to ipa-inline-analysis.c
17751         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
17752         to estimate_edge_growth.
17753         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
17754         rename to estimate_size_after_inlining.
17755         (cgraph_mark_inline_edge): Update for new naming convention.
17756         (cgraph_check_inline_limits): Likewise.
17757         (cgraph_edge_badness): Likewise.
17758         (cgraph_decide_recursive_inlining): Likewise.
17759         (cgraph_decide_inlining_of_small_functions): Likewise.
17760         (cgraph_decide_inlining_incrementally): Likewise.
17761         (cgraph_estimate_growth): Rename to estimate_growth; move to
17762         ipa-inline-analysis.c.
17763         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
17764         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
17765         (compute_inline_parameters): Likewise.
17766         (compute_inline_parameters_for_current): Likewise.
17767         (pass_inline_parameters): Likewise.
17768         (inline_indirect_intraprocedural_analysis): Likewise.
17769         (analyze_function): Rename to inline_analyze_function; likewise.
17770         (add_new_function): Move to ipa-inline-analysis.c.
17771         (inline_generate_summary): Likewise.
17772         (inline_read_summary): Likewise.
17773         (inline_write_summary): Likewise.
17774         * Makefile.in (ipa-inline-analysis.c): New file.
17775
17776 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17777
17778         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
17779         * configure: Regenerate.
17780
17781 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17782
17783         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
17784         instead of tree_common.
17785         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
17786         Likewise.
17787         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
17788         TS_TYPED rather than TS_COMMON.
17789         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
17790
17791 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
17792
17793         PR target/45263
17794         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
17795         r20 around calls of __tablejump_elpm__
17796
17797 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
17798
17799         PR middle-end/48591
17800         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
17801         NULL.
17802         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
17803
17804 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
17805
17806         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
17807         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
17808         (cfi_vec): New typedef.
17809         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
17810         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
17811         (cie_cfi_vec): New static variable.
17812         (cie_cfi_head): Delete.
17813         (add_cfi): Accept a cfi_vec * as first argument. All callers and
17814         declaration changed. Use vector rather than list operations.
17815         (new_cfi): Don't initialize the dw_cfi_next field.
17816         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
17817         rather than list operations.
17818         (lookup_cfa): Use vector rather than list operations.
17819         (output_cfis): New argument upto. Accept a cfi_vec rather than
17820         a dw_cfi_ref list head as argument. All callers changed.
17821         Iterate over the vector using upto as a maximum index.
17822         (output_all_cfis): New static function.
17823         (output_fde): Use vector rather than list operations. Use the
17824         new upto argument for output_cfis rather than manipulating a
17825         list.
17826         (dwarf2out_begin_prologue): Change initializations to match
17827         new struct members.
17828         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
17829         from the vector length rather than searching for the end of a list.
17830         Use output_all_cfis.
17831         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
17832
17833 2011-04-13  Nick Clifton  <nickc@redhat.com>
17834
17835         * config/rx/rx.md (movmemsi): Do not use this pattern when
17836         volatile pointers are involved.
17837
17838 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17839
17840         * config/i386/sse.md (pinsrbits): Remove.
17841         (sse2_packsswb): Merge with *avx_packsswb.
17842         (sse2_packssdw): Merge with *avx_packssdw.
17843         (sse2_packuswb): Merge with *avx_packuswb.
17844         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
17845         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
17846         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
17847         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
17848         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
17849         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
17850         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
17851         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
17852         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
17853         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
17854         (sse2_loadld): Merge with *avx_loadld.
17855         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
17856         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
17857         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
17858         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
17859         (vec_concatv2di): Merge with *vec_concatv2di_avx.
17860
17861 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
17862
17863         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
17864         calling TREE_CHAIN.
17865         * print-tree.c (print_node): Likewise.
17866         * tree-inline.c (copy_tree_r): Likewise.
17867         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
17868         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
17869         instead of TS_COMMON.
17870         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
17871         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
17872         (copy_node_stat): Zero TREE_CHAIN only if necessary.
17873         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
17874         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
17875         ...and these...
17876         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
17877         * tree.h: ...here.
17878         (TREE_CHAIN): Check for a TS_COMMON structure.
17879         (TREE_TYPE): Check for a TS_TYPED structure.
17880
17881 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
17882
17883         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17884         cgraph_get_create_node instead of cgraph_node.
17885
17886 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17887
17888         * c-parser.c (c_parser_initelt): Updated call to
17889         objc_build_message_expr.
17890         (c_parser_postfix_expression): Likewise.
17891
17892 2011-04-12  Kai Tietz  <ktietz@redhat.com>
17893
17894         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
17895         MASK_MS_BITFIELD_LAYOUT bit.
17896
17897 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17898
17899         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
17900         assert it is always true.
17901         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
17902         moves.
17903
17904 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17905
17906         * c-parser.c (c_lex_one_token): Rewritten conditional used when
17907         compiling Objective-C to be more efficient.
17908
17909 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
17910
17911         * opts-common.c (decode_cmdline_options_to_array): Remove variable
17912         argv_copied.
17913
17914 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17915
17916         * recog.h, genoutput.c, optabs.c: Revert last patch.
17917
17918 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17919
17920         PR target/48090
17921         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
17922
17923 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17924
17925         * recog.h (insn_operand_data): Add an "allows_mem" field.
17926         * genoutput.c (output_operand_data): Initialize it.
17927         * optabs.c (maybe_legitimize_operand_same_code): New function.
17928         (maybe_legitimize_operand): Use it when matching the original
17929         op->value.
17930
17931 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17932
17933         * genpreds.c (process_define_predicate): Move most processing
17934         to gensupport.c.  Continue to validate the expression.
17935         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
17936         (process_define_predicate): Move processing to gensupport.c.
17937         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
17938         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
17939         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
17940         argument.
17941         (valid_predicate_name_p): New function, split out from old
17942         genpreds.c:process_define_predicate.
17943         (process_define_predicate): New function, combining code from
17944         old genpreds.c and genrecog.c functions.
17945         (process_rtx): Call it for DEFINE_PREDICATE and
17946         DEFINE_SPECIAL_PREDICATE.
17947
17948 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17949
17950         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
17951         size of a '%A' memory reference.
17952         (T_DREG, T_QREG): New neon_builtin_type_bits.
17953         (arm_init_neon_builtins): Assert that the load and store operands
17954         are neon_struct_operands.
17955         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
17956         (NEON_ARG_MEMORY): New builtin_arg.
17957         (neon_dereference_pointer): New function.
17958         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
17959         Handle NEON_ARG_MEMORY.
17960         (arm_expand_neon_builtin): Update after above interface changes.
17961         Use NEON_ARG_MEMORY for loads and stores.
17962         * config/arm/predicates.md (neon_struct_operand): New predicate.
17963         * config/arm/iterators.md (V_two_elem): Tweak formatting.
17964         (V_three_elem): Use BLKmode for accesses that have no associated mode.
17965         (V_four_elem): Tweak formatting.
17966         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
17967         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
17968         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
17969         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
17970         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
17971         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
17972         (neon_vst4<mode>): Replace pointer operand with a memory operand.
17973         Use %A in the output template.
17974         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
17975         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
17976         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
17977         the width of the memory access.  Remove post-increment.
17978         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
17979
17980 2011-04-12  Nick Clifton  <nickc@redhat.com>
17981
17982         * config/v850/v850.c (expand_prologue): Do not use the CALLT
17983         instruction for interrupt handlers if the target is the basic V850
17984         architecture.
17985         (expand_epilogue): Likewise.
17986
17987 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17988
17989         PR rtl-optimization/48549
17990         * combine.c (propagate_for_debug): Also stop after BB_END of
17991         this_basic_block.  Process LAST and just stop processing after it.
17992         (combine_instructions): If last_combined_insn has been deleted,
17993         set last_combined_insn to its PREV_INSN.
17994
17995 2011-04-12  Richard Guenther  <rguenther@suse.de>
17996
17997         PR tree-optimization/46076
17998         * gimple.h (struct gimple_statement_call): Add fntype field.
17999         (gimple_call_fntype): Adjust.
18000         (gimple_call_set_fntype): New function.
18001         * gimple.c (gimple_build_call_1): Set the call function type.
18002         * gimplify.c (gimplify_call_expr): Preserve the function
18003         type the frontend used for the call.
18004         (gimplify_modify_expr): Likewise.
18005         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
18006         function type.
18007         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
18008         function type.
18009         * tree-ssa.c (useless_type_conversion_p): Function pointer
18010         conversions are useless.
18011
18012 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18013
18014         * cgraph.h (cgraph_node): Remove function declaration.
18015         (cgraph_create_node): Declare.
18016         (cgraph_get_create_node): Likewise.
18017         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
18018         Updated all callers.
18019         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
18020         the decl does not already exist.  Call cgraph_get_create_node instead
18021         of cgraph_node.
18022         (cgraph_get_create_node): New function.
18023         (cgraph_same_body_alias): Update comment.
18024         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
18025         assert it does not return NULL.
18026         (cgraph_update_edges_for_call_stmt): Likewise.
18027         (cgraph_clone_edge): Likewise.
18028         (cgraph_create_virtual_clone): Likewise.
18029         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
18030         instead of cgraph_node.
18031         (cgraph_add_new_function): Call cgraph_create_node or
18032         cgraph_get_create_node instead of cgraph_node.
18033         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
18034         instead of cgraph_node.
18035         (record_eh_tables): Likewise.
18036         (mark_address): Likewise.
18037         (mark_load): Likewise.
18038         (build_cgraph_edges): Call cgraph_get_create_node instead
18039         of cgraph_node.
18040         (rebuild_cgraph_edges): Likewise.
18041         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
18042         instead of cgraph_node.
18043         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
18044         cgraph_node.
18045         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
18046         cgraph_create_node instead of cgraph_node.
18047         * c-decl.c (finish_function): Call cgraph_get_create_node instead
18048         of cgraph_node.
18049         * lto-cgraph.c (input_node): Likewise.
18050         * lto-streamer-in.c (input_function): Likewise.
18051         * varasm.c (mark_decl_referenced): Likewise.
18052         (assemble_alias): Likewise.
18053
18054 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18055
18056         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
18057         instead of cgraph_node and assert it does not return NULL.
18058         * lto-streamer-in.c (lto_read_body): Likewise.
18059         * omp-low.c (new_omp_context): Likewise.
18060         (create_task_copyfn): Likewise.
18061         * tree-emutls.c (lower_emutls_function_body): Likewise.
18062         * matrix-reorg.c (transform_allocation_sites): Likewise.
18063
18064 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
18065
18066         PR c/48552
18067         * c-typeck.c (build_asm_expr): Error out on attempts to use
18068         void type outputs or inputs for constraints that allow reg or
18069         don't allow memory.
18070
18071 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
18072             Richard Earnshaw  <rearnsha@arm.com>
18073
18074         PR target/48250
18075         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
18076         to use sign-magnitude offsets. Reject unsupported unaligned
18077         cases. Add detailed description in comments.
18078         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
18079         condition from TARGET_32BIT to TARGET_ARM.
18080
18081 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
18082
18083         * tree.h (struct typed_tree): New.
18084         (struct tree_common): Include it instead of tree_base.
18085         (TREE_TYPE): Update for new location of type field.
18086         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
18087         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
18088         (union tree_node): Add typed field.
18089         * treestruct.def (TS_TYPED): New.
18090         * lto-streamer.c (check_handled_ts_structures): Handle it.
18091         * tree.c (MARK_TS_TYPED): New macro.
18092         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
18093
18094 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
18095
18096         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
18097         (force_nonfallthru): Do not alter the loop nest if no basic block
18098         was created.
18099
18100 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18101
18102         * config/i386/sse.md (VI): New mode iterator.
18103         (SSEMODEI): Remove.
18104         (AVX256MODEI): Ditto.
18105         (AVXMODEF4P): Ditto.
18106         (avxvecpsmode): Ditto.
18107         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
18108         (sse2_andnot<mode>3): New expander.
18109         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
18110         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
18111         (<any_logic:code><mode>3): Use VI mode iterator.
18112         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
18113         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
18114         (*andnottf3): Handle AVX three-operand constraints.
18115         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
18116
18117 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18118             Robert Millan  <rmh@gnu.org>
18119
18120         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
18121         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
18122         GNU_USER_DYNAMIC_LINKER64): Define.
18123         (REG_NAME): Don't undefine.
18124         (MD_UNWIND_SUPPORT): Undefine.
18125         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
18126         (REG_NAME): Don't undefine.
18127         (MD_UNWIND_SUPPORT): Undefine.
18128         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
18129
18130 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18131
18132         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
18133         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
18134
18135 2011-04-11  Xinliang David Li  <davidxl@google.com>
18136
18137         * value-profile.c (check_ic_target): New function.
18138         (gimple_ic_transform): Sanity check indirect call target.
18139         * gimple-low.c (gimple_check_call_args): Interface change.
18140         (gimple_check_call_matching_types): New function.
18141         * tree-inline.c (tree_can_inline_p): Call new function.
18142
18143 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
18144
18145         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
18146         tree-pretty-print.h & realmpfr.h.
18147
18148 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
18149
18150         PR middle-end/48464
18151         * ira.c (setup_pressure_classes): Fix typo in loop condition.
18152         (setup_allocno_and_important_classes): Ditto.
18153
18154 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18155
18156         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
18157         GNU_USER_DYNAMIC_LINKER.
18158         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
18159         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18160         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
18161         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18162         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18163         GNU_USER_TARGET_OS_CPP_BUILTINS.
18164         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
18165         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18166         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18167         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18168         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
18169         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18170         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18171         GNU_USER_TARGET_OS_CPP_BUILTINS.
18172         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18173         GNU_USER_DYNAMIC_LINKER.
18174         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18175         GNU_USER_TARGET_OS_CPP_BUILTINS.
18176         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
18177         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18178         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
18179         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18180         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
18181         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
18182         GNU_USER_DYNAMIC_LINKER64): Remove.
18183         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
18184         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18185         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18186         GNU_USER_DYNAMIC_LINKER.
18187         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18188         GNU_USER_TARGET_OS_CPP_BUILTINS.
18189         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18190         GNU_USER_TARGET_OS_CPP_BUILTINS.
18191         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
18192         to GNU_USER_TARGET_OS_CPP_BUILTINS.
18193         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18194         GNU_USER_TARGET_OS_CPP_BUILTINS.
18195         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
18196         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
18197         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18198         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
18199         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18200         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18201         GNU_USER_DYNAMIC_LINKER.
18202         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18203         GNU_USER_TARGET_OS_CPP_BUILTINS.
18204         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
18205         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18206         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18207         GNU_USER_DYNAMIC_LINKER.
18208         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18209         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18210         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
18211         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18212         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18213         GNU_USER_DYNAMIC_LINKER.
18214         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
18215         GNU_USER_DYNAMIC_LINKERN32.
18216         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
18217         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
18218         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
18219         GNU_USER_DYNAMIC_LINKER32.
18220         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
18221         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18222         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18223         GNU_USER_DYNAMIC_LINKER.
18224         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18225         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18226         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
18227         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18228         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18229         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
18230         GNU_USER_DYNAMIC_LINKER32.
18231         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18232         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
18233         GNU_USER_DYNAMIC_LINKER.
18234         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
18235         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18236         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18237         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
18238         GNU_USER_DYNAMIC_LINKER64.
18239         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
18240         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18241         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18242         GNU_USER_DYNAMIC_LINKER.
18243         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
18244         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18245         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18246         GNU_USER_DYNAMIC_LINKER.
18247         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
18248         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18249         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18250         GNU_USER_DYNAMIC_LINKER32.
18251         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18252         GNU_USER_DYNAMIC_LINKER64.
18253         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18254         GNU_USER_DYNAMIC_LINKER64.
18255         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
18256         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18257         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
18258         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18259         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18260
18261 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18262
18263         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
18264         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
18265         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
18266         GNU_USER_DYNAMIC_LINKER.
18267         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18268         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
18269         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
18270         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
18271         GNU_USER_DYNAMIC_LINKER64.
18272         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18273         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
18274         GNU_USER_LINK_EMULATION.
18275         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
18276         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
18277         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
18278         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
18279         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
18280         CPP_SPEC, CC1_SPEC): Remove.
18281         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
18282         (GNU_USER_DYNAMIC_LINKER): Define.
18283         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
18284         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
18285         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
18286         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
18287         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
18288         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
18289         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18290         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
18291         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
18292         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
18293         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
18294         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
18295         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
18296         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
18297         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
18298         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18299         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18300         GNU_USER_DYNAMIC_LINKER.
18301         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18302         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18303         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18304         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18305         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18306         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18307         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
18308         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
18309         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
18310         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
18311
18312 2011-04-11  Kai Tietz  <ktietz@redhat.com>
18313
18314         PR target/9601
18315         PR target/11772
18316         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
18317         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
18318         comment.
18319         (ix86_is_msabi_thiscall): Removed.
18320         (ix86_is_type_thiscall): Likewise.
18321         (ix86_get_callcvt): New function.
18322         (ix86_comp_type_attributes): Simplify check.
18323         (ix86_function_regparm): Use ix86_get_callcvt for calling
18324         convention attribute checks.
18325         (ix86_return_pops_args): Likewise.
18326         (ix86_static_chain): Likewise.
18327         (x86_this_parameter): Likewise.
18328         (x86_output_mi_thunk): Likewise.
18329         (ix86_function_type_abi): Optimize check for types without attributes.
18330         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
18331         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
18332         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
18333         by flag-values.
18334         (IX86_BASE_CALLCVT): Helper macro.
18335         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
18336         Use ix86_get_callcvt for calling convention attribute checks and avoid
18337         symbol-decoration for stdcall in TARGET_RTD case.
18338         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
18339         Likewise.
18340         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
18341         for declaration.
18342
18343 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18344
18345         * config/i386/sse.md (VI_128): New mode iterator.
18346         (VI12_128): Rename from SSEMODE12.
18347         (VI14_128): Rename from SSEMODE14.
18348         (VI124_128): New mode iterator.
18349         (VI24_128): Rename from SSEMODE248.
18350         (VI248_128): Rename from SSEMODE248.
18351         (SSEMODE124C8): Remove.
18352         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18353         (*sse2_<plusminus_insn><mode>3): Merge with
18354         *avx_<plusminus_insn><mode>3.
18355         (*mulv8hi3): Merge with *avx_mulv8hi3.
18356         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
18357         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
18358         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
18359         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
18360         (ashr<mode>3): Merge with *avx_ashr<mode>3.
18361         (lshr<mode>3): Merge with *avx_lshr<mode>3.
18362         (ashl<mode>3): Merge with *avx_ashl<mode>3.
18363         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
18364         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
18365         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18366         (*<smaxmin:code>v8hi3): Ditto.
18367         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
18368         (*<smaxmin:code>v16qi3): Ditto.
18369         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
18370         (*sse2_eq<mode>3): Ditto.
18371         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
18372         (*sse2_gt<mode>3): Ditto.
18373         (vcondv2di): Split out of vcond<mode>.
18374         (vconduv2di): Split out of vcondu<mode>.
18375
18376 2011-04-11  Richard Guenther  <rguenther@suse.de>
18377
18378         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
18379         before calling tree_low_cst.
18380
18381 2011-04-11  Richard Guenther  <rguenther@suse.de>
18382
18383         * stor-layout.c (layout_type): Compute all array index size operations
18384         in the original type.
18385         (initialize_sizetypes): Add comment.
18386         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
18387
18388 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18389
18390         * common.opt (Tbss=, Tdata=, Ttext=): New options.
18391
18392 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18393
18394         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
18395         of cgraph_node, handle NULL return value.
18396         (cgraph_global_info): Likewise.
18397         (cgraph_rtl_info): Likewise.
18398         * tree-inline.c (estimate_num_insns): Likewise.
18399         * gimplify.c (unshare_body): Likewise.
18400         (unvisit_body): Likewise.
18401         (gimplify_body): Likewise.
18402         * predict.c (optimize_function_for_size_p): Likewise.
18403         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18404         (call_may_clobber_ref_p_1): Likewise.
18405         * varasm.c (function_section_1): Likewise.
18406         (assemble_start_function): Likewise.
18407
18408 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18409
18410         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
18411         of cgraph_node.
18412         * final.c (rest_of_clean_state): Likewise.
18413         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
18414         * passes.c (pass_init_dump_file): Likewise.
18415         (execute_all_ipa_transforms): Likewise.
18416         (function_called_by_processed_nodes_p): Likewise.
18417         * predict.c (maybe_hot_frequency_p): Likewise.
18418         (probably_never_executed_bb_p): Likewise.
18419         (compute_function_frequency): Likewise.
18420         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
18421         (unnest_nesting_tree_1): Likewise.
18422         (lower_nested_functions): Likewise.
18423         * tree-optimize.c (execute_fixup_cfg): Likewise.
18424         (tree_rest_of_compilation): Likewise.
18425         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
18426         * tree-sra.c (ipa_early_sra): Likewise.
18427         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
18428         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
18429         * ipa.c (record_cdtor_fn): Likewise.
18430         * ipa-inline.c (cgraph_early_inlining): Likewise.
18431         (compute_inline_parameters_for_current): Likewise.
18432         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18433         * ipa-pure-const.c (local_pure_const): Likewise.
18434         * ipa-split.c (split_function): Likewise.
18435         (execute_split_functions): Likewise.
18436         * cgraphbuild.c (build_cgraph_edges): Likewise.
18437         (rebuild_cgraph_edges): Likewise.
18438         (cgraph_rebuild_references): Likewise.
18439         (remove_cgraph_callee_edges): Likewise.
18440         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
18441         (verify_cgraph_node): Likewise.
18442         (cgraph_analyze_functions): Likewise.
18443         (cgraph_preserve_function_body_p): Likewise.
18444         (save_inline_function_body): Likewise.
18445         (save_inline_function_body): Likewise.
18446         * tree-inline.c (copy_bb): Likewise.
18447         (optimize_inline_calls): Likewise.
18448
18449 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18450
18451         PR tree-optimization/48195
18452         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
18453         ipa_check_create_edge_args.
18454         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
18455         ipa_check_create_edge_args.
18456         * ipa-inline.c (inline_generate_summary): Do not call
18457         ipa_check_create_node_params and ipa_check_create_edge_args.
18458         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
18459         ipa_check_create_edge_args.
18460
18461 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
18462
18463         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
18464         instead of loop.
18465         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
18466         * function.c (record_hard_reg_sets): Likewise.
18467         * ira.c (compute_regs_asm_clobbered): Likewise.
18468         * sched-deps.c (sched_analyze_1): Likewise.
18469         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
18470
18471 2011-04-09  Xinliang David Li  <davidxl@google.com>
18472
18473         PR tree-optimization/PR48484
18474         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
18475         has_valid_pred lazily
18476
18477 2011-04-09  Duncan Sands  <baldrick@free.fr>
18478
18479         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
18480
18481 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18482
18483         * combine.c (combine_validate_cost): Adjust comments.  Set registered
18484         cost of I0 to zero at the end, if any.
18485
18486 2011-04-08  Xinliang David Li  <davidxl@google.com>
18487
18488         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
18489         to insane profile data.
18490
18491 2011-04-08  Xinliang David Li  <davidxl@google.com>
18492
18493         * ipa-cp.c (ipcp_update_profiling): Correct
18494          negative scale factor due to insane profile data.
18495
18496 2011-04-08  Xinliang David Li  <davidxl@google.com>
18497
18498         * final.c (dump_basic_block_info): New function.
18499         (final): Dump basic block.
18500         (final_scan_insn): Remove old dump.
18501
18502 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
18503
18504         PR target/47829
18505         * config.gcc (i386-*-freebsd): Disable unwind table generation for
18506         crtbegin/crtend.
18507
18508 2011-04-08  Michael Matz  <matz@suse.de>
18509
18510         PR middle-end/48389
18511         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
18512         functions.
18513         (rebuild_jump_labels): Call rebuild_jump_labels_1.
18514         * rtl.h (rebuild_jump_labels_chain): Declare.
18515         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
18516         insns inserted on edges.
18517
18518 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
18519
18520         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
18521         * config/arm/arm-arches.def: New.
18522         * config/arm/arm-opts.h: New.
18523         * config/arm/genopt.sh: New.
18524         * config/arm/arm-tables.opt: New (generated).
18525         * config/arm/arm.c (arm_handle_option, arm_target_help,
18526         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
18527         (all_architectures): Get most table contents from arm-arches.def.
18528         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
18529         arm_selected_tune here.
18530         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
18531         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
18532         (march=, mcpu=, mtune=): Use Enum and Var.
18533         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
18534         (arm.o): Update dependencies.
18535
18536 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
18537
18538         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
18539         of header_file.
18540         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
18541         (write_typed_alloc_defns): Likewise.
18542         (main): Calls write_typed_alloc_defns with output_header.
18543
18544 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
18545
18546         PR inline-asm/48435
18547         * ira-color.c (setup_profitable_hard_regs): Add comments.
18548         Don't take prohibited hard regs into account.
18549         (setup_conflict_profitable_regs): Rename to
18550         get_conflict_profitable_regs.
18551         (check_hard_reg_p): Check prohibited hard regs.
18552
18553 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
18554
18555         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
18556         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
18557         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
18558
18559 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18560
18561         PR target/48366
18562         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
18563         move from floating point to shift amount register.
18564         (emit_move_sequence): Remove secondary reload support for floating
18565         point to shift amount amount register copies.
18566         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
18567         amount register copies.
18568         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
18569         register, return false if mode isn't a scalar integer mode.
18570         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
18571
18572 2011-04-08  Richard Guenther  <rguenther@suse.de>
18573
18574         * gimple.c (gimple_call_flags): Remove kludge.
18575
18576 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18577
18578         * sel-sched.c (sel_region_init): Move call to
18579         sel_setup_region_sched_flags after setup_current_loop_nest.
18580
18581 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
18582
18583         PR rtl-optimization/48272
18584         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
18585         init_insn_reg_pressure_info.  Adjust a caller.
18586         * sched-int.h (init_insn_reg_pressure_info): Declare.
18587         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
18588         when sched-pressure is enabled.
18589
18590 2011-04-08  Richard Guenther  <rguenther@suse.de>
18591
18592         * gimple.c (gimple_set_modified): Do not queue calls to
18593         MODIFIED_NORETURN_CALLS here ...
18594         * tree-ssa-operands.c (update_stmt_operands): ... but here.
18595
18596 2011-04-08  Richard Guenther  <rguenther@suse.de>
18597
18598         PR lto/48467
18599         * toplev.c (lang_dependent_init): Do not open asm_out_file
18600         in WPA mode, nor perform debug machinery initialization.
18601         (finalize): Do not unlink asm_out_file in WPA mode.
18602
18603 2011-04-08  Richard Guenther  <rguenther@suse.de>
18604
18605         * gimple.h (gimple_call_fntype): New function.
18606         (gimple_call_return_type): Use it.
18607         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
18608         * gimple-low.c (gimple_check_call_args): Likewise.
18609         * gimple.c (gimple_call_flags): Likewise.
18610         (gimple_call_arg_flags): Likewise.
18611         (gimple_call_return_flags): Likewise.
18612         * tree-cfg.c (verify_gimple_call): Likewise.
18613         (do_warn_unused_result): Likewise.
18614         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
18615         * value-prof.c (gimple_ic_transform): Fix fndecl check.
18616
18617 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
18618
18619         PR rtl-optimization/48235
18620         * sel-sched.c (code_motion_process_successors): Recompute the last
18621         insn in basic block if control flow changed.
18622         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
18623         Update condition for ilist_remove.
18624
18625 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18626
18627         PR rtl-optimization/48302
18628         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
18629         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
18630         it to record added preheader blocks.
18631         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
18632         on to sel_add_loop_preheaders.
18633         (sel_region_init): Move call to setup_current_loop_nest after
18634         sel_init_bbs.
18635
18636 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18637
18638         PR target/48273
18639         * cfgloop.h (loop_has_exit_edges): New helper.
18640         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
18641         non-clonable.
18642         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
18643         that have no exit edges.
18644
18645 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18646
18647         PR rtl-optimization/48442
18648         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
18649         all callers.  Adjust assert.
18650
18651 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
18652
18653         PR tree-optimization/48377
18654         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
18655         is_packed to true even for types with smaller TYPE_ALIGN than
18656         TYPE_SIZE.
18657
18658 2011-04-08  Richard Guenther  <rguenther@suse.de>
18659
18660         PR bootstrap/48513
18661         * doc/tm.texi: Re-generate.
18662
18663 2011-04-08  Wei Guozhi  <carrot@google.com>
18664
18665         PR target/47855
18666         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
18667         * config/arm/arm.c (arm_attr_length_push_multi): New function.
18668         * config/arm/arm.md (*push_multi): Change the length computation to
18669         call a C function.
18670
18671 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
18672
18673         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
18674         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
18675         * doc/tm.texi: Regenerate.
18676         * system.h (ASM_OUTPUT_BSS): Poison.
18677         * varasm.c (asm_output_bss): Remove function.
18678         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
18679
18680         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
18681         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
18682         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
18683         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18684         Likewise.
18685         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18686         Likewise.
18687         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18688         Likewise.
18689         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
18690
18691 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18692
18693         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
18694         EnumValue lines.
18695
18696 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18697
18698         * config/m68k/m68k.c (m68k_handle_option): Don't handle
18699         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
18700         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
18701         OPT_mcpu32.
18702         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18703         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
18704         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
18705         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
18706         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
18707         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
18708         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18709         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
18710         options.  Don't map other m68k options manually.  Don't handle
18711         old-style options as canonical.
18712         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18713         * doc/install.texi (m68k-*-*): Document binutils version requirement.
18714
18715 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
18716
18717         * basic-block.h (force_nonfallthru): Move to...
18718         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
18719         (force_nonfallthru): ...here.
18720         * cfghooks.c (force_nonfallthru): New function.
18721         * cfgrtl.c (force_nonfallthru): Rename into...
18722         (rtl_force_nonfallthru): ...this.
18723         (commit_one_edge_insertion): Do not set AUX field.
18724         (commit_edge_insertions): Do not discover new basic blocks.
18725         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
18726         (cfg_layout_rtl_cfg_hooks): Likewise.
18727         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
18728         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
18729         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
18730
18731 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
18732
18733         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18734         Remove macros.
18735
18736 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
18737
18738         * config/i386/sse.md: Update copyright year.
18739         (avxcvtvecmode): Remove.
18740         (sse_movhlps): Merge with *avx_movhlps.
18741         (sse_movlhps): Merge with *avx_movlhps.
18742         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
18743         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
18744         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
18745         (sse_loadhps): Merge with *avx_loadhps.
18746         (sse_storelps): Merge with *avx_storelps.
18747         (sse_loadlps): Merge with *avx_loadlps.
18748         (sse_movss): Merge with *avx_movss.
18749         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
18750         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
18751         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
18752         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
18753         (vec_set<mode>_0): Ditto.
18754         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
18755         (sse4_1_insertps): Merge with *avx_insertps.
18756         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
18757         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
18758         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
18759         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
18760         (sse2_storehpd): Merge with *avx_storehpd.
18761         (sse2_loadhpd): Merge with *avx_loadhpd.
18762         (sse2_loadlpd): Merge with *avx_loadlpd.
18763         (sse2_movsd): Merge with *avx_movsd.
18764         (*vec_concatv2df): Merge with *vec_concatv2df.
18765
18766 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
18767
18768         PR debug/48343
18769         * combine.c (combine_instructions): Add last_combined_insn,
18770         update it if insn is after it, pass it to all try_combine calls.
18771         (try_combine): Add last_combined_insn parameter, pass it instead of
18772         i3 to propagate_for_debug.
18773
18774 2011-04-07  Nick Clifton  <nickc@redhat.com>
18775
18776         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
18777         to handle MDR <-> data register transfers.
18778         (movhi_internal): Likewise.
18779
18780 2011-04-07  Alan Modra  <amodra@gmail.com>
18781
18782         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
18783         previous stack info.
18784
18785 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18786
18787         PR target/43920
18788         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
18789         flow_find_cross_jump.  Swap variables to implement backward replacement.
18790         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
18791
18792 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18793
18794         PR target/43920
18795         * cfgcleanup.c (walk_to_nondebug_insn): New function.
18796         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
18797         and bb2.
18798         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
18799         src1 or src2.  Redirect edges to the last basic block.  Update
18800         frequency and count on multiple basic blocks in case of fallthru.
18801
18802 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18803
18804         PR target/43920
18805         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
18806         function.
18807         (old_insns_match_p): Change return type.  Replace return false/true
18808         with return dir_none/dir_both.  Use can_replace_by.
18809         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
18810         direction from dir_p.  Register replacement direction in dir, last_dir
18811         and afterlast_dir.  Handle new return type of old_insns_match_p using
18812         merge_dir.  Return replacement direction in dir_p.
18813         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
18814         return type of old_insns_match_p.
18815         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
18816         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
18817         flow_find_cross_jump.
18818         * basic-block.h (enum replace_direction): New type.
18819         (flow_find_cross_jump): Add parameter to declaration.
18820
18821 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18822
18823         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
18824         (AVXMODEDCVTPS2DQ): Ditto.
18825         (VEC_FLOAT_MODE): Ditto.
18826         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
18827         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18828         (<any_logic:code><mode>3): Use VF mode iterator.
18829         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
18830         Use VF mode iterator.
18831         (copysign<mode>3): Use VF mode iterator.
18832         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
18833         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18834         (*<any_logic:code><MODEF:mode>3): Merge with
18835         *avx_<any_logic:code><MODEF:mode>3.
18836         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
18837         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
18838         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
18839         (avx_cvtdq2ps<avxmodesuffix>): Remove.
18840         (sse2_cvtdq2ps): Use %v modifier.
18841         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
18842         (avx_cvtps2dq<avxmodesuffix>): Remove.
18843         (sse2_cvtps2dq): Use %v modifier.
18844         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
18845         (avx_cvttps2dq<avxmodesuffix>): Remove.
18846         (sse2_cvttps2dq): Use %v modifier.
18847         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
18848         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
18849         (sse2_cvtsd2siq): Fix insn template.
18850         (sse2_cvtsd2siq_2): Ditto.
18851         (sse2_cvttsd2siq): Ditto.
18852         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
18853         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
18854
18855 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18856
18857         * gcov-io.c: Use GCC Runtime Library Exception.
18858
18859 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
18860
18861         PR debug/48466
18862         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
18863         as base_reg whatever register reg has been eliminated to, instead
18864         of hardcoding STACK_POINTER_REGNUM.
18865
18866 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18867
18868         * doc/tm.texi.in: Document C target hooks as separate from general
18869         target hooks.
18870         * doc/tm.texi: Regenerate.
18871         * genhooks.c (struct hook_desc): Add docname field.
18872         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
18873         docname field.
18874         (hook_array): Include c-target.def.
18875         (emit_documentation): Use docname field in output.
18876         (emit_init_macros): Take docname argument.  Only emit definitions
18877         for hooks matching docname.
18878         (main): Expect additional arguments in all cases.  Pass argument
18879         to emit_init_macros.
18880         * target.def: Move initial macro definitions and comments to
18881         target-hooks-macros.h.
18882         (gcc_targetcm): Move to c-family/c-target.def.
18883         * target.h (targetcm): Move declaration to c-family/c-target.h.
18884         * targhooks.c (default_handle_c_option): Move to
18885         c-family/c-opts.c.
18886         * targhooks.h (default_handle_c_option): Move declaration to
18887         c-family/c-common.h.
18888         * target-hooks-macros.h: New file.
18889         * config.gcc (target_has_targetcm): Define and use to add to
18890         c_target_objs and cxx_target_objs.
18891         * config/default-c.c: New file.
18892         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
18893         of target.h and target-def.h.
18894         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
18895         (darwin_objc_construct_string, darwin_cfstring_ref_p,
18896         darwin_check_cfstring_format_arg): Make static.
18897         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18898         TARGET_STRING_OBJECT_REF_TYPE_P,
18899         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
18900         * config/darwin-protos.h (darwin_objc_construct_string,
18901         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
18902         declare.
18903         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18904         TARGET_STRING_OBJECT_REF_TYPE_P,
18905         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
18906         * config/t-darwin (darwin-c.o): Update dependencies.
18907         * system.h (TARGET_HAS_TARGETCM): Poison.
18908         * Makefile.in (TARGET_H): Update.
18909         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
18910         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
18911         (default-c.o): New target.
18912         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
18913         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
18914         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
18915         c-target.def.
18916         (build/genhooks.o): Update dependencies.
18917
18918 2011-04-06  Richard Guenther  <rguenther@suse.de>
18919
18920         * ipa-inline.c (enum inlining_mode): Remove.
18921         (cgraph_flatten): Use some other token.
18922         (cgraph_edge_early_inlinable_p): New function, split out from ...
18923         (cgraph_perform_always_inlining): New function, split out from ...
18924         (cgraph_decide_inlining_incrementally): ... here.
18925         (cgraph_mark_inline_edge): Adjust.
18926         (cgraph_early_inlining): Re-structure.
18927         (pass_early_inline): Require SSA form.
18928
18929 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
18930             Julian Brown  <julian@codesourcery.com>
18931             Mark Shinwell  <shinwell@codesourcery.com>
18932
18933         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
18934         LO_REGS only for Thumb-1.
18935         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
18936         be used in short instructions when optimising for size on Thumb-2.
18937
18938 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
18939
18940         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
18941         associated with user returns to be preserved.
18942
18943 2011-04-06  Tristan Gingold  <gingold@adacore.com>
18944
18945         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
18946         symbol_queue_size, DBXOUT_DECR_NESTING,
18947         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
18948         if XCOFF_DEBUGGING_INFO.
18949
18950 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18951
18952         * config/i386/i386.md (attribute isa): New.
18953         (attribute enabled): New.
18954         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
18955         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
18956         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
18957         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
18958         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
18959         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18960         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
18961         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
18962
18963         * config/i386/sse.md (VF): New mode iterator.
18964         (VF1): Ditto.
18965         (VF2): Ditto.
18966         (VF_128): Ditto.
18967         (SSEMODEF4): Remove.
18968         (attribute sse): Handle V8SF and V4DF modes.
18969         (<absneg:code><mode>2): Use VF mode iterator.
18970         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
18971         mode iterator.
18972         (<plusminus_insn><mode>3): Use VF mode iterator.
18973         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18974         Use VF mode iterator.
18975         (<sse>_vm<plusminus_insn><mode>3): Merge with
18976         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
18977         (mul<mode>3): Use VF mode iterator.
18978         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
18979         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
18980         mode iterator.
18981         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
18982         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
18983         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
18984         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
18985         mode iterator.
18986         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
18987         Use VF1 mode iterator.
18988         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
18989         (sqrt<VF2:mode>2): New expander.
18990         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
18991         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
18992         and sqrtv2df2.  Use VF mode iterator.
18993         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
18994         mode iterator.
18995         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
18996         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
18997         Use VF1 mode iterator.
18998         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
18999         (<smaxmin:code><mode>3): Use VF mode iterator.
19000         (*<smaxmin:code><mode>3_finite): Merge with
19001         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
19002         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19003         (<sse>_vm<smaxmin:code><mode>2): Merge with
19004         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
19005         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
19006         mode iterator.
19007         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
19008         mode iterator.
19009         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
19010         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
19011         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
19012         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
19013         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
19014         VF mode iterator.
19015         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
19016         Use VF_128 mode iterator.
19017         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
19018         mode iterator.
19019         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
19020         VF_128 mode iterator.
19021         (vcond<mode>): Use VF mode iterator.
19022         * config/i386/predicates.md (sse_comparison_operator): Merge with
19023         avx_comparison_float_operator.  Do not declare as special_predicate.
19024         * config/i386/i386.c (struct builtin_description): Update for renamed
19025         compare patterns.
19026         (ix86_expand_args_builtin): Ditto.
19027         (ix86_expand_sse_compare_mask): Ditto.
19028
19029 2011-04-06  Richard Guenther  <rguenther@suse.de>
19030
19031         * tree-inline.c (estimate_num_insns): For calls simply account
19032         for all passed arguments and a used return value.
19033
19034 2011-04-06  Richard Guenther  <rguenther@suse.de>
19035
19036         PR tree-optimization/47663
19037         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
19038         call_stmt_time fields.
19039         (cgraph_edge_inlinable_p): Declare.
19040         (cgraph_edge_recursive_p): New inline function.
19041         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
19042         (cgraph_clone_edge): Copy it.
19043         * ipa-inline.c (cgraph_estimate_edge_time): New function.
19044         Account for call stmt time.
19045         (cgraph_estimate_time_after_inlining): Take edge argument.
19046         (cgraph_estimate_edge_growth): Account call stmt size.
19047         (cgraph_estimate_size_after_inlining): Take edge argument.
19048         (cgraph_mark_inline_edge): Adjust.
19049         (cgraph_check_inline_limits): Likewise.
19050         (cgraph_recursive_inlining_p): Remove.
19051         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
19052         (cgraph_decide_recursive_inlining): Take edge argument and
19053         adjust.
19054         (cgraph_decide_inlining_of_small_functions): Do not avoid
19055         diags for recursive inlining here.
19056         (cgraph_flatten): Adjust.
19057         (cgraph_decide_inlining_incrementally): Likewise.
19058         (estimate_function_body_sizes): Remove call cost handling.
19059         (compute_inline_parameters): Initialize caller edge call costs.
19060         (cgraph_estimate_edge_growth): New function.
19061         (cgraph_estimate_growth): Use it.
19062         (cgraph_edge_badness): Likewise.
19063         (cgraph_check_inline_limits): Take an edge argument.
19064         (cgraph_decide_inlining_of_small_functions): Adjust.
19065         (cgraph_decide_inlining): Likewise.
19066         * tree-inline.c (estimate_num_insns): Only account for call
19067         return value if it is used.
19068         (expand_call_inline): Avoid diagnostics on recursive inline
19069         functions here.
19070         * lto-cgraph.c (lto_output_edge): Output edge call costs.
19071         (input_edge): Input edge call costs.
19072
19073 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19074
19075         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
19076
19077 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
19078
19079         * doc/invoke.texi (Spec Files): Fix typo.
19080
19081 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
19082
19083         * profile.c (branch_prob): Move declaration of local variable.  Remove
19084         obsolete ??? comment.  Expand the location explicitly instead of using
19085         the LOCATION_FILE and LOCATION_LINE macros.
19086
19087 2011-04-06  Wei Guozhi  <carrot@google.com>
19088
19089         PR target/47855
19090         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
19091         (arm_cond_branch): Likewise.
19092         (arm_cond_branch_reversed): Likewise.
19093         (arm_jump): Likewise.
19094         (push_multi): Likewise.
19095         * config/arm/constraints.md (Py): New constraint.
19096
19097 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19098
19099         PR bootstrap/48471
19100         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
19101         Move these...
19102         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
19103         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
19104         #ifdef DBX_DEBUGGING_INFO.
19105
19106 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
19107
19108         PR bootstrap/48403
19109         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
19110         if old and new states differ.
19111
19112 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19113
19114         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
19115         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
19116         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
19117         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
19118         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
19119         mcfv4e): Use Alias.
19120         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
19121         ColdFire options to -mcpu= options.
19122
19123 2011-04-05  Jeff Law  <law@redhat.com>
19124
19125         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
19126         check if BB is a successor of LOOP->header and return
19127         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
19128
19129 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19130
19131         * cprop.c (struct reg_use): Remove.
19132         (reg_use_table): Make an array of RTX.
19133         (find_used_regs, constprop_register, local_cprop_pass,
19134         bypass_block): Simplify users of reg_use_table.
19135         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
19136         on one of the uses found by find_used_regs.
19137
19138 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19139
19140         PR bootstrap/48469
19141         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
19142         declaration.
19143
19144 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19145
19146         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
19147         as an rtx.
19148         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
19149
19150 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19151
19152         PR middle-end/48441
19153         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
19154
19155 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19156
19157         * combine.c: Include obstack.h.
19158         (struct insn_link): Define.
19159         (uid_log_links): Adjust type.
19160         (FOR_EACH_LOG_LINK): New macro.
19161         (insn_link_obstack): Declare.
19162         (alloc_insn_link): Define.
19163         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
19164         type of link variables.
19165         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
19166         (try_combine, record_promoted_values, distribute_notes): Likewise.
19167         (distribute_links): Likewise.  Tweak prototype.
19168         (clear_log_links): Delete.
19169         (adjust_for_new_dest): Call alloc_insn_link.
19170         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
19171
19172 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19173
19174         * gcse.c (modify_mem_list): Convert to an array of VECs.
19175         (canon_modify_mem_list, compute_transp): Tweak formatting.
19176         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
19177         (load_killed_in_block_p): Likewise.
19178         (record_last_mem_set_info): Likewise.
19179         (clear_modify_mem_tables): Likewise.
19180
19181 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19182
19183         PR middle-end/48461
19184         * function.c (emit_use_return_register_into_block): Only define if
19185         HAVE_return.
19186
19187 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
19188
19189         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
19190
19191 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19192
19193         * config/rx/rx-opts.h: New.
19194         * config/rx/rx.c (rx_cpu_type): Remove.
19195         (rx_handle_option): Don't assert that global structures are in
19196         use.  Access variables via opts pointer.  Defer most handling of
19197         OPT_mint_register_.  Use error_at.
19198         (rx_option_override): Handle deferred OPT_mint_register_ here.
19199         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
19200         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
19201         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
19202         (rx_cpu_types): New Enum and EnumValue entries.
19203         (mint-register=): Use Defer and use Var accordingly.
19204
19205 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19206
19207         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
19208         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
19209         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
19210         Move these...
19211         (debug_free_queue, debug_nesting, symbol_queue_index):
19212         ...and these...
19213         * dbxout.c: ...to here.  Make static.
19214
19215 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19216
19217         * gcse.c (modify_pair): Define.  Define a VEC of it.
19218         (canon_modify_mem_list): Convert to an array of VECs.
19219         (free_insn_expr_list_list): Delete.
19220         (clear_modify_mem_tables): Call VEC_free instead.
19221         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
19222         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
19223         (canon_list_insert, compute_transp): Likewise.
19224
19225 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19226
19227         PR target/43920
19228         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
19229         for size.
19230
19231 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19232
19233         PR target/43920
19234         * function.c (emit_use_return_register_into_block): New function.
19235         (thread_prologue_and_epilogue_insns): Use
19236         emit_use_return_register_into_block.
19237
19238 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19239
19240         PR target/43920
19241         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
19242         insn.
19243
19244 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19245
19246         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
19247
19248 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
19249
19250         * config/arm/arm.md (define_constants for unspec): Replace with
19251         define_c_enum.
19252         (define_constants for unspecv): Replace with define_c_enum.
19253         * config/arm/neon.md (define_constants for unspec): Replace with
19254         define_c_enum.
19255
19256 2011-04-04  Richard Henderson  <rth@redhat.com>
19257
19258         PR bootstrap/48400
19259         * dwarf2out.c (output_line_info): Always emit line info from
19260         at least one section.
19261         (dwarf2out_init): Create text_section_line_info here ...
19262         (set_cur_line_info_table): ... not here.
19263
19264 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
19265
19266         PR target/48380
19267         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
19268         not called.
19269
19270         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
19271
19272 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
19273
19274         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
19275         (expr_equiv_p): Remove.
19276         (insert_set_in_table): Look at <dest, src> pair instead of expr.
19277         (hash_scan_set): Update call to insert_set_in_table.
19278         (dump_hash_table): Dump <dest, src> pair.
19279         (lookup_set): Simplify.  Lookup <dest, src> pair.
19280         (compute_transp): Remove, fold heavily simplified code into...
19281         (compute_local_properties): ...here.  Expect COMP and TRANSP
19282         unconditionally.
19283         (find_avail_set): Take set directly from struct expr.
19284         (find_bypass-set): Likewise.
19285         (bypass_block): Likewise.
19286         (cprop_insn): Likewise.  Remove redundant INSN_P test.
19287
19288         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
19289         checks on form of COND from find_implicit_sets to here.
19290         (find_implicit_sets): Cleanup control flow. Split critical edges
19291         if it exposes implicit sets.  Allocate/resize implicit_sets as
19292         necessary.
19293         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
19294         changed something.  Run df_analyze after find_implicit_sets if any
19295         edges were split.  Do not allocate implicit_sets here.
19296
19297         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
19298         (gcse_obstack): Renamed to cprop_obstack.
19299         (GNEW, GNEWVEC, GNEWVAR): Remove.
19300         (gmalloc): Remove.
19301         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
19302         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
19303         (gcse_alloc): Likewise, and rename to cprop_alloc.
19304         (alloc_gcse_men, free_gcse_mem): Remove.
19305         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
19306         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
19307         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
19308
19309         * cprop.c (oprs_not_set_p): Remove.
19310         (mark_set, mark_clobber): Remove.
19311         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
19312         (reg_not_set_p): New function.
19313         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
19314         (cprop_insn): Likewise.
19315         (cprop_jump): Use FOR_EACH_EDGE.
19316
19317 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
19318
19319         PR bootstrap/48403
19320         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
19321         (rank_for_schedule): Use scheduled_insns vector instead of
19322         last_scheduled_insn.
19323         (ok_for_early_queue_removal): Likewise.
19324         (queue_to_ready): Search forward in nonscheduled_insns_begin if
19325         we have a dbg_cnt.
19326         (choose_ready): Likewise.
19327         (commit_schedule): Use VEC_iterate.
19328         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
19329         a dbg_cnt, use it and ensure the first insn is in the ready list.
19330         (haifa_sched_init): Allocate scheduled_insns.
19331         (sched_extend_ready_list): Don't allocate it; reserve space.
19332         (haifa_sched_finish): Free it.
19333
19334 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19335
19336         * optc-gen.awk: Always remove type from Variable entry before
19337         recording in var_seen.
19338
19339 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
19340
19341         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
19342         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
19343         call to tidy_fallthru_edges.
19344
19345 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19346
19347         * doc/options.texi (ToLower): Document.
19348         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
19349         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
19350         * opts.h (cl_option): Add cl_tolower field.
19351         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
19352         arguments with lowercase strings.
19353         * config/rx/rx.opt (mcpu=): Add ToLower.
19354         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
19355         argument.
19356
19357 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19358
19359         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
19360
19361 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19362
19363         * config/vax/vax.c: Include reload.h.
19364
19365 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
19366
19367         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
19368         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19369         (sparc_preferred_reload_class): New function.
19370
19371 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
19372
19373         PR debug/48401
19374         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19375         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
19376
19377 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
19378
19379         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
19380         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
19381
19382 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
19383
19384         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
19385         (ASM_OUTPUT_ALIGNED_BSS): Define.
19386
19387 2011-04-03  Michael Matz  <matz@suse.de>
19388
19389         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
19390         and next_slot members.
19391         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
19392         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
19393         (lto_streamer_cache_append): Declare.
19394         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
19395         unsigned index, remove offset parameter, ensure that we append
19396         or update existing entries.
19397         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
19398         parameter, update next_slot for append.
19399         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
19400         parameter.
19401         (lto_streamer_cache_insert_at): Likewise.
19402         (lto_streamer_cache_append): New function.
19403         (lto_streamer_cache_lookup): Use unsigned index.
19404         (lto_streamer_cache_get): Likewise.
19405         (lto_record_common_node): Don't test tree_node_can_be_shared.
19406         (preload_common_node): Adjust call to lto_streamer_cache_insert.
19407         (lto_streamer_cache_delete): Don't free offsets member.
19408         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
19409         (lto_output_string_with_length): Use lto_output_data_stream.
19410         (lto_output_tree_header): Remove ix parameter, don't write it.
19411         (lto_output_builtin_tree): Likewise.
19412         (lto_write_tree): Adjust callers to above, don't track and write
19413         offset, write unsigned index.
19414         (output_unreferenced_globals): Don't emit all global vars.
19415         (write_global_references): Use unsigned indices.
19416         (lto_output_decl_state_refs): Likewise.
19417         (write_symbol): Likewise.
19418         * lto-streamer-in.c (lto_input_chain): Move earlier.
19419         (input_function): Use unsigned index.
19420         (input_alias_pairs): Don't read and then ignore all global vars.
19421         (lto_materialize_tree): Remove ix_p parameter, don't read index,
19422         don't pass it back, use lto_streamer_cache_append.
19423         (lto_register_var_decl_in_symtab): Use unsigned index.
19424         (lto_register_function_decl_in_symtab): Likewise.
19425         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
19426         index.
19427         (lto_get_builtin_tree): Don't read index, use
19428         lto_streamer_cache_append.
19429         (lto_read_tree): Adjust call to lto_materialize_tree.
19430
19431         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
19432         don't use function calls in arguments to MIN.
19433
19434         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
19435         twice.
19436
19437         * gimple.c (gimple_type_leader_entry): Mark deletable.
19438
19439 2011-04-03  Alan Modra  <amodra@gmail.com>
19440
19441         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
19442
19443 2011-04-03  Michael Matz  <matz@suse.de>
19444
19445         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
19446         an integer.
19447         * tree.h (tree_decl_non_common.vindex): Adjust comment.
19448
19449 2011-04-03  Michael Matz  <matz@suse.de>
19450
19451         * cgraphbuild.c (record_reference): Canonicalize constructor values.
19452         * gimple-fold.c (canonicalize_constructor_val): Accept being called
19453         without function context.
19454         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
19455         current_function_decl and cfun.
19456
19457 2011-04-03  Michael Matz  <matz@suse.de>
19458
19459         * tree.c (decl_init_priority_insert): Don't create entry for
19460         default priority.
19461         (decl_fini_priority_insert): Ditto.
19462         (fields_compatible_p, find_compatible_field): Remove.
19463         * tree.h (fields_compatible_p, find_compatible_field): Remove.
19464         * gimple.c (gimple_compare_field_offset): Adjust block comment.
19465
19466 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
19467
19468         * combine.c (try_combine): Remove useless local variable.
19469
19470 2011-04-03  Richard Guenther  <rguenther@suse.de>
19471             Ira Rosen  <ira.rosen@linaro.org>
19472
19473         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
19474         non-variable offsets and compare the remaining bases of the two
19475         accesses instead of looking for exact same data-ref.
19476
19477 2011-04-02  Kai Tietz  <ktietz@redhat.com>
19478
19479         PR target/48416
19480         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
19481
19482         * i386.c (ix86_is_msabi_thiscall): New helper function.
19483         (ix86_is_type_thiscall): New helper function.
19484         (ix86_comp_type_attributes): Handle thiscall for method-functions
19485         special.
19486         (init_cumulative_args): Likewise.
19487         (find_drap_reg): Likewise.
19488         (ix86_static_chain): Likewise.
19489         (x86_this_parameter): Likewise.
19490         (x86_output_mi_thunk): Likewise.
19491
19492 2011-04-01  Olivier Hainque  <hainque@adacore.com>
19493             Nicolas Setton  <setton@adacore.com>
19494             Eric Botcazou  <ebotcazou@adacore.com>
19495
19496         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
19497         (add_gnat_descriptive_type_attribute): New function.
19498         (gen_array_type_die): Call it.
19499         (gen_enumeration_type_die): Likewise.
19500         (gen_struct_or_union_type_die): Likewise.
19501         (modified_type_die): Likewise.
19502         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
19503         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
19504         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
19505
19506 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19507
19508         PR bootstrap/48148
19509         * dwarf2out.c (resolve_addr): Don't call force_decl_die
19510         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
19511
19512         Revert:
19513         2011-03-17  Richard Guenther  <rguenther@suse.de>
19514
19515         PR bootstrap/48148
19516         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19517         origin for decls in other ltrans units.
19518         (input_varpool_node): Likewise.
19519
19520 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19521
19522         PR middle-end/48335
19523         * expr.c (expand_assignment): Handle all possibilities
19524         if TO_RTX is CONCAT.
19525         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19526         (store_split_bit_field): If SUBREG_REG (op0) or
19527         op0 itself has smaller mode than word, return it
19528         for offset 0 and const0_rtx for out-of-bounds stores.
19529         If word is const0_rtx, skip it.
19530
19531 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
19532
19533         * config/h8300/h8300.c (print_operand_address): Rename to...
19534         (h8300_print_operand_address): ...this. Make static. Adjust comments.
19535         Call h8300_print_operand and h8300_print_operand_address instead of
19536         print_operand and print_operand_address. Declare.
19537         (print_operand): Renake to...
19538         (h8300_print_operand): ...this. Make static. Adjust comments.
19539         Call h8300_print_operand instead of print_operand. Declare.
19540         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
19541         (h8300_register_move_cost): Likewise.
19542         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
19543         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
19544         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
19545         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
19546         * config/h8300/h8300-protos.h (print_operand): Delete.
19547         (print_operand_address): Delete.
19548
19549 2011-04-01  Richard Henderson  <rth@redhat.com>
19550
19551         PR 48400
19552         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
19553         in strict mode before dwarf4.  Re-order tests to early out
19554         before switching sections.
19555
19556 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
19557
19558         * config/h8300/constraints.md: New file.
19559         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
19560         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
19561         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
19562         * config/h8300/predicates.md (bit_operand): Likewise.
19563         (incdec_operand): Use satisfies_constraint_M and
19564         satisfies_constraint_O.  Don't use C code block.
19565         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
19566         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
19567         (compute_mov_length): Use satisfies_constraint_G.
19568         (fix_bit_operand): Use satisfies_constraint_U.
19569         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
19570         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
19571         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
19572         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
19573         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
19574         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
19575         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19576         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
19577         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
19578         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
19579         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
19580         (EXTRA_MEMORY_CONSTRAINT): Delete.
19581
19582 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
19583             Michael Meissner  <meissner@linux.vnet.ibm.com>
19584
19585         PR target/48262
19586         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
19587         operands, as per the specifications.
19588
19589         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
19590         (vec_extract_evenv4sf): Ditto.
19591         (vec_extract_evenv8hi): Ditto.
19592         (vec_extract_evenv16qi): Ditto.
19593         (vec_extract_oddv4si): Ditto.
19594
19595 2011-03-31  Mark Wielaard  <mjw@redhat.com>
19596
19597         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
19598         high_pc attribute if the CU has no associated code. Only output
19599         DW_AT_entry_pc for CU if not generating strict dwarf and
19600         dwarf_version < 4.
19601
19602 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
19603
19604         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
19605         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
19606         out of ...
19607         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
19608         * final.c (final_start_function): Call the new function rather
19609         than using a NULL argument for dwarf2out_frame_debug.
19610
19611         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
19612         that contains the prologue.
19613
19614         * haifa-sched.c (queue_insn): New arg REASON.  All callers
19615         changed.  Print it in debugging output.
19616
19617         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
19618
19619         * sched-ebb.c (begin_schedule_ready): Remove second argument.
19620         Split most of the code into...
19621         (begin_move_insn): ... here.  New function.
19622         (ebb_sched_info): Add a pointer to it.
19623         * haifa-sched.c (scheduled_insns): New static variable.
19624         (sched_extend_ready_list): Allocate it.
19625         (schedule_block): Use it to record the order of scheduled insns.
19626         Perform RTL changes to move insns only after all scheduling
19627         decisions have been made.
19628         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
19629         begin_move_insn field.
19630         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
19631         * sched-int.h (struct haifa_sched_info): Remove second argument
19632         from begin_schedule_ready hook.  Add new member begin_move_insn.
19633         * sched-rgn.c (begin_schedule_ready): Remove second argument.
19634         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
19635
19636         * haifa-sched.c (prune_ready_list): New function, broken out of
19637         schedule_block.
19638         (schedule_block): Use it.
19639
19640 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19641
19642         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
19643
19644 2011-04-01  Kai Tietz  <ktietz@redhat.com>
19645
19646         * config.gcc (*-*-mingw*): Allow as option the
19647         posix threading model.
19648         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
19649         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
19650         definition.
19651         (CPP_SPEC): Add pthread/no-pthread handling.
19652         (LIB_SPEC): Likewise.
19653         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
19654         (LIB_SPEC): Likewise.
19655         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
19656         flag to pass -pthread option for shared libgcc build.
19657         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
19658         for shared libgcc build.
19659         * config/i386/t-mingw-pthread: New file.
19660         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
19661         New define to enable use of library pthread by default.
19662         * config/i386/mingw.opt (pthread): New driver option.
19663         (no-pthread): New driver option.
19664         * config/i386/cygming.opt: Make sure trailing empty line is retained.
19665         * config/i386/mingw-w64.opt: Likewise.
19666
19667 2011-04-01  Gary Funck  <gary@intrepid.com>
19668
19669         * c-decl.c (grokdeclarator): Fix formatting.
19670
19671 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19672
19673         * expr.c (emit_block_move_via_movmem): Use n_generator_args
19674         instead of n_operands.
19675         (set_storage_via_setmem): Likewise.
19676         * optabs.c (maybe_gen_insn): Likewise.
19677         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
19678         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
19679         (mips_expand_builtin_direct): Likewise.
19680         * config/spu/spu.c (expand_builtin_args): Likewise.
19681
19682 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19683
19684         * recog.h (insn_data_d): Add n_generator_args.
19685         * genoutput.c (data): Likewise.
19686         (output_insn_data): Print it.
19687         (max_opno, num_dups): Delete.
19688         (scan_operands): Just fill in "d->operand[...]".
19689         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
19690
19691 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19692
19693         * gensupport.h (pattern_stats): New structure.
19694         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
19695         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
19696         (max_operand_1, max_operand_vec): Delete.
19697         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
19698
19699 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
19700
19701         * emit-rtl.c (emit_pattern_after_setloc): New function.
19702         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
19703         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
19704         (emit_pattern_after): New function.
19705         (emit_insn_after, emit_jump_insn_after): Call it.
19706         (emit_call_insn_after, emit_debug_insn_after): Likewise.
19707         (emit_pattern_before_setloc): New function.
19708         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
19709         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19710         Likewise.
19711         (emit_pattern_before): New function.
19712         (emit_insn_before, emit_jump_insn_before): Call it.
19713         (emit_call_insn_before, emit_debug_insn_before): Likewise.
19714
19715 2011-03-31  Richard Henderson  <rth@redhat.com>
19716
19717         * dwarf2out.c (dw_separate_line_info_ref): Remove.
19718         (dw_separate_line_info_entry): Remove.
19719         (enum dw_line_info_opcode): New.
19720         (dw_line_info_entry): Use it.
19721         (dw_line_info_table, dw_line_info_table_p): New.
19722         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
19723         (line_info_table, line_info_label_num): Remove.
19724         (line_info_table_in_use): Remove.
19725         (separate_line_info_table): Remove.
19726         (separate_line_info_table_allocated): Remove.
19727         (separate_line_info_table_in_use): Remove.
19728         (LINE_INFO_TABLE_INCREMENT): Remove.
19729         (line_info_label_num): New.
19730         (cur_line_info_table): New.
19731         (text_section_line_info, cold_text_section_line_info): New.
19732         (separate_line_info): New.
19733         (SEPARATE_LINE_CODE_LABEL): Remove.
19734         (print_dwarf_line_table): Remove.
19735         (debug_dwarf): Don't dump it.
19736         (output_one_line_info_table): New.
19737         (output_line_info): Use it.
19738         (new_line_info_table): New.
19739         (set_cur_line_info_table): New.
19740         (dwarf2out_switch_text_section): Use it.
19741         (dwarf2out_begin_function): Likewise.
19742         (push_dw_line_info_entry): New.
19743         (dwarf2out_source_line): Rewrite for new line info tables.
19744         (dwarf2out_init): Remove dead initailizations.
19745
19746 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19747
19748         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
19749         various flags.
19750         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
19751         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
19752         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
19753         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
19754         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
19755         * opt-functions.awk (flag_init, switch_bit_fields): New.
19756         (switch_flags): Don't handle flags moved to bit-fields.  Don't
19757         generate CL_MISSING_OK or CL_SAVE.
19758         * optc-gen.awk: Update to generate bit-field output as well as
19759         flags field.
19760         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
19761         bit-field instead of CL_REJECT_DRIVER flag.
19762         * opts-common.c (generate_canonical_option,
19763         decode_cmdline_option): Use bit-fields instead of CL_* flags.
19764         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
19765         instead of CL_REJECT_NEGATIVE flag.
19766         * toplev.c (print_switch_values): Use cl_report bit-field instead
19767         of CL_REPORT flag.
19768
19769 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19770
19771         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
19772         a zero minimum index only if it is redundant.
19773
19774 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
19775
19776         PR rtl-optimization/48381
19777         * ira-color.c (assign_hard_reg): Use hard reg set intersection
19778         instead of ira_class_hard_reg_index for calculating conflicting
19779         hard registers.
19780
19781 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
19782
19783         * cprop.c: Clean up hash table building.
19784         (reg_avail_info): Remove.
19785         (oprs_available_p): Remove.
19786         (record_last_reg_set_info): Remove.
19787         (record_last_set_info): Remove.
19788         (reg_available_p): New function.
19789         (gcse_constant_p): Do not treat unfolded conditions as constants.
19790         (make_set_regs_unavailable): New function.
19791         (hash_scan_set): Simplify with new reg_available_p.
19792         (compute_hash_table_work): Traverse insns stream only once.
19793         Do not compute reg_avail_info. Traverse insns in reverse order.
19794         Record implicit sets after recording explicit sets from the block.
19795
19796 2011-03-31  Michael Matz  <matz@suse.de>
19797
19798         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
19799
19800 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
19801
19802         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
19803         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
19804         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19805         (h8300_mode_dependent_address_p): New function.
19806         (h8300_get_index): Make static.
19807
19808 2011-03-31  Jeff Law  <law@redhat.com>
19809
19810         * reload1.c (elimination_effects): Fix typo in recent change.
19811
19812         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
19813         typo potentially leading to null pointer dereference.
19814
19815         * caller-save.c (new_saved_hard_reg): Eliminate return value.
19816         (setup_save_areas): Corresponding changes to avoid useless
19817         assignments.
19818
19819         * jump.c (reversed_comparison_code_parts): Avoid successive return
19820         statements when REVERSE_CONDITION is defined.
19821
19822         * expr.c (expand_assignment): Avoid useless assignments.
19823         (expand_expr_real_1): Likewise.
19824         (expand_expr_real_2): Avoid useless statements.
19825
19826         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
19827
19828         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19829
19830         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
19831         statements.
19832
19833         * stmt.c (expand_expr_stmt): Avoid useless assignment.
19834
19835 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19836
19837         PR target/47109
19838         * doc/tm.texi.in (TARGET_VERSION): Remove.
19839         * doc/tm.texi: Regenerate.
19840         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
19841         * collect2.c (main): Don't use TARGET_VERSION.
19842         * mips-tdump.c (main): Don't use TARGET_VERSION.
19843         * mips-tfile.c (main): Don't use TARGET_VERSION.
19844         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
19845         * config/rs6000/vxworksae.h: Remove.
19846         * config/alpha/alpha.h (TARGET_VERSION): Remove.
19847         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
19848         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
19849         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
19850         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19851         * config/arm/arm.h (TARGET_VERSION): Remove.
19852         * config/arm/coff.h (TARGET_VERSION): Remove.
19853         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
19854         * config/arm/elf.h (TARGET_VERSION): Remove.
19855         * config/arm/freebsd.h (TARGET_VERSION): Remove.
19856         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
19857         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
19858         * config/arm/pe.h (TARGET_VERSION): Remove.
19859         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
19860         * config/arm/semi.h (TARGET_VERSION): Remove.
19861         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
19862         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
19863         * config/arm/vxworks.h (TARGET_VERSION): Remove.
19864         * config/avr/avr.h (TARGET_VERSION): Remove.
19865         * config/bfin/bfin.h (TARGET_VERSION): Remove.
19866         * config/fr30/fr30.h (TARGET_VERSION): Remove.
19867         * config/frv/frv.h (TARGET_VERSION): Remove.
19868         * config/h8300/h8300.h (TARGET_VERSION): Remove.
19869         * config/i386/cygwin.h (TARGET_VERSION): Remove.
19870         * config/i386/darwin.h (TARGET_VERSION): Remove.
19871         * config/i386/darwin64.h (TARGET_VERSION): Remove.
19872         * config/i386/djgpp.h (TARGET_VERSION): Remove.
19873         * config/i386/freebsd.h (TARGET_VERSION): Remove.
19874         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
19875         * config/i386/gnu.h (TARGET_VERSION): Remove.
19876         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
19877         * config/i386/i386elf.h (TARGET_VERSION): Remove.
19878         * config/i386/linux.h (TARGET_VERSION): Remove.
19879         * config/i386/linux64.h (TARGET_VERSION): Remove.
19880         * config/i386/lynx.h (TARGET_VERSION): Remove.
19881         * config/i386/mingw32.h (TARGET_VERSION): Remove.
19882         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
19883         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
19884         * config/i386/netware.h (TARGET_VERSION): Remove.
19885         * config/i386/nto.h (TARGET_VERSION): Remove.
19886         * config/i386/openbsd.h (TARGET_VERSION): Remove.
19887         * config/i386/vxworks.h (TARGET_VERSION): Remove.
19888         * config/ia64/elf.h (TARGET_VERSION): Remove.
19889         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
19890         * config/ia64/hpux.h (TARGET_VERSION): Remove.
19891         * config/ia64/linux.h (TARGET_VERSION): Remove.
19892         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19893         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
19894         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19895         * config/lm32/lm32.h (TARGET_VERSION): Remove.
19896         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
19897         * config/m32c/m32c.h (TARGET_VERSION): Remove.
19898         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
19899         * config/m32r/m32r.h (TARGET_VERSION): Remove.
19900         * config/m68k/linux.h (TARGET_VERSION): Remove.
19901         * config/m68k/m68k.h (TARGET_VERSION): Remove.
19902         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
19903         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
19904         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
19905         * config/mep/mep.h (TARGET_VERSION): Remove.
19906         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
19907         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19908         * config/mips/iris6.h (MACHINE_TYPE): Remove.
19909         * config/mips/linux.h (TARGET_VERSION): Remove.
19910         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
19911         * config/mips/vxworks.h (TARGET_VERSION): Remove.
19912         * config/mmix/mmix.h (TARGET_VERSION): Remove.
19913         * config/mn10300/linux.h (TARGET_VERSION): Remove.
19914         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
19915         * config/pa/pa.h (TARGET_VERSION): Remove.
19916         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
19917         * config/picochip/picochip.h (TARGET_VERSION): Remove.
19918         * config/rs6000/aix.h (TARGET_VERSION): Remove.
19919         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
19920         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
19921         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
19922         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
19923         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
19924         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
19925         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
19926         * config/rs6000/linux.h (TARGET_VERSION): Remove.
19927         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
19928         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
19929         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
19930         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
19931         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
19932         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
19933         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
19934         * config/s390/linux.h (TARGET_VERSION): Remove.
19935         * config/s390/s390.h (TARGET_VERSION): Remove.
19936         * config/s390/tpf.h (TARGET_VERSION): Remove.
19937         * config/score/score.h (TARGET_VERSION): Remove.
19938         * config/sh/linux.h (TARGET_VERSION): Remove.
19939         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
19940         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
19941         * config/sh/sh.h (TARGET_VERSION): Remove.
19942         * config/sh/sh64.h (TARGET_VERSION): Remove.
19943         * config/sh/superh.h (TARGET_VERSION): Remove.
19944         * config/sh/vxworks.h (TARGET_VERSION): Remove.
19945         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
19946         * config/sparc/linux.h (TARGET_VERSION): Remove.
19947         * config/sparc/linux64.h (TARGET_VERSION): Remove.
19948         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
19949         TARGET_NAME32, TARGET_NAME): Remove.
19950         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
19951         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
19952         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
19953         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
19954         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
19955         * config/spu/spu.h (TARGET_VERSION): Remove.
19956         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
19957         * config/v850/v850.h (TARGET_VERSION): Remove.
19958         * config/vax/linux.h (TARGET_VERSION): Remove.
19959         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
19960         * config/xtensa/elf.h (TARGET_VERSION): Remove.
19961         * config/xtensa/linux.h (TARGET_VERSION): Remove.
19962
19963 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19964
19965         PR target/48142
19966         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
19967         frame-related from frame-unrelated adjustments to the stack pointer.
19968
19969 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
19970
19971         * common.opt (fdebug-types-section): Move earlier.
19972         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
19973
19974 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
19975
19976         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
19977         var.
19978
19979 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
19980
19981         * tree.h (CASE_CHAIN): Define.
19982         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
19983         (gimple_redirect_edge_and_branch): Likewise.
19984
19985 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
19986
19987         PR middle-end/48367
19988         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
19989         calculation.
19990
19991 2011-03-30  Jeff Law  <law@redhat.com>
19992
19993         * PR bootstrap/48371
19994         * reload1.c (reload): Fix botch in last change.
19995
19996         * reload.h (struct reload): Fix typo introduced in last change.
19997
19998 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19999
20000         * config/arm/arm.opt (mhard-float, msoft-float): Mark
20001         Undocumented.  Remove help text.
20002         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
20003         -mhard-float.
20004
20005 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20006
20007         * doc/options.texi (NegativeAlias): Document.
20008         (Alias): Mention NegativeAlias.
20009         * opt-functions.awk: Handle NegativeAlias.
20010         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
20011         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
20012         * opts.h (CL_NEGATIVE_ALIAS): Define.
20013         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
20014         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
20015         OPT_mspe_.
20016         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
20017         Alias entries.
20018         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
20019         mno-spe and mno-isel instead of mspe=no and -misel=no.
20020
20021 2011-03-29  Mark Wielaard  <mjw@redhat.com>
20022
20023         * common.opt (fdebug-types-section): New flag.
20024         * doc/invoke.texi: Document new -fno-debug-types-section flag.
20025         * dwarf2out.c (use_debug_types): New define.
20026         (struct die_struct): Mark die_id with GTY desc use_debug_types.
20027         (print_die): Guard output of type unit signatures using
20028         use_debug_types.
20029         (build_abbrev_table): Replace assert of dwarf_version >= 4
20030         with assert on use_debug_types.
20031         (size_of_die): Likewise.
20032         (unmark_dies): Likewise.
20033         (value_format): Decide AT_ref_external form on use_debug_types.
20034         (output_die): Replace dwarf_version version check guard with
20035         use_debug_types where appropriate.
20036         (modified_type_die): Likewise.
20037         (gen_reference_type_die): Likewise.
20038         (dwarf2out_start_source_file): Likewise.
20039         (dwarf2out_end_source_file): Likewise.
20040         (prune_unused_types_walk_attribs): Likewise.
20041         (dwarf2out_finish): Likewise.
20042
20043 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
20044
20045         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
20046
20047 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20048
20049         PR rtl-optimization/48332
20050         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
20051         mode of input operand N and modeN to its actual mode.
20052
20053 2011-03-30  Jeff Law  <law@redhat.com>
20054
20055         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
20056         define accessor macro.
20057         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
20058         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
20059         (reg_equiv_init): Likewise.
20060         (reg_equivs_size): New variable.
20061         (reg_equiv_init_size): Remove.
20062         (allocate_initial_values): Move prototype to here from....
20063         * integrate.h (allocate_initial_values): Remove prototype.
20064         * integrate.c: Include reload.h.
20065         (allocate_initial_values): Corresponding changes.
20066         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
20067         (fix_reg_equiv_init, no_equiv): Corresponding changes.
20068         (update_equiv_regs): Corresponding changes.
20069         (ira): Corresponding changes.
20070         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
20071         (push_secondary_reload): Corresponding changes.
20072         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
20073         (make_memloc, find_reloads_address): Corresponding changes.
20074         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
20075         (find_reloads_address_1): Corresponding changes.
20076         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
20077         (refers_to_regno_for_reload_p): Corresponding changes.
20078         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
20079         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
20080         * reload1.c: Include ggc.h.
20081         (grow_reg_equivs): New function.
20082         (replace_pseudos_in, reload): Corresponding changes.
20083         (calculate_needs_all_insns, alter_regs): Corresponding changes.
20084         (eliminate_regs_1, elimination_effects): Corresponding changes.
20085         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
20086         (delete_output_reload): Likewise.
20087         * caller-save.c (mark_referenced_regs): Corresponding changes.
20088         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
20089         * frv/predicates.md (frv_load_operand): Corresponding changes.
20090         * microblaze/microblaze.c (double_memory_operand): Corresponding
20091         changes.
20092         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
20093         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
20094         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
20095         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
20096         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
20097         changes.
20098         * pa/pa.c (emit_move_sequence): Corresponding changes.
20099         * vax/vax.c (nonindexed_address_p): Corresponding changes.
20100
20101 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20102
20103         PR target/47551
20104         * config/arm/arm.c (coproc_secondary_reload_class): Handle
20105         structure modes.  Don't check neon_vector_mem_operand for
20106         vector or structure modes.
20107
20108 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20109             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20110
20111         PR target/43590
20112         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
20113         operand 1 and reshuffle the operands to match.
20114         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
20115
20116 2011-03-30  Christian Schüler  <cschueler@gmx.de>
20117
20118         PR driver/48208
20119         * config/c.opt (F): Added 'Driver' to -F option.
20120
20121         PR driver/48260
20122         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
20123           handler function.
20124         * config/darwin.opt: Added '-arch' option.
20125
20126 2011-03-30  Nick Clifton  <nickc@redhat.com>
20127
20128         * config/rx/rx.md: Add peepholes and patterns to combine
20129         extending loads and simple arithmetic instructions.
20130         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
20131         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
20132         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
20133         modes to use pre-decrement and post-increment addressing.
20134         (rx_is_restricted_memory_address): Add range checking of REG+INT
20135         addresses.
20136         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
20137         (rx_memory_move_cost): Adjust cost of stores.
20138         (rx_adjust_insn_length): New function.
20139
20140 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
20141
20142         PR c/48305
20143         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20144         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
20145         matching arg00/arg01 types.
20146
20147 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
20148
20149         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
20150         last_location to UNKNOWN_LOCATION.
20151
20152 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
20153
20154         PR target/48349
20155         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
20156         FLOAT_SSE_REGS.
20157
20158 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20159             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20160
20161         PR bootstrap/48337
20162         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
20163         Init(PROCESSOR_V7).
20164         (sparc_cpu): Likewise.
20165         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
20166         PROCESSOR_V7.
20167
20168 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20169
20170         PR target/48336
20171         PR middle-end/48342
20172         PR rtl-optimization/48345
20173         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
20174         hard regs for given mode from profitable regs when doing secondary
20175         allocation.
20176
20177 2011-03-29  Jeff Law  <law@redhat.com>
20178
20179         PR bootstrap/48327
20180         * tree-ssa-threadupdate.c (struct redirection_data): Remove
20181         do_not_duplicate field.
20182         (lookup_redirection_data): Corresponding changes.
20183         (create_duplicates): Always create a template block.
20184         (redirect_edges): Remove code which reused the original block
20185         when it was going to become unreachable code.
20186         (thread_block): Don't set do_not_duplicate field.
20187
20188 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
20189
20190         * lto-opts.c (register_user_option_p, lto_register_user_option):
20191         Make type argument unsigned.
20192         * lto-streamer.h (lto_register_user_option): Make type argument
20193         unsigned.
20194         * opth-gen.awk: Make CL_* macros unsigned.
20195         * opts-common.c (find_opt): Make lang_mask argument unsigned.
20196         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
20197         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
20198         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
20199         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
20200         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
20201         (find_opt): Make lang_mask argument unsigned.
20202
20203 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20204
20205         PR rtl-optimization/48331
20206         PR rtl-optimization/48334
20207         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
20208         for any used algorithm.
20209
20210 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20211
20212         * ira-conflicts.c (build_object_conflicts): Add unused attribute
20213         to parent_max.
20214
20215 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
20216
20217         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
20218         (alpha_option_override): Don't set alpha_sr_alias_set.
20219         (emit_frame_store_1): Use gen_frame_mem rather than calling
20220         set_mem_alias_set.
20221         (alpha_expand_epilogue): Ditto.
20222
20223 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
20224
20225         PR tree-optimization/48290
20226         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
20227         vectorization, check that relevant phis in the basic block after
20228         the inner loop are really inner loop's exit phis.
20229
20230 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
20231
20232         PR debug/48190
20233         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
20234         (cached_dw_loc_list_def): New structure.
20235         (cached_dw_loc_list): New typedef.
20236         (cached_dw_loc_list_table): New variable.
20237         (cached_dw_loc_list_table_hash): New function.
20238         (cached_dw_loc_list_table_eq): Likewise.
20239         (add_location_or_const_value_attribute): Take a bool cache_p.
20240         Cache the list when the parameter is true.
20241         (gen_formal_parameter_die): Update caller.
20242         (gen_variable_die): Likewise.
20243         (dwarf2out_finish): Likewise.
20244         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
20245         while generating debug info for the decl.
20246         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
20247         (dwarf2out_init): Initialize cached_dw_loc_list_table.
20248         (resolve_addr): Cache the result of resolving a chain of
20249         location lists.
20250
20251 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
20252
20253         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
20254         conflict object hard regset nodes have intersecting hard reg sets.
20255
20256         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
20257         after regstat_init_n_sets_and_refs.
20258
20259         * ira.c: Add more comments at the top.
20260         (setup_stack_reg_pressure_class, setup_pressure_classes):
20261         Add comments how we compute the register pressure classes.
20262         (setup_allocno_and_important_classes): Add more comments.
20263         (setup_class_translate_array, reorder_important_classes)
20264         (setup_reg_class_relations): Add comments.
20265
20266         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
20267         start of the file.
20268
20269         * ira-color.c: Add 2011 to the Copyright line.
20270         (assign_hard_reg):  Add more comments.
20271         (improve_allocation): Ditto.
20272
20273         * ira-costs.c: Add 2011 to the Copyright line.
20274         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
20275         comments.
20276         (setup_regno_cost_classes_by_mode): Ditto.
20277
20278         Initial patches from ira-improv branch:
20279
20280         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20281
20282         * ira-build.c (ira_create_object): Remove initialization of
20283         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
20284         (ira_create_allocno): Remove initialization of
20285         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
20286         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
20287         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20288         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
20289         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
20290         Initialize ALLOCNO_ADD_DATA.
20291         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
20292         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
20293         ALLOCNO_REG.
20294         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
20295         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
20296
20297         * ira.c (ira_reallocate): Remove.
20298         (setup_pressure_classes): Call
20299         ira_init_register_move_cost_if_necessary.  Use
20300         ira_register_move_cost instead of ira_get_register_move_cost.
20301         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
20302         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
20303
20304         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
20305         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20306         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
20307         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
20308         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
20309         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
20310         Fix formatting.
20311         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
20312         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20313         (struct allocno_color_data): New.
20314         (allocno_color_data_t): New typedef.
20315         (allocno_color_data): New definition.
20316         (ALLOCNO_COLOR_DATA): New macro.
20317         (struct object_color_data): New.
20318         (object_color_data_t): New typedef.
20319         (object_color_data): New definition.
20320         (OBJECT_COLOR_DATA): New macro.
20321         (update_copy_costs, calculate_allocno_spill_cost): Call
20322         ira_init_register_move_cost_if_necessary.  Use
20323         ira_register_move_cost instead of ira_get_register_move_cost.
20324         (move_spill_restore, update_curr_costs): Ditto.
20325         (allocno_spill_priority): Make it inline.
20326         (color_pass): Allocate and free allocno_color_dat and object_color_data.
20327         (struct coalesce_data, coalesce_data_t): New.
20328         (allocno_coalesce_data): New definition.
20329         (ALLOCNO_COALESCE_DATA): New macro.
20330         (merge_allocnos, coalesced_allocno_conflict_p): Use
20331         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
20332         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
20333         (coalesce_allocnos): Ditto.
20334         (setup_coalesced_allocno_costs_and_nums): Ditto.
20335         (collect_spilled_coalesced_allocnos): Ditto.
20336         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
20337         (setup_slot_coalesced_allocno_live_ranges): Ditto.
20338         (coalesce_spill_slots): Ditto.
20339         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
20340         free allocno_coalesce_data.
20341
20342         * ira-conflicts.c: Fix formatting.
20343         (process_regs_for_copy): Call
20344         ira_init_register_move_cost_if_necessary.  Use
20345         ira_register_move_cost instead of ira_get_register_move_cost.
20346         (build_object_conflicts): Optimize.
20347
20348         * ira-costs.c (record_reg_classes): Optimize.  Call
20349         ira_init_register_move_cost_if_necessary.  Use
20350         ira_register_move_cost, ira_may_move_in_cost, and
20351         ira_may_move_out_cost instead of ira_get_register_move_cost and
20352         ira_get_may_move_cost.
20353         (record_address_regs): Ditto.
20354         (scan_one_insn): Optimize.
20355         (find_costs_and_classes): Optimize.
20356         (process_bb_node_for_hard_reg_moves): Call
20357         ira_init_register_move_cost_if_necessary.  Use
20358         ira_register_move_cost instead of ira_get_register_move_cost.
20359
20360         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
20361         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
20362         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
20363         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
20364         definitions.
20365         (ira_initiate_emit_data, ira_finish_emit_data)
20366         (create_new_allocno): New functions.
20367         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
20368         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
20369         Use ira_register_move_cost instead of ira_get_register_move_cost.
20370
20371         * ira-int.h: Fix some comments.
20372         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
20373         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20374         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
20375         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
20376         add_data.
20377         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
20378         bitfield after mode.  Make hard_regno a short int.  Make
20379         hard_regno short.  Remove first_coalesced_allocno and
20380         next_coalesced_allocno.  Move mem_optimized_dest_p,
20381         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
20382         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
20383         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
20384         temp, colorable_p.  Add new member add_data.
20385         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
20386         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
20387         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
20388         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
20389         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
20390         (ALLOCNO_ADD_DATA): New macro.
20391         (ira_emit_data_t): New typedef.
20392         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
20393         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
20394         from struct ira_allocno.
20395         (ALLOCNO_EMIT_DATA): New macro.
20396         (ira_allocno_emit_data, allocno_emit_reg): New.
20397         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
20398         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
20399         (OBJECT_ADD_DATA): New macro.
20400         (ira_reallocate): Remove.
20401         (ira_initiate_emit_data, ira_finish_emit_data): New.
20402         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
20403         (ira_init_register_move_cost_if_necessary): New.
20404         (ira_object_conflict_iter_next): Merge into
20405         ira_object_conflict_iter_cond.
20406         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
20407
20408         * ira-live.c (process_single_reg_class_operands): Call
20409         ira_init_register_move_cost_if_necessary.  Use
20410         ira_register_move_cost instead of ira_get_register_move_cost.
20411
20412         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20413
20414         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
20415
20416         * ira-costs.c: Fix formatting.
20417         (cost_classes, cost_classes_num): Remove.
20418         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
20419         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
20420         (cost_classes_del, cost_classes_htab): New.
20421         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
20422         (initiate_regno_cost_classes, setup_cost_classes): New.
20423         (setup_regno_cost_classes_by_aclass): New.
20424         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
20425         (record_reg_classes): Use regno_cost_classes instead of
20426         cost_classes.  Move checking opposite operand up.
20427         (record_address_regs): Use regno_cost_classes
20428         instead of cost_classes.
20429         (scan_one_insn): Ditto.  Use always general register.
20430         (print_allocno_costs): Use regno_cost_classes instead of
20431         cost_classes.
20432         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
20433         (find_costs_and_classes): Set up cost classes for each registers.
20434         Use also their mode for this.  Use regno_cost_classes instead of
20435         cost_classes.
20436         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
20437         cost_classes.
20438         (free_ira_costs, ira_init_costs): Don't use cost_classes.
20439         (ira_costs, ira_set_pseudo_classes): Call
20440         initiate_regno_cost_classes and finish_regno_cost_classes.
20441
20442         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
20443
20444         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
20445
20446         * target.def (ira_cover_classes): Remove.
20447
20448         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
20449
20450         * doc/tm.texi.in: Ditto.
20451
20452         * ira-conflicts.c: Remove mentioning cover classes from the file.
20453         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
20454         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
20455
20456         * targhooks.c (default_ira_cover_classes): Remove.
20457
20458         * targhooks.h (default_ira_cover_classes): Ditto.
20459
20460         * haifa-sched.c: Remove mentioning cover classes from the file.
20461         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20462         ira_pressure_classes and ira_pressure_classes_num instead of
20463         ira_reg_class_cover_size and ira_reg_class_cover.  Use
20464         sched_regno_pressure_class instead of sched_regno_cover_class.
20465         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
20466         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20467
20468         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
20469         classes from the file.
20470         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
20471         (struct object_hard_regs, struct object_hard_regs_node): New.
20472         (struct ira_object): New members profitable_hard_regs,
20473         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
20474         (struct ira_allocno): Rename cover_class to aclass.  Rename
20475         cover_class_cost and updated_cover_class_cost to class_cost and
20476         updated_class_cost.  Remove splay_removed_p and
20477         left_conflict_size.  Add new members colorable_p.
20478         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
20479         (ALLOCNO_COLORABLE_P): New macro.
20480         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
20481         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
20482         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
20483         (OBJECT_...): Rename parameter C to O.
20484         (OBJECT_PROFITABLE_HARD_REGS): New macro.
20485         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
20486         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
20487         (struct target_ira_int): New members x_ira_max_memory_move_cost,
20488         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
20489         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
20490         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
20491         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
20492         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
20493         x_ira_reg_class_subunion.
20494         (ira_max_memory_move_cost, ira_max_register_move_cost)
20495         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
20496         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
20497         (ira_important_class_nums, ira_reg_class_superunion): New macros.
20498         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
20499         (ira_reg_class_union): Rename to ira_reg_class_subunion.
20500         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20501         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20502         (ira_tune_allocno_costs_and_cover_classes): Rename to
20503         ira_tune_allocno_costs.
20504         (ira_debug_hard_regs_forest): New.
20505         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
20506         (ira_object_conflict_iter_next): Fix comments.
20507         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
20508         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
20509         cover_class to aclass.
20510         (ira_allocate_and_accumulate_costs): Ditto.
20511         (ira_allocate_and_set_or_copy_costs): Ditto.
20512
20513         * opts.c (decode_options): Remove ira_cover_class check.
20514
20515         * ira-color.c: Remove mentioning cover classes from the file.  Use
20516         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
20517         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
20518         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20519         (splay-tree.h): Remove include.
20520         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
20521         before copy_freq_compare_func.
20522         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
20523         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
20524         New definitions.
20525         (hard_regs_roots, hard_regs_node_vec): Ditto.
20526         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
20527         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
20528         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
20529         (create_new_object_hard_regs_node): Ditto.
20530         (add_new_object_hard_regs_node_to_forest): Ditto.
20531         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
20532         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
20533         Ditto.
20534         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
20535         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
20536         (remove_unused_object_hard_regs_nodes): Ditto.
20537         (enumerate_object_hard_regs_nodes): Ditto.
20538         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
20539         (object_hard_regs_subnode_t): Ditto.
20540         (struct object_hard_regs_subnode): Ditto.
20541         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
20542         (setup_object_hard_regs_subnode_index): Ditto.
20543         (get_object_hard_regs_subnodes_num): Ditto.
20544         (form_object_hard_regs_nodes_forest): Ditto.
20545         (finish_object_hard_regs_nodes_tree): Ditto.
20546         (finish_object_hard_regs_nodes_forest): Ditto.
20547         (allocnos_have_intersected_live_ranges_p): Rename to
20548         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20549         (pseudos_have_intersected_live_ranges_p): Rename to
20550         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20551         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
20552         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
20553         (update_copy_costs): Remove assert.  Skip cost update if the hard
20554         reg does not belong the class.
20555         (assign_hard_reg): Process only profitable hard regs.
20556         (uncolorable_allocnos_num): Make it scalar.
20557         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20558         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
20559         and ira_reg_class_max_nregs.
20560         (bucket_allocno_compare_func): Check frequency first.
20561         (sort_bucket): Add compare function as a parameter.
20562         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
20563         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
20564         (push_allocno_to_stack): Rewrite for checking new allocno
20565         colorability.
20566         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
20567         (push_only_colorable): Pass new parameter to sort_bucket.
20568         (push_allocno_to_spill): Remove.
20569         (allocno_spill_priority_compare): Make it inline and rewrite.
20570         (splay_tree_allocate, splay_tree_free): Remove.
20571         (allocno_spill_sort_compare): New function.
20572         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
20573         build and use splay tree.  Choose first allocno in uncolorable
20574         allocno bucket to spill.  Remove setting spill cost.
20575         (all_conflicting_hard_regs): Remove.
20576         (setup_allocno_available_regs_num): Check only profitable hard
20577         regs.  Print info about hard regs nodes.
20578         (setup_allocno_left_conflicts_size): Remove.
20579         (put_allocno_into_bucket): Don't call
20580         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
20581         (improve_allocation): New.
20582         (color_allocnos): Call setup_profitable_hard_regs,
20583         form_object_hard_regs_nodes_forest, improve_allocation,
20584         finish_object_hard_regs_nodes_forest.  Setup spill cost.
20585         (print_loop_title): Use pressure classes.
20586         (color_allocnso): Ditto.
20587         (do_coloring): Remove allocation and freeing splay_tree_node_pool
20588         and allocnos_for_spilling.
20589         (ira_sort_regnos_for_alter_reg): Don't setup members
20590         {first,next}_coalesced_allocno.
20591         (color): Remove allocating and freeing removed_splay_allocno_vec.
20592         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
20593         prohibited_class_mode_regs.
20594
20595         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
20596         formatting.
20597         (update_allocno_pressure_excess_length): Use pressure classes.
20598         (inc_register_pressure, dec_register_pressure): Check for pressure
20599         class.
20600         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
20601         pressure class.  Use ira_reg_class_nregs instead of
20602         ira_reg_class_max_nregs.
20603         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
20604         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
20605         (single_reg_class): Use ira_reg_class_nregs instead of
20606         ira_reg_class_max_nregs.
20607         (process_bb_node_lives): Use pressure classes.
20608
20609         * ira-emit.c: Remove mentioning cover classes from the file.  Use
20610         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20611         (change_loop): Use pressure classes.
20612         (modify_move_list): Call ira_set_allocno_class instead of
20613         ira_set_allocno_cover_class.
20614
20615         * ira-build.c: Remove mentioning cover classes from the file.  Use
20616         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
20617         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
20618         ALLOCNO_UPDATED_CLASS_COST instead of
20619         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20620         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
20621         (ira_create_allocno): Remove initialization of
20622         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
20623         ALLOCNO_COLORABLE_P.
20624         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20625         Update conflict regs for the objects.
20626         (create_cap_allocno): Remove assert.  Don't propagate
20627         ALLOCNO_AVAILABLE_REGS_NUM.
20628         (ira_free_allocno_costs): New function.
20629         (finish_allocno): Change a part of code into call of
20630         ira_free_allocno_costs.
20631         (low_pressure_loop_node_p): Use pressure classes.
20632         (object_range_compare_func): Don't compare classes.
20633         (setup_min_max_conflict_allocno_ids): Ditto.
20634
20635         * loop-invariant.c: Remove mentioning cover classes from the file.
20636         Use ira_pressure_classes and ira_pressure_classes_num instead of
20637         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
20638         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
20639         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20640         Use reg_allocno_class instead of reg_cover_class.
20641         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
20642         STACK_REG_COVER_CLASS.
20643         (get_regno_cover_class): Rename to get_regno_pressure_class.
20644         (move_loop_invariants): Initialize and finalize regstat.
20645
20646         * ira.c: Remove mentioning cover classes from the file.  Add
20647         comments about coloring without cover classes.  Use ALLOCNO_CLASS
20648         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20649         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
20650         setup_class_subset_and_memory_move_costs.
20651         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
20652         (setup_cover_and_important_classes): Rename to
20653         setup_allocno_and_important_classes.
20654         (setup_class_translate_array): New.
20655         (setup_class_translate): Call it for allocno and pressure classes.
20656         (cover_class_order): Rename to allocno_class_order.
20657         (comp_reg_classes_func): Use ira_allocno_class_translate instead
20658         of ira_class_translate.
20659         (reorder_important_classes): Set up ira_important_class_nums.
20660         (setup_reg_class_relations): Set up ira_reg_class_superunion.
20661         (print_class_cover): Rename to print_classes.  Add parameter.
20662         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20663         Print pressure classes too.
20664         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
20665         setup_reg_subclasses.
20666         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20667         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20668         (setup_prohibited_class_mode_regs): Use
20669         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
20670         (clarify_prohibited_class_mode_regs): New function.
20671         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
20672         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
20673         (ira_init_once): Initialize them.
20674         (free_register_move_costs): Process them.
20675         (ira_init): Move calls of find_reg_classes and
20676         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
20677         Call clarify_prohibited_class_mode_regs.
20678         (ira_no_alloc_reg): Remove.
20679         (too_high_register_pressure_p): Use pressure classes.
20680
20681         * sched-deps.c: Remove mentioning cover classes from the file.
20682         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20683         ira_pressure_classes and ira_pressure_classes_num instead of
20684         ira_reg_class_cover_size and ira_reg_class_cover.
20685         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
20686         sched_regno_pressure_class instead of sched_regno_cover_class.
20687         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
20688         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20689
20690         * ira.h: Add 2010 to Copyright.
20691         (ira_no_alloc_reg): Remove external.
20692         (struct target_ira): Rename x_ira_hard_regno_cover_class,
20693         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
20694         x_ira_class_translate to x_ira_hard_regno_allocno_class,
20695         x_ira_allocno_classes_num, x_ira_allocno_classes, and
20696         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
20697         x_ira_pressure_classes, x_ira_pressure_class_translate, and
20698         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
20699         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
20700         x_ira_no_alloc_regs.
20701         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20702         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
20703         ira_allocno_classes_num and ira_allocno_classes.
20704         (ira_class_translate): Rename to ira_allocno_class_translate.
20705         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
20706         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
20707         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20708         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
20709         (ira_no_alloc_regs): New.
20710
20711         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
20712         classes from the file.  Use ALLOCNO_CLASS instead of
20713         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
20714         ALLOCNO_COVER_CLASS_COST.
20715         (regno_cover_class): Rename to regno_aclass.
20716         (record_reg_classes): Use ira_reg_class_subunion instead of
20717         ira_reg_class_union.
20718         (record_address_regs): Check overflow.
20719         (scan_one_insn): Ditto.
20720         (print_allocno_costs): Print total mem cost fore regional allocation.
20721         (print_pseudo_costs): Use REG_N_REFS.
20722         (find_costs_and_classes): Use classes intersected with them on the
20723         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
20724         ira_reg_class_union.  Use ira_allocno_class_translate and
20725         regno_aclass instead of ira_class_translate and regno_cover_class.
20726         Modify code for finding regno_aclass.  Setup preferred classes for
20727         the next pass.
20728         (setup_allocno_cover_class_and_costs): Rename to
20729         setup_allocno_class_and_costs.  Use regno_aclass instead of
20730         regno_cover_class.  Use ira_set_allocno_class instead of
20731         ira_set_allocno_cover_class.
20732         (init_costs, finish_costs): Use regno_aclass instead of
20733         regno_cover_class.
20734         (ira_costs): Use setup_allocno_class_and_costs instead of
20735         setup_allocno_cover_class_and_costs.
20736         (ira_tune_allocno_costs_and_cover_classes): Rename to
20737         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
20738         by processing objects.  Use ira_reg_class_max_nregs instead of
20739         ira_reg_class_nregs.
20740
20741         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
20742
20743         * sched-int.h: Remove mentioning cover classes from the file.
20744         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
20745
20746         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
20747         classes from the file.
20748         (struct reg_pref): Rename coverclass into allocnoclass.
20749         (reg_cover_class): Rename to reg_allocno_class.
20750
20751         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
20752
20753         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
20754
20755         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
20756
20757         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
20758
20759         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
20760
20761         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
20762
20763         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
20764
20765         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
20766
20767         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
20768
20769         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
20770
20771         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
20772         (i386_ira_cover_classes): Ditto.
20773
20774         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
20775
20776         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
20777
20778         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
20779
20780         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
20781
20782         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
20783
20784         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
20785
20786         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
20787         (mips_ira_cover_classes): Ditto.
20788
20789         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
20790
20791         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
20792
20793         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
20794
20795         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
20796
20797         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
20798
20799         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
20800         (IRA_COVER_CLASSES_VSX): Ditto.
20801
20802         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
20803         (rs6000_ira_cover_classes): Ditto.
20804
20805         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
20806
20807         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
20808
20809         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
20810
20811         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
20812
20813         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
20814
20815         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
20816
20817         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
20818
20819         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
20820
20821         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
20822
20823         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
20824
20825 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
20826
20827         PR debug/48253
20828         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
20829         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
20830         dw_fde_unlikely_section_end_label, cold_in_std_section,
20831         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
20832         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
20833         fields.
20834         (output_fde): Use dw_fde_second_{begin,end} if second is
20835         true, otherwise dw_fde_{begin,end}.
20836         (output_call_frame_info): Test dw_fde_second_begin != NULL
20837         instead of dw_fde_switched_sections.
20838         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
20839         fields, initialize new fields.  Initialize in_std_section
20840         unconditionally from the first partition.
20841         (dwarf2out_end_epilogue): Don't override dw_fde_end when
20842         dw_fde_second_begin is non-NULL.
20843         (dwarf2out_switch_text_section): Stop initializing removed
20844         dw_fde_struct fields, initialize new fields, initialize
20845         also dw_fde_end here.  Set dw_fde_switch_cfi even when
20846         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
20847         (struct var_loc_list_def): Add last_before_switch field.
20848         (arange_table, arange_table_allocated, arange_table_in_use,
20849         ARANGE_TABLE_INCREMENT, add_arange): Removed.
20850         (size_of_aranges): Count !in_std_section and !second_in_std_section
20851         hunks in fdes, instead of looking at arange_table_in_use.
20852         (output_aranges): Add aranges_length argument, don't call
20853         size_of_aranges here.  Instead of using aranges_table*
20854         emit ranges for fdes when !in_std_section resp.
20855         !second_in_std_section.
20856         (dw_loc_list): Break ranges crossing section switch.
20857         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
20858         use dw_fde_second_end instead of dw_fde_end as end of last range.
20859         (gen_subprogram_die): Don't call add_arange.  Use
20860         dw_fde_{begin,end} for first partition and if switched
20861         section dw_fde_second_{begin,end} for the second.
20862         (var_location_switch_text_section_1,
20863         var_location_switch_text_section): New functions.
20864         (dwarf2out_begin_function): Initialize cold_text_section even
20865         when function_section () isn't text_section.
20866         (prune_unused_types): Don't walk arange_table.
20867         (dwarf2out_finish): Don't needlessly test
20868         flag_reorder_blocks_and_partition when testing cold_text_section_used.
20869         If info_section_emitted, call size_of_aranges and if it indicates
20870         non-empty .debug_aranges, call output_aranges with the computed
20871         size.  Stop using removed dw_fde_struct fields, use
20872         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
20873         for second.
20874
20875         PR debug/48203
20876         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
20877         create ENTRY_VALUE if incoming or address of incoming's MEM
20878         is a hard REG.
20879         * dwarf2out.c (mem_loc_descriptor): Don't emit
20880         DW_OP_GNU_entry_value of DW_OP_fbreg.
20881         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
20882         on ENTRY_VALUE is able to find the canonical parameter VALUE.
20883         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
20884         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
20885         ENTRY_VALUE_EXPs.
20886         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
20887         is a REG_P or MEM_P with REG_P address, compute hash directly
20888         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
20889         (preserve_only_constants): Don't clear VALUES forwaring
20890         ENTRY_VALUE to some other VALUE.
20891
20892 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
20893
20894         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
20895         instead of GEN_INT.
20896
20897 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20898
20899         * cfgexpand.c (expand_gimple_cond): Always set the source location and
20900         block before expanding the statement.
20901         (expand_gimple_stmt_1): Likewise.  Set them here...
20902         (expand_gimple_stmt): ...and not here.  Tidy.
20903         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
20904         unknown.
20905
20906 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20907
20908         * Makefile.in: New rule for cprop.o.
20909         * gcse.c: Move constant/copy propagation to cprop.c.
20910         (compute_local_properties): Only handle expression tables.
20911         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
20912         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
20913         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
20914         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
20915         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
20916         compute_cprop_data, find_used_regs, try_replace_reg,
20917         find_avail_set, cprop_jump, constprop_register, cprop_insn,
20918         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
20919         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
20920         find_bypass_set, reg_killed_on_edge, bypass_block,
20921         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
20922         execute_rtl_cprop, pass_rtl_cprop): Move to...
20923         * cprop.c: ...here.  New file, constant/copy propagation for RTL
20924         moved from gcse.c to here with minor cleanups in duplicated code.
20925
20926 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20927
20928         * config/i386/i386.c (flag_opts): Fix a typo in
20929         -mavx256-split-unaligned-store.
20930
20931 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20932
20933         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
20934         LIBCALL_VALUE): Remove macros.
20935         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20936         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20937         (h8300_function_value, h8300_libcall_value,
20938         h8300_function_value_regno_p): New functions.
20939
20940 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20941
20942         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
20943
20944 2011-03-28  Jeff Law  <law@redhat.com>
20945
20946         * tree-ssa-threadupdate.c (redirect_edges): Call
20947         create_edge_and_update_destination_phis as needed.
20948         (create_edge_and_update_destination_phis): Accept new BB argument.
20949         All callers updated.
20950         (thread_block): Do not update the profile when threading around
20951         intermediate blocks.
20952         (thread_single_edge): Likewise.
20953         (determine_bb_domination_status): If BB is not a successor of the
20954         loop header, return NONDOMINATING.
20955         (register_jump_thread): Note when we register a jump thread around
20956         an intermediate block.
20957         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
20958         (thread_across_edge): Use it.
20959
20960 2011-03-28  Tristan Gingold  <gingold@adacore.com>
20961
20962         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
20963         when for_return is 2.
20964
20965 2011-03-28  Jeff Law  <law@redhat.com>
20966
20967         * var-tracking.c (canonicalize_values_mark): Delete unused
20968         lhs assignment.
20969         (canonicalize_values_star, set_variable_part): Likewise.
20970         (clobber_variable_part, delete_variable_part): Likewise.
20971
20972 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20973
20974         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
20975
20976 2011-03-28  Martin Jambor  <mjambor@suse.cz>
20977
20978         * tree-inline.c (expand_call_inline): Do not check that destination
20979         node is analyzed.
20980         (optimize_inline_calls): Assert that destination node is analyzed.
20981         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
20982         not call tree_lowering_passes.
20983         * cgraph.h (cgraph_analyze_function): Declare.
20984         * cgraphunit.c (cgraph_analyze_function): Make public.
20985
20986 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
20987
20988         * config/sparc/sparc-opts.h: New.
20989         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
20990         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
20991         (sparc_option_override): Store processor_type enumeration rather
20992         than string in cpu_default.  Remove name and enumeration from
20993         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
20994         without using sparc_select.  Use target_flags_explicit instead of
20995         fpu_option_set.
20996         * config/sparc/sparc.h (enum processor_type): Move to
20997         sparc-opts.h.
20998         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
20999         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
21000         HeaderInclude entry.
21001         (mcpu=, mtune=): Use Var and Enum.
21002         (sparc_processor_type): New Enum and EnumValue entries.
21003
21004 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21005             Iain Sandoe  <iains@gcc.gnu.org>
21006
21007         PR target/48245
21008         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
21009
21010 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
21011
21012         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
21013         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
21014         Insert new statements at it in lieu of STMT.
21015         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
21016         * tree-vect-stmts.c (vectorizable_store): Likewise.
21017         (vectorizable_load): Likewise.
21018
21019 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
21020
21021         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
21022         (divtf3): Ditto.
21023         (multf3): Ditto.
21024         (subtf3): Ditto.
21025
21026 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21027
21028         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
21029         unaligned 256bit load/store.
21030         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
21031         (*avx_movdqu<avxmodesuffix>): Likewise.
21032
21033 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21034
21035         PR target/48288
21036         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
21037         * config/pa/pa.md (iordi3): Use new predicate in expander.
21038         (iorsi3): Likewise.
21039
21040 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
21041
21042         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
21043         FUNCTION_VALUE_REGNO_P): Remove macros.
21044         * config/mips/mips-protos.h (mips_function_value): Remove.
21045         * config/mips/mips.c (mips_function_value): Rename to...
21046         (mips_function_value_1): ... this. Make static.  Handle receiving
21047         the function type in 'fn_decl_or_type' argument.
21048         (mips_function_value, mips_libcall_value,
21049         mips_function_value_regno_p): New function.
21050         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21051         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21052
21053 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21054
21055         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
21056         and -mavx256-split-unaligned-store.
21057         (ix86_option_override_internal): Split 32-byte AVX unaligned
21058         load/store by default.
21059         (ix86_avx256_split_vector_move_misalign): New.
21060         (ix86_expand_vector_move_misalign): Use it.
21061
21062         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
21063         -mavx256-split-unaligned-store.
21064
21065         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
21066         256bit load/store.  Generate unaligned store on misaligned memory
21067         operand.
21068         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
21069         256bit load/store.
21070         (*avx_movdqu<avxmodesuffix>): Likewise.
21071
21072         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
21073         -mavx256-split-unaligned-store.
21074
21075 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21076
21077         PR target/38598
21078         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
21079         Update commentary.
21080
21081 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21082
21083         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
21084         opno arguments with an expand_operand.  Use create_input_operand.
21085         (mips_prepare_builtin_target): Delete.
21086         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
21087         functions.
21088         (mips_expand_builtin_direct): Use create_output_operand and
21089         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
21090         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
21091         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
21092
21093 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
21094
21095         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
21096         function.
21097         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
21098
21099 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21100
21101         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
21102         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
21103         basic blocks and call commit_edge_insertions directly.
21104         (fixup_abnormal_edges): Move from here to...
21105         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
21106         on the edges and return whether some have actually been inserted.
21107         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
21108         compensation code.
21109
21110 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
21111
21112         PR rtl-optimization/48144
21113         * sel-sched-ir.c (merge_history_vect): Factor out from ...
21114         (merge_expr_data): ... here.
21115         (av_set_intersect): Rename to av_set_code_motion_filter.
21116         Update all callers.  Call merge_history_vect when an expression
21117         is found in both sets.
21118         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
21119
21120 2011-03-26  Alan Modra  <amodra@gmail.com>
21121
21122         * config/rs6000/predicates.md (word_offset_memref_op): Handle
21123         cmodel medium addresses.
21124         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
21125         64-bit gpr loads and stores.
21126         (rs6000_secondary_reload_ppc64): New function.
21127         * config/rs6000/rs6000-protos.h: Declare it.
21128         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
21129
21130 2011-03-26  Alan Modra  <amodra@gmail.com>
21131
21132         PR target/47487
21133         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
21134         GNU Go in traceback table.
21135
21136 2011-03-25  Richard Henderson  <rth@redhat.com>
21137
21138         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
21139         if there are exactly 6 operands.
21140         (set_storage_via_setmem): Similarly.
21141
21142 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21143
21144         * collect2.c (write_c_file_stat): Handle backslash
21145         as right-hand directory separator.
21146         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
21147         checking just for slash.
21148         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
21149         instead of checking for trailing slash.
21150         * gcc.c (record_temp_file): Use filename_cmp instead
21151         of strcmp.
21152         (do_spec_1): Likewise.
21153         (replace_outfile_spec_function): Likewise.
21154         (is_directory): Use filename_ncmp instead of strncmp.
21155         (print_multilib_info): Likewise.
21156         * gcov.c (find_source): Use filename_cmp instead
21157         instead of strcmp.
21158         (make_gcov_file_name): Fix order of slash/backslash
21159         checks.
21160         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
21161         (add_standard_paths): Likewise.
21162         * mips-tfile.c (saber_stop): Handle backslash.
21163         * prefix.c (update_path): Use filename_ncmp instead of
21164         strncmp.
21165         * profile.c (output_location): Use filename_cmp instead
21166         of strcmp.
21167         * read-md.c (handle_toplevel_file): Handle backslash.
21168         * tlink.c (frob_extension):  Likewise.
21169         * tree-cfg.c (same_line_p): Use filename_cmp instead of
21170         strcmp.
21171         * tree-dump.c (dequeue_and_dump): Handle backslash.
21172         * tree.c (get_file_function_name): Likewise.
21173         * gengtype.c (read_input_list): Likewise.
21174         (get_file_realbasename): Likewise.
21175         (get_output_file_with_visibility): Use filename_cmp
21176         instead of strcmp.
21177
21178 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
21179
21180         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
21181         case to VFPv1.
21182
21183 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21184
21185         * fold-const.c (expr_location_or): New function.
21186         (fold_truth_not_expr): Call it.
21187
21188 2011-03-25  Jeff Law  <law@redhat.com>
21189
21190         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
21191         va_end.
21192         * c-family/c-common.c (def_fn_type): Likewise.
21193         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
21194         * emit-rtl.c (gen_rtvec): Likewise.
21195         * lto/lto-lang.c (def_fn_type): Likewise.
21196
21197 2011-03-25  Richard Guenther  <rguenther@suse.de>
21198
21199         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
21200         also generate copies.
21201         (fini_copy_prop): Handle constant values properly.
21202
21203 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
21204
21205         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
21206         mode size instead of bitsize with DWARF2_ADDR_SIZE.
21207         (hash_loc_operands, compare_loc_operands): Handle
21208         DW_OP_GNU_entry_value.
21209
21210 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21211
21212         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
21213         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
21214         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
21215         comment and use macro TARGET_64BIT_MS_ABI instead.
21216         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
21217         and change default behavior for 32-bit MS_ABI.
21218         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
21219         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
21220         32-bit, too.
21221         (ix86_cfun_abi): Likewise.
21222         (ix86_maybe_switch_abi): Adjust comment.
21223         (init_cumulative_args): Check for bit-ness in MS_ABI case.
21224         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
21225         instead of checking for SYSV_ABI.
21226         (ix86_nsaved_sseregs): Likewise.
21227         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
21228         to 16 bytes.
21229         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
21230         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
21231         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
21232         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
21233         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
21234
21235 2011-03-25  Richard Guenther  <rguenther@suse.de>
21236
21237         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
21238         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21239         (verify_gimple): Remove.
21240         * tree-cfg.c (verify_gimple_call): Merge verification
21241         from verify_stmts.
21242         (verify_gimple_phi): Merge verification from verify_stmts.
21243         (verify_gimple_label): New function.
21244         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
21245         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21246         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
21247         (verify_stmts): Rename to verify_gimple_in_cfg.
21248         (verify_gimple_in_cfg): New function.
21249         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
21250         * tree-ssa.c (verify_ssa): Likewise.
21251         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
21252
21253 2011-03-25  Richard Guenther  <rguenther@suse.de>
21254
21255         * passes.c (init_optimization_passes): Add FRE pass after
21256         early SRA.
21257
21258 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
21259             Andrew Stubbs  <ams@codesourcery.com>
21260
21261         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
21262         for Cortex-A8.
21263         (arm_movdi_vfp_cortexa8): New pattern.
21264         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
21265         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
21266         instructions when tuning for Cortex-A8.  Set attribute "arch".
21267         * config/arm/arm.md: Move include arm-tune.md up a bit.
21268         (define_attr "arch"): Add "onlya8" and "nota8" values.
21269         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
21270
21271 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21272
21273         PR bootstrap/48282
21274         Revert:
21275         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21276
21277         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21278         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21279         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21280         * passes.c (init_optimization_passes): Move
21281         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21282
21283 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21284
21285         * c-typeck.c (comptypes_internal): Replace target
21286         hook call of comp_type_attributes by version in tree.c file.
21287         * gimple.c (gimple_types_compatible_p_1): Likewise.
21288         * tree-ssa.c (useless_type_conversion_p): Likewise.
21289         * tree.c (build_type_attribute_qual_variant): Likewise.
21290         (attribute_value_equal): New static helper function.
21291         (comp_type_attributes): New function.
21292         (merge_attributes): Use attribute_value_equal for comparison.
21293         (attribute_list_contained): Likewise.
21294         * tree.h (comp_type_attributes): New prototype.
21295
21296 2011-03-25  Richard Guenther  <rguenther@suse.de>
21297
21298         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
21299         of complex types at -O0.
21300         (verify_gimple_assign_binary): Likewise.
21301         (verify_gimple_assign_ternary): Likewise.
21302
21303 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21304
21305         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
21306         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
21307
21308 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21309
21310         PR debug/48041
21311         * dwarf2out.c (output_abbrev_section): Only write table when
21312         abbrev_die_table_in_use > 1.
21313
21314 2011-02-24  Richard Henderson  <rth@redhat.com>
21315
21316         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
21317         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
21318         (alpha_expand_unaligned_load_words): Use extql.
21319         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
21320         (emit_insxl): Handle all modes for consistency.
21321
21322 2011-02-24  Richard Henderson  <rth@redhat.com>
21323
21324         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
21325         (alpha_expand_unaligned_load): Likewise.
21326         (alpha_expand_unaligned_store): Likewise.
21327         (alpha_expand_unaligned_load_words): Likewise.
21328         (alpha_expand_unaligned_store_words): Likewise.
21329         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
21330         (alpha_split_lock_test_and_set_12): Likewise.
21331         (print_operand, alpha_fold_builtin_extxx): Likewise.
21332         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
21333         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
21334         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
21335         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
21336         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
21337         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
21338         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
21339         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
21340         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
21341         (extwl, extll, extql): Similarly.
21342         (inswh, inslh, insqh): Similarly.
21343         (mskbl, mskwl, mskll, mskql): Similarly.
21344         (mskwh, msklh, mskqh): Similarly.
21345
21346 2011-02-24  Richard Henderson  <rth@redhat.com>
21347
21348         * config/alpha/alpha.md (attribute isa): Add er, ner.
21349         (attribute enabled): Handle them.
21350         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
21351
21352 2011-02-24  Richard Henderson  <rth@redhat.com>
21353
21354         * config/alpha/alpha.md (attribute isa): Add vms.
21355         (attribute enabled): Handle it.
21356         (*movsf): Merge *movsf_{nofix,fix,nofp}.
21357         (*movdf): Merge *movdf_{nofix,fix,nofp}.
21358         (*movtf): Rename from *movtf_internal for consistency.
21359         (*movsi): Merge with *movsi_nt_vms.
21360         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
21361         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
21362         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
21363         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
21364
21365 2011-02-24  Richard Henderson  <rth@redhat.com>
21366
21367         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
21368         (extendqisi2, extendhisi2): Likewise.
21369         (extendqidi2): Simplify BWX/non-BWX expansions.
21370         (extendhidi2): Similarly.
21371
21372 2011-02-24  Richard Henderson  <rth@redhat.com>
21373
21374         * config/alpha/alpha.md (attribute isa): New.
21375         (attribute enabled): New.
21376         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
21377         (zero_extendqisi2, zero_extendqidi2): Similarly.
21378         (zero_extendhisi2, zero_extendhidi2): Similarly.
21379         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
21380
21381 2011-02-24  Richard Henderson  <rth@redhat.com>
21382
21383         * config/alpha/predicates.md (input_operand): Revert last change;
21384         update comment to mention 32-bit VMS rather than Windows.
21385
21386 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21387
21388         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21389         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21390         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21391         * passes.c (init_optimization_passes): Move
21392         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21393
21394 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21395
21396         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
21397
21398 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21399
21400         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
21401         correctly.
21402
21403 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
21404
21405         PR debug/48204
21406         * simplify-rtx.c (simplify_const_unary_operation): Call
21407         real_convert when changing mode class with FLOAT_EXTEND.
21408
21409 2011-03-24  Nick Clifton  <nickc@redhat.com>
21410
21411         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
21412         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
21413         * config/rx/rx.c (rx_option_override): Set align_jumps,
21414         align_loops and align_labels if not set by the user.
21415         (rx_align_for_label): New function.
21416         (rx_max_skip_for_label): New function.
21417         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
21418         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
21419         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
21420         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
21421         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
21422
21423 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21424
21425         PR rtl-optimization/48263
21426         * optabs.c (expand_binop_directly): Reinstate convert_modes code
21427         and original commutative_p handling.  Use maybe_gen_insn.
21428
21429 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21430
21431         * reload.c (find_reloads_subreg_address): Add address_reloaded
21432         parameter and return true there if the full address has been
21433         reloaded.
21434         (find_reloads_toplev): Pass address_reloaded flag.
21435         (find_reloads_address_1): Don't use address_reloaded parameter.
21436
21437 2011-03-24  Jeff Law  <law@redhat.com>
21438
21439         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
21440         unused variable "ann".
21441         (remove_unused_locals): Likewise.
21442
21443         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
21444         statement.
21445
21446         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
21447         after it is freed.
21448
21449 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21450
21451         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
21452         for invalid symbolic addresses.
21453         (s390_secondary_reload): Don't use s390_check_symref_alignment for
21454         larl operands.
21455
21456 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21457
21458         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
21459         the argument in calls to fold_truth_not_expr.
21460
21461 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21462
21463         * tree.c (record_node_allocation_statistics): New function.
21464         (make_node_stat, copy_node_stat, build_string): Call it.
21465         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
21466         (build1_stat, build_omp_clause): Likewise.
21467
21468 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21469
21470         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
21471         last commit.
21472
21473 2011-03-24  Richard Guenther  <rguenther@suse.de>
21474
21475         PR tree-optimization/48271
21476         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
21477         blocks that still exist.
21478
21479 2011-03-24  Richard Guenther  <rguenther@suse.de>
21480
21481         PR tree-optimization/48270
21482         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
21483         not free datarefs before ddrs.
21484
21485 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21486
21487         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
21488         from the address built for a reference with variable offset.
21489
21490 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21491
21492         PR target/48237
21493         * config/i386/i386.md (*movdf_internal_rex64): Do not split
21494         alternatives that can be handled with movq or movabsq insn.
21495         (*movdf_internal): Disable for !TARGET_64BIT.
21496         (*movdf_internal_nointeger): Ditto.
21497         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
21498
21499 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21500
21501         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21502         (FUNCTION_ARG_ADVANCE): Likewise.
21503         * tm.texi.in: Change references to them to hook references.
21504         * tm.texi: Regenerate.
21505         * targhooks.c (default_function_arg): Eliminate check for target macro.
21506         (default_function_incoming_arg): Likewise.
21507         (default_function_arg_advance): Likewise.
21508         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
21509         (function_arg_advance): Likewise.
21510         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21511
21512 2011-03-24  Richard Guenther  <rguenther@suse.de>
21513
21514         PR middle-end/48269
21515         * tree-object-size.c (addr_object_size): Do not double-account
21516         for MEM_REF offsets.
21517
21518 2011-03-24  Diego Novillo  <dnovillo@google.com>
21519
21520         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
21521         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
21522         (lto_input_data_block): Move from lto-opts.c.  Make extern.
21523         Update all users.
21524         (lto_input_string): Rename from input_string.  Make extern.
21525         Update all users.
21526         * lto-streamer-out.c (lto_output_string_with_length): Rename from
21527         output_string_with_length.
21528         Output 0 to indicate a non-NULL string.  Update all callers to
21529         not emit 0.
21530         (lto_output_string): Rename from output_string.  Make extern.
21531         Update all users.
21532         (lto_output_decl_state_streams): Make extern.
21533         (lto_output_decl_state_refs): Make extern.
21534         * lto-streamer.h (lto_input_string): Declare.
21535         (lto_input_data_block): Declare.
21536         (lto_output_string): Declare.
21537         (lto_output_string_with_length): Declare.
21538         (lto_output_decl_state_streams): Declare.
21539         (lto_output_decl_state_refs): Declare.
21540
21541 2011-03-24  Richard Guenther  <rguenther@suse.de>
21542
21543         PR tree-optimization/46562
21544         * tree.c (build_invariant_address): New function.
21545         * tree.h (build_invariant_address): Declare.
21546         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
21547         a renamed function moved ...
21548         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
21549         Take valueization callback parameter.
21550         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
21551         * gimple-fold.h: New file.
21552         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
21553         (ccp_fold, fold_const_aggregate_ref,
21554         fold_ctor_reference, fold_nonarray_ctor_reference,
21555         fold_array_ctor_reference, fold_string_cst_ctor_reference,
21556         get_base_constructor): Move ...
21557         * gimple-fold.c: ... here.
21558         (gimple_fold_stmt_to_constant_1): New function
21559         split out from ccp_fold.  Take a valueization callback parameter.
21560         Valueize all operands.
21561         (gimple_fold_stmt_to_constant): New wrapper function.
21562         (fold_const_aggregate_ref_1): New function split out from
21563         fold_const_aggregate_ref.  Take a valueization callback parameter.
21564         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
21565         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
21566         invariant POINTER_PLUS_EXPRs to invariant form.
21567         (vn_valueize): New function.
21568         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
21569         * tree-vrp.c (vrp_valueize): New function.
21570         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
21571         to fold statements to constants.
21572         * tree-ssa-pre.c (eliminate): Properly guard propagation of
21573         function declarations.
21574         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
21575         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
21576
21577 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21578
21579         * config/h8300/predicates.md (jump_address_operand): Fix register
21580         mode check.
21581
21582 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
21583
21584         * doc/invoke.texi (max-stores-to-sink): Document.
21585         * params.h (MAX_STORES_TO_SINK): Define.
21586         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
21587         if either vectorization or if-conversion is disabled.
21588         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
21589         tree-vect-data-refs.c vect_equal_offsets.
21590         (dr_equal_offsets_p): New function.
21591         (find_data_references_in_bb): Remove static.
21592         * tree-data-ref.h (find_data_references_in_bb): Declare.
21593         (dr_equal_offsets_p): Likewise.
21594         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
21595         (vect_drs_dependent_in_basic_block): Update calls to
21596         vect_equal_offsets.
21597         (vect_check_interleaving): Likewise.
21598         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
21599         (cond_if_else_store_replacement): Rename to...
21600         (cond_if_else_store_replacement_1): ... this.  Change arguments and
21601         documentation.
21602         (cond_if_else_store_replacement): New function.
21603         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
21604         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
21605
21606 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
21607
21608         PR target/46934
21609         * config/arm/arm.md (casesi): Use the gen_int_mode() function
21610         to subtract lower bound instead of GEN_INT().
21611
21612 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
21613
21614         PR other/48179
21615         PR other/48221
21616         PR other/48234
21617         * doc/extend.texi (Alignment): Move section to match order in TOC.
21618         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
21619         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
21620
21621 2011-03-23  Jeff Law  <law@redhat.com>
21622
21623         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
21624         before removing the edge.
21625
21626         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
21627         it may have been freed by redirect_branch_edge or
21628         redirect_edge_succ_nodup.
21629
21630 2011-03-23  Richard Guenther  <rguenther@suse.de>
21631
21632         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
21633         (check_va_list_escapes): Likewise.
21634         (check_all_va_list_escapes): Likewise.
21635
21636 2011-03-23  Richard Guenther  <rguenther@suse.de>
21637
21638         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
21639         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
21640         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
21641         (alias.o): Likewise.
21642         (ipa-type-escape.o): Remove.
21643         (ipa-struct-reorg.o): Likewise.
21644         (GTFILES): Remove ipa-struct-reorg.c.
21645         * alias.c: Do not include ipa-type-escape.h.
21646         * tree-ssa-alias.c: Likewise.
21647         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
21648         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
21649         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
21650         and ipa-type-escape passes.
21651         * tree-pass.h (pass_ipa_type_escape): Remove.
21652         (pass_ipa_struct_reorg): Likewise.
21653         * ipa-struct-reorg.h: Remove.
21654         * ipa-struct-reorg.c: Likewise.
21655         * ipa-type-escape.h: Likewise.
21656         * ipa-type-escape.c: Likewise.
21657         * doc/invoke.texi (-fipa-struct-reorg): Remove.
21658         (--param struct-reorg-cold-struct-ratio): Likewise.
21659         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21660         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21661         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
21662
21663 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21664
21665         * config/s390/2084.md: Enable all insn reservations also for z9_ec
21666         cpu attribute value.
21667         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
21668         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
21669         * config/s390/s390.c (processor_flags_table): New constant array.
21670         (s390_handle_arch_option): Remove.
21671         (s390_handle_option): Remove s390_handle_arch_option invocations
21672         and OPT_mwarn_framesize_ handling.
21673         (s390_option_override): Remove s390_handle_arch_option invocation.
21674         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
21675         warnings.
21676         * config/s390/s390.md (cpu attribute): Add z9_ec value.
21677         * config/s390/s390.opt (s390_tune, s390_arch)
21678         (march=): Replace s390_arch_option enum and values with
21679         processor_type.  Set variable name to s390_arch.  Set
21680         initialization value.
21681         (mtune=): Replace s390_arch_option with processor_type.  Set
21682         variable name to s390_tune.  Set initialization value.
21683
21684 2011-03-23  Julian Brown  <julian@codesourcery.com>
21685
21686         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
21687         accesses which are not naturally aligned.
21688
21689 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21690
21691         PR target/47553
21692         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
21693
21694 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21695
21696         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
21697         parameter from "int" to "enum insn_code".
21698         (expand_operand_type): New enum.
21699         (expand_operand): New structure.
21700         (create_expand_operand): New function.
21701         (create_fixed_operand, create_output_operand): Likewise
21702         (create_input_operand, create_convert_operand_to): Likewise.
21703         (create_convert_operand_from, create_address_operand): Likewise.
21704         (create_integer_operand): Likewise.
21705         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
21706         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21707         (expand_insn, expand_jump_insn): Likewise.
21708         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
21709         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
21710         (expand_movstr, expand_builtin___clear_cache): Likewise.
21711         (expand_builtin_lock_release): Likewise.
21712         * explow.c (allocate_dynamic_stack_space): Likewise.
21713         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
21714         and use the default handling in that case.
21715         * expmed.c (check_predicate_volatile_ok): Delete.
21716         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
21717         (emit_cstore): Likewise.
21718         * expr.c (emit_block_move_via_movmem): Likewise.
21719         (set_storage_via_setmem, expand_assignment): Likewise.
21720         (emit_storent_insn, try_casesi): Likewise.
21721         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
21722         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
21723         (expand_vec_shift_expr, expand_binop_directly): Likewise.
21724         (expand_twoval_unop, expand_twoval_binop): Likewise.
21725         (expand_unop_direct, emit_indirect_jump): Likewise.
21726         (emit_conditional_move, vector_compare_rtx): Likewise.
21727         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
21728         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
21729         (expand_sync_lock_test_and_set): Likewise.
21730         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
21731         (emit_unop_insn): Likewise.
21732         (expand_copysign_absneg): Change icode to an insn_code.
21733         (create_convert_operand_from_type): New function.
21734         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
21735         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21736         (expand_insn, expand_jump_insn): Likewise.
21737         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
21738         than const_int_operand for operand 2.
21739
21740 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21741
21742         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
21743         if possible.
21744
21745 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21746
21747         * emit-rtl.c (emit_pattern_before_noloc): New function.
21748         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
21749         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
21750         (emit_pattern_after_noloc): New function.
21751         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
21752         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
21753
21754 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21755
21756         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
21757         (__ffsDI2): Likewise.
21758
21759 2011-03-22  Richard Henderson  <rth@redhat.com>
21760
21761         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
21762         of !TARGET_ABI_OPEN_VMS.
21763         (alpha_trampoline_init, alpha_start_function): Likewise.
21764         (alpha_expand_epilogue, alpha_file_start): Likewise.
21765         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
21766         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
21767         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
21768         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
21769         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
21770
21771 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21772
21773         * config/s390/s390-opts.h: New.
21774         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
21775         s390_arch_flags, s390_warn_framesize, s390_stack_size,
21776         s390_stack_guard): Remove.
21777         (s390_handle_arch_option): Return void.  Take enum
21778         s390_arch_option value instead of string and searching array.
21779         (s390_handle_option): Don't assert that global structures are in
21780         use.  Access variables via opts pointer.  Use error_at.  Don't use
21781         sscanf for -mstack-guard= or -mstack-size=.  Update call to
21782         s390_handle_arch_option.
21783         (s390_option_override): Update call to s390_handle_arch_option.
21784         (s390_emit_prologue): Use %d format for s390_stack_size in
21785         diagnostic.  Use %wd for HOST_WIDE_INT.
21786         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
21787         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
21788         * config/s390/s390.opt (config/s390/s390-opts.h): New
21789         HeaderInclude entry.
21790         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
21791         s390_arch_flags, s390_warn_framesize): New Variable entries.
21792         (s390_arch_option): New Enum and EnumValue entries.
21793         (march=): Use Enum instead of Var.
21794         (mstack-guard=, mstack-size=): Use UInteger and Var.
21795         (mtune=): Use Enum.
21796
21797 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21798
21799         * config/score/score.c (score_handle_option): Don't assert that
21800         global structures are in use.  Access target_flags via opts
21801         pointer.  Use value of -march= option to determine target_flags
21802         settings.
21803         * config/score/score.opt (march=): Use Enum.
21804         (score_arch): New Enum and EnumValue entries.
21805
21806 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21807
21808         * config/mep/mep.c (option_mtiny_specified): Remove.
21809         (mep_option_override): Move register handling for -mivc2 from
21810         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
21811         instead of option_mtiny_specified.
21812         (mep_handle_option): Access target_flags via opts pointer.  Don't
21813         assert that global structures are in use.  Defer part of -mivc2
21814         handling and move it to mep_option_override.
21815         * config/mep/mep.opt (IVC2): New Mask entry.
21816         (mivc2): Use Var and Defer instead of Mask.
21817
21818 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21819
21820         * config/v850/v850-opts.h: New.
21821         * config/v850/v850.c (small_memory): Replace with
21822         small_memory_physical_max array.  Make that array static const.
21823         (v850_handle_memory_option): Take integer value of argument.  Take
21824         gcc_options pointer, option text and location.  Return void.
21825         Update for changes to small memory structures.
21826         (v850_handle_option): Access target_flags via opts pointer.  Don't
21827         assert that global structures are in use.  Update calls to
21828         v850_handle_memory_option.
21829         (v850_encode_data_area): Update references to small memory settings.
21830         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
21831         (enum small_memory_type): Move to v850-opts.h.
21832         * config/v850/v850.opt (config/v850/v850-opts.h): New
21833         HeaderInclude entry.
21834         (small_memory_max): New Variable entry.
21835         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
21836         (mtda, mzda): Likewise.
21837
21838 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21839
21840         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
21841         pointer.  Don't assert that global structures are in use.
21842
21843 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21844
21845         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
21846         via opts pointer.  Don't assert that global structures are in use.
21847
21848 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21849
21850         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
21851         (munix=93): Use Var.
21852         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
21853         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
21854         * config/pa/pa-opts.h: New.
21855         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
21856         (pa_handle_option): Don't assert that global structures are in
21857         use.  Access target_flags via opts pointer.  Don't handle
21858         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
21859         OPT_munix_98 here.
21860         (pa_option_override): Handle deferred OPT_mfixed_range_.
21861
21862 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21863
21864         * config/mn10300/mn10300-opts.h: New.
21865         * config/mn10300/mn10300.c (mn10300_processor,
21866         mn10300_tune_string): Remove.
21867         (mn10300_handle_option): Don't assert that global structures are
21868         in use.  Access mn10300_processor via opts pointer.  Don't handle
21869         OPT_mtune_ here.
21870         * config/mn10300/mn10300.h (enum processor_type): Move to
21871         mn10300-opts.h.
21872         (mn10300_processor): Remove.
21873         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
21874         HeaderInclude entry.
21875         (mn10300_processor): New Variable entry.
21876         (mtune=): Use Var.
21877
21878 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21879
21880         * config/microblaze/microblaze.c: Don't include opts.h.
21881         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
21882         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
21883         (mno-clearbss): Use Var and Warn.
21884
21885 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21886
21887         * config/m32r/m32r-opts.h: New.
21888         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
21889         (m32r_handle_option): Don't assert that global structures are in
21890         use.  Access target_flags and m32r_cache_flush_func via opts
21891         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
21892         OPT_mno_flush_trap here.
21893         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
21894         include of m32r-opts.h.
21895         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
21896         HeaderInclude entry.
21897         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
21898         (mmodel=): Use Enum and Var.
21899         (m32r_model): New Enum and EnumValue entries.
21900         (mno-flush-trap): Use Var.
21901         (msdata=): Use Enum and Var.
21902         (m32r_sdata): New Enum and EnumValue entries.
21903
21904 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21905
21906         * config/m32c/m32c.c: Don't include opts.h.
21907         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
21908         m32c_handle_option): Remove.
21909         (m32c_option_override): Check global_options_set.x_target_memregs
21910         instead of target_memregs_set.
21911         * config/m32c/m32c.h (target_memregs): Remove.
21912         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
21913         variable.
21914
21915 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21916
21917         * config/iq2000/iq2000-opts.h: New.
21918         * config/iq2000/iq2000.c: Don't include opts.h.
21919         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
21920         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
21921         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
21922         HeaderInclude entry.
21923         (iq2000_tune): New Variable entry.
21924         (march=): Add comment.  Use Enum.
21925         (iq2000_arch): New Enum and EnumValue entries.
21926         (mcpu=): Use Enum and Var.
21927         (iq2000_tune): New Enum and EnumValue entries.
21928
21929 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21930
21931         * config/ia64/ia64-opts.h: New.
21932         * config/ia64/ia64.c (ia64_tune): Remove.
21933         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
21934         here.  Use error_at.
21935         (ia64_option_override): Handle deferred OPT_mfixed_range_.
21936         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
21937         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
21938         HeaderInclude entry.
21939         (ia64_tune): New Variable entry.
21940         (mfixed-range=): Use Defer and Var.
21941         (mtune=): Use Enum and Var.
21942         (ia64_tune): New Enum and EnumValue entries.
21943
21944 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21945
21946         * config/frv/frv-opts.h: New.
21947         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
21948         frv-opts.h.
21949         (frv_cpu_type): Remove.
21950         * config/frv/frv.c: Don't include opts.h.
21951         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
21952         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
21953         (frv_cpu_type): New Variable entry.
21954         (frv_cpu): New Enum and EnumValue entries.
21955
21956 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21957
21958         * config/cris/cris.c (cris_handle_option): Access target_flags via
21959         opts pointer.  Don't assert that global structures are in use.
21960         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
21961         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
21962
21963 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21964
21965         * config/bfin/bfin-opts.h: New.
21966         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
21967         bfin_si_revision, bfin_workarounds): Remove.
21968         (bfin_cpus): Make static const.
21969         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
21970         not bfin_lib_id_given.
21971         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
21972         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
21973         pointer. Use error_at.  Don't assert that global structures are in use.
21974         * config/bfin/bfin.h: Include bfin-opts.h.
21975         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
21976         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
21977         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
21978         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
21979         entries.
21980
21981 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21982
21983         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
21984         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
21985         or -msoft-float here.
21986         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
21987         -msoft-float and -mhard-float.
21988         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
21989         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21990         msoft-float.
21991         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
21992         -msoft-float.
21993         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
21994         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
21995         not mhard-float.
21996         (LIBGCC_SPEC): Don't handle -msoft-float.
21997         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
21998         -mhard-float.
21999         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
22000         msoft-float.
22001         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
22002         -mfloat-abi=*, not -msoft-float and -mhard-float.
22003         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
22004         -msoft-float.
22005         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
22006         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
22007         mhard-float and msoft-float.
22008         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
22009         mfloat-abi=soft in comments, not mhard-float and msoft-float.
22010         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
22011         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
22012         mhard-float.
22013         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
22014         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
22015         msoft-float.
22016         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
22017         not mhard-float.
22018         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
22019         not msoft-float.
22020
22021 2011-03-22  Richard Henderson  <rth@redhat.com>
22022
22023         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
22024         TARGET_ABI_WINDOWS_NT.
22025         (alpha_output_function_end_prologue): Likewise.
22026         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
22027         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
22028         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
22029         (trap, *movsi_nt_vms): Likewise.
22030         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
22031         (*tablejump_osf_nt_internal): Remove.
22032         * config/alpha/predicates.md (input_operand): Only test Pmode.
22033
22034 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22035
22036         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
22037         via opts pointer.  Use error_at.  Don't assert that global
22038         structures are in use.
22039
22040 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22041
22042         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
22043         (ix86_handle_option): Access ix86_isa_flags and
22044         ix86_isa_flags_explicit via opts pointer.  Don't assert that
22045         global structures are in use.
22046         (ix86_function_specific_save, ix86_function_specific_restore):
22047         Update ix86_isa_flags_explicit field name.
22048         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
22049         (ix86_isa_flags_explicit): Rename TargetSave entry to
22050         x_ix86_isa_flags_explicit.
22051
22052 2011-03-22  Richard Henderson  <rth@redhat.com>
22053
22054         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
22055         (alpha_option_override, direct_return): Likewise.
22056         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
22057         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
22058         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
22059         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
22060         (alpha_expand_epilogue, alpha_end_function): Likewise.
22061         (alpha_init_libfuncs): Likewise.
22062         (struct machine_function): Remove unicosmk members.
22063         (print_operand) ['t']: Remove.
22064         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
22065         unicosmk_output_module_name, unicosmk_output_common,
22066         current_section_align, unicosmk_output_text_section_asm_op,
22067         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
22068         unicosmk_section_type_flags, unicosmk_unique_section,
22069         unicosmk_asm_named_section, unicosmk_insert_attributes,
22070         unicosmk_output_align, unicosmk_defer_case_vector,
22071         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
22072         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
22073         unicosmk_output_ssib, unicosmk_add_call_info_word,
22074         unicosmk_extern_head, unicosmk_output_default_externs,
22075         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
22076         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
22077         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
22078         * config/alpha/alpha-protos.h: Update.
22079         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
22080         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
22081         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
22082         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
22083         (*mulsi_se, mulvsi3): Likewise.
22084         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
22085         (*divmodsi_internal, call, call_value, realign): Likewise.
22086         (moddi3, umoddi3): Likewise; remove duplicate expander.
22087         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
22088         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
22089         (*movdi_nofix): Remove r/U alternative.
22090         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
22091         * config/alpha/constraints.md ("U"): Remove.
22092         * config/alpha/predicates.md (call_operand"): Don't test
22093         TARGET_ABI_UNICOSMK.
22094
22095 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22096
22097         * target.def (handle_option): Take gcc_options and
22098         cl_decoded_option pointers and location_t.
22099         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
22100         * doc/tm.texi: Regenerate.
22101         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
22102         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
22103         * lto-opts.c (lto_reissue_options): Generate option structure for
22104         targetm.handle_option call.
22105         * opts.c (target_handle_option): Update call to
22106         targetm.handle_option.  Remove assertions about values now passed
22107         down to hook.
22108         * targhooks.c (default_target_handle_option): New.
22109         * targhooks.h (default_target_handle_option): Declare.
22110         * config/alpha/alpha.c: Include opts.h.
22111         (alpha_handle_option): Update to new hook interface.
22112         * config/arm/arm.c: Include opts.h.
22113         (arm_handle_option): Update to new hook interface.
22114         * config/arm/t-arm (arm.o): Update dependencies.
22115         * config/bfin/bfin.c: Include opts.h.
22116         (bfin_handle_option): Update to new hook interface.
22117         * config/cris/cris.c: Include opts.h.
22118         (cris_handle_option): Update to new hook interface.
22119         * config/frv/frv.c: Include opts.h.
22120         (frv_handle_option): Update to new hook interface.
22121         * config/i386/i386.c: Include opts.h.
22122         (ix86_handle_option): Update to new hook interface.
22123         (ix86_valid_target_attribute_inner_p): Generate option structure
22124         for call to ix86_handle_option.
22125         * config/i386/t-i386 (i386.o): Update dependencies.
22126         * config/ia64/ia64.c: Include opts.h.
22127         (ia64_handle_option): Update to new hook interface.
22128         * config/ia64/t-ia64 (ia64.o): Update dependencies.
22129         * config/iq2000/iq2000.c: Include opts.h.
22130         (iq2000_handle_option): Update to new hook interface.
22131         * config/m32c/m32c.c: Include opts.h.
22132         (m32c_handle_option): Update to new hook interface.
22133         * config/m32r/m32r.c: Include opts.h.
22134         (m32r_handle_option): Update to new hook interface.
22135         * config/m68k/m68k.c: Include opts.h.
22136         (m68k_handle_option): Update to new hook interface.
22137         * config/mep/mep.c: Include opts.h.
22138         (mep_handle_option): Update to new hook interface.
22139         * config/microblaze/microblaze.c: Include opts.h.
22140         (microblaze_handle_option): Update to new hook interface.
22141         * config/mips/mips.c: Include opts.h.
22142         (mips_handle_option): Update to new hook interface.
22143         * config/mn10300/mn10300.c: Include opts.h.
22144         (mn10300_handle_option): Update to new hook interface.
22145         * config/pa/pa.c: Include opts.h.
22146         (pa_handle_option): Update to new hook interface.
22147         * config/pdp11/pdp11.c: Include opts.h.
22148         (pdp11_handle_option): Update to new hook interface.
22149         * config/rs6000/rs6000.c: Include opts.h.
22150         (rs6000_handle_option): Update to new hook interface.
22151         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
22152         * config/rx/rx.c: Include opts.h.
22153         (rx_handle_option): Update to new hook interface.
22154         * config/s390/s390.c: Include opts.h.
22155         (s390_handle_option): Update to new hook interface.
22156         * config/score/score.c: Include opts.h.
22157         (score_handle_option): Update to new hook interface.
22158         * config/sh/sh.c: Include opts.h.
22159         (sh_handle_option): Update to new hook interface.
22160         * config/sparc/sparc.c: Include opts.h.
22161         (sparc_handle_option): Update to new hook interface.
22162         * config/v850/v850.c: Include opts.h.
22163         (v850_handle_option): Update to new hook interface.
22164
22165 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22166
22167         * gcc.c (driver_unknown_option_callback): Only permit and save
22168         unknown -Wno- options.
22169         (driver_wrong_lang_callback): Save options directly instead of via
22170         driver_unknown_option_callback.
22171
22172 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22173
22174         * combine.c (simplify_set): Try harder to find the best CC mode when
22175         simplifying a nested COMPARE on the RHS.
22176
22177 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22178
22179         * config/alpha/gnu.h: Remove.
22180         * config/arc: Remove directory.
22181         * config/arm/netbsd.h: Remove.
22182         * config/arm/t-pe: Remove.
22183         * config/crx: Remove directory.
22184         * config/i386/netbsd.h: Remove.
22185         * config/m68hc11: Remove directory.
22186         * config/m68k/uclinux-oldabi.h: Remove.
22187         * config/mcore/mcore-pe.h: Remove.
22188         * config/mcore/t-mcore-pe: Remove.
22189         * config/netbsd-aout.h: Remove.
22190         * config/rs6000/gnu.h: Remove.
22191         * config/sh/sh-symbian.h: Remove.
22192         * config/sh/symbian-base.c: Remove.
22193         * config/sh/symbian-c.c: Remove.
22194         * config/sh/symbian-cxx.c: Remove.
22195         * config/sh/symbian-post.h: Remove.
22196         * config/sh/symbian-pre.h: Remove.
22197         * config/sh/t-symbian: Remove.
22198         * config/svr3.h: Remove.
22199         * config/vax/netbsd.h: Remove.
22200         * config.build: Don't handle i[34567]86-*-pe.
22201         * config.gcc: Remove handling of deprecations for most deprecated
22202         targets.
22203         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
22204         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
22205         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
22206         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
22207         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
22208         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
22209         Remove cases.
22210         * config.host: Don't handle i[34567]86-*-pe.
22211         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
22212         (ASM_SPEC32): Don't handle -mcall-gnu.
22213         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
22214         -mcall-gnu.
22215         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
22216         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
22217         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
22218         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
22219         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
22220         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
22221         conditional on SYMBIAN.
22222         * configure.ac: Don't handle powerpc*-*-gnu*.
22223         * configure: Regenerate.
22224         * doc/extend.texi (interrupt attribute): Don't mention CRX.
22225         * doc/install-old.texi (m6811, m6812): Don't mention.
22226         * doc/install.texi (arc-*-elf*): Don't document multilib option.
22227         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
22228         (m68k-uclinuxoldabi): Don't mention.
22229         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
22230         Remove.
22231         (-mcall-gnu): Remove.
22232         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
22233         families): Remove constraint documentation.
22234
22235 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
22236
22237         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
22238         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
22239         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
22240
22241 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22242
22243         PR target/48226
22244         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
22245         vector when peeking at the next token for vector, don't expand the
22246         keywords.
22247
22248 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
22249
22250         * config/avr/avr-protos.h (expand_epilogue): Change prototype
22251         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
22252         * config/avr/avr.c (init_cumulative_args)
22253         (avr_function_arg_advance): Use it.
22254         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
22255         sibcall epilogues.
22256         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
22257         (avr_function_ok_for_sibcall): ...this new function.
22258         (avr_lookup_function_attribute1): New static Function.
22259         (avr_naked_function_p, interrupt_function_p)
22260         (signal_function_p, avr_OS_task_function_p)
22261         (avr_OS_main_function_p): Use it.
22262         * config/avr/avr.md ("sibcall", "sibcall_value")
22263         ("sibcall_epilogue"): New expander.
22264         ("*call_insn", "*call_value_insn"): New insn.
22265         ("call_insn", "call_value_insn"): Remove
22266         ("call", "call_value", "epilogue"): Change expander to handle
22267         sibling calls.
22268
22269 2011-03-21  Nick Clifton  <nickc@redhat.com>
22270
22271         * doc/invoke.texi (Overall Options): Move closing brace to end of
22272         options list.
22273         (Optimization Options): Add missing @gol.
22274         (Directory Options): Likewise.
22275         (i386 and x86-64 Options): Likewise.
22276         (RS6000 and PowerPC Options): Likewise.
22277         (i386 and x86-64 Windows Options): Likewise.
22278         (V850 Options): Add text missing from descriptions.
22279
22280 2011-03-22  Richard Henderson  <rth@redhat.com>
22281
22282         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
22283         (avr_incoming_return_addr_rtx): New.
22284         (emit_push_byte): New.
22285         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
22286         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
22287         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
22288         (emit_pop_byte): New.
22289         (expand_epilogue): Use it.  Pop frame pointer by bytes.
22290         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
22291         (INCOMING_RETURN_ADDR_RTX): New.
22292         (INCOMING_FRAME_SP_OFFSET): New.
22293         (ARG_POINTER_CFA_OFFSET): New.
22294         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
22295         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
22296         (pophi): Remove.
22297
22298         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
22299
22300 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22301
22302         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
22303         (FUNCTION_ARG_ADVANCE): Likewise.
22304         * tm.texi.in: Change references to them to hook references.
22305         * tm.texi: Regenerate.
22306         * targhooks.c (default_function_arg): Eliminate check for target
22307         macro.
22308         (default_function_incoming_arg): Likewise.
22309         (default_function_arg_advance): Likewise.
22310         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
22311         (function_arg_advance): Likewise.
22312         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
22313
22314 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22315
22316         * tree.c (build_call_1): New function.
22317         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
22318
22319 2011-03-22  Richard Guenther  <rguenther@suse.de>
22320
22321         PR tree-optimization/48228
22322         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
22323         for single-arg PHIs.
22324
22325 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
22326
22327         PR rtl-optimization/48143
22328         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
22329         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
22330         sse2_cvtps2pd): Likewise.
22331
22332 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22333
22334         * recog.c (canonicalize_change_group): Use validate_unshare_change.
22335
22336 2011-03-22  Richard Guenther  <rguenther@suse.de>
22337
22338         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
22339         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
22340         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
22341         and REALIGN_LOAD_EXPR.
22342         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
22343         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
22344         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
22345         DOT_PROD_EXPR case ...
22346         (expand_expr_real_2): ... here.
22347         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
22348         and REALIGN_LOAD_EXPR.
22349         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
22350         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
22351         (vect_create_epilog_for_reduction): Likewise.
22352         (vectorizable_reduction): Likewise.
22353         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
22354         * tree-vect-stmts.c (vectorizable_load): Likewise.
22355
22356 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22357
22358         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
22359
22360 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22361
22362         * config/s390/s390.c (s390_delegitimize_address): Fix offset
22363         handling for PLTOFF/GOTOFF.
22364
22365 2011-03-22  Nick Clifton  <nickc@redhat.com>
22366
22367         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
22368         trailing backslash from the end of the macro definition.
22369
22370 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22371
22372         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
22373         and PLT unspecs.
22374
22375 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
22376
22377         * expr.h (prepare_operand): Move to...
22378         * optabs.h (prepare_operand): ...here and change the insn code
22379         parameter from "int" to "enum insn_code".
22380         (insn_operand_matches): Declare.
22381         * expr.c (init_expr_target): Use insn_operand_matches.
22382         (compress_float_constant): Likewise.
22383         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
22384         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
22385         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
22386         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
22387         Likewise.
22388         (gen_cond_trap): Likewise.
22389         (prepare_operand): Likewise.  Change icode to an insn_code.
22390         (insn_operand_matches): New function.
22391         * reload.c (find_reloads_address_1): Use insn_operand_matches.
22392         * reload1.c (gen_reload): Likewise.
22393         * targhooks.c (default_secondary_reload): Likewise.
22394
22395 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22396
22397         * config/alpha/alpha.md (unspec): New define_c_enum.
22398         (unspecv): Ditto.
22399
22400 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22401
22402         PR debug/48214
22403         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
22404         between a call and its CALL_ARG_LOCATION note.
22405
22406 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
22407
22408         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
22409
22410 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22411
22412         PR c/42544
22413         PR c/48197
22414         * c-common.c (shorten_compare): If primopN is first sign-extended
22415         to opN and then zero-extended to result type, set primopN to opN.
22416
22417 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
22418
22419         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
22420         for barrier handlers.
22421
22422 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22423
22424         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
22425         UNSPEC constants to be in the unspec enumeration, and redefine
22426         all UNSPECV constants to be in the unspecv enumeration, so that
22427         dumps print which unspec/unspec_volatile this is.
22428         * config/rs6000/vector.md (UNSPEC_*): Ditto.
22429         * config/rs6000/paired.md (UNSPEC_*): Ditto.
22430         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
22431         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
22432         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
22433
22434         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
22435         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
22436         UNSPECV_LWSYNC, since these are used as unspec_volatile.
22437         * config/rs6000/sync.md (isync, lwsync): Ditto.
22438
22439 2011-03-21  Richard Guenther  <rguenther@suse.de>
22440
22441         * params.def (lto-min-partition): Fix typo.
22442
22443 2011-03-21  Richard Guenther  <rguenther@suse.de>
22444
22445         PR c/47939
22446         * c-decl.c (grokdeclarator): Drop to the main variant only
22447         for array types.  Drop flag_gen_aux_info check.
22448
22449 2011-03-21  Richard Guenther  <rguenther@suse.de>
22450
22451         PR translation/47911
22452         * params.def (lto-partitions): Fix typo.
22453         (lto-min-partition): Fix wording.
22454
22455 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
22456
22457         * config/rs6000/t-freebsd: Remove duplication from file.
22458
22459 2011-03-21  Richard Guenther  <rguenther@suse.de>
22460
22461         PR middle-end/47661
22462         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
22463
22464 2011-03-21  Richard Guenther  <rguenther@suse.de>
22465
22466         PR lto/48210
22467         * params.def (lto-partitions): Require at least 1 partition.
22468
22469 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22470
22471         * gthr-solaris.h: Remove.
22472         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
22473         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
22474         (LIB_SPEC): Likewise.
22475         * config/sol2.opt (threads): Remove.
22476         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
22477         (sparc*-*-solaris2*): Likewise.
22478         * configure.ac (enable_threads): Enable solaris support.
22479         * configure: Regenerate.
22480         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
22481         * doc/install.texi (Configuration, --enable-threads=lib): Remove
22482         solaris.
22483
22484 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22485
22486         * config.gcc: Obsolete *-*-solaris2.8*.
22487         * doc/install.texi (Specific, *-*-solaris2*): Document it.
22488
22489 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22490
22491         PR bootstrap/48135
22492         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
22493         reference.  Solaris 8 perl works.
22494
22495 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22496
22497         PR bootstrap/48135
22498         * doc/install.texi (Prerequisites): Move jar etc. up.
22499         Explain support library version requirements.
22500
22501 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22502
22503         PR bootstrap/48135
22504         * doc/install.texi (Prerequisites): Move Perl to build
22505         requirements.  Always necessary on Solaris 2 with Sun ld.
22506
22507 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22508
22509         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
22510         binutils 2.21.
22511         (Specific, i?86-*-solaris2.[89]): Likewise.
22512         (Specific, i?86-*-solaris2.10): Likewise.
22513         (Specific, mips-sgi-irix6): Likewise.
22514         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
22515         Update for binutils 2.21.
22516
22517 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22518
22519         * configure.ac (gcc_cv_lto_plugin): Fix typo.
22520         Allow -fuse-linker-plugin for non-default plugin linker.
22521         * configure: Regenerate.
22522
22523 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
22524
22525         PR bootstrap/48167
22526         * gengtype.c (files_rules): Added rule for cp/parser.h.
22527
22528 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22529
22530         PR target/48213
22531         * config/s390/s390.c (s390_delegitimize_address): Don't call
22532         lowpart_subreg if orig_x has BLKmode.
22533
22534 2011-03-21  Kai Tietz  <ktietz@redhat.com>
22535
22536         PR target/12171
22537         * doc/plugins.texi: Adjust documentation for plugin register_callback.
22538         * tree.h (attribute_spec): Add new member affects_type_identity.
22539         * attribs.c (empty_attribute_table): Adjust attribute_spec
22540         initializers.
22541         * config/alpha/alpha.c: Likewise.
22542         * config/arc/arc.c: Likewise.
22543         * config/arm/arm.c: Likewise.
22544         * config/avr/avr.c: Likewise.
22545         * config/bfin/bfin.c: Likewise.
22546         * config/crx/crx.c: Likewise.
22547         * config/darwin.h: Likewise.
22548         * config/h8300/h8300.c: Likewise.
22549         * config/i386/cygming.h: Likewise.
22550         * config/i386/i386.c: Likewise.
22551         * config/ia64/ia64.c: Likewise.
22552         * config/m32c/m32c.c: Likewise.
22553         * config/m32r/m32r.c: Likewise.
22554         * config/m68hc11/m68hc11.c: Likewise.
22555         * config/m68k/m68k.c: Likewise.
22556         * config/mcore/mcore.c: Likewise.
22557         * config/mep/mep.c: Likewise.
22558         * config/microblaze/microblaze.c: Likewise.
22559         * config/mips/mips.c: Likewise.
22560         * config/rs6000/rs6000.c: Likewise.
22561         * config/rx/rx.c: Likewise.
22562         * config/sh/sh.c: Likewise.
22563         * config/sol2.h: Likewise.
22564         * config/sparc/sparc.c: Likewise.
22565         * config/spu/spu.c: Likewise.
22566         * config/stormy16/stormy16.c: Likewise.
22567         * config/v850/v850.c: Likewise.
22568
22569 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
22570
22571         * simplify-rtx.c (simplify_binary_operation_1): Handle
22572         (xor (and A B) C) case when B and C are both constants.
22573
22574 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
22575
22576         * tree-dfa.c (add_referenced_var): Fix typo in comment.
22577
22578 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
22579
22580         PR bootstrap/48168
22581         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
22582
22583 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
22584
22585         PR rtl-optimization/48156
22586         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
22587         assume df and df_lr are not NULL.
22588
22589 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22590
22591         PR debug/48023
22592         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
22593         between a call and its CALL_ARG_LOCATION note.
22594
22595 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
22596
22597         PR debug/48178
22598         * config/sh/sh.c (find_barrier): Don't emit a constant pool
22599         between a call and its corresponding CALL_ARG_LOCATION note.
22600
22601 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
22602
22603         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
22604         instead of loop. Use HARD_REGISTER_NUM_P predicate.
22605         * haifa-sched.c (setup_ref_regs): Ditto.
22606         * caller-save.c (add_used_regs_1): Ditto.
22607         * dse.c (look_for_hardregs): Ditto.
22608         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
22609         * sched-rgn.c (check_live_1): Ditto.
22610
22611 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22612
22613         * c-decl.c (diagnose_mismatched_decls): Give an error for
22614         redefining a typedef with variably modified type.
22615
22616 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22617
22618         * c-decl.c (grokfield): Don't allow typedefs for structures or
22619         unions with no tag by default.
22620         * doc/extend.texi (Unnamed Fields): Update.
22621
22622 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
22623
22624         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
22625         Rewrite using indirect functions.
22626         (lwp_slwpcb): Ditto.
22627         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
22628         (avx_vinsertf128<mode>): Ditto.
22629
22630 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22631
22632         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
22633         unspecs.
22634
22635 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22636
22637         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
22638         splitting between a call and its corresponding CALL_ARG_LOCATION note.
22639
22640 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
22641
22642         PR rtl-optimization/48170
22643         * gcse.c (hoist_code): Remove bogus asserts.
22644
22645 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
22646
22647         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
22648         computation for prologue/epilogue.
22649
22650 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22651
22652         * Makefile.in (check-consistency): Remove.
22653
22654 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
22655
22656         PR debug/48176
22657         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
22658         arange_table_in_use is 0, but either text_section_used or
22659         cold_text_section_used is true.  Don't call it if
22660         !info_section_emitted.
22661
22662 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
22663
22664         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
22665         FUNCTION_VALUE_REGNO_P): Remove.
22666         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
22667         Remove.
22668         * config/avr/avr.c (avr_ret_register): Make static inline.
22669         (avr_function_value_regno_p): New function.
22670         (avr_libcall_value): Make static. Add 'func' argument.
22671         (avr_function_value): Make static. Rename 'func' argument to
22672         'fn_decl_or_type', forward it to avr_libcall_value. Call
22673         avr_ret_register function instead of RET_REGISTER macro.
22674         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22675
22676 2011-03-18  Jason Merrill  <jason@redhat.com>
22677
22678         PR c++/23372
22679         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
22680
22681 2011-03-18  Richard Guenther  <rguenther@suse.de>
22682
22683         * doc/install.texi (--enable-gold): Remove.
22684         (--with-plugin-ld): Document.
22685         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
22686
22687 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
22688
22689         PR middle-end/47790
22690         * expr.c (optimize_bitfield_assignment_op): Revamp to work
22691         again after expansion changes.
22692
22693 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
22694
22695         * combine.c (try_combine): Do simplification only call of
22696         subst() on i2 even when i1 is present. Update comments.
22697
22698 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
22699
22700         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
22701         and UNSPEC_PCREL_SYMOFF.
22702
22703 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22704
22705         * config/s390/s390.md: Use define_c_enum for the unspec constant
22706         definitions.
22707
22708 2011-03-18  Richard Henderson  <rth@redhat.com>
22709             Jakub Jelinek  <jakub@redhat.com>
22710
22711         PR bootstrap/48161
22712         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
22713         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
22714
22715 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
22716
22717         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22718         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
22719         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
22720         Change return type to bool.
22721         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22722
22723 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22724
22725         PR debug/48163
22726         * var-tracking.c (prepare_call_arguments): If CALL target
22727         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
22728         pc instead of looking it up using cselib_lookup and use
22729         Pmode for it if x has VOIDmode.
22730         * dwarf2out.c (gen_subprogram_die): If also both first and
22731         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
22732
22733         PR debug/48163
22734         * function.c (assign_parms): For data.passed_pointer parms
22735         use MEM of data.entry_parm instead of data.entry_parm itself
22736         as DECL_INCOMING_RTL.
22737         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
22738         also when passed and declared mode is the same, DECL_RTL
22739         is a MEM with pseudo as address and DECL_INCOMING_RTL is
22740         a MEM too.
22741
22742 2011-03-16  Jeff Law  <law@redhat.com>
22743
22744         PR rtl-optimization/37273
22745         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22746         handle them like argument loads from stack slots.  Do not double
22747         count memory for memory constants and argument loads from stack slots.
22748
22749 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22750
22751         PR debug/48160
22752         * var-tracking.c (prepare_call_arguments): Check SUBREG.
22753
22754 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22755
22756         PR target/48171
22757         * config/i386/i386.opt: Add Save to -mavx and -mfma.
22758
22759 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22760
22761         PR bootstrap/48153
22762         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
22763         if dwarf_strict.
22764         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
22765         Clear call_arg_locations and call_arg_loc_last always.
22766
22767         PR middle-end/48152
22768         * var-tracking.c (prepare_call_arguments): If argument needs to be
22769         passed by reference, adjust argtype and mode.
22770
22771 2011-03-17  Richard Guenther  <rguenther@suse.de>
22772
22773         PR middle-end/48134
22774         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
22775         a value make sure to fold the statement.
22776
22777 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
22778
22779         PR target/43872
22780         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
22781         return condition with !cfun->calls_alloca.
22782
22783 2011-03-17  Richard Guenther  <rguenther@suse.de>
22784
22785         PR bootstrap/48148
22786         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22787         origin for decls in other ltrans units.
22788         (input_varpool_node): Likewise.
22789
22790 2011-03-17  Richard Guenther  <rguenther@suse.de>
22791
22792         PR middle-end/48165
22793         * tree-object-size.c (compute_object_offset): Properly return
22794         the offset operand of MEM_REFs as sizetype.
22795
22796 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22797
22798         PR rtl-optimization/48141
22799         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
22800         * dse.c: Include params.h.
22801         (active_local_stores_len): New variable.
22802         (add_wild_read, dse_step1): Clear it when setting active_local_stores
22803         to NULL.
22804         (record_store, check_mem_read_rtx): Decrease it when removing
22805         from the chain.
22806         (scan_insn): Likewise.  Increase it when adding to chain, if it
22807         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
22808         set active_local_stores to NULL before the addition.
22809         * Makefile.in (dse.o): Depend on $(PARAMS_H).
22810
22811         PR rtl-optimization/48141
22812         * dse.c (record_store): If no positions are needed in an insn
22813         that cannot be deleted, at least unchain it from active_local_stores.
22814
22815 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
22816
22817         PR debug/47510
22818         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
22819         (lookup_type_die_strip_naming_typedef): ... here.
22820         (get_context_die): Use it.
22821         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
22822         the anonymous struct named by the naming typedef.
22823
22824 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
22825
22826         PR target/48154
22827         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
22828         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22829
22830 2011-03-16  Jeff Law  <law@redhat.com>
22831
22832         * tree-vrp.c (identify_jump_threads): Slightly simplify type
22833         check for operands of conditional.  Allow type to be a pointer.
22834
22835 2011-03-16  Richard Guenther  <rguenther@suse.de>
22836
22837         PR tree-optimization/48149
22838         * fold-const.c (fold_binary_loc): Fold
22839         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
22840
22841 2011-03-16  Richard Guenther  <rguenther@suse.de>
22842
22843         PR tree-optimization/26134
22844         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
22845         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
22846         (non_rewritable_mem_ref_base): Handle complex type component
22847         accesses, constrain offsets for vector and complex extracts
22848         more properly.
22849
22850 2011-03-16  Richard Guenther  <rguenther@suse.de>
22851
22852         PR tree-optimization/48146
22853         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
22854         operands avoiding the need for renaming.
22855
22856 2011-03-16  Richard Guenther  <rguenther@suse.de>
22857
22858         * gimple-fold.c (maybe_fold_reference): Open-code relevant
22859         constant folding.  Move MEM_REF canonicalization first.
22860         Rely on fold_const_aggregate_ref for initializer folding.
22861         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
22862
22863 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22864
22865         PR middle-end/48136
22866         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
22867         arg0/arg1 or their arguments are always fold converted to matching
22868         types.
22869
22870         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
22871         to nargs.
22872
22873 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22874
22875         PR lto/46944
22876         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
22877         Handle in-tree gold.
22878         (ld_vers): Extract binutils version for gold.
22879         (gcc_cv_ld_hidden): Handle gold here.
22880         (gcc_cv_lto_plugin): Determine level of linker plugin support.
22881         * configure: Regenerate.
22882         * config.in: Regenerate.
22883         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
22884         -fuse-linker-plugin otherwise.
22885         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
22886         (LINK_COMMAND_SPEC): Use it.
22887         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
22888
22889 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22890
22891         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
22892         * calls.c: Remove debug.h include.
22893         (emit_call_1): Don't call virtual_call_token debug hook.
22894         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
22895         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
22896         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
22897         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
22898         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
22899         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
22900         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
22901         dwarf2out_virtual_call): Remove.
22902         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
22903         copy_call_info and virtual_call hooks.
22904         (dwarf2out_init): Don't initialize vcall_insn_table,
22905         debug_dcall_section and debug_vcall_section.
22906         (prune_unused_types): Don't mark nodes from dcall_table.
22907         (dwarf2out_finish): Don't output dcall or vcall tables.
22908         * final.c (final_scan_insn): Don't call direct_call or
22909         virtual_call debug hooks.
22910         * debug.h (struct gcc_debug_hooks): Remove direct_call,
22911         virtual_call_token, copy_call_info and virtual_call hooks.
22912         (debug_nothing_uid): Remove prototype.
22913         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
22914         copy_call_info and virtual_call hooks.
22915         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
22916         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
22917         * debug.c (do_nothing_debug_hooks): Likewise.
22918         (debug_nothing_uid): Remove.
22919         * doc/invoke.texi (-fenable-icf-debug): Remove.
22920         * common.opt (-fenable-icf-debug): Likewise.
22921
22922         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
22923         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
22924         call's MEM.  Handle functions returning aggregate through a hidden
22925         first pointer.  For virtual calls add clobbered pc to call arguments
22926         chain.
22927         * dwarf2out.c (gen_subprogram_die): Emit
22928         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
22929         can't be emitted.
22930
22931         PR debug/45882
22932         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
22933         * rtl.h (ENTRY_VALUE_EXP): Define.
22934         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
22935         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
22936         * print-rtl.c (print_rtx): Likewise.
22937         * gengtype.c (adjust_field_rtx_def): Likewise.
22938         * var-tracking.c (vt_add_function_parameter): Adjust
22939         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
22940         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
22941         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
22942         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
22943         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
22944
22945         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
22946         Call var_location debug hook even on CALL_INSNs.
22947         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
22948         * rtl.def (ENTRY_VALUE): New.
22949         * dwarf2out.c: Include cfglayout.h.
22950         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
22951         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
22952         (struct call_arg_loc_node): New type.
22953         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
22954         tail_call_site_count): New variables.
22955         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
22956         DW_TAG_GNU_call_site_parameter.
22957         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
22958         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
22959         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
22960         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
22961         and DW_AT_GNU_all_source_call_sites.
22962         (mem_loc_descriptor): Handle ENTRY_VALUE.
22963         (add_src_coords_attributes): Don't add enything if
22964         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
22965         (dwarf2out_abstract_function): Save and clear call_arg_location,
22966         call_site_count and tail_call_site_count around dwarf2out_decl call.
22967         (gen_call_site_die): New function.
22968         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
22969         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
22970         (dwarf2out_function_decl): Clear call_arg_locations,
22971         call_arg_loc_last, set call_site_count and tail_call_site_count
22972         to -1 and free block_map.
22973         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
22974         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
22975         followed by any real instructions.
22976         (dwarf2out_begin_function): Set call_site_count and
22977         tail_call_site_count to 0.
22978         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
22979         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
22980         attempt to force a DIE for it and worst case remove the attribute.
22981         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
22982         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
22983         the decl itself.
22984         * var-tracking.c: Include tm_p.h.
22985         (vt_stack_adjustments): For calls call note_register_arguments.
22986         (argument_reg_set): New variable.
22987         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
22988         ensure the VALUE is resolved.
22989         (call_arguments): New variable.
22990         (prepare_call_arguments): New function.
22991         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
22992         (struct expand_loc_callback_data): Add ignore_cur_loc field.
22993         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
22994         always use the best expression.
22995         (vt_expand_loc): Add ignore_cur_loc argument.
22996         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
22997         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
22998         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
22999         note for all calls.
23000         (vt_add_function_parameter): Use cselib_lookup_from_insn.
23001         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
23002         argument.  Don't call cselib_preserve_only_values and
23003         cselib_reset_table.
23004         (note_register_arguments): New function.
23005         (vt_initialize): Compute argument_reg_set.  Call
23006         vt_add_function_parameters before processing basic blocks instead of
23007         afterwards.  For calls call prepare_call_arguments before calling
23008         cselib_process_insn.
23009         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
23010         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
23011         (var-tracking.o): Depend on $(TM_P_H).
23012         * cfglayout.h (insn_scope): New prototype.
23013         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
23014         * cfglayout.c (insn_scope): No longer static.
23015         * insn-notes.def (CALL_ARG_LOCATION): New.
23016         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
23017         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
23018         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
23019         nothing for DECL_EXTERNAL BLOCK_VARS.
23020
23021 2011-03-16  Alan Modra  <amodra@gmail.com>
23022
23023         PR target/45844
23024         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
23025         create invalid offset address for vsx splat insn.
23026         * config/rs6000/predicates.md (splat_input_operand): New.
23027         * config/rs6000/vsx.md (vsx_splat_*): Use it.
23028
23029 2011-03-15  Xinliang David Li  <davidxl@google.com>
23030
23031         PR c/47837
23032         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
23033         (normalize_preds): New function.
23034         (is_use_properly_guarded): Normalize def predicates.
23035
23036 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23037
23038         PR target/46788
23039         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
23040         in the output template.
23041
23042 2011-03-15  Richard Guenther  <rguenther@suse.de>
23043
23044         PR middle-end/47650
23045         * tree-pretty-print.c (dump_function_declaration): Properly
23046         dump unprototyped and varargs function types.
23047
23048 2011-03-15  Richard Guenther  <rguenther@suse.de>
23049
23050         PR tree-optimization/13954
23051         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
23052         and friends.
23053
23054 2011-03-15  Richard Guenther  <rguenther@suse.de>
23055
23056         PR tree-optimization/48037
23057         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
23058         selects into BIT_FIELD_REFs.
23059         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
23060         vector select.
23061
23062 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
23063
23064         PR tree-optimization/48129
23065         * builtins.c (fold_builtin_snprintf): Convert to type of
23066         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
23067         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
23068
23069 2011-03-15  Richard Guenther  <rguenther@suse.de>
23070
23071         PR tree-optimization/41490
23072         * tree-ssa-dce.c (propagate_necessity): Handle returns without
23073         value but with VUSE.
23074         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
23075         return statements.
23076         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
23077         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
23078         * tree-tailcall.c (find_tail_calls): Ignore returns.
23079
23080 2011-03-15  Richard Guenther  <rguenther@suse.de>
23081
23082         PR middle-end/48031
23083         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
23084         or variable-indexed array accesses when in gimple form.
23085
23086 2011-03-15  Richard Guenther  <rguenther@suse.de>
23087
23088         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
23089
23090 2011-03-15  Alan Modra  <amodra@gmail.com>
23091
23092         PR target/48032
23093         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
23094         presume symbol_refs without a symbol_ref_decl are suitably
23095         aligned, nor other trees we may see here.  Handle anchor symbols.
23096         (legitimate_constant_pool_address_p): Comment.  Add mode param.
23097         Check cmodel=medium addresses.  Adjust all calls.
23098         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
23099         creating cmodel=medium optimized access to locals.
23100         * config/rs6000/constraints.md (R): Pass QImode to
23101         legitimate_constant_pool_address_p.
23102         * config/rs6000/predicates.md (input_operand): Pass mode to
23103         legitimate_constant_pool_address_p.
23104         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
23105         Update prototype.
23106
23107 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23108
23109         PR target/48053
23110         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
23111         64-bit constants being loaded into registers other than GPRs such
23112         as loading 0 into a VSX register.
23113
23114 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23115
23116         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
23117
23118 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23119
23120         PR middle-end/47917
23121         * builtins.c (fold_builtin_snprintf): New function.
23122         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
23123         (fold_builtin_4): Likewise.
23124
23125         PR middle-end/38878
23126         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
23127         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
23128         and C - X == X also strip nops from +/-/p+ operand.
23129         When optimizing -X == C, fold C to arg0's type.
23130
23131         PR debug/47946
23132         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
23133         emit it as add_AT_int instead of add_AT_unsigned.
23134
23135 2011-03-14  Tom Tromey  <tromey@redhat.com>
23136
23137         * unwind-dw2.c: Include sys/sdt.h if it exists.
23138         (_Unwind_DebugHook): Use STAP_PROBE2.
23139         * config.in, configure: Rebuild.
23140         * configure.ac: Check for sys/sdt.h.
23141
23142 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
23143
23144         * config/i386/i386.md (ROUND_FLOOR): New constant.
23145         (ROUND_CEIL): Ditto.
23146         (ROUND_TRUNC): Ditto.
23147         (ROUND_MXCSR): Ditto.
23148         (ROUND_NO_EXC): Ditto.
23149         (rint<mode>2): Use new defines instead of numerical constants.
23150         (floor<mode>2): Ditto.
23151         (ceil<mode>2): Ditto.
23152         (btrunc<mode>2): Ditto.
23153         * config/i386/i386-builtin-types.def: Define ROUND function type
23154         aliases.
23155         * config/i386/i386.c (enum ix86_builtins): Add
23156         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
23157         (struct builtin_description): Add
23158         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
23159         (ix86_expand_sse_round): New static function.
23160         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
23161         function types.
23162         (ix86_builtin_vectorized_function): Handle
23163         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23164
23165 2011-03-14  Tom Tromey  <tromey@redhat.com>
23166
23167         * c-parser.c (c_parser_asm_string_literal): Clear
23168         warn_overlength_strings.
23169
23170 2011-03-14  Tom Tromey  <tromey@redhat.com>
23171
23172         * c-parser.c (disable_extension_diagnostics): Save
23173         warn_overlength_strings.
23174         (restore_extension_diagnostics): Restore warn_overlength_strings.
23175
23176 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23177
23178         * BASE-VER: Change to 4.7.0.
23179
23180 2011-03-14  Richard Guenther  <rguenther@suse.de>
23181
23182         PR middle-end/48098
23183         * tree.c (build_vector_from_val): Adjust assert to requirements
23184         and reality.
23185
23186 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23187
23188         PR bootstrap/48102
23189         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
23190
23191 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
23192
23193         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
23194         terms of target_flags_explicit. Adjust copyright year.
23195
23196         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
23197         * config/rs6000/t-freebsd: New file. Add override for
23198         LIB2FUNCS_EXTRA.
23199
23200 2011-03-13  Chris Demetriou  <cgd@google.com>
23201
23202         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
23203         (-fno-diagnostics-show-option): this, to reflect current default.
23204         (-Werror=): Update text about -fno-diagnostics-show-option.
23205
23206 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
23207
23208         PR target/48053
23209         * config/rs6000/predicates.md (easy_vector_constant_add_self,
23210         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
23211         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
23212         mode is not V2DImode or V2DFmode.
23213         (vspltis_constant): Do not handle V2DImode and V2DFmode.
23214         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
23215         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
23216         registers to 0.
23217         (movdi_internal64): Likewise.
23218
23219 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
23220
23221         PR tree-optimization/47127
23222         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
23223         parameter.
23224         (set_cloog_options): Same.
23225         (scop_to_clast): Same.
23226         (print_clast_stmt): Do not call cloog_state_malloc and
23227         cloog_state_free.
23228         (print_generated_program): Same.
23229         (gloog): Same.
23230         * graphite-clast-to-gimple.h (cloog_state): Declared.
23231         (scop_to_clast): Adjust declaration.
23232         * graphite.c (cloog_state): Defined here.
23233         (graphite_initialize): Call cloog_state_malloc.
23234         (graphite_finalize): Call cloog_state_free.
23235
23236 2011-03-11  Jason Merrill  <jason@redhat.com>
23237
23238         * attribs.c (lookup_attribute_spec): Take const_tree.
23239         * tree.h: Adjust.
23240
23241 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
23242
23243         * config/sparc/sparc.c (sparc_option_override): Use
23244         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
23245
23246 2011-03-11  Richard Guenther  <rguenther@suse.de>
23247
23248         PR tree-optimization/48067
23249         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
23250         multiplication result will be only used once on the target
23251         stmt.
23252
23253 2011-03-11  Richard Guenther  <rguenther@suse.de>
23254
23255         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
23256
23257 2011-03-11  Richard Guenther  <rguenther@suse.de>
23258
23259         PR lto/48073
23260         * tree.c (find_decls_types_r): Do not walk types only reachable
23261         from IDENTIFIER_NODEs.
23262
23263 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23264
23265         PR middle-end/48044
23266         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
23267         all vnode->force_output nodes as needed.
23268
23269 2011-03-11  Jason Merrill  <jason@redhat.com>
23270
23271         PR c++/48069
23272         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
23273         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
23274
23275 2011-03-11  Martin Jambor  <mjambor@suse.cz>
23276
23277         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
23278         cgraph_node.
23279
23280 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23281
23282         PR tree-optimization/48063
23283         * ipa-inline.c (cgraph_decide_inlining): Don't try to
23284         inline functions called once if !tree_can_inline_p (node->callers).
23285
23286 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
23287
23288         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
23289         extra_objs.
23290         * config/score/score3.c: Delete.
23291         * config/score/score3.h: Delete.
23292         * config/score/mul-div.S: Delete.
23293         * config/score/sfp-machine.h: Add new file.
23294         * config/score/constraints.md: Add new file.
23295         * config/score/t-score-softfp: Add new file.
23296         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
23297         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
23298         (score7_extra_constraint): Delete.
23299         (score7_option_override): Remove unused code.
23300         * config/score/score.c: Remove score3 and score5 define and code.
23301         * config/score/score.h: Remove score3 and score5 define and code.
23302         * config/score/score.md: Remove score3 template and unusual insn.
23303         * config/score/score.opt: Remove score3 and score5 options.
23304
23305 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23306
23307         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
23308         when _HPUX_SOURCE is defined.
23309         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
23310
23311 2011-03-10  Jason Merrill  <jason@redhat.com>
23312
23313         PR c++/48029
23314         * stor-layout.c (layout_type): Don't set structural equality
23315         on arrays of incomplete type.
23316         * tree.c (type_hash_eq): Handle comparing them properly.
23317
23318 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
23319
23320         PR debug/48043
23321         * config/s390/s390.c (s390_delegitimize_address): Make sure the
23322         result mode matches original rtl mode.
23323
23324 2011-03-10  Nick Clifton  <nickc@redhat.com>
23325
23326         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
23327         (andsi3, andsi3_flags): Fix timings for three operand alternative.
23328
23329 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
23330
23331         PR rtl-optimization/47866
23332         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
23333         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
23334         if target wasn't scalar.
23335         * function.c (assign_stack_temp_for_type): Assert that neither
23336         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
23337         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
23338         macro.
23339         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
23340
23341 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23342
23343         * config/s390/s390-protos.h (s390_label_align): New prototype.
23344         * config/s390/s390.c (s390_label_align): New function.
23345         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
23346
23347 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
23348
23349         PR target/47755
23350         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
23351         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
23352         (output_vec_const_move): Ditto.
23353
23354 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
23355
23356         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
23357         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
23358         * config/mips/mips.c (mips_preferred_reload_class): Make static.
23359         Change 'rclass' argument and result type to reg_class_t.
23360         (TARGET_PREFERRED_RELOAD_CLASS): Define.
23361
23362 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
23363
23364         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23365         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
23366         (TARGET_MEMORY_MOVE_COST): Define.
23367         (avr_register_move_cost, avr_memory_move_cost): New Functions.
23368
23369 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
23370
23371         PR debug/47881
23372         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
23373         removed anything.
23374
23375         PR tree-optimization/48022
23376         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
23377         for EQ/NE_EXPR.
23378
23379 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
23380
23381         PR debug/47991
23382         * var-tracking.c (find_use_val): Return NULL for
23383         cui->sets && cui->store_p BLKmode MEMs.
23384
23385 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
23386
23387         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
23388         Remove.
23389         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
23390         xstormy16_print_operand_address): Remove.
23391         * config/stormy16/stormy16.c (xstormy16_print_operand,
23392         xstormy16_print_operand_address): Make static.
23393         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23394
23395 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
23396
23397         PR target/47862
23398         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23399         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
23400         before definition.
23401
23402 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
23403
23404         PR bootstrap/48000
23405         * cfgloopmanip.c (fix_bb_placements): Return immediately
23406         if FROM is BASE_LOOP's header.
23407
23408 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
23409
23410         * gimplify.c (gimplify_function_tree): Fix building calls
23411         to __builtin_return_address.
23412
23413 2011-03-07  Alan Modra  <amodra@gmail.com>
23414
23415         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
23416         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
23417         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
23418         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
23419         return_mode args.
23420         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
23421         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
23422         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
23423         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
23424         * config/rs6000/rs6000.c
23425         (rs6000_elf_end_indicate_exec_stack): Rename to..
23426         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
23427         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
23428         (rs6000_file_start): ..here.
23429         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
23430         file scope variables.
23431         (call_ABI_of_interest): New function.
23432         (init_cumulative_args): Set above vars when function return value
23433         is a float, vector, or small struct.
23434         (rs6000_function_arg_advance_1): Likewise for function args.
23435         (rs6000_va_start): Set rs6000_passes_float if variable arg function
23436         references float args.
23437
23438 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
23439
23440         * doc/cfg.texi: Remove "See" before @ref.
23441         * doc/invoke.texi: Likewise.
23442
23443 2011-03-05  Jason Merrill  <jason@redhat.com>
23444
23445         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
23446
23447 2011-03-05  Anthony Green  <green@moxielogic.com>
23448
23449         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
23450
23451 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
23452
23453         PR rtl-optimization/47899
23454         * cfgloopmanip.c (fix_bb_placements): Fix first argument
23455         to flow_loop_nested_p when moving the loop upward.
23456
23457 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
23458
23459         PR target/47719
23460         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
23461
23462 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
23463
23464         PR tree-optimization/47967
23465         * ipa-cp.c (build_const_val): Return NULL instead of creating
23466         VIEW_CONVERT_EXPR for mismatching sizes.
23467         (ipcp_create_replace_map): Return NULL if build_const_val failed.
23468         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
23469         give up on versioning.
23470
23471 2011-03-05  Alan Modra  <amodra@gmail.com>
23472
23473         PR target/47986
23474         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23475         full cmodel medium/large lo_sum + high addresses.
23476
23477 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23478
23479         * config/s390/s390.c (s390_decompose_address): Reject non-literal
23480         pool references in UNSPEC_LTREL_OFFSET.
23481
23482 2011-03-04  Jan Hubicka  <jh@suse.cz>
23483
23484         PR lto/47497
23485         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
23486         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
23487         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
23488         Add node pointers.
23489         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
23490         cgraph_add_thunk): Add node pointers.
23491         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
23492         associated to right node.
23493         (input_node): Update use of cgraph_same_body_alias
23494         and cgraph_add_thunk.
23495
23496 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23497
23498         * config/i386/i386.opt (mprefer-avx128): New flag.
23499         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
23500         modes when the flag -mprefer-avx128 is on.
23501
23502 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
23503
23504         * dwarf2out.c (compare_loc_operands): Fix address handling.
23505
23506 2011-03-04  Alan Modra  <amodra@gmail.com>
23507
23508         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
23509
23510 2011-03-04  Richard Guenther  <rguenther@suse.de>
23511
23512         PR middle-end/47968
23513         * expmed.c (extract_bit_field_1): Prefer vector modes that
23514         vec_extract patterns can handle.
23515
23516 2011-03-04  Richard Guenther  <rguenther@suse.de>
23517
23518         PR middle-end/47975
23519         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
23520
23521 2011-03-04  Richard Henderson  <rth@redhat.com>
23522
23523         * explow.c (emit_stack_save): Remove 'after' parameter.
23524         (emit_stack_restore): Likewise.
23525         * expr.h: Update to match.
23526         * builtins.c, calls.c, stmt.c: Likewise.
23527         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
23528         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
23529         * function.c (expand_function_end): Insert the emit_stack_save
23530         sequence before parm_birth_insn instead of after.
23531
23532 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
23533
23534         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
23535         (ssse3_pmaddubsw128): Ditto.
23536         (ssse3_pmaddubsw): Ditto.
23537
23538 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
23539
23540         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
23541
23542 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
23543
23544         PR c/47963
23545         * gimplify.c (omp_add_variable): Only call omp_notice_variable
23546         on TYPE_SIZE_UNIT if it is a DECL.
23547
23548         PR debug/47283
23549         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
23550         first operand is not is_gimple_mem_ref_addr, try to fold it.
23551         If the operand still isn't is_gimple_mem_ref_addr, clear
23552         MEM_EXPR on op0.
23553
23554 2011-03-03  Richard Guenther  <rguenther@suse.de>
23555
23556         PR middle-end/47283
23557         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
23558         match comment.
23559         (refs_may_alias_p_1): For release branches return true if
23560         we are confused by our input.
23561
23562 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23563
23564         * config/s390/s390.c (s390_function_value): Rename to ...
23565         (s390_function_and_libcall_value): ... this.
23566         (s390_function_value): New function.
23567         (s390_libcall_value): New function.
23568         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
23569         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
23570         target macro definitions.
23571         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
23572
23573 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
23574
23575         * config/i386/freebsd64.h (CC1_SPEC): Define.
23576         * config/i386/linux64.h (CC1_SPEC): Define.
23577         * config/i386/x86-64.h (CC1_SPEC): Don't define.
23578
23579 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
23580
23581         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23582         Remove.
23583         * config/stormy16/stormy16.c: Include reload.h.
23584         (xstormy16_memory_move_cost): New function.
23585         (TARGET_MEMORY_MOVE_COST): Define.
23586
23587 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
23588
23589         PR rtl-optimization/47925
23590         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
23591         with side effects.  Remove the more-specific check for volatile asms.
23592
23593 2011-03-02  Alan Modra  <amodra@gmail.com>
23594
23595         PR target/47935
23596         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
23597         toc relative addresses for valid offsets.
23598
23599 2011-03-01  Richard Guenther  <rguenther@suse.de>
23600
23601         PR tree-optimization/47890
23602         * tree-vect-loop.c (get_initial_def_for_induction): Set
23603         related stmt properly.
23604
23605 2011-03-01  Richard Guenther  <rguenther@suse.de>
23606
23607         PR lto/47924
23608         * lto-streamer.c (lto_record_common_node): Also register
23609         the canonical type.
23610
23611 2011-03-01  Richard Guenther  <rguenther@suse.de>
23612
23613         PR lto/46911
23614         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23615         Do not stream DECL_ABSTRACT_ORIGIN.
23616         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23617         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23618         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23619         Do not stream DECL_ABSTRACT_ORIGIN.
23620         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23621         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23622
23623 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
23624
23625         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
23626         FUNCTION_VALUE_REGNO_P): Remove.
23627         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
23628         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
23629         Add 'outgoing' argument.
23630         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
23631         function.
23632         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23633         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23634
23635 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
23636
23637         PR debug/28047
23638         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
23639         (lookup_filename): Likewise.
23640         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
23641
23642 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
23643             Jakub Jelinek  <jakub@redhat.com>
23644
23645         PR middle-end/47893
23646         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
23647         (assign_stack_local_1): Change last argument type to int.
23648         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
23649         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
23650         don't record padding space into frame_space_list nor use those areas.
23651         (assign_stack_local): Adjust caller.
23652         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
23653         of assign_stack_local, pass 0 as last argument.
23654         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
23655         callers.
23656
23657 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
23658
23659         PR debug/47283
23660         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
23661         Use target address_mode and pointer_mode hooks instead of hardcoded
23662         Pmode and ptr_mode.  Handle some simple cases of extending if
23663         POINTERS_EXTEND_UNSIGNED < 0.
23664         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
23665         Call convert_debug_memory_address.
23666         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
23667         convert_debug_memory_address.
23668
23669         PR middle-end/46790
23670         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
23671         * configure: Regenerated.
23672         * config.in: Regenerated.
23673         * varasm.c (default_function_section): Return NULL
23674         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
23675
23676 2011-02-28  Martin Jambor  <mjambor@suse.cz>
23677
23678         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
23679         the description to match the printed values.
23680
23681 2011-02-28  Richard Guenther  <rguenther@suse.de>
23682
23683         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
23684         of the copied scope tree.
23685
23686 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23687
23688         * doc/extend.texi (Function Attributes): Avoid deeply (and
23689         wrongly) nested tables.
23690
23691 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
23692
23693         PR middle-end/47903
23694         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
23695         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
23696         r isn't op0 nor op1.
23697
23698 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23699
23700         * config/avr/avr.md: Remove magic comment for emacs.
23701
23702 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23703
23704         PR target/45261
23705         * config/avr/avr.c (avr_option_override): Use error on bad options.
23706         (avr_help): New function.
23707         (TARGET_HELP): Define.
23708
23709 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
23710
23711         PR target/42240
23712         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
23713         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
23714
23715 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
23716
23717         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
23718         (ARM Options): Ditto.
23719         (i386 and x86-64 Options): Ditto.
23720         (RX Options): Ditto.
23721         (SPARC Options): Ditto.
23722
23723 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
23724
23725         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
23726         FreeBSD 6 and later.  Generally use cpu generic.
23727
23728 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23729
23730         * doc/cpp.texi: Update copyright years.
23731
23732 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
23733
23734         PR target/46898
23735         * config/lm32/lm32.md (ashrsi3): Added needed variable.
23736
23737 2011-02-25  Jon Beniston  <jon@beniston.com>
23738
23739         PR target/46898
23740         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
23741         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
23742         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
23743         (lm32_block_move_inline): Add type cast to remove warning.
23744         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
23745         (gen_int_relational): Move declarations to start of function.
23746
23747 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23748
23749         PR tree-optimization/45470
23750         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
23751         can throw internally only.
23752         * tree-vect-stmts.c (vectorizable_call): Likewise.
23753
23754 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
23755
23756         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
23757         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
23758         * config/stormy16/stormy16-protos.h
23759         (xstormy16_preferred_reload_class): Remove.
23760         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
23761         static. Change 'rclass' argument and return type to reg_class_t.
23762         (TARGET_PREFERRED_RELOAD_CLASS,
23763         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
23764
23765 2011-02-24  Richard Guenther  <rguenther@suse.de>
23766
23767         * lto-streamer-in.c (input_bb): Do not find referenced vars
23768         in debug statements.
23769
23770 2011-02-23  Jason Merrill  <jason@redhat.com>
23771
23772         * common.opt (fabi-version): Document v5 and v6.
23773
23774 2011-02-23  Richard Guenther  <rguenther@suse.de>
23775
23776         PR tree-optimization/47849
23777         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
23778
23779 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23780
23781         * opts-common.c (decode_cmdline_option): Print empty string
23782         argument as "" in decoded->orig_option_with_args_text.
23783         * gcc.c (execute): Print empty string argument as ""
23784         in the verbose output.
23785         (do_spec_1): Keep empty string argument.
23786
23787 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
23788
23789         * config.gcc: Declare score-* and crx-* obsolete.
23790
23791 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23792
23793         PR rtl-optimization/47763
23794         * web.c (web_main): Ignore naked clobber when replacing register.
23795
23796 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
23797
23798         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
23799         Remove.
23800
23801 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23802
23803         PR doc/47848
23804         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
23805
23806 2011-02-22  Mike Stump  <mikestump@comcast.net>
23807
23808         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
23809         assembler.
23810         * configure: Regenerate.
23811
23812 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
23813
23814         PR rtl-optimization/46002
23815         * ira-color.c (update_copy_costs): Change class intersection
23816         test to reg_class_contents[] test of 'hard_regno'.
23817
23818 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
23819
23820         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
23821         than Driver option.
23822         * config/hpux11.opt (mt): Likewise.
23823         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
23824         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
23825         * config/vax/elf.opt (mno-asm-pic): Likewise.
23826         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
23827
23828 2011-02-21  Mike Stump  <mikestump@comcast.net>
23829
23830         PR target/47822
23831         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
23832         tree so we can get save the type.
23833         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
23834         for CFString instead of trying to use past the end of the builtins.
23835         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
23836         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
23837         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
23838         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
23839         Rename to darwin_builtin_cfstring.
23840         (darwin_init_cfstring_builtins): Return the built type.
23841
23842 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
23843
23844         PR target/47840
23845         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
23846         (_mm256_insert_epi64): Use _mm_insert_epi64.
23847
23848 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
23849
23850         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23851         * config/stormy16/stormy16-protos.h
23852         (xstormy16_mode_dependent_address_p): Remove.
23853         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
23854         Make static. Change return type to bool. Change argument type to
23855         const_rtx. Remove dead code.
23856         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23857
23858 2011-02-21  Richard Guenther  <rguenther@suse.de>
23859
23860         PR lto/47820
23861         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23862         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23863         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
23864         TUs context.
23865         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23866         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23867
23868 2011-02-20  Richard Guenther  <rguenther@suse.de>
23869
23870         PR lto/47822
23871         * tree.c (free_lang_data_in_decl): Clean builtins from
23872         the TU decl BLOCK_VARS.
23873
23874 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
23875
23876         PR debug/47620
23877         PR debug/47630
23878         * haifa-sched.c (fix_tick_ready): Skip tick computation
23879         for debug insns.
23880
23881 2011-02-19  Richard Guenther  <rguenther@suse.de>
23882
23883         PR lto/47647
23884         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
23885         Remove lazy BLOCK_VARS streaming.
23886         (lto_input_ts_block_tree_pointers): Likewise.
23887         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
23888
23889 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23890
23891         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
23892
23893 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23894
23895         * config/i386/biarch32.h, config/i386/mach.h,
23896         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
23897
23898 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
23899
23900         PR target/47800
23901         * config/i386/i386.md (peephole2 for shift and plus): Use
23902         operands[1] original mode in the first insn.
23903
23904 2011-02-18  Mike Stump  <mikestump@comcast.net>
23905
23906         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
23907
23908 2011-02-18  Jan Hubicka  <jh@suse.cz>
23909
23910         PR middle-end/47788
23911         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
23912         to zero when the function is not inlinable at all.
23913
23914 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23915
23916         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
23917         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
23918         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
23919         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
23920         * config/pa/t-pa64: Likewise.
23921         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
23922
23923 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23924
23925         PR driver/47787
23926         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
23927
23928 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23929
23930         PR target/47792
23931         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
23932
23933 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
23934
23935         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
23936         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
23937         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
23938         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
23939         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
23940         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
23941         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
23942         m32r_load_postinc_p, m32r_store_preinc_predec_p,
23943         m32r_legitimate_address_p): New functions.
23944         * config/m32r/constraints.md (constraint "S"): Don't use
23945         STORE_PREINC_PREDEC_P.
23946         (constraint "U"): Don't use LOAD_POSTINC_P.
23947
23948 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
23949
23950         PR rtl-optimization/46178
23951         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
23952         compute ira_hard_regno_cover_class[].
23953
23954 2011-02-18  Richard Guenther  <rguenther@suse.de>
23955
23956         PR lto/47798
23957         * lto-streamer.h (lto_global_var_decls): Declare.
23958         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
23959         statics for global var processing.
23960
23961 2011-02-18  Richard Guenther  <rguenther@suse.de>
23962
23963         PR tree-optimization/47737
23964         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
23965         edge dominance check.
23966
23967 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23968
23969         PR debug/47780
23970         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
23971         avoid invalid rtx sharing.
23972
23973 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
23974
23975         * doc/cpp.texi (Obsolete Features): Add background on the
23976         origin of assertions.
23977
23978 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
23979
23980         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23981         objc_abi == 2.
23982         * config/darwin.c (output_objc_section_asm_op): Added support for
23983         ABI v1 and v2.
23984         (is_objc_metadata): New.
23985         (darwin_objc2_section): New.
23986         (darwin_objc1_section): New.
23987         (machopic_select_section): Added support for ABI v1 and v2.
23988         (darwin_emit_objc_zeroed): New.
23989         (darwin_output_aligned_bss): Detect objc metadata and treat it
23990         appropriately.
23991         (darwin_asm_output_aligned_decl_common): Same.
23992         (darwin_asm_output_aligned_decl_local): Same.
23993         * config/darwin-sections.def: Updated for ABI v1 and v2.
23994         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
23995         compiling Objective-C code for the NeXT runtime, default to using
23996         ABI version 0 for 32-bit, and version 2 for 64-bit.
23997
23998 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23999
24000         * common.opt (optimize_fast): New Variable.
24001         * opts.c (default_options_optimization): Use opts->x_optimize_fast
24002         instead of local variable ofast.
24003
24004 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
24005
24006         * doc/invoke.texi (fobjc-abi-version): Documented.
24007         (fobjc-nilcheck): Documented.
24008         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
24009         version.
24010
24011 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24012
24013         PR driver/47390
24014         * common.opt (export-dynamic): New Driver option.
24015         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
24016
24017 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24018
24019         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
24020
24021 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
24022             Jan Hubicka  <jh@suse.cz>
24023
24024         PR debug/47106
24025         PR debug/47402
24026         * cfgexpand.c (account_used_vars_for_block): Remove.
24027         (estimated_stack_frame_size): Use referenced vars.
24028         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
24029         that were referenced in the original function.  Test src_fn
24030         rather than cfun.  Drop redundant get_var_ann.
24031         (setup_one_parameter): Drop redundant get_var_ann.
24032         (declare_return_variable): Likewise.
24033         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
24034         (copy_arguments_for_versioning): Drop redundant get_var_ann.
24035         * ipa-inline.c (compute_inline_parameters): Do not compute
24036         disregard_inline_limits here.
24037         (compute_inlinable_for_current, pass_inlinable): New.
24038         (pass_inline_parameters): Require PROP_referenced_vars.
24039         * cgraphunit.c (cgraph_process_new_functions): Don't run
24040         compute_inline_parameters explicitly unless function is in SSA form.
24041         (cgraph_analyze_function): Set .disregard_inline_limits.
24042         * tree-sra.c (convert_callers): Compute inliner parameters
24043         only for functions already in SSA form.
24044
24045 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24046
24047         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
24048         -mlittle-endian-data.
24049
24050 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24051
24052         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
24053         -mno-fpu, not -fpu and -no-fpu.
24054         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
24055         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
24056
24057 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
24058
24059         PR target/43653
24060         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
24061         input reload with PLUS RTX.
24062
24063 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24064
24065         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
24066         of InverseVar(MDMX).
24067
24068 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24069
24070         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
24071         --m4-340.
24072
24073 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24074
24075         * config/mn10300/mn10300.opt (mno-crt0): New.
24076
24077 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24078
24079         * config/m68k/uclinux.opt (static-libc): New Driver option.
24080
24081 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24082
24083         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
24084
24085 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24086
24087         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
24088         %{muser-extend-enabled}.
24089
24090 2011-02-16  Richard Guenther  <rguenther@suse.de>
24091
24092         PR tree-optimization/47738
24093         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
24094         the TODO from tree_predictive_commoning.
24095
24096 2011-02-15  Jeff Law  <law@redhat.com>
24097
24098         Revert
24099         2011-01-25  Jeff Law  <law@redhat.com>
24100
24101         PR rtl-optimization/37273
24102         * ira-costs.c (scan_one_insn): Detect constants living in memory and
24103         handle them like argument loads from stack slots.  Do not double
24104         count memory for memory constants and argument loads from stack slots.
24105
24106 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
24107
24108         PR target/47755
24109         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
24110         mode for vector constants.  Remove code that checks for TImode.
24111
24112 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24113
24114         PR debug/47106
24115         PR debug/47402
24116         * cgraph.h (compute_inline_parameters): Return void.
24117         * ipa-inline.c (compute_inline_parameters): Adjust.
24118
24119 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24120
24121         PR debug/47106
24122         PR debug/47402
24123         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
24124         rather than decl.
24125         * cfgexpand.c (estimated_stack_frame_size): Likewise.
24126         * ipa-inline.c (compute_inline_parameters): Adjust.
24127
24128 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24129
24130         PR debug/47106
24131         PR debug/47402
24132         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
24133         Adjust all users.  Pass FN to...
24134         * tree-flow-inline.h (first_referenced_var): ... this.  Add
24135         fn argument.
24136         * ipa-struct-reorg.c: Adjust.
24137         * tree-dfa.c: Adjust.
24138         * tree-into-ssa.c: Adjust.
24139         * tree-sra.c: Adjust.
24140         * tree-ssa-alias.c: Adjust.
24141         * tree-ssa-live.c: Adjust.
24142         * tree-ssa.c: Adjust.
24143         * tree-ssanames.c: Adjust.
24144         * tree-tailcall.c: Adjust.
24145
24146 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24147
24148         PR debug/47106
24149         PR debug/47402
24150         * tree-flow.h (referenced_var_lookup): Add fn parameter.
24151         Adjust all callers.
24152         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
24153         * tree-flow-inline.h: Adjust.
24154         * gimple-pretty-print.c: Adjust.
24155         * tree-into-ssa.c: Adjust.
24156         * tree-ssa.c: Adjust.
24157         * cfgexpand.c: Adjust.
24158
24159 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24160
24161         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
24162         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24163         (EXTRA_CONSTRAINT): Delete.
24164         * config/iq2000/constraints.md: New file.
24165         * config/iq2000/iq2000.md: Include it.
24166         (define_insn ""): Delete.
24167         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
24168         unsupported constraint letters from patterns.
24169         (call_value, call_value_internal1): Likewise.
24170         (call_value_multiple_internal1): Likewise.
24171
24172 2011-02-15  Nick Clifton  <nickc@redhat.com>
24173
24174         * config/mn10300/mn10300.c: Include tm-constrs.h.
24175         (struct liw_data): New data structure describing an LIW candidate
24176         instruction.
24177         (extract_bundle): Use struct liw_data.  Allow small integer
24178         operands for some instructions.
24179         (check_liw_constraints): Use struct liw_data.  Remove swapped
24180         parameter.  Add comments describing the checks.  Fix bug when
24181         assigning the source of liw1 to the source of liw2.
24182         (liw_candidate): Delete.  Code moved into extract_bundle.
24183         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
24184         before swapping.
24185         * config/mn10300/predicates.md (liw_operand): New predicate.
24186         Allows registers and small integer constants.
24187         * config/mn10300/constraints.md (O): New constraint.  Accetps
24188         integers in the range -8 to +7 inclusive.
24189         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
24190         for moving a small integer into a register.  Give this alternative
24191         LIW attributes.
24192         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
24193         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
24194         using the J,K,L and M constraints,
24195         (liw): Remove SI mode on second operands to allow for HI and QI
24196         mode values.
24197         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
24198         instruction.
24199
24200 2011-02-15  Richard Guenther  <rguenther@suse.de>
24201
24202         PR tree-optimization/47743
24203         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
24204         for a non-type-compatible VN lookup bail out.
24205
24206 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24207
24208         * config/fr30/constraints.md: New file.
24209         * config/fr30/fr30.md: Include it.
24210         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
24211         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24212         (EXTRA_CONSTRAINT): Delete.
24213
24214 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24215
24216         * config/frv/constraints.md: New file.
24217         * config/frv/predicates.md: Include it.
24218         * config/frv/frv.c (reg_class_from_letter): Delete.
24219         (frv_option_override): Don't initialize it.
24220         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
24221         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
24222         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
24223         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24224         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
24225         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24226         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
24227         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
24228         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
24229         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
24230         (REG_CLASS_FROM_CONSTRAINT): Delete.
24231
24232 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
24233
24234         PR middle-end/47581
24235         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
24236         if frame size is 0 in a leaf function.
24237
24238 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24239
24240         PR pch/14940
24241         * config/alpha/host-osf.c: New file.
24242         * config/alpha/x-osf: New file.
24243         * config.host (alpha*-dec-osf*): Use it.
24244
24245 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24246
24247         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24248         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
24249         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
24250         (rx_mode_dependent_address_p): ...this. Make static. Change argument
24251         type to const_rtx.
24252         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24253
24254 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24255
24256         * config/stormy16/constraints.md: New file.
24257         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
24258         Use satisfies_constraint_Q and satisfies_constraint_R.
24259         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
24260         Delete.
24261         (xstormy16_legitiamte_address_p): Declare.
24262         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
24263         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24264         (EXTRA_CONSTRAINT): Delete.
24265         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
24266         Un-staticize.
24267         (xstormy16_extra_constraint_p): Delete.
24268
24269 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24270
24271         PR tree-optimization/46494
24272         * loop-unroll.c (split_edge_and_insert): Adjust comment.
24273         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
24274         (pass_rtl_loop_done): Add TODO_verify_flow.
24275         * fwprop.c (pass_rtl_fwprop): Likewise.
24276         * modulo-sched.c (pass_sms): Likewise.
24277         * tree-ssa-dom.c (pass_dominator): Likewise.
24278         * tree-ssa-loop-ch.c (pass_ch): Likewise.
24279         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
24280         (pass_tree_loop_done): Likewise.
24281         * tree-ssa-pre.c (execute_pre): Likewise.
24282         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
24283         * tree-ssa-sink.c (pass_sink_code): Likewise.
24284         * tree-vrp.c (pass_vrp): Likewise.
24285
24286 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24287
24288         * config/v850/constraints.md: New file.
24289         * config/v850/v850.md: Include it.
24290         * config/v850/predicates.md (reg_or_0_operand): Use
24291         satisfies_constraint_G.
24292         (special_symbolref_operand): Use satisfies_constraint_K.
24293         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
24294         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
24295         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
24296         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24297         (EXTRA_CONSTRAINT): Delete.
24298         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
24299         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
24300         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
24301
24302 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24303
24304         PR target/47696
24305         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
24306         description.
24307
24308 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24309
24310         * config/mcore/constraints.md: New file.
24311         * config/mcore/mcore.md: Include it.
24312         * config/mcore/mcore.c (reg_class_from_letter): Delete.
24313         * config/mcore/mcore.h (reg_class_from_letter): Delete.
24314         (REG_CLASS_FROM_LETTER): Delete.
24315         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
24316         insn_const_int_ok_for_constraint.
24317         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
24318         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
24319         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24320         (EXTRA_CONSTRAINT): Delete.
24321
24322 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24323
24324         PR ada/41929
24325         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
24326         (IS_SIGHANDLER): Define.
24327         (sparc64_is_sighandler): New function, split off from
24328         sparc64_fallback_frame_state.
24329         (sparc_is_sighandler): New function, split off from
24330         sparc_fallback_frame_state.
24331         (sparc64_fallback_frame_state): Merge with ...
24332         (sparc_fallback_frame_state): ... this into ...
24333         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
24334         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
24335         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
24336         stack instead of hardcoded offsets.
24337
24338 2011-02-14  Andriy Gapon  <avg@freebsd.org>
24339
24340         PR target/45808
24341         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
24342
24343 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24344
24345         * configure: Regenerate.
24346
24347 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
24348
24349         PR driver/45731
24350         * gcc.c (asm_options): Correct spec matching --target-help.
24351
24352 2011-02-12  Martin Jambor  <mjambor@suse.cz>
24353
24354         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
24355         to gimple call error.
24356
24357 2011-02-12  Mike Stump  <mikestump@comcast.net>
24358
24359         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
24360         comments in backslash regions.
24361
24362 2011-02-12  Mike Stump  <mikestump@comcast.net>
24363             Jakub Jelinek  <jakub@redhat.com>
24364             Iain Sandoe  <iains@gcc.gnu.org>
24365
24366         PR target/47324
24367         * dwarf2out.c (output_cfa_loc): When required, apply the
24368         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
24369         (output_loc_sequence): Likewise.
24370         (output_loc_operands_raw): Likewise.
24371         (output_loc_sequence_raw): Likewise.
24372         (output_cfa_loc): Likewise.
24373         (output_loc_list): Suppress register number adjustment when
24374         calling output_loc_sequence()
24375         (output_die): Likewise.
24376
24377 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
24378
24379         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
24380         Remove macros.
24381         * config/xtensa/xtensa.c (xtensa_register_move_cost,
24382         xtensa_memory_move_cost): New functions.
24383         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
24384
24385 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
24386
24387         PR lto/47225
24388         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
24389         in the current directory.
24390         * configure: Rebuilt.
24391
24392 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24393
24394         * config/darwin.c (darwin_override_options): Add a hunk missed
24395         from the commit of r168571.  Trim comment line lengths and
24396         correct indents of the preceding block.
24397
24398 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24399
24400         * gcc.c (driver_handle_option): Concatenate the argument to -F with
24401         the switch.
24402
24403 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24404
24405         * common.opt (nostartfiles): New Driver option.
24406
24407 2011-02-11  Xinliang David Li  <davidxl@google.com>
24408
24409         PR tree-optimization/47707
24410         * tree-chrec.c (convert_affine_scev): Keep type precision.
24411
24412 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
24413
24414         PR tree-optimization/47420
24415         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
24416
24417 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
24418
24419         PR rtl-optimization/47614
24420         * rtl.h (check_for_inc_dec): Declare.
24421         * dse.c (check_for_inc_dec): Externalize...
24422         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
24423         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
24424
24425 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24426
24427         PR driver/47678
24428         * gcc.c (main): Do not compile inputs if there were errors in
24429         option handling.
24430         * opts-common.c (read_cmdline_option): Check for wrong language
24431         after other error checks.
24432
24433 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
24434
24435         * cgraph.c: Fix comment typos.
24436         * cgraph.h: Likewise.
24437         * cgraphunit.c: Likewise.
24438         * ipa-cp.c: Likewise.
24439         * ipa-inline.c: Likewise.
24440         * ipa-prop.c: Likewise.
24441         * ipa-pure-const.c: Likewise.
24442         * ipa-ref.c: Likewise.
24443         * ipa-reference.c: Likewise.
24444
24445 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
24446
24447         PR debug/47684
24448         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
24449
24450 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24451
24452         PR testsuite/47400
24453         * doc/sourcebuild.texi (Require Support): Document
24454         dg-require-ascii-locale.
24455
24456 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
24457
24458         * doc/lto.texi (Write summary): Fix missing parentheses.
24459
24460 2011-02-10  DJ Delorie  <dj@redhat.com>
24461
24462         * config/m32c/m32c.c (m32c_option_override): Disable
24463         -fcombine-stack-adjustments until flag value tracking and compare
24464         optimization can be rewritten.
24465
24466 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
24467
24468         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
24469         PROCESSOR_POWER7.
24470         (PROCESSOR_DEFAULT64): Likewise.
24471
24472 2011-02-10  Richard Henderson  <rth@redhat.com>
24473
24474         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
24475         change from 2011-02-03.
24476         * config/rx/rx.c (flags_from_code): Likewise.
24477         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
24478         is valid, n/pz otherwise.
24479         (rx_select_cc_mode): Return CCmode if Y is not zero.
24480
24481 2011-02-10  Richard Guenther  <rguenther@suse.de>
24482
24483         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
24484
24485 2011-02-10  Richard Guenther  <rguenther@suse.de>
24486
24487         PR tree-optimization/47677
24488         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
24489
24490 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
24491
24492         PR target/47665
24493         * combine.c (make_compound_operation): Only change shifts into
24494         multiplication for SCALAR_INT_MODE_P.
24495
24496 2011-02-10  Jie Zhang  <jie@codesourcery.com>
24497
24498         PR testsuite/47622
24499         Revert
24500         2011-02-05  Jie Zhang  <jie@codesourcery.com>
24501         PR debug/42631
24502         * web.c (entry_register): Don't clobber the number of the
24503         first uninitialized reference in used[].
24504
24505 2011-02-09  Richard Guenther  <rguenther@suse.de>
24506
24507         PR tree-optimization/47664
24508         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
24509         all edges again.
24510
24511 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
24512
24513         PR target/46481
24514         PR target/47032
24515         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
24516         PROCESSOR_POWER7.
24517         (PROCESSOR_DEFAULT64): Same.
24518         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
24519
24520 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24521
24522         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
24523
24524 2011-02-09  Martin Jambor  <mjambor@suse.cz>
24525
24526         PR middle-end/45505
24527         * tree-sra.c (struct access): New flags grp_scalar_read and
24528         grp_scalar_write.  Changed description of assignment read and write
24529         flags.
24530         (dump_access): Dump new flags, reorder all of them.
24531         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
24532         to detect multiple scalar reads.
24533         (analyze_access_subtree): Use the new scalar read write flags instead
24534         of the old flags.  Adjusted comments.
24535
24536 2011-02-08  DJ Delorie  <dj@redhat.com>
24537
24538         PR target/47548
24539         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
24540         patterns.
24541
24542 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24543
24544         * config/m68k/uclinux.opt: New.
24545         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
24546
24547 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24548
24549         * config/cris/elf.opt (sim): New Driver option.
24550
24551 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24552
24553         * config/xtensa/elf.opt: New.
24554         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
24555
24556 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24557
24558         * config/vax/elf.opt: New.
24559         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
24560
24561 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24562
24563         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
24564
24565 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24566
24567         * config/gnu-user.opt: New.
24568         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
24569         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
24570         *-*-uclinux*): Use gnu-user.opt.
24571
24572 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
24573
24574         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
24575         * config/i386/gnu.h (CPP_SPEC): Likewise.
24576
24577 2011-02-08  Ian Lance Taylor  <iant@google.com>
24578
24579         * common.opt (fcx-limited-range): Add SetByCombined flag.
24580         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
24581         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
24582         (fassociative-math, freciprocal-math): Likewise.
24583         (funsafe-math-optimizations): Likewise.
24584         * opth-gen.awk: Handle SetByCombined.
24585         * optc-gen.awk: Likewise.
24586         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
24587         (set_unsafe_math_optimizations_flags): Likewise.
24588         * doc/options.texi (Option properties): Document SetByCombined.
24589
24590 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24591
24592         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
24593         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
24594         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
24595         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
24596         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
24597
24598 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
24599
24600         PR tree-optimization/46834
24601         PR tree-optimization/46994
24602         PR tree-optimization/46995
24603         * graphite-sese-to-poly.c (used_outside_reduction): New.
24604         (detect_commutative_reduction): Call used_outside_reduction.
24605         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
24606         translate_scalar_reduction_to_array only when at least one
24607         loop-phi/close-phi tuple has been detected.
24608
24609 2011-02-08  Richard Guenther  <rguenther@suse.de>
24610
24611         PR middle-end/47639
24612         * tree-vect-generic.c (expand_vector_operations_1): Update
24613         stmts here ...
24614         (expand_vector_operations): ... not here.  Cleanup EH info
24615         and the CFG if required.
24616
24617 2011-02-08  Richard Guenther  <rguenther@suse.de>
24618
24619         PR tree-optimization/47641
24620         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
24621         require type compatibility.
24622
24623 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24624
24625         * gimple-low.c (lower_function_body): Don't remove the location of
24626         the return statement here.
24627         (lower_gimple_return): Do it here instead but only if the return
24628         statement is actually used twice.
24629
24630 2011-02-08  Richard Guenther  <rguenther@suse.de>
24631
24632         PR tree-optimization/47632
24633         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
24634         unused up_to_stmt parameter, return whether cfg-cleanup is
24635         necessary, remove EH info properly.
24636         (forward_propagate_into_gimple_cond): Adjust caller.
24637         (forward_propagate_into_cond): Likewise.
24638         (forward_propagate_comparison): Likewise.
24639         (tree_ssa_forward_propagate_single_use_vars): Make
24640         forward_propagate_comparison case similar to the two others.
24641
24642 2011-02-08  Nick Clifton  <nickc@redhat.com>
24643
24644         * config/mn10300/mn10300.opt (mliw): New command line option.
24645         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
24646         (liw_bundling): New automaton.
24647         (liw): New attribute.
24648         (liw_op): New attribute.
24649         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
24650         (movsi_internal): Add LIW attributes.
24651         (andsi3): Likewise.
24652         (iorsi3): Likewise.
24653         (xorsi3): Likewise.
24654         (addsi3): Separate register and immediate alternatives.
24655         Add LIW attributes.
24656         (subsi3): Likewise.
24657         (cmpsi): Likewise.
24658         (aslsi3): Likewise.
24659         (lshrsi3): Likewise.
24660         (ashrsi3): Likewise.
24661         (liw): New pattern.
24662         * config/mn10300/mn10300.c (liw_op_names): New
24663         (mn10300_print_operand): Handle 'W' operand descriptor.
24664         (extract_bundle): New function.
24665         (check_liw_constraints): New function.
24666         (liw_candidate): New function.
24667         (mn10300_bundle_liw): New function.
24668         (mn10300_reorg): New function.
24669         (TARGET_MACHINE_DEPENDENT_REORG): Define.
24670         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
24671         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
24672         __LIW__ or __NO_LIW__.
24673         * doc/invoke.texi: Describe the -mliw command line option.
24674
24675 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24676
24677         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
24678         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24679         pthread_mutex_unlock): Remove.
24680         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
24681         * config/pa/t-pa64: Likewise.
24682         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
24683         shared libc if not linking against libpthread.
24684         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24685
24686 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
24687
24688         PR target/47558
24689         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
24690         on 10.6 and later to ensure that we always use the unwinder from
24691         the system.  Only add -no_compact_unwind when tarteting darwin
24692         10.6 or later.
24693
24694 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
24695
24696         PR target/46997
24697         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
24698         (vec_interleave_lowv2sf): Ditto.
24699         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
24700         (vec_extract_oddv2sf): Ditto.
24701
24702 2011-02-07  Mike Stump  <mikestump@comcast.net>
24703
24704         PR target/42333
24705         Add __ieee_divdc3 entry point.
24706         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
24707         entry point.
24708         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
24709         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
24710         * config/darwin.c (darwin_rename_builtins): Add.
24711         * config/darwin-protos.h (darwin_rename_builtins): Add.
24712
24713 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24714
24715         PR target/47636
24716         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
24717         for the condition.
24718
24719 2011-02-07  Mike Stump  <mikestump@comcast.net>
24720
24721         * config/darwin.opt (mmacosx-version-min): Update default OS version.
24722
24723 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
24724
24725         PR target/47534
24726         * config/avr/libgcc.S (exit): Move .endfunc
24727
24728 2011-02-07  Richard Guenther  <rguenther@suse.de>
24729
24730         PR tree-optimization/47615
24731         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
24732         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
24733         (run_scc_vn): Initialize it.
24734         (visit_reference_op_load): Use it.
24735         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
24736
24737 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24738
24739         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
24740         DImode trapping arithmetic libfuncs.
24741
24742 2011-02-07  Richard Guenther  <rguenther@suse.de>
24743
24744         PR tree-optimization/47621
24745         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
24746         two duplicates ...
24747         (execute_update_addresses_taken): ... here.  Make it more
24748         conservative in what we accept.
24749
24750 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24751
24752         * config/sparc/freebsd.h (ASM_SPEC): Define.
24753         * config/sparc/vxworks.h (ASM_SPEC): Define.
24754
24755 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24756
24757         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24758
24759 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
24760
24761         * doc/invoke.texi: Remove reference to compiler internals from
24762         user documentation.
24763
24764         * reg-notes.def: Remove REG_VALUE_PROFILE.
24765         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
24766
24767 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
24768
24769         PR middle-end/47610
24770         * varasm.c (default_section_type_flags): If decl is NULL,
24771         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
24772
24773 2011-02-05  Jie Zhang  <jie@codesourcery.com>
24774
24775         PR debug/42631
24776         * web.c (entry_register): Don't clobber the number of the
24777         first uninitialized reference in used[].
24778
24779 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
24780
24781         PR tree-optimization/46194
24782         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
24783         (build_classic_dist_vector_1): Do not represent classic distance
24784         vectors when the access functions are variating in different loops.
24785
24786 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24787
24788         * config/mips/iris6.opt: New.
24789         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
24790
24791 2011-02-04  Richard Henderson  <rth@redhat.com>
24792             Steve Ellcey  <sje@cup.hp.com>
24793
24794         PR target/46997
24795         * config/ia64/predicates.md (mux1_brcst_element): New.
24796         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
24797         * config/ia64/ia64.c (ia64_unpack_assemble): New.
24798         (ia64_unpack_sign): New.
24799         (ia64_expand_unpack): Rewrite using new routines.
24800         (ia64_expand_widen_sum): Ditto.
24801         (ia64_expand_dot_prod_v8qi): Ditto.
24802         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
24803         routines, add endian check.
24804         (pmpy2_even): Rename from pmpy2_r, add endian check.
24805         (pmpy2_odd): Rename from pmpy2_l, add endian check.
24806         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
24807         (vec_widen_smult_hi_v4hi): Ditto.
24808         (vec_widen_umult_lo_v4hi): Ditto.
24809         (vec_widen_umult_hi_v4hi): Ditto.
24810         (mulv2si3): Change endian checks.
24811         (sdot_prodv4hi): Rewrite with new calls.
24812         (udot_prodv4hi): New.
24813         (vec_pack_ssat_v4hi): Add endian check.
24814         (vec_pack_usat_v4hi): Ditto.
24815         (vec_pack_ssat_v2si): Ditto.
24816         (max1_even): Rename from max1_r, add endian check.
24817         (max1_odd): Rename from max1_l, add endian check.
24818         (*mux1_rev): Format change.
24819         (*mux1_mix): Ditto.
24820         (*mux1_shuf): Ditto.
24821         (*mux1_alt): Ditto.
24822         (*mux1_brcst_v8qi): Use new predicate.
24823         (vec_extract_evenv8qi): Remove endian check.
24824         (vec_extract_oddv8qi): Ditto.
24825         (vec_interleave_lowv4hi): Format change.
24826         (vec_interleave_highv4hi): Ditto.
24827         (mix2_even): Rename from mix2_r, add endian check.
24828         (mix2_odd): Rename from mux2_l, add endian check.
24829         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
24830         (vec_extract_evenodd_helper): Format change.
24831         (vec_extract_evenv4hi): Remove endian check.
24832         (vec_extract_oddv4hi): Remove endian check.
24833         (vec_interleave_lowv2si): Format change.
24834         (vec_interleave_highv2si): Format change.
24835         (vec_initv2si): Remove endian check.
24836         (vecinit_v2si): Add endian check.
24837         (reduc_splus_v2sf): Add endian check.
24838         (reduc_smax_v2sf): Ditto.
24839         (reduc_smin_v2sf): Ditto.
24840         (vec_initv2sf): Remove endian check.
24841         (fpack): Add endian check.
24842         (fswap): Add endian check.
24843         (vec_interleave_highv2sf): Add endian check.
24844         (vec_interleave_lowv2sf): Add endian check.
24845         (fmix_lr): Add endian check.
24846         (vec_setv2sf): Format change.
24847         (*vec_extractv2sf_0_be): Use shift to extract operand.
24848         (*vec_extractv2sf_1_be): New.
24849         (vec_pack_trunc_v4hi): Add endian check.
24850         (vec_pack_trunc_v2si): Format change.
24851
24852 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
24853
24854         PR inline-asm/23200
24855         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
24856         do bb, locus and block comparison and disallow loads if it is not set.
24857         (stmt_is_replaceable_p): New function.
24858         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
24859         callers.
24860         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
24861         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
24862         SSA_NAME_DEF_STMT.
24863         * tree-flow.h (stmt_is_replaceable_p): New prototype.
24864
24865 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24866
24867         * config/rs6000/xilinx.opt: New.
24868         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
24869
24870 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24871
24872         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
24873
24874 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
24875
24876         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
24877         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24878         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
24879         secondary_reload_info, xtensa_secondary_reload): Remove.
24880         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
24881         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24882         (xtensa_preferred_reload_class): Make static. Change return and
24883         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
24884         Use CONST_DOUBLE_P predicate.
24885         (xtensa_preferred_output_reload_class): New function.
24886         (xtensa_secondary_reload): Make static.
24887
24888 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
24889
24890         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
24891         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
24892         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
24893
24894 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24895
24896         PR middle-end/31490
24897         * output.h (SECTION_RELRO): Define.
24898         (SECTION_MACH_DEP): Adjust.
24899         (get_variable_section): New prototype.
24900         * varpool.c (varpool_finalize_named_section_flags): New function.
24901         (varpool_assemble_pending_decls): Call it.
24902         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
24903         * cgraphunit.c (cgraph_output_in_order): Call
24904         varpool_finalize_named_section_flags.
24905         * varasm.c (get_section): Allow section flags conflicts between
24906         relro and read-only sections if the section hasn't been declared yet.
24907         Set SECTION_OVERRIDE after diagnosing section type conflict.
24908         (get_variable_section): No longer static.
24909         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
24910         readonly sections that need relocations.
24911         (decl_readonly_section_1): New function.
24912         (decl_readonly_section): Use it.
24913
24914         Revert:
24915         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
24916                     Steve Ellcey  <sje@cup.hp.com>
24917
24918         PR middle-end/31490
24919         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
24920         if section attribute used.
24921
24922 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24923
24924         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
24925         * config/darwin.c (SECTION_NO_ANCHOR): Define.
24926         (darwin_init_sections): Remove assertion.
24927
24928 2011-02-03  Nick Clifton  <nickc@redhat.com>
24929
24930         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
24931         lt and ge.
24932         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
24933         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
24934         instead of "n" and "pz".
24935         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
24936         CC_FLAG_S.
24937
24938 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24939
24940         PR target/47312
24941         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
24942         fma, expand FMA_EXPR as fma{,f,l} call.
24943
24944         PR lto/47274
24945         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
24946         copy them into a unsigned char variable and pass address of it to
24947         lto_output_data_stream.
24948
24949         PR target/47564
24950         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
24951         around backend_init_target and lang_dependent_init_target calls.
24952         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
24953         (verify_cgraph_node): Don't call set_cfun here.  Use
24954         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
24955         Set error_found for incorrectly represented calls to thunks.
24956
24957 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
24958
24959         PR debug/43092
24960         PR rtl-optimization/43494
24961         * rtl.h (for_each_inc_dec_fn): New type.
24962         (for_each_inc_dec): Declare.
24963         * rtlanal.c (struct for_each_inc_dec_ops): New type.
24964         (for_each_inc_dec_find_inc_dec): New fn.
24965         (for_each_inc_dec_find_mem): New fn.
24966         (for_each_inc_dec): New fn.
24967         * dse.c (struct insn_size): Remove.
24968         (replace_inc_dec, replace_inc_dec_mem): Remove.
24969         (emit_inc_dec_insn_before): New fn.
24970         (check_for_inc_dec): Use it, along with for_each_inc_dec.
24971         (canon_address): Pass mem modes to cselib_lookup.
24972         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
24973         (cselib_lookup_from_insn): Likewise.
24974         (cselib_subst_to_values): Likewise.
24975         * cselib.c (find_slot_memmode): New var.
24976         (cselib_find_slot): New fn.  Use it instead of
24977         htab_find_slot_with_hash everywhere.
24978         (entry_and_rtx_equal_p): Use find_slot_memmode.
24979         (autoinc_split): New fn.
24980         (rtx_equal_for_cselib_p): Rename and implement in terms of...
24981         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
24982         Deal with autoinc.  Special-case recursion into MEMs.
24983         (cselib_hash_rtx): Likewise.
24984         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
24985         address and MEM modes.
24986         (cselib_subst_to_values): Add memmode, pass it on.
24987         Deal with autoinc.
24988         (cselib_lookup): Add memmode argument, pass it on.
24989         (cselib_lookup_from_insn): Add memmode.
24990         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
24991         (struct cselib_record_autoinc_data): New.
24992         (cselib_record_autoinc_cb): New fn.
24993         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
24994         mode to cselib_lookup.  Reset autoinced REGs here instead of...
24995         (cselib_process_insn): ... here.
24996         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
24997         to cselib_lookup.
24998         (add_uses): Likewise, also to cselib_subst_to_values.
24999         (add_stores): Likewise.
25000         * sched-deps.c (add_insn_mem_dependence): Pass mode to
25001         cselib_subst_to_values.
25002         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
25003         * gcse.c (do_local_cprop): Adjusted.
25004         * postreload.c (reload_cse_simplify_set): Adjusted.
25005         (reload_cse_simplify_operands): Adjusted.
25006         * sel-sched-dump (debug_mem_addr_value): Pass mode.
25007
25008 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
25009
25010         PR tree-optimization/45122
25011         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
25012         unsafe assumptions when there's more than one loop exit.
25013
25014 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25015
25016         PR target/47272
25017         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25018         Document using vector double with the load/store builtins, and
25019         that the load/store builtins always use Altivec instructions.
25020
25021         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
25022         to use altivec memory instructions, even on VSX.
25023         (vector_altivec_store_<mode>): Ditto.
25024
25025         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
25026         function.
25027
25028         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25029         V2DF, V2DI support to load/store overloaded builtins.
25030
25031         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
25032         altivec load/store builtins for V2DF/V2DI types.
25033
25034         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
25035         set avoid indexed addresses on power6 if -maltivec.
25036         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
25037         vector_altivec_load/vector_altivec_store builtins.
25038         (altivec_expand_st_builtin): Ditto.
25039         (altivec_expand_builtin): Add VSX memory builtins.
25040         (rs6000_init_builtins): Add V2DI types to internal types.
25041         (altivec_init_builtins): Add support for V2DF/V2DI altivec
25042         load/store builtins.
25043         (rs6000_address_for_altivec): Insure memory address is appropriate
25044         for Altivec.
25045
25046         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
25047         vec_vsx_ld and vec_vsx_st.
25048         (vsx_store_<mode>): Ditto.
25049
25050         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
25051         variables to hold long long types for VSX vector memory builtins.
25052         (RS6000_BTI_unsigned_long_long): Ditto.
25053         (long_long_integer_type_internal_node): Ditti.
25054         (long_long_unsigned_type_internal_node): Ditti.
25055
25056         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
25057         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
25058         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
25059
25060         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
25061         short cuts.
25062         (vec_vsx_st): Ditto.
25063
25064 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25065
25066         * config/pa/pa-hpux10.opt: New.
25067         * config/hpux11.opt (pthread): New Driver option.
25068         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
25069         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
25070
25071 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25072
25073         * config/ia64/vms.opt: New.
25074         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
25075
25076 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25077
25078         PR target/47580
25079         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
25080         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
25081         generator functions.
25082         (vsx_floatuns<VSi><mode>2): Ditto.
25083         (vsx_fix_trunc<mode><VSi>2): Ditto.
25084         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
25085
25086 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25087
25088         * config/i386/djgpp.opt (posix): New Driver option.
25089
25090 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
25091
25092         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
25093         Move to the unsupported targets list.
25094
25095 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
25096
25097         PR rtl-optimization/47525
25098         * df-scan.c: Update copyright years.
25099         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
25100         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
25101
25102 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25103
25104         * config/i386/sysv4.h (TARGET_VERSION): Remove.
25105         (SUBTARGET_RETURN_IN_MEMORY): Remove.
25106         (ASM_OUTPUT_ASCII): Remove.
25107         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
25108
25109 2011-02-02  Jeff Law  <law@redhat.com>
25110
25111         PR middle-end/47543
25112         * reload.c (find_reloads_address): Handle reg+d address where both
25113         components are invalid by reloading the entire address.
25114
25115 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25116             Richard Guenther  <rguenther@suse.de>
25117
25118         PR tree-optimization/40979
25119         PR bootstrap/47044
25120         * passes.c (init_optimization_passes): After LIM call copy_prop
25121         and DCE to clean up.
25122         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
25123
25124 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25125
25126         PR tree-optimization/47576
25127         PR tree-optimization/47555
25128         * doc/invoke.texi (scev-max-expr-complexity): Documented.
25129         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25130         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
25131         * tree-scalar-evolution.c (follow_ssa_edge): Use
25132         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
25133
25134 2011-02-02  Richard Guenther  <rguenther@suse.de>
25135
25136         PR tree-optimization/47566
25137         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
25138
25139 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25140
25141         PR debug/47106
25142         PR debug/47402
25143         * tree-inline.c (declare_return_variable): Remove unused caller
25144         variable.
25145
25146         PR debug/47106
25147         PR debug/47402
25148         * tree-flow-inline.h (clear_is_used, is_used_p): New.
25149         * cfgexpand.c (account_used_vars_for_block): Use them.
25150         * tree-nrv.c (tree_nrv): Likewise.
25151         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
25152         (dump_scope_block): Likewise.
25153         (remove_unused_locals): Likewise.
25154
25155         PR debug/47106
25156         PR debug/47402
25157         * tree-inline.c (declare_return_variable): Add result decl to
25158         local decls only once.
25159         * gimple-low.c (record_vars_into): Mark newly-created variables
25160         as referenced.
25161
25162 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25163
25164         PR debug/47498
25165         PR debug/47501
25166         PR debug/45136
25167         PR debug/45130
25168         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25169         debug insns.
25170         (no_real_insns_p, schedule_block, set_priorities): Drop special
25171         treatment of boundary debug insns.
25172         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25173         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
25174         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25175         (BOUNDARY_DEBUG_INSN_P): Likewise.
25176         (SCHEDULE_DEBUG_INSN_P): Likewise.
25177         * sched-rgn.c (init_ready_list): Drop special treatment of
25178         boundary debug insns.
25179         * final.c (rest_of_clean_state): Clear notes' BB.
25180
25181 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25182
25183         * config/openbsd.opt (assert=): New Driver option.
25184
25185 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25186
25187         * config/i386/nto.opt: New.
25188         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
25189
25190 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25191
25192         * config/i386/netware.opt: New.
25193         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
25194
25195 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25196
25197         * config/interix.opt (posix): New Driver option.
25198
25199 2011-02-01  DJ Delorie  <dj@redhat.com>
25200
25201         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
25202
25203         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
25204         class for A0/A1.
25205
25206 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
25207
25208         PR tree-optimization/47561
25209         * toplev.c (process_options): Print the Graphite flags.  Add
25210         flag_loop_flatten to the list of options requiring Graphite.
25211
25212 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25213
25214         * config/i386/cygming.opt (posix): New Driver option.
25215
25216 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25217
25218         * config/arm/vxworks.opt: New.
25219         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
25220
25221 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25222
25223         * config/alpha/elf.opt: New.
25224         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
25225         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
25226
25227 2011-02-01  Richard Guenther  <rguenther@suse.de>
25228
25229         PR tree-optimization/47559
25230         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
25231         store-motion on references that can throw.
25232
25233 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
25234
25235         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
25236         * tree-pass.h (TDF_CSELIB): New macro.
25237         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
25238         cselib_lookup): Check for it rather than for TDF_DETAILS.
25239
25240 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
25241
25242         PR driver/47547
25243         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
25244         is HOST_BIT_BUCKET.
25245
25246         * opts.c (finish_options): Don't add x_aux_base_name if it is
25247         HOST_BIT_BUCKET.
25248
25249 2011-02-01  Richard Guenther  <rguenther@suse.de>
25250
25251         PR tree-optimization/47555
25252         Revert
25253         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
25254
25255         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25256
25257 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
25258
25259         PR gcc/46692
25260         * config/lm32/t-lm32: Add multilib for all CPU options.
25261
25262 2011-02-01  Richard Guenther  <rguenther@suse.de>
25263
25264         PR tree-optimization/47541
25265         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
25266         sure to have a field at offset zero.
25267
25268 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25269
25270         * config/arc/arc.opt (EB, EL): New Driver options.
25271
25272 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25273
25274         * config/alpha/osf5.opt: New.
25275         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
25276
25277 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25278
25279         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
25280
25281 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
25282
25283         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
25284         -floop-interchange.
25285         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
25286         is an alias of -floop-interchange and that it requires the
25287         Graphite infrastructure.
25288         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
25289         flag_loop_interchange based on the value of flag_tree_loop_linear.
25290
25291 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
25292             Richard Guenther  <rguenther@suse.de>
25293
25294         PR tree-optimization/47538
25295         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
25296         type instead of r1type, except for comparisons.  For right
25297         shifts and comparisons punt if there are mismatches in
25298         sizetype vs. non-sizetype types.
25299
25300 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25301
25302         * doc/sourcebuild.texi (Effective-Target Keywords): Document
25303         avx_runtime.
25304
25305 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25306
25307         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
25308         version number.
25309         * configure: Regenerate.
25310
25311 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25312
25313         * configure.ac (gcc_cv_ld_static_option): Define.
25314         (gcc_cv_ld_dynamic_option): Define.
25315         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
25316         instead.
25317         (HAVE_LD_STATIC_DYNAMIC): Update message.
25318         (LD_STATIC_OPTION): Define.
25319         (LD_DYNAMIC_OPTION): Define.
25320         * configure: Regenerate.
25321         * config.in: Regenerate.
25322         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
25323         HAVE_LD_STATIC_DYNAMIC]: Use them.
25324
25325 2011-01-31  Nick Clifton  <nickc@redhat.com>
25326
25327         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
25328         registers inside interrupt handlers if the handler is not a leaf
25329         function.
25330
25331 2011-01-31  Nick Clifton  <nickc@redhat.com>
25332
25333         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
25334         reg_renumber returning an INVALID_REGNUM.
25335
25336 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25337
25338         PR libgcj/44341
25339         * doc/install.texi: Document host options discarded when cross
25340         configuring target libraries.
25341
25342 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25343
25344         Reverted:
25345         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25346         PR debug/45136
25347         PR debug/45130
25348         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25349         debug insns.
25350         (no_real_insns_p, schedule_block, set_priorities): Drop special
25351         treatment of boundary debug insns.
25352         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25353         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25354         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25355         (BOUNDARY_DEBUG_INSN_P): Likewise.
25356         (SCHEDULE_DEBUG_INSN_P): Likewise.
25357         * sched-rgn.c (init_ready_list): Drop special treatment of
25358         boundary debug insns.
25359         * final.c (rest_of_clean-state): Clear notes' BB.
25360
25361 2011-01-31  Alan Modra  <amodra@gmail.com>
25362
25363         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
25364         toc relative expressions as we do in print_operand_address.
25365
25366 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
25367
25368         * doc/extend.texi: Follow spelling conventions.
25369         * doc/invoke.texi: Fix a typo.
25370
25371 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
25372
25373         * config/hpux11.opt: New.
25374         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
25375         ia64*-*-hpux*): Use hpux11.opt.
25376
25377 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
25378
25379         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
25380         to tmake_file.
25381
25382 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25383
25384         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
25385         support sites.
25386
25387 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25388
25389         * doc/install.texi (Binaries): Remove outdated reference for
25390         Motorola 68HC11/68HC12 downloads.
25391
25392 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25393
25394         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
25395         Drepper's paper.
25396
25397 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
25398
25399         PR bootstrap/47147
25400         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
25401         used by NetBSD.
25402
25403 2011-01-28  Ahmad Sharif  <asharif@google.com>
25404
25405         * value-prof.c (check_counter): Corrected error message.
25406
25407 2011-01-29  Jie Zhang  <jie@codesourcery.com>
25408
25409         * config/arm/arm.c (arm_legitimize_reload_address): New.
25410         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25411         arm_legitimize_reload_address.
25412         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
25413
25414 2011-01-28  Ian Lance Taylor  <iant@google.com>
25415
25416         * godump.c (go_define): Ignore macros whose definitions include
25417         two adjacent operands.
25418
25419 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
25420
25421         PR target/42894
25422         * varasm.c (force_const_mem): Store copy of x in desc->constant
25423         instead of x itself.
25424         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
25425         itself into REG_EQUAL note.
25426
25427 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
25428
25429         * config/freebsd.opt (posix, rdynamic): New Driver options.
25430
25431 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25432
25433         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
25434         -Bstatic/-Bdynamic.
25435         * configure: Regenerate.
25436
25437 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
25438
25439         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
25440         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
25441
25442 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
25443
25444         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
25445         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
25446         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25447         (s390_preferred_reload_class): Make static. Change return and
25448         'rclass' argument type to reg_class_t.
25449
25450 2011-01-27  Jan Hubicka  <jh@suse.cz>
25451
25452         PR middle-end/46949
25453         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
25454         (process_function_and_variable_attributes): Check defined weakrefs.
25455
25456 2011-01-27  Martin Jambor  <mjambor@suse.cz>
25457
25458         PR tree-optimization/47228
25459         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
25460         build_ref_for_offset.
25461
25462 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25463
25464         * config/spu/spu-elf.h (ASM_SPEC): Remove.
25465
25466 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
25467
25468         PR rtl-optimization/46856
25469         * postreload.c (reload_combine_recognize_const_pattern): Do not
25470         separate cc0 setter and user on cc0 targets.
25471
25472 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
25473
25474         PR c/43082
25475         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
25476         passed a VOID_TYPE expression, immediately emit an error and
25477         return error_mark_node.
25478
25479 2011-01-26  Jeff Law  <law@redhat.com>
25480
25481         PR rtl-optimization/47464
25482         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
25483         rather than may_trap_p as needed.
25484
25485 2011-01-26  DJ Delorie  <dj@redhat.com>
25486
25487         PR rtl-optimization/46878
25488         * combine.c (insn_a_feeds_b): Check for the implicit cc0
25489         setter/user dependency as well.
25490
25491 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
25492
25493         PR rtl-optimization/44469
25494         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
25495         after removing trivially dead basic blocks.
25496
25497 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25498
25499         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
25500         * config/frv/frv.h (LINK_SPEC): Likewise.
25501         * config/i386/netware.h (LINK_SPEC): Likewise.
25502         * config/m68k/linux.h (ASM_SPEC): Likewise.
25503         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25504         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25505         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25506         * config/sparc/linux.h (ASM_SPEC): Likewise.
25507         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25508         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25509
25510 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25511
25512         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
25513         * config/frv/frv.h (ASM_SPEC): Likewise.
25514         * config/m68k/linux.h (ASM_SPEC): Likewise.
25515         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25516         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
25517         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25518         * config/sparc/linux.h (ASM_SPEC): Likewise.
25519         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25520         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25521
25522 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25523
25524         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
25525         * config/frv/frv.h (LINK_SPEC): Likewise.
25526         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25527
25528 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25529
25530         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
25531         * config/frv/frv.h (ASM_SPEC): Likewise.
25532         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
25533         * config/m68k/linux.h (ASM_SPEC): Likewise.
25534         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25535         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25536         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25537         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
25538         * config/sparc/linux.h (ASM_SPEC): Likewise.
25539         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25540         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25541         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
25542
25543 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
25544
25545         PR target/46997
25546         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
25547         (*mux2): Ditto.
25548         (vec_extract_evenodd_help): Ditto.
25549         (vec_extract_evenv4hi): Ditto.
25550         (vec_extract_oddv4hi): Ditto.
25551         (vec_interleave_lowv2si): Ditto.
25552         (vec_interleave_highv2si): Ditto.
25553         (vec_extract_evenv2si): Ditto.
25554         (vec_extract_oddv2si: Ditto.
25555         (vec_pack_trunc_v2si): Ditto.
25556
25557 2011-01-22  Jan Hubicka  <jh@suse.cz>
25558
25559         PR target/47237
25560         * cgraph.h (cgraph_local_info): New field can_change_signature.
25561         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
25562         signature can change.
25563         (ipcp_estimate_growth): Call sequence simplify only if calle signature
25564         can change.
25565         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
25566         (cgraph_function_versioning): We can not change signature of functions
25567         that don't allow that.
25568         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
25569         (lto_input_node): Likewise.
25570         * ipa-inline.c (compute_inline_parameters): Compute
25571         local.can_change_signature.
25572         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
25573         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
25574         functions that can not change signature.
25575         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
25576         init_cumulative_args): Do not use local calling conventions
25577         for functions that can not change signature.
25578
25579 2011-01-22  Jan Hubicka  <jh@suse.cz>
25580
25581         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
25582
25583 2011-01-26  Richard Guenther  <rguenther@suse.de>
25584
25585         PR tree-optimization/47190
25586         * cgraphunit.c (process_common_attributes): New function.
25587         (process_function_and_variable_attributes): Use it.
25588
25589 2011-01-26  Richard Guenther  <rguenther@suse.de>
25590
25591         PR lto/47423
25592         * cgraphbuild.c (record_eh_tables): Record reference to personality
25593         function.
25594
25595 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
25596
25597         PR debug/45454
25598         * sel-sched.c (moveup_expr): Don't let debug insns prevent
25599         non-debug insns from moving up.
25600
25601 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25602
25603         PR target/40125
25604         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
25605         t-dlldir{,-x} fragment for build and add it to tmake_file.
25606         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
25607         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
25608         * config/i386/t-dlldir: New file.
25609         (SHLIB_DLLDIR): Define.
25610         * config/i386/t-dlldir-x: New file.
25611         (SHLIB_DLLDIR): Define.
25612         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
25613         (SHLIB_INSTALL): Use it.
25614
25615 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
25616
25617         PR target/47246
25618         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
25619         lower bound of the allowed Thumb-2 coprocessor load/store
25620         index range to -256. Add explaining comment.
25621
25622 2011-01-25  Ian Lance Taylor  <iant@google.com>
25623
25624         * godump.c (go_define): Improve lexing of macro expansion to only
25625         accept expressions which match Go spec.
25626
25627 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25628
25629         PR c++/43601
25630         * tree.c (handle_dll_attribute): Handle it.
25631         * doc/extend.texi (@item dllexport): Mention it.
25632         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
25633
25634 2011-01-25  Ian Lance Taylor  <iant@google.com>
25635
25636         PR tree-optimization/26854
25637         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
25638         (decl_jump_unsafe): Move higher in file, with no other change.
25639         (bind): Set has_jump_unsafe_decl if appropriate.
25640         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
25641         (check_earlier_gotos): Likewise.
25642         (c_check_switch_jump_warnings): Likewise.
25643
25644 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
25645
25646         * doc/invoke.texi (Warning Options): Add missing hyphen.
25647         (-fprofile-dir): Minor grammatical fixes.
25648         (-fbranch-probabilities): Likewise.
25649
25650 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25651
25652         PR debug/45136
25653         PR debug/45130
25654         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25655         debug insns.
25656         (no_real_insns_p, schedule_block, set_priorities): Drop special
25657         treatment of boundary debug insns.
25658         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25659         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25660         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25661         (BOUNDARY_DEBUG_INSN_P): Likewise.
25662         (SCHEDULE_DEBUG_INSN_P): Likewise.
25663         * sched-rgn.c (init_ready_list): Drop special treatment of
25664         boundary debug insns.
25665         * final.c (rest_of_clean-state): Clear notes' BB.
25666
25667 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25668
25669         * Makefile.in (LAMBDA_H): Removed.
25670         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
25671         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
25672         lambda-trans.o, and tree-loop-linear.o.
25673         (lto-symtab.o): Remove dependence on LAMBDA_H.
25674         (tree-loop-linear.o): Remove rule.
25675         (lambda-mat.o): Same.
25676         (lambda-trans.o): Same.
25677         (lambda-code.o): Same.
25678         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
25679         (tree-vect-slp.o): Same.
25680         * hwint.h (gcd): Moved here.
25681         (least_common_multiple): Same.
25682         * lambda-code.c: Removed.
25683         * lambda-mat.c: Removed.
25684         * lambda-trans.c: Removed.
25685         * lambda.h: Removed.
25686         * tree-loop-linear.c: Removed.
25687         * lto-symtab.c: Do not include lambda.h.
25688         * omega.c (gcd): Removed.
25689         * passes.c (init_optimization_passes): Remove pass_linear_transform.
25690         * tree-data-ref.c (print_lambda_vector): Moved here.
25691         (lambda_vector_copy): Same.
25692         (lambda_matrix_copy): Same.
25693         (lambda_matrix_id): Same.
25694         (lambda_vector_first_nz): Same.
25695         (lambda_matrix_row_add): Same.
25696         (lambda_matrix_row_exchange): Same.
25697         (lambda_vector_mult_const): Same.
25698         (lambda_vector_negate): Same.
25699         (lambda_matrix_row_negate): Same.
25700         (lambda_vector_equal): Same.
25701         (lambda_matrix_right_hermite): Same.
25702         * tree-data-ref.h: Do not include lambda.h.
25703         (lambda_vector): Moved here.
25704         (lambda_matrix): Same.
25705         (dependence_level): Same.
25706         (lambda_transform_legal_p): Removed declaration.
25707         (lambda_collect_parameters): Same.
25708         (lambda_compute_access_matrices): Same.
25709         (lambda_vector_gcd): Same.
25710         (lambda_vector_new): Same.
25711         (lambda_vector_clear): Same.
25712         (lambda_vector_lexico_pos): Same.
25713         (lambda_vector_zerop): Same.
25714         (lambda_matrix_new): Same.
25715         * tree-flow.h (least_common_multiple): Removed declaration.
25716         * tree-parloops.c (lambda_trans_matrix): Moved here.
25717         (LTM_MATRIX): Same.
25718         (LTM_ROWSIZE): Same.
25719         (LTM_COLSIZE): Same.
25720         (LTM_DENOMINATOR): Same.
25721         (lambda_trans_matrix_new): Same.
25722         (lambda_matrix_vector_mult): Same.
25723         (lambda_transform_legal_p): Same.
25724         * tree-pass.h (pass_linear_transform): Removed declaration.
25725         * tree-ssa-loop.c (tree_linear_transform): Removed.
25726         (gate_tree_linear_transform): Removed.
25727         (pass_linear_transform): Removed.
25728         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
25729         flag_loop_interchange.
25730
25731 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25732
25733         PR tree-optimization/47265
25734         PR tree-optimization/47443
25735         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
25736         if name still has some uses.
25737
25738 2011-01-25  Martin Jambor  <mjambor@suse.cz>
25739
25740         PR tree-optimization/47382
25741         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
25742         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
25743
25744 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
25745
25746         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
25747         sjlj_except_unwind_info.
25748
25749 2011-01-25  Richard Guenther  <rguenther@suse.de>
25750
25751         PR tree-optimization/47426
25752         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
25753         visible functions results escape.
25754
25755 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25756
25757         PR target/45701
25758         * config/arm/arm.c (any_sibcall_uses_r3): New function.
25759         (arm_get_frame_offsets): Use it.
25760
25761 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25762             Jakub Jelinek  <jakub@redhat.com>
25763
25764         PR tree-optimization/47271
25765         * tree-if-conv.c (bb_postdominates_preds): New.
25766         (if_convertible_bb_p): Call bb_postdominates_preds.
25767         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
25768         (predicate_scalar_phi): Call bb_postdominates_preds.
25769
25770 2011-01-25  Nick Clifton  <nickc@redhat.com>
25771
25772         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
25773         * config/rx/rx.c (rx_function_value): Likewise.
25774         (rx_promote_function_mode): Likewise.
25775         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
25776         in order to make it legitimate.
25777         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
25778         make sure that the first operand is the same as the result register.
25779         (addsi3_unspec): Delete.
25780         (subdi3): Do not accept immediate operands.
25781         (subdi3_internal): Likewise.
25782
25783 2011-01-25  Jeff Law  <law@redhat.com>
25784
25785         PR rtl-optimization/37273
25786         * ira-costs.c (scan_one_insn): Detect constants living in memory and
25787         handle them like argument loads from stack slots.  Do not double
25788         count memory for memory constants and argument loads from stack slots.
25789
25790 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25791
25792         PR tree-optimization/47427
25793         PR tree-optimization/47428
25794         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
25795         coalesce if the new root var would be TREE_READONLY.
25796
25797 2011-01-25  Richard Guenther  <rguenther@suse.de>
25798
25799         PR middle-end/47414
25800         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
25801         correct type for TBAA.
25802
25803 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25804
25805         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
25806         (close_phi_written_to_memory): Call for_each_index with
25807         dr_indices_valid_in_loop.
25808
25809 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25810
25811         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
25812         when it is initialized.
25813
25814 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25815
25816         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
25817         call to graphite_find_data_references_in_stmt.
25818         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
25819         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
25820         call to graphite_find_data_references_in_stmt.
25821         (analyze_drs_in_stmts): Same.
25822         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
25823         in which the scalar analysis of indices is performed.
25824         (create_data_ref): Same.  Update call to dr_analyze_indices.
25825         (find_data_references_in_stmt): Update call to create_data_ref.
25826         (graphite_find_data_references_in_stmt): Same.
25827         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
25828         declaration.
25829         (create_data_ref): Same.
25830         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
25831         call to create_data_ref.
25832
25833 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25834
25835         * graphite-sese-to-poly.c (build_poly_scop): Move
25836         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
25837
25838 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25839
25840         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
25841         VAR_DECL, PARM_DECL, and RESULT_DECL.
25842
25843 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25844
25845         * graphite-dependences.c (reduction_dr_1): Allow several reductions
25846         in a reduction PBB.
25847         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
25848         that have already been marked as PBB_IS_REDUCTION.
25849
25850 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25851
25852         * graphite-scop-detection.c (same_close_phi_node): New.
25853         (remove_duplicate_close_phi): New.
25854         (make_close_phi_nodes_unique): New.
25855         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
25856
25857 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25858
25859         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
25860         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
25861         of both data references to be the same.
25862
25863 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25864
25865         * graphite-dependences.c (build_lexicographical_constraint): Remove
25866         the gdim parameter.
25867         (build_lexicographical_constraint): Adjust call to
25868         ppl_powerset_is_empty.
25869         (dependence_polyhedron): Same.
25870         (graphite_legal_transform_dr): Same.
25871         (graphite_carried_dependence_level_k): Same.
25872         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
25873         parameter.
25874         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
25875
25876 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25877
25878         * graphite-sese-to-poly.c
25879         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
25880         (close_phi_written_to_memory): New.
25881         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
25882         and unshare_expr.
25883
25884 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25885
25886         * doc/install.texi: Update the expected version number of PPL to 0.11.
25887         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
25888         #if PPL_VERSION_MINOR < 11.
25889
25890 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25891
25892         * graphite-dependences.c: Include graphite-cloog-util.h.
25893         (new_poly_ddr): Inlined into dependence_polyhedron.
25894         (free_poly_ddr): Moved close by new_poly_ddr.
25895         (dependence_polyhedron_1): Renamed dependence_polyhedron.
25896         Early return NULL when ppl_powerset_is_empty returns true.
25897         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
25898         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
25899         (graphite_legal_transform_dr): Call new_poly_ddr.
25900         (graphite_carried_dependence_level_k): Same.
25901         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
25902         (dot_transformed_deps_stmt_1): Removed.
25903         (dot_deps_stmt_1): Call dot_deps_stmt_2.
25904         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
25905         (dot_deps_1): Call dot_deps_2.
25906         * Makefile.in (graphite-dependences.o): Add missing dependence on
25907         graphite-cloog-util.h.
25908
25909 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25910
25911         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
25912         (build_lexicographical_constraint): Same.
25913         (dependence_polyhedron_1): Same.
25914         (graphite_legal_transform_dr): Same.
25915         (graphite_carried_dependence_level_k): Same.
25916         * graphite-ppl.c (ppl_powerset_is_empty): New.
25917         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
25918         * tree-data-ref.c (dump_data_reference): Print the basic block index.
25919
25920 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25921
25922         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
25923         the "a followed by b" relation and document it.
25924
25925 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25926
25927         * graphite-dependences.c (build_lexicographical_constraint): Stop the
25928         iteration when the bag of constraints is empty.
25929
25930 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25931
25932         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
25933
25934 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25935
25936         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
25937         nest and two loop depths as parameters.
25938         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
25939         lst_perfect_nestify.
25940
25941 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25942
25943         * graphite-dependences.c (print_pddr): Call
25944         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
25945
25946 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25947
25948         * graphite-ppl.c (debug_gmp_value): New.
25949         * graphite-ppl.h (debug_gmp_value): Declared.
25950
25951 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
25952
25953         * doc/install.texi: Document availability of cloog-0.16.
25954
25955 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
25956
25957         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
25958         invalid postdominance info.
25959
25960 2011-01-24  Jan Hubicka  <jh@suse.cz>
25961
25962         PR c/21659
25963         * doc/extend.texi (weak pragma): Drop claim that it must
25964         appear before definition.
25965         * varasm.c (merge_weak, declare_weak): Only sanity check
25966         that DECL is not output at a time it is declared weak.
25967
25968 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
25969
25970         * machmode.def: Fixed comments.
25971
25972 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
25973
25974         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
25975
25976 2011-01-24  Paul Koning  <ni1d@arrl.net>
25977
25978         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
25979         WORDS_BIG_ENDIAN.
25980
25981 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
25982
25983         PR target/46519
25984         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
25985         (block_info): Add scanned and prev.
25986         (move_or_delete_vzeroupper_2): Return if the basic block
25987         has been scanned and the upper 128bit state is unchanged
25988         from the last scan.
25989         (move_or_delete_vzeroupper_1): Return true if the exit
25990         state is changed.
25991         (move_or_delete_vzeroupper): Visit basic blocks using the
25992         work-list based algorithm based on vt_find_locations in
25993         var-tracking.c.
25994
25995         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
25996
25997 2011-01-24  Nick Clifton  <nickc@redhat.com>
25998
25999         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
26000         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
26001         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
26002         then define __v850e1__.
26003         * doc/invoke.texi: Document -mv850es.
26004
26005 2011-01-24  Richard Henderson  <rth@redhat.com>
26006
26007         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
26008         compound unordered comparisons.
26009         * config/rx/rx.c (rx_split_fp_compare): Remove.
26010         * config/rx/rx-protos.h: Update.
26011         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
26012         (cbranchsf4): Don't call rx_split_fp_compare.
26013         (*cbranchsf4): Use rx_split_cbranch.
26014         (*cmpsf): Don't accept "i" constraint.
26015         (*conditional_branch): Only valid after reload.
26016         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
26017
26018 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
26019
26020         PR target/47385
26021         * config/rs6000/altivec.md (vector constant splitters): Add
26022         support for creating vector single precision constants if -mvsx is
26023         used and we would create the constant using Altivec primitives.
26024
26025 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
26026             Richard Sandiford  <rdsandiford@googlemail.com>
26027
26028         PR rtl-optimization/47166
26029         * reload1.c (emit_reload_insns): Disable the spill_reg_store
26030         mechanism for PRE_MODIFY and POST_MODIFY.
26031         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
26032         reloadreg.
26033
26034 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
26035
26036         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
26037
26038 2011-01-22  Jan Hubicka  <jh@suse.cz>
26039
26040         PR lto/47333
26041         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
26042
26043 2011-01-22  Jan Hubicka  <jh@suse.cz>
26044
26045         PR tree-optimization/43884
26046         PR lto/44334
26047         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
26048         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
26049
26050 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
26051
26052         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26053         * config/s390/s390.c (s390_register_move_cost,
26054         s390_memory_move_cost): New.
26055         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
26056
26057 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26058
26059         PR middle-end/47401
26060         * except.c (sjlj_assign_call_site_values): Move setting the
26061         crtl->uses_eh_lsda flag to ...
26062         (sjlj_mark_call_sites): ... here.
26063         (sjlj_emit_function_enter): Support NULL dispatch label.
26064         (sjlj_build_landing_pads): In a function with no landing pads
26065         that still has must-not-throw regions, generate code to register
26066         a personality function with empty LSDA.
26067
26068 2011-01-21  Richard Henderson  <rth@redhat.com>
26069
26070         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
26071
26072         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
26073
26074         * compare-elim.c: New file.
26075         * Makefile.in (OBJS-common): Add it.
26076         (compare-elim.o): New.
26077         * common.opt (fcompare-elim): New.
26078         * opts.c (default_options_table): Add OPT_fcompare_elim.
26079         * tree-pass.h (pass_compare_elim_after_reload): New.
26080         * passes.c (init_optimization_passes): Add it.
26081         * recog.h: Protect against re-inclusion.
26082         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
26083         * doc/invoke.texi (-fcompare-elim): Document it.
26084         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
26085         * doc/tm.texi: Rebuild.
26086
26087 2011-01-22  Nick Clifton  <nickc@redhat.com>
26088
26089         * config/rx/rx.md (cstoresf4): Pass comparison operator to
26090         rx_split_fp_compare.
26091
26092 2011-01-22  Nick Clifton  <nickc@redhat.com>
26093
26094         * config/rx/rx.md (UNSPEC_CONST): New.
26095         (deallocate_and_return): Wrap the amount popped off the stack in
26096         an UNSPEC_CONST in order to stop it being rejected by
26097         -mmax-constant-size.
26098         (pop_and_return): Add a "(return)" rtx.
26099         (call): Drop the immediate operand.
26100         (call_internal): Likewise.
26101         (call_value): Likewise.
26102         (call_value_internal): Likewise.
26103         (sibcall_internal): Likewise.
26104         (sibcall_value_internal): Likewise.
26105         (sibcall): Likewise.  Generate an explicit call using
26106         sibcall_internal.
26107         (sibcall_value): Likewise.
26108         (mov<>): FAIL if a constant operand is not legitimate.
26109         (addsi3_unpsec): New pattern.
26110
26111         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
26112         (ok_for_max_constant): New function.
26113         (gen_safe_add): New function.
26114         (rx_expand_prologue): Use gen_safe_add.
26115         (rx_expand_epilogue): Likewise.
26116         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
26117         UNSPEC CONSTs.
26118
26119 2011-01-21  Jeff Law  <law@redhat.com>
26120
26121         PR tree-optimization/47053
26122         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
26123         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
26124         statements are deleted.
26125         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
26126         is nonempty, then purge dead edges and cleanup the CFG.
26127
26128 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26129
26130         PR debug/47402
26131         Temporarily revert:
26132         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26133         PR debug/47106
26134         * tree-dfa.c (create_var_ann): Mark variable as used.
26135
26136 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26137
26138         PR middle-end/45566
26139         * except.c (convert_to_eh_region_ranges): Emit queued no-region
26140         notes from other section in hot/cold partitioning even if
26141         last_action is -3.  Increment call_site_base.
26142
26143         PR rtl-optimization/47366
26144         * fwprop.c (forward_propagate_into): Return bool.  If
26145         any changes are made, -fnon-call-exceptions is used and
26146         REG_EH_REGION note is present, call purge_dead_edges
26147         and return true if it purged anything.
26148         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
26149         any EH edges were purged.
26150
26151 2011-01-21  Jeff Law  <law@redhat.com>
26152
26153         PR rtl-optimization/41619
26154         * caller-save.c (setup_save_areas): Break out code to determine
26155         which hard regs are live across calls by examining the reload chains
26156         so that it is always used.
26157         Eliminate code which checked REG_N_CALLS_CROSSED.
26158
26159 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26160
26161         PR tree-optimization/47355
26162         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
26163         NOP has non-debug uses beyond PHIs in new_bb.
26164
26165 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26166
26167         PR debug/47106
26168         * cfgexpand.c (account_used_vars_for_block): Only account vars
26169         that are annotated as used.
26170         (estimated_stack_frame_size): Don't set TREE_USED.
26171         * tree-dfa.c (create_var_ann): Mark variable as used.
26172
26173 2011-01-21  Richard Guenther  <rguenther@suse.de>
26174
26175         PR middle-end/47395
26176         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
26177
26178 2011-01-21  Richard Guenther  <rguenther@suse.de>
26179
26180         PR tree-optimization/47365
26181         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
26182         (vn_reference_lookup_pieces): Adjust.
26183         (vn_reference_lookup): Likewise.
26184         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
26185         (vn_reference_lookup_3): Only look through kills if in
26186         VN_WALKREWRITE mode.
26187         (vn_reference_lookup_pieces): Adjust.
26188         (vn_reference_lookup): Likewise.
26189         (visit_reference_op_load): Likewise.
26190         (visit_reference_op_store): Likewise.
26191         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
26192         (compute_avail): Likewise.
26193         (eliminate): Likewise.
26194
26195 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26196
26197         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
26198         DECL_IGNORED_P non-reg vars if they are used.
26199
26200         PR tree-optimization/47391
26201         * varpool.c (const_value_known_p): Return false if
26202         decl is volatile.
26203
26204 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
26205
26206         PR bootstrap/47215
26207         * config/i386/i386.c (ix86_local_alignment): Handle
26208         case for va_list_type_node is nil.
26209         (ix86_canonical_va_list_type): Likewise.
26210
26211 2011-01-21  Alan Modra  <amodra@gmail.com>
26212
26213         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
26214         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
26215
26216 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26217
26218         * config/arm/arm.md (define_attr type): Rename f_load
26219         and f_store to f_fpa_load and f_fpa_store. Update.
26220         (write_conflict): Deal with rename fallout.
26221         (*push_fp_multi): Likewise.
26222         * config/arm/fpa.md (f_load): Use f_fpa_load.
26223         (f_store): Use f_fpa_store.
26224         (*movsf_fpa): Likewise.
26225         (*movdf_fpa): Likewise.
26226         (*movxf_fpa): Likewise.
26227         (*thumb2_movsf_fpa): Likewise.
26228         (*thumb2_movdf_fpa): Likewise.
26229         (*thumb2_movxf_fpa): Likewise.
26230         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
26231         f_loadd and f_stored.
26232         (*thumb2_movdi_vfp): Likewise.
26233         (*thumb2_movsf_vfp): Fix attribute to f_loads.
26234         (*thumb2_movsi_vfp): Likewise.
26235         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
26236         Use f_loads instead of f_load.
26237         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
26238
26239 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
26240
26241         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26242         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
26243         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26244         (xtensa_mode_dependent_address_p): New function.
26245         (constantpool_address_p): Make static. Change return type to bool.
26246         Change argument type to const_rtx. Use CONST_INT_P predicate.
26247
26248 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
26249
26250         PR debug/46583
26251         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
26252
26253 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26254
26255         PR debug/47283
26256         * cfgexpand.c (expand_debug_expr): Instead of generating
26257         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
26258         etc. handling.
26259
26260 2011-01-20  Richard Guenther  <rguenther@suse.de>
26261
26262         PR middle-end/47370
26263         * tree-inline.c (remap_gimple_op_r): Recurse manually for
26264         the pointer operand of MEM_REFs.
26265
26266 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26267
26268         PR tree-optimization/46130
26269         * ipa-split.c (consider_split): If return_bb contains non-virtual
26270         PHIs other than for retval or if split_function would not adjust it,
26271         refuse to split.
26272
26273 2011-01-20  Richard Guenther  <rguenther@suse.de>
26274
26275         PR tree-optimization/47167
26276         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
26277         Revert previous change, only avoid enumeral type changes.
26278
26279 2011-01-19  Mike Stump  <mikestump@comcast.net>
26280
26281         * doc/tm.texi.in (BRANCH_COST): Englishify.
26282         * doc/tm.texi (BRANCH_COST): Likewise.
26283
26284 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
26285
26286         PR c++/47291
26287         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
26288         (gen_scheduled_generic_parms_dies): New functions.
26289         (gen_struct_or_union_type_die): Schedule template parameters DIEs
26290         generation for the end of CU compilation.
26291         (dwarf2out_finish): Generate template parameters DIEs here.
26292
26293 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26294
26295         PR debug/46240
26296         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
26297         debug bind stmt on merge edges.
26298
26299 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26300
26301         PR debug/47079
26302         PR debug/46724
26303         * function.c (instantiate_expr): Instantiate incoming rtl of
26304         implicit arguments, and recurse on VALUE_EXPRs.
26305         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
26306         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
26307
26308 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26309
26310         * c-parser.c (c_parser_for_statement): Initialize
26311         collection_expression.
26312
26313 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26314
26315         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
26316
26317 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26318
26319         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
26320         (LINK_SHLIB_SPEC): Don't use %(link_path).
26321         (SUBTARGET_EXTRA_SPECS): Remove link_path.
26322
26323 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26324
26325         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
26326         (NO_SHARED_LIB_SUPPORT): Remove.
26327         (LINK_SHLIB_SPEC): Remove one conditional definition.
26328
26329 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26330
26331         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
26332         %{call_shared}.
26333         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
26334         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
26335         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
26336         %{call_shared} and conditionals on these options not being passed.
26337         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
26338         %{call_shared}.
26339
26340 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26341
26342         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
26343         simplify.
26344
26345         * ipa-split.c: Spelling fixes.
26346
26347 2011-01-19  Richard Henderson  <rth@redhat.com>
26348
26349         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
26350         (*mulsi3): Likewise.
26351
26352         * longlong.h [__mn10300__] (count_leading_zeros): New.
26353         [__mn10300__] (umul_ppmm, smul_ppmm): New.
26354         [__mn10300__] (add_ssaaaa, subddmmss): New.
26355         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
26356         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
26357
26358 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26359
26360         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
26361
26362 2011-01-19  Richard Henderson  <rth@redhat.com>
26363
26364         * config/mn10300/mn10300.md (addsi3_flags): New.
26365         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
26366         (subsi3_flags, subc_internal, subdi3): New.
26367         (subdi3_internal, *subdi3_degenerate): New.
26368         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
26369
26370         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
26371         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
26372         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
26373         * config/mn10300/mn10300-protos.h: Update.
26374         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
26375         (return_ret): Likewise.  Rename from return_internal_regs.
26376         (return_internal): Remove.
26377
26378         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
26379         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
26380         (mn10300_legitimate_constant_p): Likewise.
26381         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
26382         (mn10300_frame_size): New.
26383         (mn10300_expand_prologue): Use it.
26384         (mn10300_expand_epilogue): Likewise.
26385         (mn10300_initial_offset): Likewise.
26386         * config/mn10300/mn10300-protos.h: Update.
26387         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
26388         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
26389         (prologue, epilogue, return_internal): Tidy output code.
26390         (mn10300_store_multiple_operation, return): Likewise.
26391         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
26392         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
26393         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
26394         (load_pic, am33_load_pic): New.
26395         (mn10300_load_pic0, mn10300_load_pic1): New.
26396
26397         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
26398         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
26399         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
26400         (cc_flags_for_mode, cc_flags_for_code): New.
26401         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
26402         overflow flag is not valid.  Validate that the flags we need
26403         for the comparison are valid.
26404         (mn10300_output_cmp): Remove.
26405         (mn10300_output_add): New.
26406         (mn10300_select_cc_mode): Use cc_flags_for_code.
26407         (mn10300_split_cbranch): New.
26408         (mn10300_match_ccmode): New.
26409         (mn10300_split_and_operand_count): New.
26410         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
26411         to the function.
26412         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
26413         (addsi3): ... here.  Use mn10300_output_add.
26414         (*addsi3_flags): New.
26415         (*am33_subsi3, *mn10300_subsi3): Merge...
26416         (subsi3): ... here.  Use attribute isa.
26417         (*subsi3_flags): New.
26418         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
26419         when possible.
26420         (*am33_andsi3, *mn10300_andsi3): Merge...
26421         (andsi3): ... here.
26422         (*andsi3_flags): New.
26423         (andsi3 splitters): New.
26424         (*am33_iorsi3, *mn10300_iorsi3): Merge...
26425         (iorsi3): ... here.
26426         (*iorsi3_flags): New.
26427         (*am33_xorsi3, *mn10300_xorsi3): Merge...
26428         (xorsi3): ... here.
26429         (*xorsi3_flags): New.
26430         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
26431         (one_cmplsi2): ... here.
26432         (*one_cmplsi2_flags): New.
26433         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
26434         instead of "dax" in constraints.  Use mn10300_split_cbranch.
26435         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
26436         use matching constraints to eliminate a self-comparison.
26437         (*integer_conditional_branch): Rename from integer_conditional_branch.
26438         Use int_mode_flags to match CC_REG.
26439         (*cbranchsi4_btst, *btstsi): New.
26440         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
26441         mn10300_split_cbranch.
26442         (*am33_cmpsf): Rename from am33_cmpsf.
26443         (*float_conditional_branch): Rename from float_conditional_branch.
26444         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
26445         (zero_extendqisi2): ... here.
26446         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
26447         (zero_extendhisi2): ... here.
26448         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
26449         (extendqisi2): ... here.
26450         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
26451         (extendhisi2): ... here.
26452         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
26453         (ashlsi3): ... here.
26454         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
26455         (lshrsi3): ... here.
26456         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
26457         (ashrsi3): ... here.
26458         (consecutive add peephole): Remove.
26459         * config/mn10300/predicates.md (label_ref_operand): New.
26460         (int_mode_flags): New.
26461         (CCZN_comparison_operator): New.
26462
26463         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
26464         (throughput_42_latency_43): New reservation.
26465         (mulsidi3, umulsidi3): New expanders.
26466         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
26467         the MDR register to allocation; separately allocate the low and
26468         high parts of the DImode result.
26469         (umulsidi3_internal): Similarly.
26470         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
26471         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
26472         (udivsi3, umodsi3): Remove.
26473         (udivmodsi4, divmodsi4): New expanders.
26474         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
26475         (*divmodsi4): Simiarly.
26476         (ext_internal): New.
26477
26478         * config/mn10300/constraints.md ("z"): New constraint.
26479         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
26480         (FIXED_REGISTERS): Don't fix MDR.
26481         (CALL_USED_REGSITERS): Reformat nicely.
26482         (REG_ALLOC_ORDER): Add MDR.
26483         (enum regclass): Add MDR_REGS.
26484         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
26485         (IRA_COVER_CLASSES): Add MDR_REGS.
26486         (REGNO_REG_CLASS): Handle MDR_REG.
26487         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
26488         (mn10300_register_move_cost): Likewise.
26489         * config/mn10300/mn10300.md (MDR_REG): New.
26490         (*movsi_internal): Handle moves to/from MDR_REGS.
26491
26492         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
26493         POST_MODIFY.
26494         (mn10300_secondary_reload): Tidy combination reload classes.
26495         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
26496         addresses for AM33.  Allow symbolic offsets for reg+imm.
26497         (mn10300_regno_in_class_p): New.
26498         (mn10300_legitimize_reload_address): New.
26499         * config/mn10300/mn10300.h (enum reg_class): Remove
26500         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
26501         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
26502         SP_OR_GENERAL_REGS.
26503         (REG_CLASS_NAMES): Update to match.
26504         (REG_CLASS_CONTENTS): Likewise.
26505         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
26506         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
26507         (REGNO_IN_RANGE_P): Remove.
26508         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
26509         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
26510         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
26511         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
26512         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
26513         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
26514         (REGNO_GENERAL_P): New.
26515         (HAVE_POST_MODIFY_DISP): New.
26516         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
26517         (LEGITIMIZE_RELOAD_ADDRESS): New.
26518         * config/mn10300/mn10300-protos.h: Update.
26519
26520         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
26521         DATA_REGS for AM33 stack-pointer destination.
26522         (mn10300_preferred_output_reload_class): Likewise.
26523         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
26524         into a form appropriate for ...
26525         (TARGET_SECONDARY_RELOAD): New.
26526         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
26527         * config/mn10300/mn10300-protos.h: Update.
26528         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
26529         reload_insi; use the "A" constraint for the scratch; handle AM33
26530         moves of sp to non-address registers.
26531
26532         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
26533         (*movqi_internal): ... here.
26534         (*am33_movhi, *mn10300_movhi): Merge into...
26535         (*movhi_internal): ... here.
26536         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
26537         as the source/destination of moves from/to SP.
26538         (movsf): Only allow for AM33-2.
26539         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
26540         any integer constant constraint.  Only allow for AM33-2.  Tidy
26541         all of the alternative outputs.
26542         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
26543         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
26544         for MN103.
26545         (udivsi3, umodsi3): New patterns for MN103 only.
26546
26547 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
26548
26549         * doc/tm.texi.in: Spell out that a lack of register class unions
26550         can lead to ICEs.
26551         * doc/tm.texi: Regenerate.
26552
26553 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26554
26555         PR rtl-optimization/47337
26556         * dce.c (check_argument_store): New function.
26557         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
26558
26559         PR tree-optimization/47290
26560         * tree-eh.c (infinite_empty_loop_p): New function.
26561         (cleanup_empty_eh): Use it.
26562
26563 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
26564
26565         PR target/46997
26566         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
26567         (a64_expand_widen_sum): Ditto.
26568         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
26569         (vec_extract_evenodd_help): Ditto.
26570         (vec_extract_evenv4hi): Ditto.
26571         (vec_extract_oddv4hi): Ditto.
26572         (vec_extract_evenv2si): Ditto.
26573         (vec_extract_oddv2si): Ditto.
26574         (vec_extract_evenv2sf): Ditto.
26575         (vec_extract_oddv2sf): Ditto.
26576         (vec_pack_trunc_v4hi: Ditto.
26577         (vec_pack_trunc_v2si): Ditto.
26578         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
26579         (vec_interleave_highv8qi): Ditto.
26580         (mix1_r): Ditto.
26581         (vec_extract_oddv8qi): Ditto.
26582         (vec_interleave_lowv4hi): Ditto.
26583         (vec_interleave_highv4hi): Ditto.
26584         (vec_interleave_lowv2si): Ditto.
26585         (vec_interleave_highv2si): Ditto.
26586
26587 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26588
26589         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
26590         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
26591         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
26592         (pa_c_mode_for_suffix): New.
26593         (TARGET_EXPAND_BUILTIN): Define.
26594         (TARGET_C_MODE_FOR_SUFFIX): Define.
26595         (pa_builtins): Define.
26596         (pa_init_builtins): Register __float128 type and init new support
26597         builtins.
26598         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
26599         * config/pa/quadlib.c (_U_Qfcopysign): New.
26600
26601 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
26602
26603         PR middle-end/46894
26604         * explow.c (allocate_dynamic_stack_space): Do not assume more than
26605         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
26606         are defined.
26607
26608 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26609
26610         PR tree-optimization/47179
26611         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
26612         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
26613
26614 2011-01-18  Richard Guenther  <rguenther@suse.de>
26615
26616         PR rtl-optimization/47216
26617         * emit-rtl.c: Include tree-flow.h.
26618         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
26619         of replicating it with different semantics.
26620         * Makefile.in (emit-rtl.o): Adjust.
26621
26622 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26623
26624         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
26625         (cortex_a9_dp): Handle neon types correctly.
26626
26627 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
26628
26629         PR rtl-optimization/47299
26630         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
26631         subtarget.  Use normal multiplication if both operands are constants.
26632         * expmed.c (expand_widening_mult): Don't try to optimize constant
26633         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
26634         before using it.
26635
26636 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26637
26638         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
26639         spacing after 'e.g.', typos, comma, hyphenation.
26640
26641 2011-01-17  Richard Henderson  <rth@redhat.com>
26642
26643         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
26644         (rx_restricted_mem_operand): New.
26645         (rx_shift_operand): Use register_operand.
26646         (rx_source_operand, rx_compare_operand): Likewise.
26647         * config/rx/rx.md (addsi3_flags): New expander.
26648         (adddi3): Rewrite as expander.
26649         (adc_internal, *adc_flags, adddi3_internal): New patterns.
26650         (subsi3_flags): New expander.
26651         (subdi3): Rewrite as expander.
26652         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
26653
26654         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
26655         (rx_init_builtins): Remove sat builtin.
26656         (rx_expand_builtin): Likewise.
26657         * config/rx/rx.md (ssaddsi3): New.
26658         (*sat): Rename from sat.  Represent the CC_REG input.
26659
26660         * config/rx/predicates.md (rshift_operator): New.
26661         * config/rx/rx.c (rx_expand_insv): Remove.
26662         * config/rx/rx-protos.h: Update.
26663         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
26664         operand to the canonical position.
26665         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
26666         (*bitclr, *bitclr_in_memory): Similarly.
26667         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
26668         (insv): Retain the zero_extract in the expansion.
26669
26670         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
26671         (bswaphi2, bitinvert, revw): Likewise.
26672
26673         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
26674         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
26675         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
26676         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
26677         (bitset, bitset_in_memory): Likewise.
26678         (bitinvert, bitinvert_in_memory): Likewise.
26679         (bitclr, bitclr_in_memory): Likewise.
26680         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
26681         (rx_strend, rx_cmpstrn): Likewise.
26682         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
26683         (bitop peep2 patterns): Remove.
26684
26685         * config/rx/rx.c (rx_match_ccmode): New.
26686         * config/rx/rx-protos.h: Update.
26687         * config/rx/rx.md (abssi2): Clobber, don't set flags.
26688         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
26689         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
26690         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
26691         (fix_truncsfsi2, floatsisf2): Likewise.
26692         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
26693         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
26694         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
26695         (*subsi3_flags, *xorsi3_flags): New.
26696
26697         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
26698
26699         * config/rx/rx.c (rx_print_operand): Remove workaround for
26700         unsplit comparison operations.
26701
26702         * config/rx/rx.md (movsicc): Split after reload.
26703         (*movsicc): Merge *movsieq and *movsine via match_operator.
26704         (*stcc): New pattern.
26705
26706         * config/rx/rx.c (rx_float_compare_mode): Remove.
26707         * config/rx/rx.h (rx_float_compare_mode): Remove.
26708         * config/rx/rx.md (cstoresi4): Split after reload.
26709         (*sccc): New pattern.
26710
26711         * config/rx/predicates.md (label_ref_operand): New.
26712         (rx_z_comparison_operator): New.
26713         (rx_zs_comparison_operator): New.
26714         (rx_fp_comparison_operator): New.
26715         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
26716         Validate that the flags are set properly for the comparison.
26717         (rx_gen_cond_branch_template): Remove.
26718         (rx_cc_modes_compatible): Remove.
26719         (mode_from_flags): New.
26720         (flags_from_code): Rename from flags_needed_for_conditional.
26721         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
26722         (rx_select_cc_mode): Likewise.
26723         (rx_split_fp_compare): New.
26724         (rx_split_cbranch): New.
26725         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
26726         (*cbranchsi4): Use match_operator and rx_split_cbranch.
26727         (*cbranchsf4): Similarly.
26728         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
26729         match_operator and rx_split_cbranch.
26730         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
26731         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
26732         (*cmpsi): Rename from cmpsi.
26733         (*tstsi): Rename from tstsi.
26734         (*cmpsf): Rename from cmpsf; use CC_Fmode.
26735         (*conditional_branch): Rename from conditional_branch.
26736         (*reveresed_conditional_branch): Remove.
26737         (b<code>): Remove expander.
26738         * config/rx/rx-protos.h: Update.
26739
26740         * config/rx/rx.c (rx_compare_redundant): Remove.
26741         * config/rx/rx.md (cmpsi): Don't use it.
26742         * config/rx/rx-protos.h: Update.
26743
26744         * config/rx/rx-modes.def (CC_F): New mode.
26745         * config/rx/rx.c (rx_select_cc_mode): New.
26746         * config/rx/rx.h (SELECT_CC_MODE): Use it.
26747         * config/rx/rx-protos.h: Update.
26748
26749 2011-01-17  Richard Henderson  <rth@redhat.com>
26750
26751         * except.c (dump_eh_tree): Fix stray ; after for statement.
26752
26753 2011-01-17  Richard Guenther  <rguenther@suse.de>
26754
26755         PR tree-optimization/47313
26756         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
26757         handling before copying the body.  Properly deal with
26758         by-reference result in SSA form.
26759
26760 2011-01-17  Ian Lance Taylor  <iant@google.com>
26761
26762         PR target/47219
26763         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
26764         (struct_value_alias_set): Don't define.
26765         (sparc_option_override): Don't set sparc_sr_alias_set and
26766         struct_value_alias_set.
26767         (save_or_restore_regs): Use gen_frame_mem rather than calling
26768         set_mem_alias_set.
26769         (sparc_struct_value_rtx): Likewise.
26770
26771 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
26772
26773         PR target/47318
26774         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
26775         (_mm_maskstore_pd): Likewise.
26776         (_mm_maskload_ps): Likewise.
26777         (_mm_maskstore_ps): Likewise.
26778         (_mm256_maskload_pd): Change mask to __m256i.
26779         (_mm256_maskstore_pd): Likewise.
26780         (_mm256_maskload_ps): Likewise.
26781         (_mm256_maskstore_ps): Likewise.
26782
26783         * config/i386/i386-builtin-types.def: Updated.
26784         (ix86_expand_special_args_builtin): Likewise.
26785
26786         * config/i386/i386.c (bdesc_special_args): Update
26787         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
26788         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
26789         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
26790         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
26791
26792         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
26793         Use <avxpermvecmode> on mask register.
26794         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
26795
26796 2011-01-17  Olivier Hainque  <hainque@adacore.com>
26797             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
26798             Eric Botcazou  <ebotcazou@adacore.com>
26799
26800         PR target/46655
26801         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
26802         if <= USHRT_MAX in 32-bit mode.
26803
26804 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26805
26806         * doc/install.texi (Configuration, Specific): Wrap long
26807         lines in examples.  Allow line wrapping in long options
26808         and URLs where beneficial for PDF output.
26809
26810 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
26811
26812         * config/mips/mips.c (mips_classify_symbol): Don't return
26813         SYMBOL_PC_RELATIVE for nonlocal labels.
26814
26815 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26816
26817         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
26818
26819 2011-01-15  Jan Hubicka  <jh@suse.cz>
26820
26821         PR tree-optimization/47276
26822         * ipa.c (function_and_variable_visibility): Do not try to mark alias
26823         declarations as needed.
26824
26825 2011-01-15  Martin Jambor  <mjambor@suse.cz>
26826
26827         * common.opt (fdevirtualize): New flag.
26828         * doc/invoke.texi (Option Summary): Document it.
26829         * opts.c (default_options_table): Add devirtualize flag.
26830         * ipa-prop.c (detect_type_change): Return immediately if
26831         devirtualize flag is not set.
26832         (detect_type_change_ssa): Likewise.
26833         (compute_known_type_jump_func): Likewise.
26834         (ipa_analyze_virtual_call_uses): Likewise.
26835
26836 2011-01-14  Martin Jambor  <mjambor@suse.cz>
26837
26838         PR tree-optimization/45934
26839         PR tree-optimization/46302
26840         * ipa-prop.c (type_change_info): New type.
26841         (stmt_may_be_vtbl_ptr_store): New function.
26842         (check_stmt_for_type_change): Likewise.
26843         (detect_type_change): Likewise.
26844         (detect_type_change_ssa): Likewise.
26845         (compute_complex_assign_jump_func): Check for dynamic type change.
26846         (compute_complex_ancestor_jump_func): Likewise.
26847         (compute_known_type_jump_func): Likewise.
26848         (compute_scalar_jump_functions): Likewise.
26849         (ipa_analyze_virtual_call_uses): Likewise.
26850         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
26851
26852 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26853
26854         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
26855         * config/i386/i386.opt (msse5): New Alias.
26856
26857 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26858
26859         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
26860         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26861         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26862         * config/sparc/sparc.h (CC1_SPEC): Likewise.
26863
26864 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26865
26866         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
26867         -mcpu options.
26868         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26869         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26870         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
26871         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
26872         Likewise.
26873         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
26874
26875 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26876
26877         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
26878
26879 2011-01-14  Mike Stump  <mikestump@comcast.net>
26880
26881         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
26882         * config/fr30/fr30.md: Likweise
26883         (movsi_push): Likewise.
26884         (movsi_pop): Likewise.
26885         (enter_func): Likewise.
26886         * config/moxie/moxie.md (movsi_push): Likewise.
26887         (movsi_pop): Likewise.
26888
26889 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26890
26891         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
26892         %{no_archive} %{exact_version}.
26893         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
26894         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
26895         %{no_archive} %{exact_version}.
26896         * config/mips/openbsd.h (LINK_SPEC): Likewise.
26897         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
26898         * config/mips/vxworks.h: Likewise.
26899
26900 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26901
26902         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
26903
26904 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26905
26906         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
26907         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
26908
26909 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26910
26911         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
26912         -nodefaultlib.
26913
26914 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26915
26916         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
26917         for mcpu not cpu.
26918         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
26919         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
26920         not cpu.
26921         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
26922         Don't handle -shlib.
26923
26924 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26925
26926         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
26927         (CC1_SPEC): Don't handle -profile.
26928
26929 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26930
26931         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
26932         * config/mips/mips.h (CC1_SPEC): Likewise.
26933
26934 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26935
26936         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
26937         * config/mips/mips.h (CC1_SPEC): Likewise.
26938
26939 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26940
26941         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
26942         * config/m32r/linux.h (LINK_SPEC): Likewise.
26943         * config/mips/linux.h (LINK_SPEC): Likewise.
26944         * config/mips/linux64.h (LINK_SPEC): Likewise.
26945         * config/sparc/linux.h (LINK_SPEC): Likewise.
26946         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
26947         LINK_SPEC): Likewise.
26948         * config/xtensa/linux.h (LINK_SPEC): Likewise.
26949
26950 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26951
26952         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
26953         %{version:-v}.
26954         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
26955
26956 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26957
26958         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
26959         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
26960
26961 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26962
26963         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
26964
26965 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26966
26967         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
26968         supports -Bstatic/-Bdynamic.
26969         * configure: Regenerate.
26970
26971 2011-01-14  Jan Hubicka  <jh@suse.cz>
26972             Jack Howarth  <howarth@bromo.med.uc.edu>
26973
26974         PR target/46037
26975         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
26976         when checking debug_info_level. Test write_symbols instead of
26977         debug_hooks->var_location when setting flag_var_tracking_uninit.
26978
26979 2011-01-14  Richard Guenther  <rguenther@suse.de>
26980
26981         PR tree-optimization/47179
26982         * target.def (ref_may_alias_errno): New target hook.
26983         * targhooks.h (default_ref_may_alias_errno): Declare.
26984         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
26985         (default_ref_may_alias_errno): New function.
26986         * target.h (struct ao_ref_s): Declare.
26987         * tree-ssa-alias.c: Include target.h.
26988         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
26989         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
26990         (targhooks.o): Likewise.
26991         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
26992         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
26993
26994 2011-01-14  Richard Guenther  <rguenther@suse.de>
26995
26996         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
26997
26998 2011-01-14  Richard Guenther  <rguenther@suse.de>
26999
27000         PR tree-optimization/47280
27001         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
27002         return CFG changes.
27003         (tree_ssa_forward_propagate_single_use_vars): Deal with
27004         CFG changes from associate_plusminus.
27005
27006 2011-01-14  Richard Guenther  <rguenther@suse.de>
27007
27008         PR middle-end/47281
27009         Revert
27010         2011-01-11  Richard Guenther  <rguenther@suse.de>
27011
27012         PR tree-optimization/46076
27013         * tree-ssa.c (useless_type_conversion_p): Conversions from
27014         unprototyped to empty argument list function types are useless.
27015
27016 2011-01-14  Richard Guenther  <rguenther@suse.de>
27017
27018         PR tree-optimization/47286
27019         * tree-ssa-structalias.c (new_var_info): Register variables are global.
27020
27021 2011-01-14  Martin Jambor  <mjambor@suse.cz>
27022
27023         PR middle-end/46823
27024         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
27025
27026 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
27027
27028         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
27029         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27030         * config/xtensa/xtensa.c (xtensa_libcall_value,
27031         xtensa_function_value_regno_p): New functions.
27032         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
27033
27034 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
27035
27036         PR c++/47213
27037         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
27038         PE specific hook.
27039         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
27040         New function prototype.
27041         * config/i386/winnt.c (i386_pe_assemble_visibility):
27042         Warn only if attribute was specified by user.
27043
27044 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
27045
27046         PR target/47251
27047         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
27048         floating point.
27049         (floatunsdidf2_fcfidu): Ditto.
27050
27051 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27052
27053         * config/s390/s390.c (print_operand_address): Replace 'error' with
27054         'output_operand_lossage'.
27055         (print_operand): Likewise.
27056
27057 2011-01-13  Jeff Law  <law@redhat.com>
27058
27059         PR rtl-optimization/39077
27060         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
27061         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
27062         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
27063         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
27064         * gcse.c (prune_insertions_deletions): New function.
27065         (compute_pre_data): Use it.
27066
27067 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
27068
27069         PR debug/PR46973
27070         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
27071         static function.
27072         (prune_unused_types_mark): Use it.
27073
27074 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
27075
27076         PR rtl-optimization/45352
27077         * sel-sched.c: Update copyright years.
27078         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
27079         in the advancing loop when we have issued issue_rate insns.
27080
27081 2011-01-12  Richard Henderson  <rth@redhat.com>
27082
27083         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
27084         (TARGET_MD_ASM_CLOBBERS): New.
27085
27086         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
27087         (TARGET_DELEGITIMIZE_ADDRESS): New.
27088
27089         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
27090         (clzsi2, *bsch): New patterns.
27091
27092         * config/mn10300/mn10300.md (INT): New mode iterator.
27093         (*mov<INT>_clr): New pattern, and peep2 to generate it.
27094
27095         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
27096         flag_split_wide_types.
27097
27098         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
27099         (mn10300_trampoline_init): Rewrite without a template, an immediate
27100         load and a direct branch.
27101         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
27102
27103 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
27104
27105         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27106         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
27107         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
27108         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27109
27110 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
27111
27112         PR debug/47209
27113         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
27114         of type.
27115
27116 2011-01-12  Jan Hubicka  <jh@suse.cz>
27117
27118         PR driver/47244
27119         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
27120         (PLUGIN_COND_CLOSE): New macro.
27121         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
27122
27123 2011-01-12  Richard Guenther  <rguenther@suse.de>
27124
27125         PR lto/47259
27126         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
27127         register variables in a MEM_REF.
27128
27129 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
27130
27131         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
27132         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
27133         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
27134         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
27135         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
27136         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
27137         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
27138         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
27139         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
27140         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
27141         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
27142         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
27143         * config/gnu-user.h: New.  Copied from linux.h.
27144         (LINUX_TARGET_STARTFILE_SPEC): Rename to
27145         GNU_USER_TARGET_STARTFILE_SPEC.
27146         (LINUX_TARGET_ENDFILE_SPEC): Rename to
27147         GNU_USER_TARGET_ENDFILE_SPEC.
27148         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
27149         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
27150         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
27151         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
27152         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
27153         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
27154         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
27155         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
27156         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
27157         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
27158         * config/arm/linux-eabi.h (CC1_SPEC): Use
27159         GNU_USER_TARGET_CC1_SPEC.
27160         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
27161         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
27162         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
27163         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
27164         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
27165         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
27166         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
27167         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
27168
27169 2011-01-12  Richard Guenther  <rguenther@suse.de>
27170
27171         PR other/46946
27172         * doc/invoke.texi (ffast-math): Document it is turned on
27173         with -Ofast.
27174
27175 2011-01-12  Jan Hubicka  <jh@suse.cz>
27176
27177         PR tree-optimization/47233
27178         * opts.c (common_handle_option): Disable ipa-reference with profile
27179         feedback.
27180
27181 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27182
27183         * c-parser.c (c_parser_objc_at_property_declaration): Improved
27184         error message.
27185
27186 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27187
27188         * c-parser.c (c_lex_one_token): Updated and reindented some
27189         comments.  No changes in code.
27190
27191 2011-01-11  Ian Lance Taylor  <iant@google.com>
27192
27193         * godump.c (go_output_var): Don't output the variable if there is
27194         already a type with the same name.
27195
27196 2011-01-11  Ian Lance Taylor  <iant@google.com>
27197
27198         * godump.c (go_format_type): Don't generate float80.
27199
27200 2011-01-11  Richard Henderson  <rth@redhat.com>
27201
27202         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
27203         declaration.  Rewrite for both speed and size.
27204         (mn10300_address_cost_1): Remove.
27205         (mn10300_register_move_cost): New.
27206         (mn10300_memory_move_cost): New.
27207         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
27208         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
27209         extensions, shifts, BSWAP, CLZ.
27210         (mn10300_wide_const_load_uses_clr): Remove.
27211         (TARGET_REGISTER_MOVE_COST): New.
27212         (TARGET_MEMORY_MOVE_COST): New.
27213         * config/mn10300/mn10300-protos.h: Update.
27214         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
27215
27216         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
27217         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
27218         * config/mn10300/mn10300-protos.h: Update.
27219         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
27220         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
27221         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
27222         (*test_int_bitfield, *test_byte_bitfield): Remove.
27223         (*bit_test, *subreg_bit_test): Remove.
27224         * config/mn10300/predicates.md (const_8bit_operand): Remove.
27225
27226         * config/mn10300/constraints.md ("c"): Rename from "A".
27227         ("A", "D"): New constraint letters.
27228         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
27229         (fmssf4, fnmasf4, fnmssf4): Likewise.
27230
27231         * config/mn10300/mn10300.md (isa): New attribute.
27232         (enabled): New attribute.
27233
27234         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
27235         (abssf2, negsf2): Define only for hardware fp.
27236         (sqrtsf2): Reformat.
27237         (addsf3, subsf3, mulsf3): Merge expander and insn.
27238
27239         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
27240         (DEBUGGER_AUTO_OFFSET): Remove.
27241         (DEBUGGER_ARG_OFFSET): Remove.
27242
27243         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
27244         Emit register stores with the same offsets as the hardware.
27245         (mn10300_store_multiple_operation): Don't check that the register
27246         save offsets are monotonic.
27247         * config/mn10300/mn10300-protos.h: Update.
27248
27249         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
27250
27251         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
27252         in terms of the value on the stack, not the MDR register.
27253
27254 2011-01-11  Jan Hubicka  <jh@suse.cz>
27255
27256         PR lto/45721
27257         PR lto/45375
27258         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
27259         (symbol_alias_set_destroy, symbol_alias_set_contains,
27260         propagate_aliases_backward): Declare.
27261         * lto-streamer-out.c (struct sets): New sturcture.
27262         (trivally_defined_alias): New function.
27263         (output_alias_pair_p): Rewrite.
27264         (output_unreferenced_globals): Fix output of alias pairs.
27265         (produce_symtab): Likewise.
27266         * ipa.c (function_and_variable_visibility): Set weak alias destination
27267         as needed in lto.
27268         * varasm.c (symbol_alias_set_t): Remove.
27269         (symbol_alias_set_destroy): Export.
27270         (propagate_aliases_forward, propagate_aliases_backward): New functions
27271         based on ...
27272         (compute_visible_aliases): ... this one; remove.
27273         (trivially_visible_alias): New
27274         (trivially_defined_alias): New.
27275         (remove_unreachable_alias_pairs): Rewrite.
27276         (finish_aliases_1): Reorganize code checking if alias is defined.
27277         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
27278         in LTO mode.
27279
27280 2011-01-11  Richard Guenther  <rguenther@suse.de>
27281
27282         PR tree-optimization/46076
27283         * tree-ssa.c (useless_type_conversion_p): Conversions from
27284         unprototyped to empty argument list function types are useless.
27285
27286 2011-01-11  Richard Guenther  <rguenther@suse.de>
27287
27288         PR middle-end/45235
27289         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
27290         volatile MEMs as MEM_READONLY_P.
27291
27292 2011-01-11  Richard Guenther  <rguenther@suse.de>
27293
27294         PR tree-optimization/47239
27295         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
27296
27297 2011-01-11  Jeff Law  <law@redhat.com>
27298
27299         PR tree-optimization/47086
27300         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
27301         IVs from statements that might throw.
27302
27303 2011-01-10  Jan Hubicka  <jh@suse.cz>
27304
27305         PR lto/45375
27306         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
27307
27308 2011-01-10  Jan Hubicka  <jh@suse.cz>
27309
27310         PR lto/45375
27311         * profile.c (read_profile_edge_counts): Ignore profile inconistency
27312         when correcting profile.
27313
27314 2011-01-10  Jan Hubicka  <jh@suse.cz>
27315
27316         PR lto/46083
27317         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
27318         DECL_FINI_PRIORITY.
27319         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
27320         Restore DECL_FINI_PRIORITY.
27321
27322 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27323
27324         * doc/gimple.texi: Fix quoting of multi-word return values in
27325         @deftypefn statements.  Ensure presence of return value.  Wrap
27326         overlong @deftypefn lines.
27327         (is_gimple_operand, is_gimple_min_invariant_address): Remove
27328         descriptions of removed functions.
27329         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
27330         of multi-word return value in @deftypefn statement.
27331
27332 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27333
27334         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
27335         (Conditional Expressions, Logical Operators)
27336         (Statement and operand traversals): Do not indent smallexample
27337         code.  Fix duplicate function argument in example.
27338
27339 2011-01-10  Jeff Law  <law@redhat.com>
27340
27341         PR tree-optimization/47141
27342         * ipa-split.c (split_function): Handle case where we are
27343         returning a value and the return block has a virtual operand phi.
27344
27345 2011-01-10  Jan Hubicka  <jh@suse.cz>
27346
27347         PR tree-optimization/47234
27348         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
27349         (pass_feedback_split_functions): Declare.
27350         * passes.c (init_optimization_passes): Add ipa-split as subpass of
27351         tree-profile.
27352         * ipa-split.c (gate_split_functions): Update comments; disable
27353         split-functions for profile_arc_flag and branch_probabilities.
27354         (gate_feedback_split_functions): New function.
27355         (execute_feedback_split_functions): New function.
27356         (pass_feedback_split_functions): New global var.
27357
27358 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
27359
27360         PR lto/46760
27361         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
27362         calling gimple_call_set_cannot_inline.
27363
27364 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
27365
27366         * config/darwin-sections.def: Remove unused section.
27367
27368 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
27369
27370         PR c++/47218
27371         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
27372
27373 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
27374
27375         PR objc/47232
27376         * c-parser.c (c_parser_declaration_or_fndef): Improved
27377         error message.
27378
27379 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
27380
27381         * config/i386/winnt.c (i386_pe_start_function): Make sure
27382         to switch back to function's section.
27383
27384 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
27385
27386         PR gcc/46902
27387         PR testsuite/46912
27388         * plugin.c: Move include of dlfcn.h from here...
27389         * system.h: ... to here.
27390
27391 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27392
27393         * doc/cpp.texi (C++ Named Operators): Fix markup for header
27394         file name.
27395         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
27396         two extra empty pages in PDF output.
27397
27398 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
27399
27400         PR objc/47078
27401         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
27402         for error recovery purposes behave as if it was not specified so
27403         that the default type is usd.
27404
27405 2011-01-07  Jan Hubicka  <jh@suse.cz>
27406
27407         PR tree-optmization/46469
27408         * ipa.c (function_and_variable_visibility): Clear needed flags on
27409         nodes with external decls; handle weakrefs merging correctly.
27410
27411 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
27412
27413         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
27414         not false.
27415
27416 2011-01-07  Jan Hubicka  <jh@suse.cz>
27417
27418         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
27419         and no longer claim that gold is required for linker plugin.
27420         * configure: Regenerate.
27421         * gcc.c (PLUGIN_COND): New macro.
27422         (LINK_COMMAND_SPEC): Use it.
27423         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
27424         * config.in (HAVE_LTO_PLUGIN): New.
27425         * configure.ac (--with-lto-plugin): New parameter; autodetect
27426         HAVE_LTO_PLUGIN.
27427
27428 2011-01-07  Jan Hubicka  <jh@suse.cz>
27429
27430         PR tree-optimization/46367
27431         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
27432         when we can update original.
27433         (cgraph_mark_inline_edge): Sanity check.
27434         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
27435
27436 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27437
27438         * config/spu/spu.h (ASM_COMMENT_START): Define.
27439
27440 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
27441
27442         PR driver/42445
27443         * gcc.c (%>S): New.
27444         (SWITCH_KEEP_FOR_GCC): Likewise.
27445         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
27446         (do_spec_1): Handle "%>".
27447
27448         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
27449
27450 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
27451
27452         PR target/47201
27453         * config/i386/i386.c (ix86_delegitimize_address): If
27454         simplify_gen_subreg fails, return orig_x.
27455
27456         PR bootstrap/47187
27457         * value-prof.c (gimple_stringop_fixed_value): Handle
27458         lhs of the call properly.
27459
27460 2011-01-07  Jan Hubicka  <jh@suse.cz>
27461
27462         PR lto/45375
27463         * lto-opt.c (lto_reissue_options): Set flag_shlib.
27464
27465 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27466
27467         * target.def (function_switched_text_sections): New hook.
27468         * doc/tm.texi: Regenerated.
27469         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27470         * final.c (default_function_switched_text_sections): New.
27471         (final_scan_insn): Call function_switched_text_sections when a
27472         mid-function section change occurs.
27473         * output.h (default_function_switched_text_sections): Declare.
27474         * config/darwin-protos.h (darwin_function_switched_text_sections):
27475         Likewise.
27476         * config/darwin.c (darwin_function_switched_text_sections): New.
27477         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27478
27479 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27480
27481         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
27482         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
27483         the secondary code fragment when outputting for DWARF == 2.
27484
27485 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
27486
27487         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27488         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
27489         Remove.
27490         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
27491         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27492
27493 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
27494
27495         PR debug/46704
27496         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
27497         when it is not empty.
27498
27499 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
27500
27501         Bobcat Enablement
27502         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
27503         (case ${target}): Add btver1.
27504         * config/i386/driver-i386.c (host_detect_local_cpu): Let
27505         -march=native recognize btver1 processors.
27506         * config/i386/i386-c.c (ix86_target_macros_internal): Add
27507         btver1 def_and_undef
27508         * config/i386/i386.c (struct processor_costs btver1_cost): New
27509         btver1 cost table.
27510         (m_BTVER1): New definition.
27511         (m_AMD_MULTIPLE): Includes m_BTVER1.
27512         (initial_ix86_tune_features): Add btver1 tune.
27513         (processor_target_table): Add btver1 entry.
27514         (static const char *const cpu_names): Add btver1 entry.
27515         (software_prefetching_beneficial_p): Add btver1.
27516         (ix86_option_override_internal): Add btver1 instruction sets.
27517         (ix86_issue_rate): Add btver1.
27518         (ix86_adjust_cost): Add btver1.
27519         * config/i386/i386.h (TARGET_BTVER1): New definition.
27520         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
27521         (enum processor_type): Add PROCESSOR_BTVER1.
27522         * config/i386/i386.md (define_attr "cpu"): Add btver1.
27523
27524 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27525
27526         PR target/43309
27527         * config/i386/i386.c (legitimize_tls_address)
27528         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
27529         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
27530         (tls_initial_exec_64_sun): New pattern.
27531
27532 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
27533
27534         * doc/invoke.texi (Overall Options): Improve wording and markup
27535         of the description of -wrapper.
27536
27537 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27538
27539         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
27540         rdynamic, threads): New Driver options.
27541
27542 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27543
27544         PR target/38118
27545         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
27546         if coming from .tdata.
27547         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27548
27549 2011-01-06  Jan Hubicka  <jh@suse.cz>
27550
27551         PR lto/47188
27552         * collect2.c (main): Do not enable LTOmode when plugin is active.
27553
27554 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27555
27556         PR other/45915
27557         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
27558         --version output if supported.
27559         * configure: Regenerate.
27560
27561 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27562
27563         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
27564         Driver options.
27565
27566 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
27567
27568         PR c/47150
27569         * c-convert.c (convert): When converting a complex expression
27570         other than COMPLEX_EXPR to a different complex type, ensure
27571         c_save_expr is called instead of save_expr, unless in_late_binary_op.
27572         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
27573         when converting COMPLEX_TYPE.
27574
27575 2011-01-06  Ira Rosen  <irar@il.ibm.com>
27576
27577         PR tree-optimization/47139
27578         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
27579         only the last reduction value is used outside the loop.  Update
27580         documentation.
27581
27582 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
27583
27584         * config/rtems.opt: New.
27585         * config.gcc (*-*-rtems*): Use rtems.opt.
27586
27587 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
27588
27589         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
27590         processors do not support 3DNow instructions.
27591
27592 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27593
27594         * config/spu/spu.c (spu_option_override): Set parameter
27595         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
27596
27597 2011-01-05  Jan Hubicka  <jh@suse.cz>
27598
27599         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
27600         at the command line.
27601
27602 2011-01-05  Martin Jambor  <mjambor@suse.cz>
27603
27604         PR lto/47162
27605         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
27606         deltas on streamed outgoing edges.
27607         (output_node_opt_summary): Output info for outgoing edges only when
27608         the node is in new parameter set.
27609         (output_cgraph_opt_summary): New parameter set, passed to the two
27610         aforementioned functions.  Update its forward declaration and its
27611         callee too.
27612
27613 2011-01-05  Tom Tromey  <tromey@redhat.com>
27614
27615         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
27616         operator to c_finish_omp_atomic.
27617         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
27618         (build_unary_op): Update.
27619         (build_modify_expr): Update.
27620         (build_asm_expr): Update.
27621
27622 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27623
27624         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
27625         newly inserted insns.
27626         (pad_bb): Likewise.
27627         (spu_emit_branch_hint): Likewise.
27628         (insert_hbrp_for_ilb_runout): Likewise.
27629         (spu_machine_dependent_reorg): Call df_finish_pass after
27630         schedule_insns returns.
27631
27632 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27633
27634         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
27635
27636 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27637
27638         PR tree-optimization/47005
27639         * tree-sra.c (struct access): Add 'non_addressable' bit.
27640         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
27641         (decide_one_param_reduction): Return 0 if the parameter is passed by
27642         reference and one of the accesses in the group is non_addressable.
27643
27644 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27645
27646         PR tree-optimization/47056
27647         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
27648         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
27649         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
27650
27651 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27652
27653         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
27654         initializer.  Skip view conversions from aggregate types.
27655
27656 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
27657
27658         PR bootstrap/47055
27659         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
27660
27661 2011-01-04  Philipp Thomas  <pth@suse.de>
27662
27663         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
27664         obvious typo.
27665
27666 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27667
27668         * function.c (thread_prologue_and_epilogue_insns): Do not crash
27669         on empty epilogue sequences.
27670
27671 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
27672
27673         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
27674         non-static): New Driver options.
27675
27676 2011-01-04  Jie Zhang  <jie@codesourcery.com>
27677
27678         PR driver/47137
27679         * gcc.c (default_compilers[]): Set combinable field to 0
27680         for all assembly languages.
27681
27682 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
27683
27684         * config/mips/loongson3a.md: New file.
27685         * config/mips/mips.md: Include loongson3a.md.
27686         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
27687         TUNE_LOONGSON_3A.
27688
27689 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27690
27691         PR middle-end/47017
27692         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
27693         instead of convert_memory_address_addr_space on the base expression.
27694
27695 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27696
27697         * config/spu/spu.c (spu_option_override): Update error text
27698         for bad -march= / -mtune= values.
27699
27700 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27701
27702         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
27703         if branch-hint optimization will be performed.
27704
27705 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27706
27707         PR tree-optimization/47148
27708         * ipa-split.c (split_function): Convert arguments to
27709         DECL_ARG_TYPE if possible.
27710
27711         PR tree-optimization/47155
27712         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
27713         when computing uns.
27714
27715         PR rtl-optimization/47157
27716         * combine.c (try_combine): If undobuf.other_insn becomes
27717         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
27718         and set *new_direct_jump_p too.
27719
27720 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
27721
27722         PR tree-optimization/47021
27723         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
27724
27725 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27726
27727         * gcc.c (process_command): Update copyright notice dates.
27728         * gcov.c (print_version): Likewise.
27729         * gcov-dump.c (print_version): Likewise.
27730         * mips-tfile.c (main): Likewise.
27731         * mips-tdump.c (main): Likewise.
27732
27733 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27734
27735         PR tree-optimization/46801
27736         * tree-sra.c (type_internals_preclude_sra_p): Check whether
27737         aggregate fields start at byte boundary instead of the bit-field flag.
27738
27739 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27740
27741         PR driver/47137
27742         * gcc.c (main): Revert revision 168407.
27743
27744 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27745
27746         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
27747
27748 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27749
27750         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
27751         vector optab to expand vector/scalar shift, update gimple to vector.
27752
27753 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27754
27755         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
27756         a thunk.
27757
27758 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27759
27760         PR tree-optimization/46984
27761         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
27762         HOST_WIDE_INT.
27763         (cgraph_create_indirect_edge): Fixed line length.
27764         (cgraph_indirect_call_info): Declare.
27765         (cgraph_make_edge_direct) Update declaration.
27766         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
27767         (cgraph_create_indirect_edge): Use it.
27768         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
27769         callees.
27770         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
27771         the new thunk_delta representation.
27772         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
27773         HOST_WIDE_INT.
27774         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
27775         (ipa_read_indirect_edge_info): Likewise.
27776         * lto-cgraph.c (output_edge_opt_summary): New function.
27777         (output_node_opt_summary): Call it on all outgoing edges.
27778         (input_edge_opt_summary): New function.
27779         (input_node_opt_summary): Call it on all outgoing edges.
27780
27781 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
27782
27783         PR driver/47137
27784         * gcc.c (main): Don't check have_o when settting combine_inputs.
27785
27786 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
27787
27788         * regrename.c: Add general comment describing the pass.
27789         (struct du_head): Remove 'length' field.
27790         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
27791         (regrename_optimize): Do not sort chains.  Rework comments, add others.
27792         Force renaming to the preferred class (if any) in the first pass and do
27793         not consider registers that belong to it in the second pass.
27794         (create_new_chain): Do not set 'length' field.
27795         (scan_rtx_reg): Likewise.
27796
27797 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
27798
27799         PR tree-optimization/47140
27800         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
27801         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
27802         to bit_value_binop.
27803
27804         PR rtl-optimization/47028
27805         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
27806         parm_birth_insn instead of at the beginning of first bb.
27807
27808 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
27809
27810         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
27811         Remove the word "see" before "@pxref".
27812         * doc/rtl.texi: Remove the word "see" before "@pxref".
27813
27814 2011-01-01  Jan Hubicka  <jh@suse.cz>
27815
27816         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
27817         memory.
27818
27819 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
27820
27821         PR target/38662
27822         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
27823
27824 \f
27825 Copyright (C) 2011 Free Software Foundation, Inc.
27826
27827 Copying and distribution of this file, with or without modification,
27828 are permitted in any medium without royalty provided the copyright
27829 notice and this notice are preserved.